Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Применение объектно-ориентированного подхода при проектировании информационной системы (Основные понятия объектно-ориентированного проектирования)

Содержание:

Введение

В век всеобщей компьютеризации ни для кого не секрет, что без компьютерной техники и специализированного программного  обеспечения практически невозможно обойтись. Применение специализированных программ позволяет улучшить качество выполняемой работы, упростить человеческий труд, ускорить выполнение технологического процесса, облегчает хранение и передачу информации – перечислять все достоинства можно практически до бесконечности.

1. Теоретические основы объектно-ориентированного подхода

1.1 Основные понятия объектно-ориентированного проектирования

Деловые компьютерные программы, используемые в бизнесе и научных исследованиях, строятся на основе моделей реального мира. В таких моделях реальным процессам и системам ставится в соответствие совокупность величин, называемых переменными состояния. Изменение состояния исследуемого процесса или системы отображается изменением переменных состояния модели. В общем случае математическая модель описывается набором переменных состояния и отношениями (связями) между этими переменными. Переменные состояния могут быть как числовыми, так и не числовыми, в том числе словами и предложениями естественного языка. Проектирование и разработка программ, реализующих модели сложных процессов и явлений, достаточно сложны и трудоемки. Одним из подходов, обеспечивающих структурирование математической модели и упрощение ее программирования, является объектный подход, в котором реальный процесс или система представляются совокупностью объектов, взаимодействующих друг с другом. Понятию “объект” сопоставляют ряд дополняющих друг друга определений. Ниже приводим некоторые из них:

- Объект - это осязаемая реальность, характеризующаяся четко определяемым поведением;

- Объект - особый опознаваемый предмет, блок или сущность (реальная или абстрактная), имеющая важное функциональное назначение в данной предметной области.

Объект может быть охарактеризован структурой, состоянием объекта, его поведением и индивидуальностью.

Состояние объекта определяется перечнем всех возможных (обычно статических) свойств и текущими значениями (обычно динамическими) каждого из этих свойств. Свойства объекта характеризуются значениями его параметров. Поведение объекта описывает, как воздействует на другие объекты или подвергается воздействию со стороны других объектов с точки зрения изменения его собственного состояния и состояния других объектов. Также говорят, что поведение объекта определяется его действиями.

Определенное воздействие одного объекта на другой с целью вызвать соответствующую реакцию именуют операцией. В объектно-ориентированных языках программирования операции называют методами. Выделяются пять типов операций:

- конструктор, создание и инициализация объекта;

- деструктор, разрушающий объект;

- модификатор, изменяющий состояние объекта;

- селектор для доступа к переменным объекта без их изменения;

- итератор для доступа к содержанию объекта по частям в определенной последовательности.

Известна и другая классификация методов объекта, когда выделяют функции управления, реализации, доступа, а также вспомогательные функции.

Под индивидуальностью объекта понимают свойство объекта, позволяющее отличать этот объект от всех остальных.

Объекты могут находиться в определенных иерархическими отношениях друг к другу. Основные иерархические отношения - это отношения использования и включения.

Так, отношение использования реализуется посылкой сообщений от объекта A к объекту B. При этом объект A может выступать в роли:

- активного или воздействующего объекта, когда он воздействует на другие объекты, но сам воздействию не подвергается;

- пассивного или исполняющего, когда объект подвергается воздействию, но сам на другие объекты не воздействует;

- посредника, если объект и воздействует и сам подвергается воздействию.

Отношение включения имеет место тогда, когда составной объект содержит другие объекты.

Структура и поведение схожих объектов определяют их класс, между которыми также могут быть установлены следующие отношения:

- отношение разновидности (кошка - вид определенного биологического семейства или кошка - домашнее животное);

- включения или составной части (лапа - часть кошки);

- ассоциативности, когда между классами есть сугубо смысловая связь (кошки и собаки - домашние животные).

Объект, обладающий перечисленными характеристиками, в общем случае служит моделью реальной сущности, поскольку при его описании пренебрегают второстепенными или несущественными в конкретной ситуации свойствами.

Выделение надлежащим образом совокупности объектов и отношений между ними позволяет построить объектную модель определенной предметной области, а на основе такой модели разработать программные средства для исследования этой предметной области и принятия решений.

Приведенная выше характеристика объектного подхода соответствует его применению для построения и программирования имитационных моделей реальных процессов и систем.

С точки зрения собственно программирования объектный подход можно рассматривать как развитие понятия типов данных. Тип данного определяет множество значений, которые может принимать данное, и набор операций, которые могут быть выполнены над данными этого конкретного типа. В языках программирования предусматриваются некоторые предопределенные (базовые) типы данных, обычно это целые и вещественные числовые типы, символьные и строковые типы, а в ряде случаев и преобразования данных одного типа в другой. В языках программирования со строгой типизацией каждое данное принадлежит только одному типу и разрешаются только явные преобразования данных одного типа в другой. Строгая типизация повышает надежность разрабатываемых программ, позволяя выявить многие ошибки еще на этапе отладки программы. В языках программирования предусматривается и возможность построения новых типов данных, определяемых программистом, но для таких типов, как правило, отсутствует перечень допустимых операций.

