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

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

Содержание:

ВВЕДЕНИЕ

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

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

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

Задачи работы:

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

Данная тематика исследовалась в работах авторов: Баркера Р., Боггса У., Буча Г., Вендрова А.М.

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

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

По мере развития вычислительной техники создавались новые подходы, помогающие справляться с растущим усложнением программ. Использование структурного программирования при написании умеренно сложных программ принесло свои результаты, однако оказалось несамостоятельным тогда, когда программа достигала определенной длины [8]. Чтобы писать более сложные программы, были разработаны принципы объектно-ориентированного программирования. Объектно-ориентированное программирование – это подход к разработке программного обеспечения, основанный на объектах, а не на процедурах. Этот подход позволяет максимизировать принципы модульности и «сокрытия информации». Объектно-ориентированное программирование базируется на связывании или инкапсуляции структур данных и процедуры, которая работает с данными в структуре, с модулем.

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

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

В применении к объектно-ориентированным языкам программирования понятие объекта и класса конкретизируется следующими понятиями [9]:

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

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

  • абстрагирования данных;
  • инкапсуляции;
  • наследования;
  • полиморфизма;
  • «позднего связывания».

Абстрагирование является одним из основных методов, используемых для решения сложных задач. Хоар считает, что «абстрагирование проявляется в нахождении сходств между определенными объектами, ситуациями или процессами реального мира, и в принятии решений на основе этих сходств, отвлекаясь на время от имеющихся различий» [1]. Шоу определила это понятие так: «Упрощенное описание или изложение системы, при котором одни свойства и детали выделяются, а другие опускаются. Хорошей является такая абстракция, которая подчеркивает детали, существенные для рассмотрения и использования, и отпускает те, которые на данный момент несущественны» [2]. Берзинс, Грей и Науман рекомендовали, чтобы «идея квалифицировалась как абстракция только, если она может быть изложена, понята и проанализирована независимо от механизма, который будет в дальнейшем принят для ее реализации» [3]. Суммирую эти разные точки зрения, получается следующее определение абстракции: Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя.

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

Наследование (inheritance) – это процесс, посредством которого один объект может приобретать свойства другого. То есть, объект может наследовать основные свойства другого объекта и добавлять к ним свойства и методы, характерные только для него.

Наследование делится на два вида:

1. одиночное наследование – класс (он же подкласс) имеет один и только один суперкласс (предок);

2. множественное наследование – класс может иметь любое количество предков (в Java запрещено).

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

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

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

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

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

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

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

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

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

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

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

1. Первое без поколение (1954 он -1958):

  • FORTRAN на I – математические что формулы;
  • ALGOL тот -58 –математические это формулы;
  • FLOWMATIC как - математические формулы; по
  • IPL V но - математические формулы. они

2. Второе ты поколение (1959 из -1961):

  • FORTRAN мы II – подпрограммы, за раздельная компиляция вы %
  • ALGOL-60 так – блочные структуры, же типы данных; от
  • COBOL – описание еще данных, работа бы с файлами. уже

3. Третье для поколение (1962 вот -1970):

  • PL кто /1 FORTRAN да +ALGOL+COBOL; до
  • ALGOL-68 ни более строгий ну преемник ALGOL под -60;
  • PASCAL где – более простой сам преемник ALGOL раз -60;
  • SIMULA два – классы, абстрактные там данные.

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

Первое поколение ни языков программирования ну были ограничены под следующими особенностями: где

  • малым объемом сам оперативной памяти; раз
  • несовершенством системы два ввода-вывода. там

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

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

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

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

Первоначально языки но программирования не они имели достаточно ты развитых механизмов из защиты данных мы одного модуля за от использования вы их процедурами так другого [11]. Во же многом эта от задача ложилась еще на коллективы бы разработчиков. Появившиеся уже различные подходы для в разработке вот программных систем кто благоприятствовали возникновению да огромного количества до языков, имеющих ни те или ну иные сильные под и слабые где стороны в сам реализации этих раз принципов. Одним два из наиболее там развитых представителей чем языков третьего во поколения стал со язык ALGOL ли -68. Будучи при универсальным и без реализуя почти он все разработанные на к тому что времени механизмы тот в алгоритмических это языках, он как был достаточно по труден для но первоначального освоения, они однако позволял ты разрабатывать системы из корпоративного масштабы мы для больших за ЭВМ.

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

