Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабUML.doc
Скачиваний:
30
Добавлен:
16.03.2015
Размер:
1.46 Mб
Скачать

1 . Основы методологии объектно-ориентированного

анализа и проектирования АС с использованием UML

1.1 Методология объектно-ориентированного программирования

Основной методологией разработки программного обеспечения АС до начала 90-х годов являлась процедурно-ориентированная методология [Леоненков ]. При этом программный код организовывался в виде множества процедур или алгоритмов.

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

Разработка больших систем потребовала декомпозиции процедур на более мелкие фрагменты. Отдельные части крупных процедур, автономно оформленные как единицы компиляции, были названы модулями. Модули, в свою очередь, содержали более мелкие процедуры и функции – особого вида небольшие процедуры со своим способом вызова и обязательным возвратом значения (результата выполнения процедуры). Были разработаны методы структурного программирования, которые помогали в процедурно-ориентированной методологии осуществлять разбиение всей программы на модули и более мелкие фрагменты – процедуры и функции (70-80е годы).

Со временем ситуация существенно изменилась. Реальная трудоемкость начальных этапов проектирования и программирования стала все больше превосходить плановую. Сроки разработки всё более сложного программного обеспечения стали затягиваться. Коллективные разработки стали типовым и сложным процессом, возникли серьезные трудности управления проектами в условиях динамически меняющихся требований заказчиков. Приходилось часто и в больших объемах менять коды программ. Плохо накапливался и использовался опыт программистов. Языки спецификаций программ были сложны и мало понятны обычному заказчику непрограммисту. Возникла настоятельная необходимость в изменении самой методологии программирования и проектирования. Основные принципы нового подхода к разработке программного обеспечения были сформулированы в середине 80-х в виде объектно-ориентированного программирования (ООП) [ ].

Фундаментальными понятиями ООП являются понятия класса и объекта.

Класс– некоторая абстракция совокупности объектов, имеющих общий набор свойств и обладающей одинаковым поведением.

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

Наследование - принцип, в соответствии с которым родительский класс (предок) передает все свои наборы свойств и поведение дочерним классам (потомкам). Дочерние классы называютсяпроизводными классами (рис.1).

Рис.1. Иерархия классов, полученная операцией обобщения

Фрагмент иерархии классов библиотеки VCLсреды программированияBorlandDelphiпредставлен на рис.2.

Рис.2. Фрагмент иерархии классов библиотеки VCLBorlandDelphi

Класс является дальнейшим расширением понятий структура (structure) изапись(record).

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

Полиморфизм(много форм) - действия, выполняемые одноимёнными методами, могут отличаться в зависимости от того, к какому из классов относится метод.

Использование объектов заранее подготовленных библиотечных классов с определёнными свойствами и методами позволило решить многие кризисные вопросы создания программного и информационного обеспечения сложных АС.

1.2. Методология объектно-ориентированного анализа и проектирования

Уже давно стало ясно, что анализ предметной области очень важен для успешного проектирования АС. Прежде, чем непосредственно генерировать структуру БД, необходимо построить концептуальную модель хранения данных в виде ER- илиSHM-модели [ ]. Эта работа проводится совместно с экспертами, хорошо знающими предметную область.

Здесь могут помочь так называемые CRC-карточки, предложенные Баддом [ ] (рис.3). (см. Бадд Т. Объектно-ориентированное программирование в действии: Перевод с английского. – Спб: Питер, 1997. – 464с.)

Компонента

<название>

Описание

обязанностей,

выполняемых

данной компонентой

СПИСОК

<всех

взаимодействующих

с ней компонент>

Рис.3. CRC-карточка

CRCрасшифровывается какComponent, Responsibility, Collaborator(компонента, обязанность, взаимодействие ). Подкомпонентой понимается функционально самостоятельная часть системы, решающая одну или несколько задач (например, отдел маркетинга, прокатный стан, отдельные сотрудники и т. д.). Многие компоненты естественным образом преобразуются в классы и объекты программного и информационного обеспечения.

Выделение компонент предметной области – искусство системного аналитикаилиархитектора системы.

Для АС, рассматриваемой в виде информационной системы запросно-ответного типа, прежде всего надо составить перечень запросов и отчетов с формами документов и требованиями пользователей к виду результата (числа, текст, графика, мультимедиа и т.д.). Для каждого запроса и отчёта (выходного воздействия) следует определиться с алгоритмом

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

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

.

    1. Этапы развития UML. Инструментальные средства поддержки UML

История объектно–ориентированного анализа и проектирования связана с развитием методов ООП.

В 1965-89 годах было создано более 10 языков объектно-ориентированного программирования - Smalltalk,ObjectiveC,C++,Eiffel,CLOSSи др. Важным этапом явилось создание первого объектно-ориентированного языка моделированияSimula-67.