Объектно-ориентированные языки программирования позволяют распространить требования строгой типизации на типы данных, определяемых программистом.

Объектно-ориентированный подход к проектированию программных изделий предполагает:

- проведение объектно-ориентированного анализа предметной области;

- объектно-ориентированное проектирование;

- разработку программного изделия с использованием объектно-ориентированного языка программирования.

Объектно-ориентированный анализ

Объектно-ориентированный анализ (ООА) - это метод отождествления важных сущностей реального мира для понимания и объяснения того, как они взаимодействуют между собой. Говорят также, что ООА - это моделирование проблемы с целью формирования словаря предметной области, определения объектов и классов.

Известны несколько подходов к проведению ООА. Так, в работе С. Шлеер и С. Меллора "Объектно-ориентированный анализ: моделирование мира в состояниях" выделены три этапа ООА:

- построение информационной модели, абстрагирование реальных сущностей в терминах объектов и атрибутов.

- построение модели состояний для формализации жизненных циклов объектов и отображение этой модели диаграммами и таблицами переходов, взаимодействие между объектами осуществляется путем передачи сообщений о происходящих с ними событиях.

- разработка модели процессов, в которой действия в моделях состояний расчленяются на фундаментальные и многократно используемые процессы.

В работе Г. Буча “Объектно-ориентированное проектирование с примерами применения” отмечаются следующие альтернативные подходы к ООА:

- Метод неформального описания, в котором выделяются существительные и глаголы в описании предметной области. Существительные здесь рассматриваются в качестве кандидатов для образования классов, а глаголы – как кандидаты в операции над классами;

- структурный анализ, при котором на основе модели системы, представленной диаграммами потоков данных, выделяются внешние события и объекты, база данных, поток управления, преобразования потока управления. Далее, на основе анализа потока данных и потока управления, выделяются классы и методы классов.

1.2 Пример объектно-ориентированного анализа

Пусть требуется разработать пакет программ для решения расчетных задач, настраиваемый на конкретную предметную область. Каждая предметная область определяется совокупностью переменных и связей между этими переменными - формулами и алгоритмами для вычисления некоторых переменных по известным значениям других переменных. Такой пакет должен состоять из двух частей, универсальной, обеспечивающей ввод и представления данных пользователям и общее управление работой пакета, а также функциональной части, содержащей алгоритмы вычислений для конкретной предметной области.

Предметная область ППП для решения расчетных задач формально может быть описана совокупностью трех множеств:

- множества данных X;

- множества функциональных связей (задач, решаемых с использованием пакета) F;

- множества связей по определению R.

При использовании пакета пользователь может вводить некоторые данные из заранее определенного их набора и запрашивать решение одной или нескольких задач, а затем выводить вычисленные данные на экран, в файл или на принтер. Пакет должен настраиваться на конкретную предметную область путем определения множеств X, F и R и подключения соответствующего набора обрабатывающихся модулей (подпрограмм).

Объектно-ориентированный анализ проще всего начать с неформального описания и построения словаря предметной области. В данном случае такой словарь может включать следующие понятия:

Данные (множество X): множество данных, элемент множества данных.

Элемент множества данных должен описываться его типом, уровнем агрегирования и наличием или отсутствием конкретного значения;

Задачи (множество F): множество задач, элемент множества задач (конкретная задача), набор аргументов (входных и выходных данных задачи), аргумент задачи;

Связи по определению (множество R): множество связей, элемент множества связей, тип связи (старший - младший, функция-предикат);

Поскольку каждая задача должна реализовываться вызовом некоторого обрабатывающего модуля (подпрограммы), добавим соответствующие понятия.

Модули (множество M): множество модулей, элемент множества модулей, список параметров модуля, параметр модуля.

Элементы перечисленных множеств находятся между собой в определенных отношениях. Элемент множества задач использует элементы множества данных для передачи аргументов связанному с задачей модулю. Элементы множества связей либо связывают между собой пары данных, либо описывают некоторый предикат, аргументами которого служат элементы множества данных.

Кроме понятий - существительных следует выделить понятия - глаголы (действия), относящиеся к понятиям - существительным. В рассматриваемом примере действиями могут быть:

- определить новый элемент множества данных, задач или связей;

- добавить новый элемент в множество (данных, задач, связей);

- удалить элемент из множества (данных, задач, связей);

- ввести значение элемента множества данных;

- вывести на экран (в файл, на принтер) значение элемента множества данных;

- выполнить задачу.

