![](/stc/img/evkova.png)
Анализ и оценка средств реализации объектно-ориентированного подхода к проектированию экономической информационной системы (Современные технологии объектно-ориентированного анализа и проектирования информационных систем)
Содержание:
Введение
Тема курсовой работы является актуальной в наше время, так как использование объектно-ориентированного подхода является основной современной парадигмой программирования и представляет собой наиболее прогрессивную технологию проектирования экономических информационных систем. Данный подход в программировании состоит в том, что разработчику информационной системы предлагается определенный набор объектов и инструментов с возможностью изменения их свойств, а также их объединения в систему. Большая часть современных профессиональных языков программирования основана на объектно-ориентированном подходе.
Объектно-ориентированный подход устойчиво занимает лидирующие позиции и является наиболее перспективным для создания программного обеспечения. Он характеризуется четырьмя базовыми компонентами: идентификацией, состоянием, поведением и инкапсуляцией.
Идентификация в большинстве объектно-ориентированных языков является неявным понятием, состоящим в том, что у любого объекта имеется уникальный идентификатор, отделенный от его состояния - два объекта с одинаковым состоянием являются отдельными самостоятельными объектами, хотя зеркально отображаются один на другой. Инкапсуляция является важным элементом объектного подхода, предотвращающим внешнее манипулирование внутренними частями объекта и обеспечивающим возможность эволюции интерфейса объекта.
Цель данной работы – проведение анализа средств реализации объектно-ориентированного подхода к проектированию экономической информационной системы и их оценка.
Для достижения поставленной цели необходимо решать следующие задачи:
1. Рассмотреть методологию объектно-ориентированного программирования;
2. Дать общую характеристику моделей объектно-ориентированного анализа и проектирования;
3. Проанализировать средства реализации объектно-ориентированного подхода к проектированию экономической информационной системы;
4. Дать оценку средств реализации объектно-ориентированного подхода.
Объект исследования – объектно-ориентированный подход в программировании.
Предмет исследования – методология объектно-ориентированного подхода программирования.
Для раскрытия поставленной цели и задач определена следующая структура исследования: работа состоит из введения, двух глав, заключения и списка использованной литературы. Названия глав отображают их содержание.
1. Современные технологии объектно-ориентированного анализа и проектирования информационных систем
1.1. Общая характеристика объектно-ориентированного программирования
Объектно-ориентированное программирование (ООП) и его методология появилась для того чтобы сменить устаревшую процедурную или алгоритмическую организацию структуры программного кода. Это связано с тем, что с ростом информационных технологий использование традиционных методов процедурного программирования уже не справлялось с новыми более сложными программами и их разработкой, а также снижалась надежность таких систем.
В связи с этим в конце 80-х годов была разработана новая методология – объектно-ориентированное программирование (от англ. Object-Oriented Programming), благодаря которой возникшие на тот момент проблемы были решены.
Под объектно-ориентированным программированием будем понимать такое объединение инструментальных средств с принципами и технологиями, которое позволяет создавать программные системы, основанные на архитектуре взаимодействия объектов.
Популярность использования методологии ООП можно связать с процессом разработки новых информационных систем, когда процедурно-ориентированная декомпозиция начала уступать место объектно-ориентированной. В результате отдельные структурные единицы программы стали рассматриваться не в виде функций и процедур, а в виде классов и объектов, имеющих свой набор соответствующих свойств и методов.
Это привело к тому, что программы перестали быть последовательностью действий, которые были предопределены на этапе кодирования, а стали событийно управляемыми. Данное обстоятельство стало главным и определяющим фактором перехода на ОПП при разработке различного уровня сложности современных информационных систем. В данном случае у каждой программы имеется бесконечный цикл ожидания заранее определенных событий. При этом в качестве инициаторов событий могут выступать как другие программы, так и пользователи информационной системы. В случае, если наступает отдельное событие информационная система выходит из состояния ожидания и начинает определенным образом реагировать на данное событие.
Можно выделить четыре основных принципа ООП – это абстракция, наследование, инкапсуляция и полиморфизм.
Основной чертой языка программирования высокого уровня является абстракция, то есть введение различных смысловых конструкций, которые кратко описывают такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) являются очень длинными и сложными для понимания и работы.[1]
При помощи абстракции определяется граница представления соответствующего элемента модели, а также абстракция используется при определении двух фундаментальных понятий ООП - класса и объекта.
Под классом будем понимать абстракцию совокупности реальных объектов, имеющих общие наборы свойств, а также обладающих одинаковым поведением.
Под объектом в контексте ООП будем понимать экземпляр, который содержит соответствующий класс. Объекты, у которых нет идентичных свойств или одинакового поведения, по определению, нельзя относить к одному классу.
Классы могут быть организованы в виде иерархической структуры, внешне напоминающей схему с классификацией в понятийной логике, которая может быть построена следующим образом:
1. Самым высоким уровнем абстракции является наиболее общее понятие или категория, у которой имеется наибольший объем и, при этом, имеется наименьшее содержание.
2. На следующем уровне, который находится ниже исходного, появляется менее общее понятие. Это понятие конкретизируется, то есть у него уменьшается объем и, соответственно, увеличивается содержание.
3. На следующем уровне, процесс конкретизации понятий продолжается до тех пор, пока на самом нижнем уровне не будет получено понятие, дальнейшая конкретизация которого в данном контексте либо невозможна, либо нецелесообразна.
Еще один принцип ООП, в соответствии с которым знание о наиболее общей категории применяется для более частной категории, называют наследованием, которое очень тесно связано с иерархией классов. Наследование определяет, какие классы можно считать наиболее абстрактными и общими по отношению к другим классам. В том случае, если общий либо родительский класс, являющийся предком, имеет фиксированный набор свойств и поведения, то потомок, который является производным от данного класса, должен иметь такой же набор свойств и похожее поведение. Кроме того, полученный класс может иметь дополнительные свойства, при помощи которых он будет характеризоваться как уникальный. В результате можно прийти к выводу, что у производного класса свойства и поведение наследуются от родительского класса.
Приведем пример принципа наследования. Имеется общий класс "Компьютер", который определяется в виде абстракции свойств и поведения всех, реально существующих ЭВМ. У данного класса в качестве общих свойств можно выделить комплектующие, такие как процессор, оперативная память, устройства ввода/вывода информации. Если для данного общего класса производным классом является "Персональный компьютер", то все свойства, которые были выделены выше будут содержаться и в этом классе, т.е. класс "Персональный компьютер" наследовал все свойства родительского класса "Компьютер". Но у производного класса могут появиться дополнительные, уникальные свойства, например, материнская плата с интегрированной видеокартой или разъемом USB.
А у класса "Персональный компьютер", в свою очередь, могут быть производные классы, такие как "Ноутбук", "Сервер" и "Рабочая станция" см рис. 1.
Рисунок 1. Иерархия вложенности классов для примера общего класса "Компьютер"[2]
Из рисунка видно, что классы нижнего уровня наследуют свойства родительских классов - "Персональный компьютер" и "Компьютер", но могут и переопределять некоторые из этих свойств.
Еще одним важным принципом ООП является инкапсуляция, при помощи которой характеризуется сокрытие отдельных деталей внутреннего устройства классов от объектов либо пользователей, которые являются от внешними по отношению к нему.
Клиент, который взаимодействует с объектом класса, может и не знать, как осуществляются те или иные элементы класса. Конкретная реализация присущих классу свойств и методов, которые определяют его поведение, является собственным делом данного класса. Кроме того, можно выделить, что отдельные свойства и методы класса могут быть невидимы за его пределами, так как это можно отнести к базовой идее введения различных категорий видимости для элементов класса.
Если рассматривать класс "Компьютер", то принцип инкапсуляции заключается в том, что в качестве основного субъекта, взаимодействующего с объектами данного класса, являются пользователи, среди которых не многие могут в совершенстве знать внутреннее устройство компьютера, так как детали компьютера находятся в системном блоке или мониторе, а в случае его поломки, чаще всего, ремонт выполняется профессиональным специалистом.
Инкапсуляция в ООП происходит от деления модулей на две основные части – на интерфейс и реализацию. Интерфейсная часть модуля описывает все объявленные функции и процедуры, которые оказывают услуги внешним клиентам, а также типы данных, которые должны быть доступны за пределами данного модуля. Реализация содержит программный код, при помощи которого определяются конкретные способы реализации процедур и функций, которые были объявлены в интерфейсной части.
Еще один из основных принципов ООП – это полиморфизм, который происходит от греческих слов Poly (много) и morfos (форма). Под ним будем понимать свойство объекта принимать разные внешние формы, которые зависят от различных обстоятельств. Полиморфизм применительно к ООП будет означать тот факт, что действия, которые выполняются одноименными методами, могут различаться в зависимости от того, к какому из классов будет относиться тот или иной метод.
В качестве примера приведем три объекта соответствующих классов – компьютер, двигатель и лампочка. Для этих классов определим операцию выключить, при выполнении которой для каждого из трех объектов будет разный результат – двигатель остановится, лампочка погаснет, а компьютер завершит работу программ.
В ООП полиморфизм тесно связан с перегрузкой функций, но не является тождественным ей. Так же необходимо отметить, что имя метода и свойства связываются с классами, в которых они описываются. Данное обстоятельство дает возможность обеспечить определенную надежность в работе информационной системы, так как не позволяет случайно применить метод для того, чтобы решить несвойственную ему задачу.
Одним из наиболее существенных обстоятельств, позволивших развиваться методологии ООП, является возможность писать программный код, отделяя данный процесс от проектирования структуры информационной системы. Перед началом программирования классов, а также их свойств и методов, нужно определить сами эти классы, а также определиться с их количеством, необходимым для того чтобы решить поставленную задачу. Так же нужно определиться со свойствами и методами этих классов для того чтобы придать им требуемое поведение, а также осуществить взаимосвязь между классами.
Данная совокупность задач должна быть осуществлена еще до написания кода программы, так как является общим анализом требований к будущей информационной системе и к конкретной предметной области, для которой разрабатывается программа. Данные обстоятельства привели к тому, что методология ООП расширилась до специальной методологии объектно-ориентированного анализа и проектирования (ООАП).
1.2 Модели объектно-ориентированного анализа и проектирования информационных систем
Методология объектно-ориентированного анализа и проектирования является полной моделью сложной системы, представляющей собой несколько взаимосвязанных представлений, которые адекватно отражают аспекты поведения или структуры информационной системы.
В качестве общих представлений сложной информационной системы можно выделить статическую и динамическую модели, которые разбиваются на более мелкие уровни детализации в рамках фиксированных представлений.
Под уровнем представления будем понимать такой способ организации и рассмотрения модели на одном уровне абстракции, при помощи которого можно представить горизонтальный срез архитектуры модели, в то время как разбиение будет представлять ее вертикальный срез.
Кроме того, можно отметить, что исходная либо первоначальная модель сложной системы будет иметь наиболее общее представление и относиться к концептуальному уровню, так как может быть построена только на начальном этапе проектирования, где содержатся еще не все детали и аспекты моделируемой системы. В последующих моделях концептуальная модель конкретизируется, дополняется представлениями логического уровня, а также физического. На рисунке 2 представлена общая схема взаимосвязей моделей ООАП.
Из рисунка видно, что процесс ООАП является последовательным переходом от разработки наиболее общей модели и представления концептуального уровня к более частному и детальному представлению логического уровня и физического уровня. Каждый из этапов ООАП последовательно дополняет данные модели все большим количеством деталей. Это, в свою очередь, приводит к тому что разработанная модель более адекватно отражает различные аспекты конкретной реализации сложной системы.
Рисунок 2. Общая схема взаимосвязей моделей и представлений сложной системы в процессе объектно-ориентированного анализа и проектирования[3]
Язык UML представляет собой общецелевой язык визуального моделирования, который разработан
Для того чтобы осуществлять визуализацию, проектирование, спецификацию и документирование компонентов информационной системы разработан язык UML – это мощное средство моделирования, которое эффективно помогает построить концептуальную, логическую и графическую модель сложной информационной системы. В UML содержатся лучшие качества, которые в последние годы с успехом используются при моделировании больших и сложных информационных систем.
UML описывается средствами самого языка. В качестве базовых средств можно выделить пакет, при помощи которого производится группировка элементов модели в единое целое, в том числе произвольных сущностей, которые относятся к данному пакету.
Под пакетом будем понимать общецелевой механизм, который используется для того, чтобы организовать различные элементы модели в множество, реализующий системный принцип декомпозиции модели сложной системы и допускающий возможность вложенности пакетов друг в друга.
Пакет является основным способом организации элементов модели в языке UML, владеющим всеми своими элементами, т.е. теми элементами, которые в него включены (входят в него). Кроме того, каждый из элементов может входить только в один пакет, а пакет может быть вложен в другие пакеты, так называемый, подпакет.
Для того чтобы графически изобразить пакеты на диаграмме используется специальный графический символ в виде двух прямоугольников - большого и небольшого, который присоединен к большому левой верхней части (см. рис. 3).
Рисунок 3. Графическое изображение пакетов в языке UML[4]
Как видно из рисунка 3 внутри большого прямоугольника может находиться информация, которая относится к данному пакету. Если такой информации нет, то внутри большого прямоугольника записывается имя пакета, является уникальным в пределах рассматриваемой модели (см. рис. 3а). В случае наличия информации имя пакета записывают в верхнем маленьком прямоугольнике (рис. 3б).
Перед именем пакета может быть строка текста, в которой содержится ключевое слово (стереотип), которое заранее определено в языке UML, (facade, framework, stub и topLevel). В содержимом пакета могут находиться имена отдельных элементов и их свойства, такие как видимость элементов за пределами пакета.
Одним из типов отношений между пакетами можно считать отношение вложенности либо включение пакетов друг в друга, которое изображается без использования линий простым размещением одного пакета - прямоугольника внутри другого пакета - прямоугольника
На рисунке 4 видно, что пакет с именем Пакет_1 может содержать в себе два подпакета: Пакет_2 и Пакет_3.
Рисунок 4. Графическое изображение вложенности пакетов друг в друга[5]
Так же язык UML дает возможность изобразить данное отношение при помощи отрезков линий, так же как графически представляется дерево. В данном этом случае наиболее общий пакет либо контейнер будет изображен в верхней части рисунка, а его подпакеты будут находиться на уровень ниже.
Контейнер соединен с подпакетами при помощи сплошной линии, конец которой примыкает к контейнер и изображается в виде специального символа , который означает, что подпакеты "собственность" или часть контейнера, и, кроме данных подпакетов, в контейнере не содержатся никакие другие. На рисунке 5 данный пример наглядно представлен с помощью явной визуализации отношения включения.
Рисунок 5. Графическое изображение языка UML для вложенности пакетов друг в друга с помощью явной визуализации отношения включения[6]
Модель можно считать подклассом пакета, так как она представляет собой абстракцию физической системы, предназначенной для достижения вполне определенной цели, которая предопределяет компоненты, которые обязательно должны быть включены в модель и те, рассмотрение которых не является обязательным. Другими словами, модель отражает релевантные аспекты физической системы, оказывающие непосредственное влияние на достижение поставленной цели. В прикладных задачах цель обычно задается в форме исходных требований к системе, которые, в свою очередь, в языке UML записываются в виде вариантов использования системы.
В языке UML для одной и той же физической системы могут быть определены различные модели, каждая из которых специфицирует систему с различных точек зрения. Примерами таких моделей являются логическая модель, модель проектирования, модель вариантов использования и другие. При этом каждая такая модель имеет собственную точку зрения на физическую систему и свой уровень абстракции. Модели, как и пакеты, могут быть вложены друг в друга. Пакет может включать в себя несколько различных моделей одной и той же системы, и в этом состоит один из важнейших механизмов разработки моделей на языке UML. Общая модель системы в контексте языка UML содержит в себе модель анализа и модель проектирования, что явно отражает связь с ООАП (рис. 6).
Рисунок 6. Изображение модели системы в виде пакетов моделей анализа и проектирования[7]
Подсистема есть просто группировка элементов модели, которые специфицируют простейшее поведение физической системы. При этом элементы подсистемы делятся на две части – спецификацию поведения и его реализацию. Для графического представления подсистемы применяется специальное обозначение – прямоугольник, как в случае пакета, но дополнительно разделенный на три секции (рис.7). При этом в верхнем маленьком прямоугольнике изображается символ, по своей форме напоминающий "вилку" и указывающий на подсистему. Имя подсистемы вместе с необязательным ключевым словом или стереотипом записывается внутри большого прямоугольника. Однако при наличии строк текста внутри большого прямоугольника имя подсистемы может быть записано рядом с обозначением "вилки".
Рисунок 7. Графическое изображение подсистемы в языке UML[8]
Операции подсистемы записываются в левой верхней секции, ниже указываются элементы спецификации, а справа от вертикальной линии – элементы реализации. При этом два последних раздела помечаются соответствующими метками: "Элементы спецификации" и "Элементы реализации". Секция операций никак не помечается. Если в подсистеме отсутствуют те или иные секции, то они не отображаются на схеме.
2. Исследование средств реализации объектно-ориентированного подхода к проектированию экономической информационной системы
2.1 Анализ средств реализации объектно-ориентированного подхода к проектированию экономической информационной системы
Рассмотрим популярные и наиболее востребованные языки программирования, использующие объектно-ориентированный подход.
1. Техническое сообщество не так давно отпраздновало 20-летний юбилей Java. Это один из наиболее широко принятых языков программирования, используемый около 9 миллионами разработчиков, и работает на 7 млрд. устройств по всему миру. Это язык программирования, используемый для разработки всех родных приложений Android. Популярность Java-разработчиков исходит из того, что этот язык имеет долгосрочную совместимость, которая гарантирует, что старые приложения продолжат работать и сейчас и в будущем. Единственная сложность заключается в том, что этот язык достаточно сложен в освоении особенно для новичков.
2. JavaScript является серверным языком сценариев и идеально подходит для того, чтобы разрабатывать сложные веб приложения, но так как выполнение данных задач сильно нагружают серверную часть, в связи с этим разработчиками была делегирована часть функций на клиентские машины. JavaScript является языком программирования, который выполняется в браузере клиента и все команды обрабатываются на его компьютере, а не на сервере, снижая нагрузку на сервер и увеличивая скорость работы приложения.[9]
3. С# разработан в 2000 году и входит в семейство языков программирования компании Microsoft. Язык С# работает под .NET framework и сочетает в себе надежность языка С++, но с возможностями Java. При помощи языка С# можно разработать практически любое приложение, которое связано с Visual Studio IDE.[10]
4. Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования, как C++, C#, Java и Objective-C. C ценят за его эффективность; он является самым популярным языком для создания системного программного обеспечения. Изучение этого языка ведет к пониманию и других языков. Язык С используется для разработки низкоуровневых приложений, так как считается ближе всего к аппаратному, уступая только ассемблеру.
5. Python — высокоуровневый язык программирования, который часто считается самым легким языком благодаря своей простоте, читаемости и синтаксису. 8 из 10 факультетов информатики в США и 27 из 39 лучших университетов используют Python для обучения студентов программированию.[11]
6. PHP является одним из самых известных и широко используемых языков программирования динамических веб-сайтов. Он является открытым языком разработки, благодаря чему на сегодняшний момент написано большое количество модулей, которые можно изменять под себя доводя до необходимой функциональности. На языке программирования PHP разработано много веб-сайтов, которые ориентированы на большие объёмы данных.[12]
7. Язык Go является довольно молодым – его разработали Роберт Гризмер, Роб Пайк и Кен Томпсон, работающие в компании Google в 2007 году, но официально Go представили общественности только в конце 2009 года.
Данный язык программирования был разработан специально для системного программирования в целях создания высокоэффективных программ, которые будет работать на современных распределённых системах и обрабатываться современными многоядерными процессорами. Данный язык можно рассматривать как попытку создания замены языку Си.[13]
8. Swift является языком программирования, созданным компанией Apple для своих устройств и iPhone-приложений в 2014 году. За несколько лет Swift уже завоевал популярность среди разработчиков.
При разработке данного языка было уделено особое внимание обеспечению высокоэффективной компиляции. Программы написанные на Go компилируются в объектный код, поэтому для него не требуется виртуальная машина.[14]
9. Подобно Java или языку Си, Ruby является языком программирования общего назначения. Ruby on Rails используется для написания веб-приложений, а также обеспечивает их интеграцию с веб-сервером и базой данных. Ruby on Rails имеет много положительных качеств, в том числе быстрое развитие и широкий выбор библиотек. Он используется многими компаниями, начиная от небольших стартапов до крупных предприятий. Hulu, Twitter, Github и Living Social используют Ruby on Rails по крайней мере для одного из своих веб-приложений[15].
2.2 Основные подходы к созданию пользовательских меню при проектировании экономической информационной системы
Ценность любого написанного приложения определяется не только тем, что оно имеет возможность качественно и безошибочно решать поставленные перед ним задачи, но и удобством работы с данным приложением. Даже самое простое, и в то же время, функциональное приложение может оказаться невостребованным, если ее конечный потребитель будет уставать при работе с ней, раздражается и чувствовать себя некомфортно. Это в результате может привести к появлению ошибок при работе с программой, а также к неэффективной работы с приложением. Для того чтобы получить действительно удобную программу, с которой приятно было бы работать, нужно хорошо продуманное дружественное пользовательское меню.
Пользовательское меню – это набор опций, отображаемых на экране, где пользователи могут выбирать и выполнять действия, производя изменения в состоянии интерфейса. Достоинство меню в том, что пользователи не должны помнить название элемента или действия, которое хотят выполнить – они должны только распознать его среди пунктов меню.[16]
Пользовательское меню является своеобразным коммуникационный каналом, при помощи которого пользователь взаимодействует с компьютером. Пользовательское меню является важнейшей частью любой программы, так как именно с меню пользователь соприкасается в процессе своей работы. С точки зрения пользователя пользовательский интерфейс с меню является конечным продуктом. Интерфейс с пользовательским меню представляет собой совокупность используемых в программе средств для ввода данных, способов отображения информации на экране дисплея, элементов для управления различными этапами решения задачи. Основное назначение (главная цель) пользовательского интерфейса с меню – обеспечить короткий и удобный путь к получению результата.
Сформулируем принципы разработки пользовательского меню, соблюдение которых повышает его удобство и делает его дружественным по отношению к пользователю.
1) Принцип структуризации заключается в том, что при разработке пользовательское меню необходимо структурировать таким образом, чтобы связанными видимым образом были близкие по смыслу и родственные части программы, а независимые части были разделены.
2) Принцип простоты заключается в том, чтобы самые распространённые действия в программе выполнялись максимально просто, тем самым существенно снизив затрачиваемые усилия пользователя.
3) Принцип наблюдаемости заключается в том, чтобы все выполняемые операции, а также данные, которые нужны для решения определенных задач были хорошо видны пользователю. Вся излишняя и ненужная информация не должна отображаться или отвлекать внимание пользователей.
4) Принцип обратной связи заключается в том, чтобы пользователь при работе с программой получал от нее сообщения о выполняемых действиях, а также о важных событиях, происходящих внутри программы. Сообщение должно быть ясным, кратким, недвусмысленным и написанным на языке, который будет понятен пользователю.
5) Принцип толерантности заключается в том, чтобы пользовательское меню было гибким и терпимым к ошибке пользователя, при этом ущерб от ошибки пользователя должен снижаться, т.е. иметь возможность отменить или повторить действия. Кроме того, интерфейс должен позволять разумную интерпретацию любых действий пользователя. А также введённых пользователем данных, например, позволить различную последовательность выполнения этапов задачи или допускать различные формы ввода исходных данных.
6) Принцип повторного использования заключается в том, чтобы поведение пользовательского меню и интерфейса было предсказуемым и давало возможность повторно использовать известные приемы и решения, применяемые при разработке интерфейса для других программ.[17]
Использование неудачного интерфейса сильно замедляет работу пользователя, что в итоге приводит к его быстрой утомляемости и созданию большего числа ошибок. В результате такой интерфейс и пользовательское меню только отбивает у пользователя дальнейшее желание работать с данной программой. Поэтому при разработке пользовательского меню и интерфейса программы нужно учитывать известные рекомендации ведущих специалистов в области создания пользовательских интерфейсов. Приведем наиболее используемые на практике рекомендации.
1. При распределении информации на экране монитора логичным и естественным является взаимодействие с пользователем с левого верхнего угла экрана, при этом постепенно переводя внимание на правый нижний угол. Не рекомендуется разрабатывать интерфейс, отдельные части которого располагаются на экране в хаотическом и непредсказуемом порядке, так как в данном случае пользователю нужно будет все время переключать свой взгляд на разные, не связанные между собой участки экрана для того чтобы найти нужную информацию. Так же не следует делать визуализируемые на экране объекты миниатюрного размера, так как пользователю в данном случае приходится излишне напрягать зрение, что в итоге приведет к переутомлению.
Не стоит перегружать пространство экрана разными второстепенными элементами, так как пользователь в данном случае будет постоянно путаться в интерфейсе и теряться среди нагромождения различных элементов. Так же не следует оставлять на экране очень большое количество свободного места, так как это приводит к неэффективному использованию экранного пространства.
Опытные разработчики пользовательских интерфейсов советуют стремиться к сбалансированности при выборе местоположения для управляющих элементов и видимых объектов: слева и справа, сверху и снизу их количество должно быть примерно одинаковым. Эстетическую привлекательность интерфейса можно соблюсти, выравнивая элементы по верхним и левым границам экрана, а также соблюдая пропорции при выборе размеров для изображения этих элементов.
2. Управление вниманием пользователя при использовании цвета, анимации, звука, шрифтов, курсора. Обычно интерфейс имеет одну точку фокуса, в которой происходит процесс взаимодействия пользователя и программы. В случае управления процессом взаимодействия пользователя с программой в фокусе обычно находится текущая выборка. Если на действия пользователя отвечает программа, то в фокусе обычно находится результат действия.
При разработке интерфейса нужно привлекать внимание пользователя к точке фокуса, которая является наиболее существенной в данный момент работы с программой информацией. Пользователь при работе с программой должен четко понимать, где на экране размещается наиболее значимая для него информация, а где находится второстепенная.
Для привлечения внимания пользователя можно использовать анимированные визуальные объекты (движение, мигание), но не стоит злоупотреблять этим приёмом, так как частое использование анимации может привести к негативному эффекту: усталости глаз, чувству раздражения и т.п.
Управлять вниманием пользователя можно также и с помощью цветового выделения (кодирования). В этом случае так же необходимо знать чувство меры, так как яркие и интенсивные цвета могут сбить пользователя с толку и вызывать быструю утомляемость при длительной работе с интерфейсом программы. Так же нужно учитывать сочетания цветов, так как такие сочетания как зелёный на красном или красный на зелёном могут негативно влиять на пользователя. Свойство цвета привлекать внимание пользователя может потеряться, если в яркие кричащие тона будут раскрашены все элементы интерфейса. Не нужно одновременно использовать большое количество цветов – не более 4-7 цветов.
Специалисты советуют наиболее активные части интерфейса обозначать теплыми цветами (розовый, жёлтый, оранжевый), а более пассивные части интерфейса обозначать холодными цветами (зелёным, синим, белым).[18]
Так же нужно иметь в виду, что существуют люди, страдающие одной из форм дальтонизма (цветовой слепотой). Согласно статистических данных это примерно одна двенадцатая часть всех мужчин и чуть меньшая доля женщин. В связи с этим необходимо учитывать этот факт при подборе цветов для изображения интерфейсных элементов.
Цветовое выделение можно сочетать с другими изобразительными приёмами, такими как заключение в одинарные, двойные или анимированные рамки; использование заглавных букв; использование звуковых эффектов.
В некоторых ситуациях, таких как работа в коллективе, использование звуков может вызвать раздражение у коллег, поэтому необходимо предусмотреть возможность отключения звука в любой необходимый момент.
Так же традиционным элементарным средством для привлечения внимания пользователя является курсор, который создает мигающее изображение на экране, чаще всего, представленное в виде чёрточки или прямоугольника. В случае ввода пользователем текста появление курсора можно рассматривать как приглашение к вводу данных. Мигающий курсор указывает на позицию, начиная с которой набираемые с клавиатуры символы будут отображаться на экране дисплея. Форма курсора часто говорит о текущем режиме ввода символов (нижнее подчёркивание – режим вставки, прямоугольник – режим наложения).[19]
Использование тщательно продуманного, лёгкого в изучении и понимании, учитывающего человеческие возможности и ограничения интерфейса гарантирует удобство работы с программой и, в конечном итоге, ее коммерческий успех среди потребителей.[20]
2.3 Оценка средств реализации объектно-ориентированного подхода к проектированию экономической информационной системы
Для средств реализации объектно-ориентированного подхода к проектированию экономической информационной системы, выберем параметры и по каждому из параметров дадим оценку программному продукту по десятибалльной шкале, а затем посчитаем интегральную оценку по каждому программному продукту по формуле:
, (1)
где n – количество выбранных критериев для оценки,
pi- весовой коэффициент i-того критерия;
Iоц.i- оценка программного продукта по i-тому критерию.
Вычисления по формуле (1) сведены в таблицу 1.
Таблица 1 – Сравнение программных продуктов
Характеристики |
Вес |
C# |
Java |
PHP |
Go |
Swift |
Python |
|
1 |
Удобство пользовательского интерфейса |
0,1 |
10 |
9 |
8 |
9 |
8 |
8 |
2 |
Простота языка программирования |
0,1 |
9 |
10 |
8 |
10 |
8 |
8 |
3 |
Соответствие выбираемых программных средств уровню подготовленности программиста |
0,1 |
9 |
10 |
8 |
10 |
8 |
8 |
4 |
Скорость работы приложений |
0,025 |
9 |
8 |
10 |
8 |
10 |
10 |
5 |
Скорость компиляции приложений |
0,005 |
10 |
7 |
8 |
7 |
8 |
8 |
6 |
Наличие интегрированного отладчика |
0,1 |
9 |
7 |
9 |
7 |
9 |
9 |
7 |
Обработка исключительных ситуаций |
0,1 |
9 |
8 |
9 |
8 |
9 |
9 |
8 |
Возможности программных средств для разработки профессиональных приложений и сложных программных систем |
0,1 |
8 |
7 |
10 |
7 |
10 |
10 |
9 |
Оценка качества средств с точки зрения надежности, производительности, удобства работы и трудоемкости их эксплуатации |
0,15 |
10 |
9 |
8 |
9 |
8 |
8 |
10 |
Перспективность и жизнеспособность фирм изготовителей программных средств, возможность обновления и наличия новых версий продуктов при модернизации программно-технической среды |
0,02 |
9 |
9 |
9 |
9 |
9 |
9 |
11 |
Наличие документации на русском языке, справочных систем, документации в печатном и электронном исполнении, возможности консультаций |
0,2 |
9 |
9 |
8 |
9 |
8 |
8 |
Оценка |
1 |
9,005 |
8,265 |
8,72 |
8,265 |
8,72 |
8,72 |
Оценка средств реализации объектно-ориентированного подхода к проектированию экономической информационной системы, приведенная в таблице 1 показала, что для задачи по разработке информационной системы подходят все программные средства. У каждого есть свои особенности и недостатки.
Заключение
В заключение сделаем вывод, что целесообразность использования средств реализации объектно-ориентированного подхода при проектировании экономических информационных систем довольно велика. В связи с этим ООП является довольно популярным на протяжении многих десятилетий.
В качестве актуальных плюсов использования ООП можно выделить большую открытость, легкость при внесении изменений, наличие устойчивых форм. В результате при разработке экономической информационной системы предоставляется возможность развивать программу пошагово, а в случае существенных изменений в техническом задании не нужно полностью перерабатывать информационную систему.
В качестве недостатков можно выделить растущие с каждым годом требования к персональным компьютерам, на которых будет работать разрабатываемая информационная система, а также к вычислительным средствам, которые используются при разработке ЭИС. Так же растет стоимость разработки информационной системы, но при этом растет оперативность программы.
В связи с этим система объектно-ориентированных моделей последовательно разворачивается по направлению от модели общего представления функциональности ЭИС к модели динамического взаимодействия объектов, на основе которой могут быть сгенерированы классы объектов в конкретной программно-технической среде.
В настоящее время для объектно-ориентированного моделирования проблемной области широко используется унифицированный язык моделирования UML (Unified Modeling Language), который разработан группой ведущих компьютерных фирм мира OMG (Object Management Group) и фактически является стандартом по объектно-ориентированным технологиям.
Язык UML реализован многими фирмами - производителями программного обеспечения в рамках CASE-технологий, например, Rational Rose (Rational), Natural Engineering Workbench (Software AG), ARIS Toolset (IDS prof. Scheer) и др.
Список используемой литературы
- Андреева Е.Г. Обзор методов проектирования пользовательского интерфейса // Молодежный научно-технический вестник. Электронный журнал ФГБОУ ВПО «МГТУ им Н.Э. Баумана», 2016, №10
- Баженова И. Ю., Сухомлин В. А. Введение в программирование: учебное пособие. – М.: Бином. Лаборатория знаний, Интуит, 2017
- Бен-Ари М. Языки программирования. Практический сравнительный анализ // http://textarchive.ru/c-2866088.html
- Ботов Д.С. Обзор современных средств создания и поддержки предметно-ориентированных языков программирования // Вестник Южно-Уральского государственного университета, 2013, №1
- Джеф Раскин. Интерфейс: новые направления в проектировании компьютерных систем. Символ-Плюс, 2014
- Дмитриева М.В. JavaScript. Быстрый старт. — СПб.: БХВ-Петербург, 2012
- Казиев В. Современные технологии объектно-ориентированного анализа и проектирования информационных систем // https://www.intuit.ru/studies/courses/32/32/lecture/1000
- Клещев А.С., Грибова В.В. Методы и средства разработки пользовательского интерфейса: современное состояние // Программные продукты и системы, 2013, №1
- Леоненков А. Нотация и семантика языка UML // https://www.intuit.ru/studies/courses/32/32/info
- Охотников Е. Ruby - новые грани // RSDN Magazine. - 2012. - №4
- Саммерфильд М. Программирование на языке Go. Разработка приложений XXI века. М.: ДМК Пресс, 2013
- Северенс Ч. Введение в программирование на Python. М.: Интуит, 2016
- Сергеев С.Ф. Методы тестирования и оптимизации интерфейсов информационных систем: учебное пособие. — СПб.: НИУ ИТМО, 2013
- Федоров А.Г. Microsoft Visual Studio 2010. Первое знакомство. Microsoft, 2011
- Флойд К.С. Введение в программирование на PHP5. 2-е изд. — М.: Интуит, 2016
-
Бен-Ари М. Языки программирования. Практический сравнительный анализ // http://textarchive.ru/c-2866088.html ↑
-
Казиев В. Современные технологии объектно-ориентированного анализа и проектирования информационных систем // https://www.intuit.ru/studies/courses/32/32/lecture/1000 ↑
-
Леоненков А. Нотация и семантика языка UML // https://www.intuit.ru/studies/courses/32/32/info ↑
-
Леоненков А. Нотация и семантика языка UML // https://www.intuit.ru/studies/courses/32/32/info ↑
-
Леоненков А. Нотация и семантика языка UML // https://www.intuit.ru/studies/courses/32/32/info ↑
-
Леоненков А. Нотация и семантика языка UML // https://www.intuit.ru/studies/courses/32/32/info ↑
-
Леоненков А. Нотация и семантика языка UML // https://www.intuit.ru/studies/courses/32/32/info ↑
-
Леоненков А. Нотация и семантика языка UML // https://www.intuit.ru/studies/courses/32/32/info ↑
-
Дмитриева М.В. JavaScript. Быстрый старт. — СПб.: БХВ-Петербург, 2012 ↑
-
Федоров А.Г. Microsoft Visual Studio 2010. Первое знакомство. Microsoft, 2011 ↑
-
Северенс Ч. Введение в программирование на Python. М.: Интуит, 2016 ↑
-
Флойд К.С. Введение в программирование на PHP5. 2-е изд. — М.: Интуит, 2016 ↑
-
Саммерфильд М. Программирование на языке Go. Разработка приложений XXI века. М.: ДМК Пресс, 2013 ↑
-
Ботов Д.С. Обзор современных средств создания и поддержки предметно-ориентированных языков программирования // Вестник Южно-Уральского государственного университета, 2013, №1 ↑
-
Охотников Е. Ruby - новые грани // RSDN Magazine. - 2012. - №4 ↑
-
Андреева Е.Г. Обзор методов проектирования пользовательского интерфейса // Молодежный научно-технический вестник. Электронный журнал ФГБОУ ВПО «МГТУ им Н.Э. Баумана», 2016, №10, с.7 ↑
-
Джеф Раскин. Интерфейс: новые направления в проектировании компьютерных систем. Символ-Плюс, 2014, с.55 ↑
-
Баженова И. Ю., Сухомлин В. А. Введение в программирование: учебное пособие. – М.: Бином. Лаборатория знаний, Интуит, 2017 ↑
-
Клещев А.С., Грибова В.В. Методы и средства разработки пользовательского интерфейса: современное состояние // Программные продукты и системы, 2013, №1, с.55 ↑
-
Сергеев С.Ф. Методы тестирования и оптимизации интерфейсов информационных систем: учебное пособие. — СПб.: НИУ ИТМО, 2013 ↑
- Функции системы управления персоналом в спортивной организации (Теоретические основы системы управления персоналом)
- Понятия и классификация пособий
- Свобода совести и вероисповедования в России
- Понятие и классификация пособий
- Свобода совести и вероисповедования в России
- Особенности коммуникаций в организации (Теоретические основы и характеристика коммуникаций в деятельности современного менеджера)
- Офис управления проектами: функции, структура, особенности формирования
- Роль мотивации в поведении организации
- Понятие и признаки государства
- Выбор стиля руководства в организации: Трансформационное и транзакционное лидерство
- Проектный офис, принципы и этапы формирования: Историческая перспектива
- История развития средств вычислительной техники