Файл: МЕТОДЫ И СРЕДСТВА ПРОЕКТИРОВАНИЯ ИНФРОМАЦИОННЫХ СИСТЕМ.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 11.03.2024

Просмотров: 52

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Содержание:

Введение

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

Проектирование информационных систем (ИС) – логиче­ски сложная, трудоемкая и длительная работа, требующая высоких квалифи­цированных специалистов. В начале 70-х гг. в США был отмечен кризис в программирования (software crisis). Это выражалось в том, что большие проекты стали выполнятся с отста­ванием от графика или с превышением сметы расходов, разработанный продукт не обладал нужными функциональными возможностями, производитель­ность была низкая, качество программного обеспечения не удовлетворяло потребителя.

Аналитические исследования, выполняемые в течение по­следних лет зарубежными аналитиками, показывали не очень хороший результаты. Так, например, в 1995г. компания StandishGroup проанализировала работу 364 американских корпораций и итоги выполнения более 23 тыс. проектов, связанных с разработкой ПО, и сделали следующие вы­воды:

Только 16% проектов завершились в срок, 52,7% завершились с опозда­нием, расходы превысили запланированный бюджет.

В числе причин неудач фигурируют: нечеткая и не полная формулировка требований к ПО, недостаточное вовлечение пользователей в работу над проек­том, неудовлетворительное планирование и т.п.

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

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

Термин «объект» и похожие на него появились практически независимо в различных областях, связанных с компьютерами и программированием, в процессе разработки:

архитектуры компьютеров (Burroughs 5000, Plessey 250, IBM System/38, Intel 432);

- объектно-ориентированных операционных систем (Plessey/System 250, Secure UNIX, StarOS, iMax);

- объектно-ориентированных языков программирования (Simula, Smalltalk, Modula);


- теории баз данных (модели «сущность-связь»);

- систем искусственного интеллекта (фреймы).

При разработке программного обеспечения термин «объект» впервые был введен Оле-Джоаном Далем, Бьорном Мюрхогом и Кристеном Ныгардом из Норвежского вычислительного центра (г. Осло). Они разработали язык Simula 67, созданный на основе языка Algol-60 и предназначенный для моделирования и описания сложных систем. По-настоящему широкое внедрение произошло при разработке языка SmallTalk в 1990 г. Аланом Кейем из Исследовательского центра фирмы Xerox (г. Пало-Альто). В SmallTalk использовались только объектно-ориентированные модели.

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

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

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

Индивидуальность – это свойство сущности, с помощью которого ее можно отличить от других. Т. е., говоря об объекте «поезд», имеется в виду не обобщенное понятие поезд, как нечто состоящее из локомотивов и вагонов, а конкретный грузовой поезд с номером 1025, весом 4600 т, ведомый электровозом переменного тока ВЛ80Т с серийным номером 027, состоящий из четырехосных полувагонов с конкретными номерами и т. д. В то же время степень абстракции с точки зрения решаемой задачи может быть и более высокой. Например, при выполнении тяговых расчетов к графику движения поездов не требуется информация о серийных номерах локомотивов и вагонов, т. е. нет потребности в отличии друг от друга электровозов ВЛ80Т с серийными номерами 027 и 028.

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


Каждый класс и объект характеризуются строго определенным набором атрибутов и методов. Текущие значения атрибутов четко определяют текущее состояние объекта. Набор методов и их алгоритмическая реализация определяют поведение объекта (класса объектов).

Говоря об объектно-ориентированном подходе, самое главное отмечают наследование, инкапсуляцию и полиморфизм. Эти механизмы и принципы проектирования более точно и полно реализованы в объектно-ориентированном подходе по сравнению со структурным.

Наследование – применительно к классам, оно дает возможность формировать производные классы (классы наследники), взяв вслед за базой все без исключения методы и компоненты базового класса (класса родителя). При этом в дочернем классе могут быть установлены дополнительные свойства и методы. К примеру, дочерний класс «круг» станет наследовать с родительского класса «геометрическая фигура» все без исключения свойство r – радиус круга, (х, у) координаты центра фигуры, color – цвет и т. д.) и все методы (draw() – нарисовать фигуру, move(dx, dy) – переместить фигуру и т. д.).

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

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

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


1.1. Сущность объектно-ориентированного подхода

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

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

Но более существенный вклад в объектовый подход был привнесен объектами и объектно-ориентированными языками программирования: Simula, Smalltalk, C++, Object Pascal и другие. В объектный подход оказали воздействие также развивавшиеся довольно независимо методы моделирования баз данных, в особенности подход «сущность-связь».

Кроме основных имеются еще три дополнительных элемента, не являющихся в отличие от основных строго обязательными:

• типизация (typing)',

• параллелизм (concurrency)',

• устойчивость (persistence).

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

Есть два наиболее популярных подхода (парадигмы) к анализу и проектированию информационных систем: структурный и объектно-ориентированный.

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

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


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

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

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

Наиболее популярными методологиями, поддерживающими данный подход, в настоящий момент являются:

Унифицированный процесс (Unified Process, UP);

экстремальное программирование (eXtreme Programming, XP);

гибкое моделирование (Agile Modeling, AM).

Базовым средством фиксации (документирования) результатов проектирования систем посредством этих методологий является Унифицированный язык моделирования (Unified Modeling Language, UML).

1.2. Объектно-ориентированный подход

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

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