Предполагается, что перечисленные действия должны выполняться по командам пользователя. Следовательно, все предыдущие рассуждения необходимо повторить для процесса диалога с пользователем. Отличие заключается лишь в том, что для организации диалога, как правило, применяются готовые инструментальные средства и свойственные им основные понятия: диалоговое окно, объект ввода строкового данного, независимые и зависимые, списки строк.

Результаты ООА документируются наборами диаграмм и таблиц, отражающих как структуру выделенных классов объектов, так и отношения между ними.

Понятия, которые принимаются как кандидаты в используемые классы, более подробно описываются по специальному шаблону, который включает следующие характеристики класса:

- имя класса, т.е. присвоенный ему идентификатор;

- множественность экземпляров класса (0/1/n);

- иерархия класса ( базовые классы);

- структура и интерфейс класса.

Здесь под структурой понимаются как атрибуты класса (элементы-данные), так и действия (методы). Данные и методы разбиваются по уровням доступа.

Под интерфейсом класса понимаются элементы-данные, доступные из экземпляров других классов, и методы, которые могут быть вызваны из других классов.

Для классов желательно определить жизненные циклы экземпляров класса: когда, при каких условиях создается экземпляр класса, когда изменяется его состояние и когда он уничтожается.

Поскольку в объектно-ориентированной системе экземпляры классов обмениваются сообщениями, для каждого класса следует определить поступающие его экземплярам сообщения и на их основе построить диаграммы перехода (описать класс как конечный автомат). В ряде случаев для каждого объекта целесообразно построить модели состояний и определить списки событий, изменяющих состояние объектов.

После выделения классов и их неформального описания могут быть построены модели процессов, которые должны быть реализованы в будущем программном изделии. В такой модели отражаются внешние события (действия пользователя) и вызываемые этими событиями действия с экземплярами классов.

Например, в рассматриваемом примере процесс определения нового данного должен включать ввод имени данного и его описания, включающего тип данного, уровень агрегирования, границы индексов для массива. После ввода пользователем имени данного нужно проверить, является ли это имя уникальным.

После ввода границ индекса для массива также нужно проверить их допустимость. Если пользователь указал все характеристики данного правильно, нужно построить экземпляр объекта “данное” и включить его в множество данных.

1.3 Процесс объектно-ориентированного проектирования

Объектно-ориентированное проектирование (Object-Oriented Design - OOD) - это поступательный итеративный процесс. Граница между объектно-ориентированным анализом и проектированием расплывчата и построение проекта программного изделия состоит из ряда циклов, в которых уточняются описания классов и взаимодействия между ними, разрабатываются реализующие их программы, проводится их отладка и тестирование и по результатам каждого этапа уточняются рабочие документы предыдущих этапов, дорабатываются описания классов и программы. Эти циклы повторяются до получения требуемого результата.

В рассмотренном выше примере были выделены классы “множество данных” и “данное”. Пусть классу “множество данных” присвоено имя TXSet.

С учетом имеющихся инструментальных средств класс TXSet может быть построен на основе класса Array из библиотеки CLASSLIB, т.е. это множество может быть интерпретировано массивом. Массив представляет собой упорядоченную совокупность однотипных элементов, в то же время данные могут принадлежать различным типам и каждому типу соответствует свой набор характеристик. Это противоречие можно преодолеть, если элементами массива TXSet будут указатели на экземпляры данных.

Чтобы использовать указатели на экземпляры данных как элементы массива, все классы, определяющие типы данных, должны быть образованы из общего базового класса.

Пусть требуется обеспечить возможность использования числовых скалярных данных и массивов (векторов и прямоугольных матриц), а также данных типа строк и массива строк. Естественно определить для каждого такого типа свой класс: TDScal, TDArray, TDString, TDStringArray. В каждом из этих классов должно быть поле идентификатора данного ident, поле описания данного head и, возможно, поле flags, представляющее собой набор битов, дополняющих описание данного. Может оказаться удобным иметь и поля, содержащие количество знаков при представлении скаляра или элементов массивов (width) и количество цифр в дробной части для представления чисел (dec). Все эти данные можно объединить в классе TData, базовом для остальных классов данных. Таким образом, вместо одного класса “данное”, выделенного на этапе анализа, появилось пять классов. После этого следует вернуться к этапу анализа и оформить рабочие документы анализа для новых классов.

Аналогичным образом следует уточнить состав и определения остальных классов, выбранных на этапе анализа.

После определения перечня классов следует разработать семантику каждого класса - установить состав и назначение методов класса. При этом также может возникнуть необходимость выделения новых классов и, следовательно, повторение отдельных частей этапа анализа и новое уточнение ранее описанных классов.

Таким образом, процесс объектно-ориентированного проектирования состоит из циклического выполнения четырех основных шагов:

- определение классов и объектов на том или ином уровне абстракции;

- выявление семантики классов;