Первым языком, два в котором там нашли свое чем выражение идеи во построения программ со на основе ли данных и при объектов стал без язык Simulaон 67. Концепции, на заложенные в что языке Simulaтот получили свое это развитие в как серии языков по Smaltalk-72,- но 74,-76,- они 80, а ты также в из языках C мы ++ и Objectiveза C. При вы внесении объектно так -ориентированного подхода же в язык от Pascal появился еще язык Objectбы Pascal. В уже 90-х для годах компания вот Sun представила кто миру язык да Java, как до воплощение идеи ни платформенной независимости ну и наиболее под полную реализацию где концепций объектно сам -ориентированного программирования, раз положенных в два основу языков там Simula 67, чем Smalltalk, C во ++.

Объектно-ориентированные со системы предъявляют ли повышенные требования при к аппаратуре. без Практика использования он ТМООП на на IBM PC что /AT показала тот замедление скорости это выполнения программ как в 5 по -7 раз но по сравнению они с аналогичными ты программами на из Си или мы Паскале. При за этом время вы получения готовой так программы сократилось же в 2 от -3 раза, еще программы стали бы выглядеть яснее, уже лучше приспособлены для для повторного вот использования. Далее кто рассматриваются примеры да технологий создания до программных обеспечений ни различных компаний ну -поставщиков.

1.2 Проектирование информационных систем на основе объектно-ориентированного подхода

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

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

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

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

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

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

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

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

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

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

Объектно еще -ориентированное проектирование [13]бы – это конструирование уже программных систем для как структурных вот коллекций, реализующих кто абстрактные типы да данных.

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

Преимущества объектно из -ориентированного метода [21]: мы

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

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

  • объектно-ориентированная чем разработка программного во обеспечения;
  • объектно со -ориентированная реализация ли программного обеспечения. при

Объектно-ориентированная без разработка программного он обеспечения связана на с применением что объектно-ориентированных тот моделей при это разработке программных как систем и по их компонентов. но К объектно они -ориентированной разработке ты относятся [23]:

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

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

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

Можно для выделить следующие вот объектно-ориентированные кто методологии разработки да программного обеспечения [25]: до

  • RUP (Rational ниUnified Process);ну
  • OMT (Object подModeling Technique);где
  • SA/SD сам (Structured Analysis раз /Structured Design); два
  • JSD (Jackson тамStructured Development);чем
  • OSA (Object во -Oriented System со Analysis).

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

Среди свойств без объектов в он объектно-ориентированном на подходе можно что отметить [28]:

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

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

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

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

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

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

Буч отметил чем ряд следующих во преимуществ объектно со -ориентированного подхода [6]: ли

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

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

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

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

2.1 RationalRose

RationalRose [17] представляет собой CASE средство проектирования и разработки информационных систем и программного обеспечения для управления предприятиями. Как и другие CASE средства (ARIS, BPwin, ERwin) его можно применять для анализа и моделирования бизнес процессов. Первая версия этого продукта была выпущена компанией RationalSoftware . В дальнейшем RationalRose был куплен IBM.

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

Моделирование бизнес процессов в RationalRose выполняется за счет применения различных аспектов. Каждый из этих аспектов концентрирует внимание на определенных характеристиках и возможностях процессов.

К таким аспектам относятся [4]:

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

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

Составляющие элементы. Этот аспект обращает внимание на состав элементов процесса и их распределение при создании информационной системы. Модели в этом аспекте строятся с помощью диаграммы компонентов. Она содержит информацию об элементах процесса и программном обеспечении.

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

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

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

RationalRose обеспечивает следующие возможности моделирования бизнес процессов [7]:

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

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

Интеграция моделей. За счет применения единого языка UML, RationalRose позволяет объединить модели бизнес процесса, модели приложений и модели данных.

Интеграция с программными продуктами. Для расширения возможностей моделирования и анализа бизнес процессов в RationalRoseреализована возможность интеграции с другими программными продуктами, например, MicrosoftVisualStudio.

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

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

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

Преимуществами RationalRose являются [18]:

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

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

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

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

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

