Файл: Применение объектно-ориентированного подхода при проектировании информационной системы.pdf
Добавлен: 19.06.2023
Просмотров: 34
Скачиваний: 3
Введение
Мы живем в поистине необычном времени. Так как совершенно недавно, наши родители и в грезах не имели возможность помыслить о том, что когда-нибудь настанет то время, когда компьютер будет неотделимой частью нашей жизни, и действительно начнет приносить гигантскую выгоду. Будет генератором мыслей и их осуществлением, раскроет новейшие горизонты в знаниях населения земли. Однако компьютер не смотря ни на что, в отсутствии человека пока мало на что способны. Вот почему так принципиально донести до машины человеческую идею, а подсобляет нам в этом разные методы по проектированию ПО.
Проектирование финансовых информативных систем (ЭИС) – логически непростая, труд затратная и долгая работа, требующая высочайшей квалификации участвующих в ней профессионалов.
В начале 70-х гг. в USA был отмечен упадок программирования (software crisis). Это замечалось в том, что огромные планы стали выполнятся с отставанием от графика либо с превышением сметы затрат, разработанный продукт не владел спрашиваемыми функциональными способностями, деятельность его была мала, свойство обретаемого программного обеспечения не устраивало покупателей.
Аналитические исследования и обзоры, исполняемые в течение ряда последних лет ведущими зарубежными специалистами, демонстрировали не очень обезнадёживающие итоги. Так, к примеру, в 1995г. фирма StandishGroup изучила работу 364 американских компаний и результаты выполнения более 23 тыс. проектов, связанных с разработкой ПО, и сделали последующие выводы:
Лишь 16% проектов закончились в срок, 52,7% закончились с опозданием, расходы перевалили запланированный бюджет.
В числе причин крахов бытуют: алогическая и не полная формулировка требований к ПО, недостающее втягивание юзеров в работу над проектом, недостаточное планирование и т.п.
На данном фоне, рентабельно различается объектно – ориентированный подход к конструированию ПО устраняет эти и остальные недочеты, он владеет состоятельным комплектом выразительных средств. Вот отчего, целью моей курсовой работы является раскрытие передовых способов и средств проектирования, в частности в объектно-ориентированном подходе к проектированию ПО.
Глава I Структура объектно-ориентированного программирования.
1.1 СУЩНОСТЬ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА
Базисное отличие меж структурным и объектно-ориентированным подходом содержится в методе декомпозиции системы. Объектно-ориентированный подход использует объектную декомпозицию, при этом статическая конструкция системы описывается в определениях объектов и взаимосвязей меж ними, а поведение системы описывается в определениях обмена сообщениями между объектами. Любой объект системы обладает собственным своим поведением, имитирующим поведение объекта настоящего мира. Понятие "объект" в первый раз было применено примерно 30 лет назад в промышленных средствах при попытках отступить от классической архитектуры фон Неймана и преодолеть препятствие меж высоким уровнем программных абстракций и низким уровнем абстрагирования на уровне компьютеров. С объектно-ориентированной архитектурой еще тесно соединены объектно-ориентированные операционные системы. Но более значимый вклад в объектный подход был внесен объектными и объектно-ориентированными языками программирования: Simula, Smalltalk, C++, Object Pascal. На объектный подход проявили воздействие также развивавшиеся довольно самостоятельно методы моделирования баз данных, в особенности подход "сущность-связь".
Мировозренческой базой объектно-ориентированного подхода является объектная модель. Главными её элементами считаются:
• абстрагирование (abstraction);
• инкапсуляция (encapsulation);
• модульность (modularity);
• иерархия (hierarchy).
Не считая главных есть ещё три дополнительных элемента, не являющихся в отличие от основных строго неотъемлемыми:
• типизация (typing)',
• параллелизм (concurrency)',
• устойчивость (persistence).
Абстрагирование — это различение немаловажных черт некоторого объекта, которые различают его от всех остальных разрядов объектов и, таковым образом, верно характеризуют его концептуальные границы относительно дальнейшего обсуждения и разбора. Абстрагирование концентрирует внимание на внешних особенностях объекта и позволяет отделить самые существенные особенности его поведения от деталей их реализации. Выбор верного комплекта абстракций для данной объектной области представляет собой основную задачу объектно-ориентированного проектирования.
Инкапсуляция — это процесс отделения друг от друга единичных элементов объекта, характеризующих его приспособление и поведение. Инкапсуляция служит для того, чтобы изолировать интерфейс объекта, отражающий его внешнее поведение, от внутренней реализации объекта. Объектный подход подразумевает, что личные ресурсы, которыми могут манипулировать лишь методы самого класса, укрыты от внешней среды. Абстрагирование и инкапсуляция являются взаимодобавляющими операциями: абстрагирование фокусирует внимание на внешних особенностях объекта, а инкапсуляция (либо, по другому, ограничение доступа) не дозволяет объектам-пользователям распознавать внутреннее устройство объекта.
Объектно-ориентированный подход
Модульность — это свойство системы, связанное с вероятностью её декомпозиции на разряд внутренне логичных, но слабо связанных меж собой модулей. Инкапсуляция и модульность создают барьеры между абстракциями.
Иерархия — это ранжированная либо упорядоченная система абстракций, размещение их по уровням. Главными видами иерархических структур употребительно к сложным системам считаются структура классов (иерархия по номенклатуре) и структура объектов (иерархия по составу). Образцами иерархии классов являются простое и множественное наследование (один класс использует структурную либо функциональную часть соответственно 1-го либо нескольких других классов), а иерархии объектов - агрегация.
Стандартизация — это лимитирование, накладываемое на класс объектов и препятствующее взаимозаменяемости разных классов (либо сильно суживающее её возможность). Стандартизация позволяет защититься от применения объектов 1-го класса за место иного или по крайней мере управлять таковым использованием.
Параллелизм — свойство объектов пребывать в функциональном либо инертном положенье и распознавать функциональные и инертные объекты меж собой.
Устойчивость — качество объекта существовать во времени (вне зависимости от процесса, породившего данный объект) либо в пространстве (при перемещении объекта из адресного пространства, в котором он был создан).
Основные понятия объектно-ориентированного подхода - объект и класс.
Объект определяется как осязаемая действительность (tangible entity) — объект либо действо, располагающие четко характеризуемое поведение. Объект обладает состоянием, поведением и индивидуальностью; структура и поведение похожих объектов характеризуют совместный для них класс. Определения "экземпляр класса" и "объект'' считаются равносильными. Положение объекта характеризуется перечнем всех вероятных (статических) параметров данного объекта и нынешними значениями (динамическими) каждого из данных параметров. Поведение охарактеризовывает действие объекта на другие объекты и напротив условные конфигурации состояния этих объектов и передачи сообщений. По другому говоря, поведение объекта полностью определяется его действиями. Индивидуальность — это характеристики объекта, различающие его от всех других объектов.
Конкретное действие 1-го объекта на иной с целью начать соответствующую реакцию именуется операцией. Как правило, в объектных и объектно-ориентированных языках операции, исполняемые над этим объектом, именуются методами и являются составной долею определения класса.
Класс — это множество объектов, связанных общностью структуры и поведения. Хоть какой объект считается экземпляром класса. Определение классов и объектов — одна из самых трудных задач объектно-ориентированного проектирования.
Последующую группу принципиальных понятий объектного подхода составляют наследование и полиморфизм. Понятие полиморфизма может быть интерпретировано как способность класса иметь более чем одни тип. Наследование значит возведение новых классов на базе имеющихся с возможностью прибавления либо переопределения данных и методов.
Объектно-ориентированная система вначале основывается с учетом её эволюции. Наследование и полиморфизм гарантируют вероятность определения новой функциональности классов с помощью создания производных классов — потомков базисных классов. Потомки наследуют свойства материнских классов без конфигурации их начального описания и прибавляют при необходимости личные структуры данных и методы. Определение производных классов, при котором задаются лишь отличия либо уточнения, в большой степени бережет время и усилия при созданье и применении спецификаций и программного кода.
Принципиальным свойством объектного подхода считается согласованность моделей деятельности организации и моделей проектируемой системы от стадии формирования требований до стадии реализации. Требование согласованности моделей производится благодаря способности внедрения абстрагирования, модульности, полиморфизма на всех стадиях разработки. Модели ранних стадий могут быть непосредственно подвергнуты сопоставлению с моделями осуществления. По объектным моделям может быть прослежено отображение реальных сущностей моделируемой предметной области (организации) в объекты и классы информационной системы.
1.2 УНИФИЦИРОВАННЫЙ ЯЗЫК МОДЕЛИРОВАНИЯ UML
Большая часть имеющихся методов объектно-ориентированного разбора и конструирования (ООАП) включают как язык моделирования, так и описание процесса моделирования. Язык моделирования — это нотация (в основном графическая), которая употребляется методом для отображения проектов. Нотация представляет собой совокупность графических объектов, которые используются в моделях; она считается синтаксисом языка моделирования. К примеру, нотация диаграммы классов описывает, каким образом изображаются такие элементы и понятия, как класс, ассоциация и множественность. Процесс —это отображение шагов, которые нужно выполнить при разработке проекта.
Стандартизированный язык моделирования UML (Unified Modeling Language)—это наследник того поколения методов ООАП, которые возникли в конце 80-х и начале 90-х гг. Создание UML практически стартовало в конце 1994 г., когда Гради Буч и Джеймс Рамбо инициировали работу по объединению методов Booch и ОМТ (Object Modeling Technique) под эгидой фирмы Rational Software. К концу 1995 г. они сотворили первую спецификацию объединенного метода, названного ими Unified Method, версия 0.8. Тогда же, в 1995 г., к ним присоединился создатель метода OOSE (Object-oriented Software Engineering) Ивар Якобсон. Таким образом, UML считается прямым объединением и стандартизацией методов Буча, Рамбо и Якобсона, но дополняет их новыми возможностями. Главными в разработке UML были следующие цели:
• дать юзерам готовый к применению выразительный язык визуального моделирования, позволяющий разрабатывать осознанные модели и обмениваться ими;
• предугадать механизмы расширяемости и квалификации для расширения базисных теорий;
• снабдить самостоятельность от определенных языков программирования и процессов разработки;
• снабдить внешнюю базу для осмысливания данного языка моделирования (язык обязан быть сразу точным и доступным для осмысливания, без излишнего формализма);
Определенное воздействие 1-го объекта на иной с целью начать соответствующую реакцию называется операцией. Как правило, в объектных и объектно-ориентированных языках операции, исполняемые над данным объектом, называются методами, являются составной частью определения класса.
Класс —это множество объектов, связанных общностью структуры и поведения. Любой объект считается экземпляром класса. Определение классов и объектов — одна из самых трудных задач объектно-ориентированного проектирования.
Последующую группу принципиальных понятий объектного подхода составляют наследование и полиморфизм. Понятие полиморфизма может быть интерпретировано как способность класса иметь более чем одн тип. Наследование означает построение новых классов на основе имеющихся с возможностью добавления либо переопределения данных и методов.
Объектно-ориентированная система вначале основывается с учетом её эволюции. Наследование и полиморфизм гарантируют вероятность определения новой функциональности классов с помощью создания производных классов - потомков базисных классов. Потомки наследуют характеристики материнских классов без изменения их первоначального описания и добавляют при необходимости личные структуры данных и методы. Определение производных классов, при котором задаются лишь отличия либо уточнения, в большой степени бережет время и усилия при производстве и использовании спецификаций и программного кода.