- установление (идентификация) связей между классами и объектами;

- реализация классов.

На каждом повторении этого цикла уточняются описания классов и перерабатываются проектные документы.

2. Объектно-ориентированный подход в программировании

2.1 Технологии программирования

Технология программирования - это совокупность методов и средств разработки (написания) программ, а также порядок применения этих методов и средств.

На ранних этапах развития программирования, когда программы писались в виде последовательностей машинных команд, какая-либо технология программирования отсутствовала. Первые шаги в ее разработке состояли в представлении программы в виде последовательности операторов. Написанию последовательности машинных команд предшествовало составление операторной схемы, отражающей последовательность операторов и переходы между ними. Операторный подход позволил разработать первые программы для автоматизации составления программ - так называемые составляющие программы.

С увеличением размеров программ стали выделять их обособленные части и оформлять их как подпрограммы. Часть таких подпрограмм объединялась в библиотеки, из которых подпрограммы можно было включать в рабочие программы, а затем из них вызывать, что и положило начало процедурному программированию - большая программа представлялась совокупностью процедур-подпрограмм. Одна из подпрограмм являлась главной и с нее начиналось выполнение программы.

В 1958 г. были разработаны первые языки программирования, Фортран и Алгол-58. Программа на Фортране состояла из главной программы и некоторого количества процедур - подпрограмм и функций. Программа на Алголе-58 и его последующей версии Алголе-60 представляла собой единое целое, но имела блочную структуру, включающую главный блок и вложенные блоки подпрограмм и функций. Компиляторы для Фортрана обеспечивали раздельную трансляцию процедур и последующее их объединение в рабочую программу, первые компиляторы для Алгола предполагали, что транслируется сразу вся программа, раздельная трансляция процедур не обеспечивалась.

Процедурный подход потребовал структурирования будущей программы, ее разделения на отдельные процедуры. При разработке отдельной процедуры о других процедурах требовалось знать только их назначение и способ вызова. Появилась возможность перерабатывать отдельные процедуры, не затрагивая остальной части программы, сокращая при этом затраты труда и машинного времени на разработку и модернизацию программ.

Следующим шагом в углублении структурирования программ стало так называемое структурное программирование, при котором программа в целом и отдельные процедуры рассматривались как последовательности канонических структур: линейных участков, циклов и разветвлений. Появилась возможность читать и проверять программу как последовательный текст, что повысило производительность труда программистов при разработке и отладке программ. С целью повышения структурности программы были выдвинуты требования к большей независимости подпрограмм, подпрограммы должны связываться с вызывающими их программами только путем передачи им аргументов, использование в подпрограммах переменных, принадлежащих другим процедурам или главной программе, стало считаться нежелательным.

Процедурное и структурное программирование затронули, прежде всего, процесс описания алгоритма как последовательности шагов, ведущих от варьируемых исходных данных к искомому результату. Для решения специальных задач стали разрабатываться языки программирования, ориентированные на конкретный класс задач: системы управления базами данных, имитационное моделирование и т.д.

При разработке трансляторов все больше внимания стало уделяться обнаружению ошибок в исходных текстах программ, обеспечивая, этим, сокращение затрат времени на отладку программ.

Применение программ в самых разных областях человеческой деятельности привело к необходимости повышения надежности всего программного обеспечения. Одним из направлений совершенствования языков программирования стало повышение уровня типизации данных. Теория типов данных исходит из того, что каждое используемое в программе данное принадлежит одному и только одному типу данных. Тип данного определяет множество возможных значений данного и набор операций, допустимых над этим данным. Данное конкретного типа в ряде случаев может быть преобразовано в данное другого типа, но такое преобразование должно быть явно представлено в программе. В зависимости от степени выполнения перечисленных требований, можно говорить об уровне типизации того или иного языка программирования. Стремление повысить уровень типизации языка программирования привело к появлению языка Паскаль, который считается строго типизированным, хотя и в нем разрешены некоторые неявные преобразования типов, например, целого в вещественное. Применение строго типизированного языка при написании программы позволяет еще при трансляции исходного текста выявить многие ошибки использования данных и этим, повысить надежность программы. Вместе с тем строгая типизация сковывала свободу программиста, затрудняла применение некоторых приемов преобразования данных, часто используемых в системном программировании. Практически одновременно с Паскалем был разработан язык Си, в большей степени ориентированный на системное программирование и относящийся к слабо типизированным языкам.