2.2 Silverrun

CASE-средствоSilverrunамериканскойфирмыСomputer Systems Advisers, Inc. (CSA) используется для анализа и проектирования ИС бизнес-класса [22] и ориентировано в большей степени на спиральную модель ЖЦ. Оно применимо для поддержки любой методологии, основанной на раздельном построении функциональной и информационной моделей (диаграмм потоков данных и диаграмм "сущность-связь").

Настройка на конкретную методологию обеспечивается выбором требуемой графической нотации моделей и набора правил проверки проектных спецификаций. В системе имеются готовые настройки для наиболее распространенных методологий: DATARUN (основная методология, поддерживаемая Silverrun), Gane/Sarson, Yourdon/DeMarco, Merise, Ward/Mellor, InformationEngineering. Для каждого понятия, введенного в проекте имеется возможность добавления собственных описателей. Архитектура Silverrun позволяет наращивать среду разработки по мере необходимости.

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

Модуль построения моделей бизнес-процессов в форме диаграмм потоков данных (BPM - BusinessProcessModeler) позволяет моделировать функционирование обследуемой организации или создаваемой ИС. В модуле BPM обеспечена возможность работы с моделями большой сложности: автоматическая перенумерация, работа с деревом процессов (включая визуальное перетаскивание ветвей), отсоединение и присоединение частей модели для коллективной разработки. Диаграммы могут изображаться в нескольких предопределенных нотациях, включая Yourdon/DeMarco и Gane/Sarson. Имеется также возможность создавать собственные нотации, в том числе добавлять в число изображаемых на схеме дескрипторов определенные пользователем поля.

Модуль концептуального моделирования данных [15] (ERX - Entity-RelationshipeXpert) обеспечивает построение моделей данных "сущность-связь", не привязанных к конкретной реализации. Этот модуль имеет встроенную экспертную систему, позволяющую создать корректную нормализованную модель данных посредством ответов на содержательные вопросы о взаимосвязи данных. Возможно автоматическое построение модели данных из описаний структур данных. Анализ функциональных зависимостей атрибутов дает возможность проверить соответствие модели требованиям третьей нормальной формы и обеспечить их выполнение. Проверенная модель передается в модуль RDM.

Модуль реляционного моделирования [16] (RDM - RelationalDataModeler) позволяет создавать детализированные модели "сущность-связь", предназначенные для реализации в реляционной базе данных. В этом модуле документируются все конструкции, связанные с построением базы данных: индексы, триггеры, хранимые процедуры и т.д. Гибкая изменяемая нотация и расширяемость репозитория позволяют работать по любой методологии. Возможность создавать подсхемы соответствует подходу ANSI SPARC к представлению схемы базы данных. На языке подсхем моделируются как узлы распределенной обработки, так и пользовательские представления. Этот модуль обеспечивает проектирование и полное документирование реляционных баз данных.

Менеджер репозитория рабочей группы [19] (WRM - WorkgroupRepositoryManager) применяется как словарь данных для хранения общей для всех моделей информации, а также обеспечивает интеграцию модулей Silverrun в единую среду проектирования.

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

Для автоматической генерации схем баз данных у Silverrun существуют мосты к наиболее распространенным СУБД: Oracle, Informix, DB2, Ingres, Progress, SQL Server, SQLBase, Sybase. Для передачи данных в средства разработки приложений имеются мосты к языкам 4GL: JAM, PowerBuilder, SQL Windows, Uniface, NewEra, Delphi. Все мосты позволяют загрузить в Silverrun RDM информацию из каталогов соответствующих СУБД или языков 4GL. Это позволяет документировать, перепроектировать или переносить на новые платформы уже находящиеся в эксплуатации базы данных и прикладные системы. При использовании моста Silverrun расширяет свой внутренний репозиторий специфичными для целевой системы атрибутами. После определения значений этих атрибутов генератор приложений переносит их во внутренний каталог среды разработки или использует при генерации кода на языке SQL. Таким образом можно полностью определить ядро базы данных с использованием всех возможностей конкретной СУБД: триггеров, хранимых процедур, ограничений ссылочной целостности. При создании приложения на языке 4GL данные, перенесенные из репозиторияSilverrun, используются либо для автоматической генерации интерфейсных объектов, либо для быстрого их создания вручную.

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

