Объектно-ориентированный анализ и проектирование информационных систем при разработке программы рейтинговых данных студентов
1 апреля 2013
Рубрика: Обзоры и мнения.
Автор: К.А. Акбаров, Р.А. Бурнашев.

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

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

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

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

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

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

Введение объектов преследует две цели:
• понимание прикладной задачи (проблемы);
• введение основы для реализации на компьютере.

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

После этого возникает вопрос: «Что же такое объектно-ориентированное программирование (object-oriented programming, OOP)»?

Мы определяем его следующим образом: «Объектно-ориентированное программирование — это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования».

Можно выделить три части требований к ООП:
1. OOП использует в качестве базовых элементов объекты.
2. Каждый объект является экземпляром определенного класса.
3. Классы организованы иерархически.

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

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

Основные принципы ООП: абстракция, наследование, инкапсуляция и полиморфизм.

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

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

Полиморфизм также один из основных принципов ООП. Под полиморфизмом (греч.Poly — много, morfos — форма) понимается свойство объектов принимать различные внешние формы в зависимости от обстоятельств. Применительно к ООП полиморфизм означает, что действия, выполняемые одноименными методами, могут различаться в зависимости от того, к какому из классов относится тот или иной метод.

Объектно-ориентированный анализ и проектирование (ООАП, Object-Oriented Analysis/Design) — технология разработки программных систем, в основу которых положена объектно-ориентированная методология представления предметной области в виде объектов, являющихся экземплярами соответствующих классов.

Методология ООАП тесно связана с концепцией автоматизированной разработки программного обеспечения (Computer Aided Software Engineering, CASE). К первым CASE-средствам отнеслись с определенной настороженностью. Со временем появились как восторженные отзывы об их применении, так и критические оценки их возможностей. Причин для столь противоречивых мнений было несколько. Первая из них заключается в том, что ранние CASE-средства были простой надстройкой над системой управления базами данных (СУБД). Визуализация процесса разработки концептуальной схемы БД имеет немаловажное значение, тем не менее, она не решает проблем создания приложений других типов.

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

В рамках ООП исторически рассматривались три графические нотации:
1. Диаграммы «сущность–связь» (Entity-Relationship Diagrams, ERD).
2. Диаграммы функционального моделирования (Structured Analysis and Design Technique, SADT).
3. Диаграммы потоков данных (Data Flow Diagrams, DFD).

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

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

Связь (relationship) определяется как отношение или ассоциация между отдельными сущностями. Примерами связей могут являться родственные отношения, в частности «отец–сын» или производственные — «начальник–подчиненный». Другой тип связей задается отношениями «иметь в собственности» или «обладать свойством». Различные типы связей графически изображаются в форме ромба с соответствующим именем данной связи.

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

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

UML — это описание ключевых моментов программы на универсальном языке. Как следствие этого — по этим диаграммам в программе.

При разработке рейтинговых данных студентов у нас есть такой класс:

ob_1_04_2013

Диаграмма этого класса будет иметь следующий вид:

ob_1_04_2013_1

На диаграмме можно выделить три блока:
1. Название;
2. Поля;
3. Методы.

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

Литература:
1. Г. Буч, Язык UML для пользователя: Пер. с англ [Текст]/Г. Буч, Д. Рамбо, А. Джекобсон. — М.: ДМК, 2000. — 432 с., ил. (Серия «для программистов»).
2. http://theory.asu.ru/~volkov/intuit/department/pl/umlbasics/1/1.html

Orphus system
Подписывайтесь на канал infoCOM.UZ в Telegram, чтобы первыми узнавать об ИКТ новостях Узбекистана
В Telegram
В WhatsApp
В Одноклассники
ВКонтакте