Все универсальные языки программирования, несмотря на различия в синтаксисе и используемых ключевых словах, реализуют одни и те же канонические структуры: операторы присваивания, циклы и разветвления. Во всех современных языках присутствуют предопределенные (базовые) типы данных (целые и вещественные арифметические типы, символьный и, возможно, строковый тип), имеется возможность использования агрегатов данных, в том числе массивов и структур (записей). Для арифметических данных разрешены обычные арифметические операции, для агрегатов данных как правило предусмотрена только операция присваивания и возможность обращения к элементам агрегата. Вместе с тем при разработке программы для решения конкретной прикладной задачи желательна возможно большая концептуальная близость текста программы к описанию задачи. Например, если решение задачи требует выполнения операций над комплексными числами или квадратными матрицами, желательно, чтобы в программе явно присутствовали операторы сложения, вычитания, умножения и деления данных типа комплексного числа, сложения, вычитания, умножения и обращения данных типа квадратной матрицы. Решение этой проблемы возможно несколькими путями:

- построением языка программирования, содержащего как можно больше типов данных, и выбором для каждого класса задач некоторого подмножества этого языка. Такой язык иногда называют языком-оболочкой. На роль языка-оболочки претендовал язык ПЛ/1, оказавшийся настолько сложным, что так и не удалось построить его формализованное описание. Отсутствие формализованного описания, однако, не помешало широкому применению ПЛ/1 как в Западной Европе, так и в бывшем СССР;

- построением расширяемого языка, содержащего небольшое ядро и допускающего расширение, дополняющее язык типами данных и операторами, отражающими концептуальную сущность конкретного класса задач. Такой язык называют языком-ядром. Как язык-ядро были разработаны языки Симула и Алгол-68, не получившие широкого распространения, но оказавшие большое влияние на разработку других языков программирования.

Дальнейшим развитием второго пути явился объектно-ориентированный подход к программированию, рассматриваемый в следующем параграфе.

2.2 Сущность объектно-ориентированного подхода к программированию

Основные идеи объектно-ориентированного подхода опираются на следующие положения:

- программа представляет собой модель некоторого реального процесса, части реального мира;

- модель реального мира или его части может быть описана как совокупность взаимодействующих между собой объектов;

- объект описывается набором параметров, значения которых определяют состояние объекта, и набором операций (действий), которые может выполнять объект;

- взаимодействие между объектами осуществляется посылкой специальных сообщений от одного объекта к другому. Сообщение, полученное объектом, может потребовать выполнения определенных действий, например, изменения состояния объекта;

- объекты, описанные одним и тем же набором параметров и способные выполнять один и тот же набор действий, представляют собой класс однотипных объектов.

С точки зрения языка программирования, класс объектов можно рассматривать как тип данного, а отдельный объект - как данное этого типа. Определение программистом собственных классов объектов для конкретного набора задач должно позволить описывать отдельные задачи в терминах самого класса задач (при соответствующем выборе имен типов и имен объектов, их параметров и выполняемых действий).

Таким образом, объектно-ориентированный подход предполагает, что при разработке программы должны быть определены классы используемых в программе объектов и построены их описания, затем созданы экземпляры необходимых объектов и определено взаимодействие между ними.

Классы объектов часто удобно строить так, чтобы они образовывали иерархическую структуру. Например, класс “Студент”, описывающий абстрактного студента, может служить основой для построения классов “Студент 1 курса”, “Студент 2 курса” и т.д., которые обладают всеми свойствами студента вообще и некоторыми дополнительными свойствами, характеризующими студента конкретного курса. При разработке интерфейса с пользователем программы могут использовать объекты общего класса “Окно” и объекты классов специальных окон, например, окон информационных сообщений, окон ввода данных и т.п. В таких иерархических структурах один класс может рассматриваться как базовый для других, производных от него, классов. Объект производного класса обладает всеми свойствами базового класса и некоторыми собственными свойствами, он может реагировать на те же типы сообщений от других объектов, что и объект базового класса, а также на сообщения, имеющие смысл только для производного класса. Обычно говорят, что объект производного класса наследует все свойства своего базового класса.

Некоторые параметры объекта могут быть локализованы внутри объекта и недоступны для прямого воздействия извне объекта. Например, во время движения объекта-автомобиля объект-водитель может воздействовать только на ограниченный набор органов управления (рулевое колесо, педали газа, сцепления и тормоза, рычаг переключения передач) и ему недоступен целый ряд параметров, характеризующих состояние двигателя и автомобиля в целом.

Очевидно для того, чтобы продуктивно применять объектный подход для разработки программ, необходимы языки программирования, поддерживающие этот подход, т.е. позволяющие строить описание классов объектов, образовывать данные объектных типов, выполнять операции над объектами. Одним из первых таких языков стал язык SmallTalk, в котором все данные являются объектами некоторых классов, а общая система классов строится как иерархическая структура на основе предопределенных базовых классов.