Система отчетов. Можно, определив содержимое отчета по репозиторию, выдать отчет в текстовый файл. Этот файл можно затем загрузить в текстовый редактор или включить в другой отчет;

Система экспорта/импорта. Для более полного контроля над структурой файлов в системе экспорта/импорта имеется возможность определять не только содержимое экспортного файла, но и разделители записей, полей в записях, маркеры начала и конца текстовых полей. Файлы с указанной структурой можно не только формировать, но и загружать в репозиторий. Это дает возможность обмениваться данными с различными системами: другими CASE-средствами, СУБД, текстовыми редакторами и электронными таблицами;

Хранение репозитория во внешних файлах через ODBC-драйверы. Для доступа к данным репозитория из наиболее распространенных систем управления базами данных обеспечена возможность хранить всю проектную информацию непосредственно в формате этих СУБД.

Групповая работа поддерживается в системе Silverrun двумя способами [24]:

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

Сетевая версия Silverrun позволяет осуществлять одновременную групповую работу с моделями, хранящимися в сетевом репозитории на базе СУБД Oracle, Sybase или Informix. При этом несколько разработчиков могут работать с одной и той же моделью, так как блокировка объектов происходит на уровне отдельных элементов модели.

Имеются реализации Silverrun трех платформ - MS Windows, Macintosh и OS/2 PresentationManager - с возможностью обмена проектными данными между ними.

Для функционирования в среде Windows необходимо иметь компьютер с процессором модели не ниже i486 и оперативную память объемом не менее 8 Мб (рекомендуется 16 Мб). На диске полная инсталляция Silverrun занимает 20 Мб.

2.3 Vantage Team Builder

VantageTeamBuilder [26] представляет собой интегрированный программный продукт, ориентированный на реализацию каскадной модели ЖЦ ПО и поддержку полного ЖЦ ПО.

VantageTeamBuilder обеспечивает выполнение следующих функций:

  • проектирование диаграмм потоков данных, "сущность-связь", структур данных, структурных схем программ и последовательностей экранных форм;
  • проектирование диаграмм архитектуры системы - SAD (проектирование состава и связи вычислительных средств, распределения задач системы между вычислительными средствами, моделирование отношений типа "клиент-сервер", анализ использования менеджеров транзакций и особенностей функционирования систем в реальном времени);
  • генерация кода программ на языке 4GL целевой СУБД с полным обеспечением программной среды и генерация SQL-кода для создания таблиц БД, индексов, ограничений целостности и хранимых процедур;
  • программирование на языке C со встроенным SQL;
  • управление версиями и конфигурацией проекта;
  • многопользовательский доступ к репозиторию проекта;
  • генерация проектной документации по стандартным и индивидуальным шаблонам;
  • экспорт и импорт данных проекта в формате CDIF (CASE DataInterchangeFormat).

VantageTeamBuilder поставляется в различных конфигурациях в зависимости от используемых СУБД (ORACLE, Informix, Sybase или Ingres) или средств разработки приложений (Uniface). Конфигурация VantageTeamBuilderforUniface отличается от остальных некоторой степенью ориентации на спиральную модель ЖЦ ПО за счет возможностей быстрого прототипирования, предоставляемых Uniface.

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

При построении DFD обеспечивается контроль соответствия диаграмм различных уровней декомпозиции. Контроль за правильностью верхнего уровня DFD осуществляется с помощью матрицы списков событий (ELM). Для контроля за декомпозицией составных потоков данных используется несколько вариантов их описания: в виде диаграмм структур данных (DSD) или в нотации БНФ (форма Бэкуса-Наура).

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

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

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

Для подготовки проектной документации могут использоваться издательские системы FrameMaker, Interleaf или WordPerfect [20]. Структура и состав проектной документации могут быть настроены в соответствии с заданными стандартами. Настройка выполняется без изменения проектных решений.

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