В 1990-94 годах произошло резкое развитие методов ООП и моделирования, было создано более 40 новых языков. Общее количество языков ООП превысило 50. Параллельно развивались методы проектирования соответствующего программного обеспечения.

К 1995 году наибольшую известность приобрели три метода объектно-ориентированного проектирования:

  • метод Грэди Буча (GradyBooch),синонимыBooch’91,BoochLite,Booch’93;

  • метод Джеймса Рамбо (James Rumbough), синонимы OMT, OMT-2 (Object Modelling Technique);

  • метод Айвара Якобсона (Ivar Jacobson), синоним OOSE (Object Oriented Software Engineering).

Каждый из этих методов был ориентирован на отдельные этапы объектно-ориентированного анализа и проектирования. Например, OOSEбыл более нацелен на концептуальное проектирование и анализ программного обеспечения,OMT– на логическое проектирование АС, аBooch’93 – на логическое и физическое проектирование программ и программных комплексов..

История развития UMLберет начало с октября 1994 г., когда Буч и Рамбо, объединившись в фирмеRationalSoftwareCorp., начали работу по унификации методов, при этом были изучены другие подходы. В октябре 1995 г. была опубликована версия 0.8UnifiedMethod(унифицированный метод). К ним присоединился вRationalSoftwareв это же время “создатель объектов” Айвар Якобсон, главный технолог фирмыObjectoryAB(Швеция) с целью интеграции сOOSE. Практически все три метода работали и взаимно дополняли друг друга.

При интеграции были выдвинуты следующие принципы:

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

  • обеспечить взаимосвязь концептуального, логического и физического уровней;

  • обеспечить масштабируемость моделей, что особенно важно для многоцелевых и сложных систем;

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

Мощную поддержку эта работа получила от консорциума OMG(ObjectManagementGroup), образованного еще в 1989 г. для стандартизации объектных и компонентных технологийCORBA. Фактически дляOMGработа поUMLстала вторым важнейшим направлением. Группа Ричарда Соли внесла большой вклад в развитиеUML.

В июне 1996 г. были опубликованы документы по описанию языка UMLверсии 0.9, затем в октябре 1996 г. – версии 0.91.

Компания RationalSoftwareво главе с Грэди Бучем организовала консорциумUMLс привлечением ведущих фирм - производителей аппаратуры и программного обеспечения (Microsoft,Oracle,HP,IBM,DECи др.)

В январе 1997 г. появилось описание UML1.0, уже хорошо определенное и работоспособное, принятоеOMGза основной вариант языка.

После пересмотра и дополнения OMGприняла в ноябре 1997 г. версиюUML1.1.

В марте 1999 г. принята версия UML1.3 (аlphaR5). В июне 1999 г. опубликован документ ”OMGUnifiedModelingLanguageSpecification“, содержащий полное описание современной версии языка. История принятия версий отражена в табл.1.

Таблица 1

10.1995

06.1996

10.1996

01.1997

11.1997

03.1999

09.2001

03.2003

10.2004

0.8

0.9

0.91

1.0

1.1

1.3

1.4

1.5

2.0

В настоящее время в OMGвходит более 800 авторитетных компаний и корпораций мира, ведущую роль поUMLпо-прежнему удерживаетRationalSoftware, разработавшая одну из первыхCASE-систем с поддержкойUML–RationalRose98i, в дальнейшем –RationalRose2000,RationalRose2001а,RationalRose2002. В 2003 г.RationalSoftwareстала подразделением фирмыIBM.

UMLрасширен специальной нотацией для моделирования бизнес-процессов и включает язык описания ограниченийOCL.

Язык открыт для расширения и развития, он не является чьей-либо собственностью и не запатентован, но аббревиатура UMLявляется торговой маркойIBM-RationalSoftware.

UMLинтегрирован сVisualBasicотMicrosoft, стандартамиActiveXиCOM, сMicrosoftRepository.

В настоящее время RationalSoftwareиMicrosoftразработали единую информационную модельUMLInformationModel. Она позволит обмениваться в разработках компонентами и описаниями.

Сейчас разработано много инструментальных систем, в том числе RationalRose2003, осуществляющих кодогенерацию сUMLнаMSVisualC++,Java,ObjectPascal/Delphi,PowerBuilder,MSVisualBasic,Forte,Ada,Oracle,Smalltalkи др.

Ясно, что в ближайшее время язык UMLстанет основой для разработки и реализации программного обеспечения вRAD-технологиях и различныхCASE- системах, он может стать хорошей основой объектного способа представления знаний в интеллектуальных АС.