Опыт программирования свидетельствует о том, что любой методический подход в технологии программирования не должен применяться слепо с игнорированием других подходов. Это относится и к объектно-ориентированному подходу. Существует ряд типовых проблем, для которых его полезность наиболее очевидна, к таким проблемам, в частности, относятся, задачи имитационного моделирования, программирование диалогов с пользователем. Существуют и задачи, в которых применение объектного подхода ни к чему, кроме излишних затрат труда, не приведет. В связи с этим наибольшее распространение получили объектно-ориентированные языки программирования, позволяющие сочетать объектный подход с другими методологиями. В некоторых языках и системах программирования применение объектного подхода ограничивается средствами интерфейса с пользователем (например, Visual FoxPro ранних версий).

Наиболее используемыми в настоящее время объектно-ориентированными языками являются Паскаль с объектами, Delphi и С++, причем наиболее развитые средства для работы с объектами содержатся в С++.

Практически все объектно-ориентированные языки программирования являются развивающимися языками, их стандарты регулярно уточняются и расширяются. Следствием этого развития являются неизбежные различия во входных языках компиляторов разных систем программирования. Наиболее распространенны в настоящее время это системы программирования Microsoft C++ , Microsoft Visual C++ и системы программирования фирмы Borland International.

В следующей главе рассмотрим использование ООП в работе менеджера по продажам.

3. Внедрение объектно-ориентированного подхода в трудовую деятельность

3.1 Анализ работы менеджера по продажам

Можно сформулировать следующие основные функции менеджеров по продажам отдела компьютерной техники:

− оформление счетов на товар;

− оформление гарантийных талонов;

− ведение журнала счетов;

− ведение журнала заказов;

− учет контрагентов;

− подготовка ценников товара.

При оформлении счета на приобретенный контрагентом товар менеджер дату счета, данные контрагента, собственные данные, указывает цену и количество товара по каждой позиции счета, а также позиции на заказа, если реализуется компьютерная техника. Далее, выписанный счет регистрируется в журнале счетов и при необходимости в журнале заказов. После выписки счета контрагент также получает гарантийный талон, в котором также указывается дата выдачи, контрагент и менеджер, каждая позиция товара по счету и его количество, а также срок гарантии.

При подготовке ценников менеджер готовит бланк ценника, задает параметры товара, отображаемые на ценнике, а также цену.

3.2 Определение недостатков существующей системы обработки информации

В процессе исследования существующей системы обработки экономической информации на предприятии ООО «КОНТУР» были выявлены недостатки.

Рассмотрим организационные недостатки:

− В организации минимально используется персональный компьютер. ПК применяется в основном для печати счетов и гарантийных талонов (MS Word, MS Excel). Это связано с низкой подготовкой сотрудников в области применения ПК.

− Нерациональное распределение обязанностей между исполнителями, что приводит к потерям рабочего времени.

− Отсутствие средств для оптимального решения основных торговых операций.

− Нерациональное использование средств информационных технологий.

− Недостаточная квалификация сотрудников.

Среди технических недостатков следует отметить отсутствие единой информационной системы, обеспечивающей централизованное хранение данных, сквозной учет реализации товара и автоматизированную подготовку всех необходимых печатных документов.

3.3 Обоснование необходимости разработки информационной системы

Управленческая и финансовая внутрифирменная информационная система представляет собой совокупность информационных процессов, для удовлетворения потребности в информации разных уровней, принятия решений, как бухгалтерских, так и управленческих.

Информационная система состоит из компонентов обработки информации, внутренних и внешних каналов передачи.

Управленческие информационные системы последовательно реализуют принципы единства информационного процесса, информации и организации путем применения технических средств сбора, накопления, обработки и передачи информации.

Информационный процесс, направленный на получение научно-технической, плановой, контрольной, учетной и аналитической информации, в информационных системах унифицирован и базируется на электронно-вычислительной технике. Повышение эффективности использования информационных систем достигается путем сквозного построения и совместимости информационных систем, что позволяет устранить дублирование и обеспечить многократное использование информации, установить определенные интеграционные связи, ограничить количество показателей, уменьшить объем информационных потоков, повысить степень использования информации.

Важную роль в исполнении информации играют способы ее регистрации, обработки, накопления и передачи, систематизированное хранение информации и выдача ее в требуемой форме, производство новой числовой и иной информации.

В современных условиях в крупных организациях созданы и эффективно действуют информационные системы, обслуживающие процесс подготовки и принятия бухгалтерских и управленческих решений, и решающие следующие задачи: обработка данных, обработка информации.

Для определения эффективности внутрифирменной системы управления на многих предприятиях в учете и отчетности стал использоваться показатель − отношение получаемой прибыли к затратам на технические средства и обеспечение функционирования внутрифирменной системы информации.

Основными принципами и целями внутрифирменных систем информации являются:

− определение требований к содержанию информации и к ее характеру, в зависимости от целенаправленности;

− выработка системы хранения, использования и предоставления информации в централизованном и децентрализованном управлении;

− определение потребностей в технических средствах (в том числе, в компьютерной технике) на предприятии в целом;

− разработка программного обеспечения, создание и использование банков данных;