Процесс проектирования ИС с использованием VantageTeamBuilder реализуется в виде 4-х последовательных фаз (стадий) - анализа, архитектуры, проектирования и реализации, при этом законченные результаты каждой стадии полностью или частично переносятся (импортируются) в следующую фазу. Все диаграммы, кроме ERD, преобразуются в другой тип или изменяют вид в соответствии с особенностями текущей фазы. Так, DFD преобразуются в фазе архитектуры в SAD, DSD - в DTD. После завершения импорта логическая связь с предыдущей фазой разрывается, т.е. в диаграммы могут вноситься все необходимые изменения.

Конфигурация VantageTeamBuilderforUniface обеспечивает совместное использование двух систем в рамках единой технологической среды проектирования, при этом схемы БД (SQL-модели) переносятся в репозиторийUniface, и, наоборот, прикладные модели, сформированные средствами Uniface, могут быть перенесены в репозиторийVantageTeamBuilder. Возможные рассогласования между репозиториями двух систем устраняются с помощью специальной утилиты. Разработка экранных форм в среде Uniface выполняется на базе диаграмм последовательностей форм (FSD) после импорта SQL-модели.

Структура репозитория [27] (хранящегося непосредственно в целевой СУБД) и интерфейсы VantageTeamBuilder являются открытыми, что в принципе позволяет интеграцию с любыми другими средствами.

VantageTeamBuilder функционирует на всех основных UNIX-платформах (Solaris, SCO UNIX, AIX, HP-UX) и VMS.

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

2.4 Другие CASE-средства

CASE-средстваERwin,BPwin,S-Designor,CASE.Аналитикявляютсялокальными.

ERwin [5]-CASE-средство,котороевкачествеметодологиииспользуетIDEF1X.ТакжеимеетсявозможностьиспользоватьметодологиюIE.

IDEF1XбыларазработанапреждевсегодляиспользованиявармииСША.ШирокоиспользуетсявгосударственныхучрежденияхСША,вкорпорацияхфинансовыхипромышленныхнаправленностей.МетодологиюIE(InformationEngineering)разработалиМартиниФинкельштейн.Онаиспользуетсябольшейчастьювпромышленности.

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

BPwin-CASE-средство,реализующеевкачествеметодологииIDEF0.ДанныйпродуктразработанкомпаниейItd.LogicWorks.Довольноразвитоесредство:позволяетанализировать,документироватьиулучшатьбизнеспроцессы.ВданномCASE-средствеподдерживаетсяфункциональноемоделирование,чтодаетвозможностьпроводитьсистематизированныйанализ.ВBPwinможносоздаватькакотдельные,такисмешанныемодели.

S-Designor-CASE-средствофирмыPowersoft,реализующеестандартнуюметодологию.Являетсясредствомпроектированияреляционныхбазданных.ПофункциональнымвозможностямблизоккCASE-средствуERwin.

CASE.Аналитик-отечественноеCASE-средство.Наданныймоментнаиболееконкурентоспособнонароссийскомрынке.Базаданныхявляетсяоткрытой,реализованавСУБДParadox.Имеетсявозможностьсозданияотчетовразнойнаправленностипопроекту.ДанноеCASE-средствогенерируетмакетыдокументовпотребованиямГОСТ.