− автоматизированная обработка вводимой и текущей информации и выдача информации по бухгалтерскому учету и отделов технического оснащения;

− автоматизация административно-управленческого труда на основе использования компьютерной техники.

Важными задачами внутрифирменной системы управления являются:

− координация деятельности по сбору и обработке данных финансовых отчетов на высшем уровне управления и в производственных отделениях в целях повышения качества и своевременности поступления финансовой информации по предприятию в целом;

− определение основных направлений системы сбора, обработки и хранения первичных данных;

− определение основных направлений развития технологии обработки информации.

Оснащение электронной техникой позволяет экономить управленческие и накладные расходы, значительно повышает эффективность проектно-конструкторских работ, обеспечивает эффективное внутрифирменное планирование.

ЭВМ используются, прежде всего, для обработки данных и решения расчетных задач. В современных условиях ЭВМ нашли широкое применение в обработке бухгалтерской информации.

Развитие систем телекоммуникаций и, в частности, технологий локальных вычислительных сетей, позволило объединить все технические средства обработки бухгалтерской информации в единую внутрифирменную информационную сеть.

Исследование существующей системы обработки информации выявило необходимость совершенствования существующей обработки данных, причем анализ ситуации позволил определить следующие потенциальные направления совершенствования существующей системы обработки информации:

− устранение имеющихся организационных и технических недостатков, перечисленных в предыдущем разделе, позволило бы значительно перевести существующую обработку информации на более высокий современный уровень;

− приобретение АИС даст возможность практически повысить эффективность работы, полностью отказаться от «ручной» обработки информации и перейти к автоматизированной ее форме;

− разработка собственной АИС устраняет такие недостатки предыдущего стороннего ПО, предназначенного для автоматизации «любого» предприятия как необходимость достаточно крупных вложений финансовых средств и необходимость настройки приобретаемого ПО на конкретные условия работы. Поэтому рассмотрим вариант решения этой задачи, опираясь на имеющиеся знания и навыки, как в создании АИС, так и в бухгалтерской работе.

3.4 Выбор и обоснование варианта реализации задач автоматизации

Для бухгалтерского учета создано большое число пакетов прикладных программ. Среди них можно отметить «1С: Предприятие», «Турбо-Бухгалтер», «Инфо-Бухгалтер», «Парус», «ABACUS», «Бэмби» и др. В этих программах уже реализована задача учета товара. Но помимо этой задачи в них реализованы также десятки других задач, которые не все найдут свое применение на конкретном предприятии в силу специфики его деятельности. Таким образом, выбор автоматизированной информационной системы для торговой фирмы – дело ответственное. И на это имеются свои причины.

Во-первых, АИС обычно приобретаются на достаточно долгий срок (среднее время «жизни» АИС – около 10 лет, но это не предел – во многих компаниях используются системы с гораздо большим «стажем» работы, правда, и обрастающими за это время новыми возможностями).

Во-вторых, чтобы система автоматизации приносила ожидаемый эффект, она должна соответствовать данному предприятию – его возможностям, уровню развития и т.д.

Наконец, стоимость АИС для средней торговой фирмы не так уж и мала.

Критериев выбора систем автоматизации, как и многих других достаточно сложных и дорогих товаров (например, автомобилей), существует много. Какие-то из них крайне важны, какие-то могут отражать очень индивидуальные потребности. В подобных ситуациях следует во многом ориентироваться на «здравый смысл», а также иметь в виду некоторые ключевые моменты, носящие специальный характер.

Выбирая систему автоматизации, стоит обратить внимание на следующее:

− что система автоматизации может делать, или какова ее функциональность;

− во что обойдется приобретение системы, запуск ее в эксплуатацию и поддержание в рабочем состоянии, т.е. какова ее совокупная стоимость владения (крайне важно знать именно общую стоимость, а не просто цену программного обеспечения).

− есть ли гарантии успешного завершения проекта внедрения и полноценного ввода системы в эксплуатацию;

− что у системы «внутри» и, следовательно, насколько она надежна, долговечна, производительна, в конце концов, современна;

− какова эффективность и возможные сроки окупаемости системы;

− уровень и качество сервиса в послепродажный период;

− возможность сопровождать и развивать систему силами специалистов самой фирмы;

− каковы перспективы системы, будет ли она развиваться и поддерживаться поставщиком в будущем.

Очень важно сначала выявить реальные потребности фирмы. Очень хорошо, если на фирме разработан план развития на несколько лет вперед, в котором определена роль информационных технологий и описана последовательность создания корпоративной автоматизированной системы управления. Такой продуманный подход дает наибольшую отдачу, существенно снижает риск выбрать «не ту» АИС и избежать проблем так называемой «лоскутной» автоматизации. При этом в качестве первоочередных задач может рассматриваться автоматизация наиболее критичных на данном этапе видов деятельности («узких» мест, от которых существенно зависит жизнь фирмы) или наиболее трудоемких при обработке традиционным способом (среди последних – например, бухгалтерский и налоговый учет, бюджетирование, расчет зарплаты, и др.).