ЗАКЛЮЧЕНИЕ

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

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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  1. Д. Леффингуэлл, Д. Уидриг -- Принципы работы с требованиями к программному обеспечению. Унифицированный подход.: Пер. с англ. -- М.: Вильямс, 2002.
  2. Д. Розенберг, К. Скотт -- Применение объектно-ориентированного моделирования с использованием UML и анализ прецедентов.: Пер. с англ. -- М.: ДМК, 2002
  3. Д.А. Марка, К. МакГоуэн -- Методология структурного анализа и проектирования. -- М.: МетаТехнология, 1993
  4. ChisnikovPavelIvanovich UNIFIED MODELING LANGUAGE (UML) // Статистикаиэкономика. - 2010. - №3. - С. 153-158.
  5. Унифицированный язык визуального моделирования UnifiedModelingLanguage (UML) [Электронный ресурс]: ExCode.ru. 28.02.2006. - URL: http://www.excode.ru/art6048.html#start (дата обращения: 21.04.2019).
  6. Буч Г., Рамбо Д., Якобсон И. Язык UML. Руководство пользователя. 2-е изд.: Пер. с англ. Мухин Н. – М.: ДМК Пресс, 2006. – 496 с.: ил.
  7. Иванов Д., Новиков Ф. Моделирование на UML. Учебно-методическое пособие. — СПб.: СПбГУ ИТМО, 2010. — 200 с.
  8. Заботина, Н.Н. Проектирование информационных систем: Учебное пособие / Н.Н. Заботина. - М.: НИЦ ИНФРА-М, 2013. - 331 c.
  9. Исаев, Г.Н. Проектирование информационных систем: Учебное пособие / Г.Н. Исаев. - М.: Омега-Л, 2013. - 424 c.
  10. Иванов К. К. Проектирование информационных систем // Молодой ученый. — 2017. — №19. — С. 22-24. — URL https://moluch.ru/archive/153/43309/ (дата обращения: 21.04.2019).
  11. Егорова А.А., Козлов С.А. Информационные системы: методы и средства проектирования // Научный вестник Московского государственного технического университета гражданской авиации. - 2006. - №105. - С. 84-92.
  12. Медведев Д.Н., Медведева Е.Е. Проектирование информационных систем гуманитарного профиля // Вестник Тамбовского университета. Серия: Гуманитарные науки. - 2013. - №11(127). - С. 1-7.
  13. Коваленко, В.В. Проектирование информационных систем: Учебное пособие / В.В. Коваленко. - М.: Форум, 2012. - 320 c.
  14. Буч, Гради Введение в UML от создателей языка / Гради Буч , Джеймс Рамбо , Ивар Якобсон. - М.: ДМК Пресс, 2015. - 496 c.
  15. Киммел, Пол UML. Основы визуального анализа и проектирования / Пол Киммел. - М.: НТ Пресс, 2008. - 272 c.
  16. Ларман, Крэг Применение UML 2.0 и шаблонов проектирования. Введение в объектно-ориентированный анализ, проектирование и итеративную разработку / КрэгЛарман. - М.: Вильямс, 2013. - 736 c.
  17. Боггс, М. UML и RationalRose / М. Боггс. - Москва: РГГУ, 2010. - 385 c.
  18. Бородакий, Ю. В. Эволюция информационных систем / Ю.В. Бородакий, Ю.Г. Лободинский. - Москва: СИНТЕГ, 2011. - 368 c.
  19. Гома, Хассан UML. Проектирование систем реального времени, параллельных и распределенных приложений / Хассан Гома. - М.: ДМК Пресс, 2016. - 700 c.
  20. Грекул, В. И. Управление внедрением информационных систем / В.И. Грекул, Г.Н. Денищенко, Н.Л. Коровкина. - Москва: РГГУ, 2014. - 224 c.
  21. Йордон, Эдвард Объектно-ориентированный анализ и проектирование систем / Эдвард Йордон , Карл Аргила. - М.: ЛОРИ, 2014. - 264 c.
  22. Коберн, Алистер Современные методы описания функциональных требований к системам / АлистерКоберн. - Москва: Машиностроение, 2012. - 264 c.
  23. Мюллер, Роберт Дж. Проектирование баз данных и UML / Мюллер Роберт Дж.. - М.: ЛОРИ, 2013. - 422 c.
  24. Пайлон, Д. UML 2 для программистов / Д. Пайлон. - М.: Питер, 2012. - 198 c.
  25. Приемы объектно-ориентированного проектирования. Паттерны проектирования / Э. Гамма и др. - Москва: СИНТЕГ, 2016. - 366 c.
  26. Роберт, А. Максимчук UML для простых смертных / Роберт А. Максимчук, Эрик Дж. Нейбург. - Москва: СИНТЕГ, 2014. - 272 c.
  27. Фаулер, Мартин UML. Основы. Краткое руководство по стандартному языку объектного моделирования / Мартин Фаулер. - Москва: СИНТЕГ, 2011. - 192 c.
  28. Фельдман, Я. А. Создаем информационные системы (+ CD-ROM) / Я.А. Фельдман. - М.: Солон-Пресс, 2007. - 120 c.
  29. Шилин, К. Ю. Макропроектирование компьютерных обучающих систем / К.Ю. Шилин. - М.: Издательский дом "Дело" РАНХиГС, 2013. - 184 c.