Таким образом, для реализации задачи учета основных средств выбран вариант реализации посредством разработки новой автоматизированной системы учета реализации компьютеров и компьютерных комплектующих, который учитывает специфику работы менеджера ООО «КОНТУР».

В проектируемой системе решаемые задачи будут реализованы соответствующим программным модулем, каждый из которых будет иметь возможность выполнения ряда операций, таких как корректировка информации, поиск данных, формирование отчетов. Процессы заполнения, корректировки и поиска данных будут реализованы однотипным способом во всех модулях. При добавлении и редактировании данных будет применяться контроль правильности ввода пользователем информации, путем ее сравнения с необходимым типом, диапазоном изменения возможных значений, маской ввода и т.д.

Для добавления и редактирования данных будут использованы экранные формы со всеми необходимыми полями ввода, а также пояснениями и управляющими элементами (например, кнопками), предназначенными для выработки управляющих воздействий (сохранение, отмена изменений) и навигации (перемещению) по БД. Для обеспечения поиска данных также будут использованы экранные формы, позволяющие задавать различные значения (диапазоны значений) интересующей информации, с контролем допустимости значений условий поиска. Поиск информации можно будет производить как по отдельным полям таблиц, так и по совокупности полей, на частичное, либо полное совпадение условий поиска, без учета регистра букв для удобства пользователя, для численных полей и полей типа «дата» будет реализована возможность указания диапазонов изменения значений и т. д. В каждом из программных модулей системы предполагается наличие всех необходимых отчетных форм для формирования и печати документов установленной формы. Все отчеты генерируются автоматически, используя выборки информации из БД.

Данные вводятся в систему с помощью специальных форм и хранятся в базе данных в виде таблиц. Постоянная информация тоже хранится в виде таблиц и реализуется с помощью специальных справочников. Эти данные практически не изменяются, в основном добавляются новые или редактируются старые, а при необходимости удаляются.

3.5 Описание выходных документов

Формы выходных документов представлены в Приложении В.

При продаже товара менеджер подготавливает для контрагента счет, в котором указываются дата и номер счета, менеджер, данные организации, а также данные по всем продаваемым позициям товара с указанием его количества, цены и суммы.

После подготовки счета он регистрируется в журнале счетов с указанием даты, времени, ответственного менеджера и, при необходимости, комментария.

Если счет подготавливает менеджер компьютерного отдела, то он также определяет позиции товара, подлежащие заказу. Если таковые есть по текущему счету, то счет регистрируется в журнале заказов.

После выписки счета контрагент также получает гарантийный талон, в котором также указывается дата выдачи, контрагент и менеджер, каждая позиция товара по счету и его количество, а также срок гарантии.

При подготовке ценников менеджер готовит бланк ценника, указывает необходимые параметры товара на ценнике, а также цену.

3.6 Цели и задачи автоматизации

В рамках данного дипломного проекта подлежат разработке следующие функции:

− ведение справочника номенклатуры;

− ведение справочников офисов организации, контрагентов и сотрудников организации;

− формирование счета на продажу и гарантийного талона;

− ведение журнала счетов и журнала заказов;

− создание ценников;

− формирование статистики по продажам товара за заданный интервал времени, а также по менеджерам;

− авторизация пользователей и разграничение прав доступа к системе.

Программа должна быть разработана как Windows-приложение.

Заключение

В работе были рассмотрены основные понятия, касающиеся применения объектно-ориентированного подхода к проектированию информационных систем. В ходе работы было предложено внедрение его в трудовую деятельность для автоматизации работы менеджера по продажам.

Список использованной литературы

  1. Архангельский А. Программирование в Delphi 7. - М.: ООО «Бином – Пресс», 2004. -1152с.
  2. Гради Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. Бином · 1998.
  3. Джон Влиссидес, Эрих Гамма, Ричард Хелм, Ральф Джонсон. Приемы объектно-ориентированного проектирования. Паттерны проектирования. - Питер. 2003. - 256 с.
  4. Иванова Г.С., Ничушкина Т.Н., Пугачев Е.К. Объектно-ориентированное программирование. - М.: Изд. МГТУ имени Н.Э. Баумана. 2003.- 320с.
  5. Кьоу Дж., Джеанини М.Объектно-ориентированное программирование. Просто и понятно. − М.: Питер, 2005. -403с.
  6. Лесневский А.С. Объектно-ориентированное программирование для начинающих. - М.: Бином. Лаборатория знаний. 2005. - 382 с.
  7. Синтес Антони. Освой самостоятельно объектно-ориентированное программирование за 21 день. Просто и понятно− М.: Вильямс. 2002. -284с.