Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Проектирование информационных систем. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
нала и прохождение стажировки на предприятиях родственного про­филя, где такая система уже эксплуатируется.
11. Сопровождение. Выезд специалиста для устранения послед- ствий аварийных ситуаций, техническое обучение, методическая и практическая помощь при необходимости внесения изменений в си­стему, установка новых релизов программного обеспечения [3].
1.5. ЖИЗНЕННЫЙ ЦИКЛ
ИНФОРМАЦИОННОЙ СИСТЕМЫ
Жизненный цикл – это модель
создания и использования инфор-
мационной системы, отражающая непрерывный процесс, который начинается с момента принятия решения о необходимости ее создания и заканчивается в момент ее полного изъятия из эксплуатации.
Основным нормативным документом, регламентирующим жизнен­ный цикл информационных систем, является международный стандарт ISO/IEC 12207 (ISO – International Organization of Standardization – Меж­дународная организация по стандартизации, IEC – International Electro-
technical Commission – Международная комиссия по электротехнике
).
Структура жизненного цикла информационной системы по стан­дарту ISO/IEC 12207 базируется на трех группах процессов.
1. Основные процессы жизненного цикла, являющиеся ключевыми процессами при использовании информационной системы в организа­ции: процессы приобретения, поставки, разработки, функционирова­ния, сопровождения.
2. Вспомогательные процессы жизненного цикла, являющиеся про­цессами эксплуатации и сопровождения информационной системы, способствующими поддержанию нормального
функционирования ор­ганизации и соответствия ее параметров требованиям, предъявляемым современными условиями, включают в себя следующие мероприятия: процессы решения проблем, документирования, управления конфигу­рацией, обеспечения качества, верификации, аттестации, совместной оценки, аудита.
3. Организационные процессы жизненного цикла, обеспечивающие организацию деятельности по созданию, эксплуатации и сопровожде­нию информационной системы, включают в себя управление проектом, создание инфраструктуры проекта АИС, усовершенствование АИС, обучение персонала.
11
Процессы жизненного цикла информационной системы, регламен­тируемые стандартом ISO/IEC 12207, могут использоваться различны­ми организациями в конкретных проектах самым разным образом. Тем не менее стандарт предлагает некоторый базовый набор взаимосвязей между процессами с различных точек зрения или в различных аспек­тах. Такими аспектами являются договорной аспект, аспект управле­ния, аспект эксплуатации, инженерный аспект
, аспект поддержки.
В рамках жизненного цикла информационной системы выделяют следующие стадии.
1. Самой первой стадией жизненного цикла информационной си- стемы является анализ и планирование требований. Это важнейшая стадия, при ее реализации закладываются основные свойства разраба­тываемого программного продукта и планируется дальнейшая деятель­ность по его созданию. Результатом стадии анализа и
планирования требований будет список функций разрабатываемой информационной системы с указанием их приоритетов и предварительные функцио­нальные и информационные модели системы.
2. Второй стадией жизненного цикла информационной системы яв- ляется ее проектирование, закладывающее основу для последующих стадий. На этой стадии информационная система начинает существо­вать в форме детальной модели, описывающей все ее
свойства. Резуль-
татом стадии проектирования будет следующее.
2.1. Общая информационная модель системы.
2.2. Функциональные модели системы в целом и подсистем, реали­зуемых отдельными командами разработчиков.
2.3. Точно определенные интерфейсы между автономно разрабаты­ваемыми подсистемами.
2.4. Прототипы экранов, диалогов и отчетов.
3. После проектирования информационной системы наступает этап
построения – реализация системы
на программном уровне. Результа­том построения будет готовая информационная система, удовлетворя­ющая всем требованиям пользователей.
4. После построения информационной системы наступает следую- щая стадия ее жизненного цикла – внедрение и сопровождение: пуск в эксплуатацию и обслуживание программного продукта организа­цией-разработчиком.
5. Последней стадией жизненного цикла информационной системы является изъятие материально или
морально устаревшей системы из
эксплуатации.
12
Под моделью жизненного цикла информационной системы пони­мается структура, определяющая последовательность выполнения и взаимосвязи процессов, действий и задач на протяжении всего пери­ода жизни системы. Модель жизненного цикла информационной си­стемы зависит от специфики, масштаба, сложности проекта и специ­фики условий, в которых система создается и функционирует.
Модель жизненного цикла любого обеспечения (ПО) определяет характер процесса его создания – сово­купность упорядоченных во времени, взаимосвязанных и объединен­ных в стадии работ, выполнение которых необходимо и достаточно для создания ПО, соответствующего заданным требованиям. К настоящему времени наибольшее распространение получили следующие две ос­новные модели жизненного цикла информационной системы: каскад­ная модель (1970–1985 ципиальная особенность каскадного подхода (рис. 1.1) заключается в том, что переход на следующую стадию осуществляется только после того, как будет полностью завершена работа на текущей стадии, и воз­вратов на пройденные стадии не предусматривается. Каждая стадия заканчивается получением некоторых результатов, использующихся в качестве исходных данных для
гг.) и спиральная модель (1986–1990 гг.). Прин-
следующей стадии.
конкретного программного
Рис. 1.1. Каскадная модель жизненного цикла информационной системы
13
Требования к разрабатываемой информационной системе, опреде­ленные на стадии формирования требований, строго документируются в виде технического задания и фиксируются на все время разработки проекта. Каждая стадия завершается выпуском полного комплекта до­кументации, достаточной для того, чтобы разработка могла быть про­должена другой командой разработчиков. Критерием качества разра­ботки при таком подходе технического задания. Процесс создания информационной системы носит, как правило, итерационный характер: результаты очередной стадии часто вызывают изменения в проектных решениях, выработан­ных на более ранних стадиях. Таким образом, постоянно возникает по­требность в возврате к предыдущим стадиям и уточнении или пере­смотре ранее принятых решений. В здания информационной системы принимает иной вид (рис. 1.2). Та­кую схему часто относят к отдельной модели – так называемой модели с промежуточным контролем, в которой межстадийные корректировки обеспечивают большую надежность по сравнению с каскадной моде­лью, хотя и увеличивают весь период разработки.
является точность выполнения спецификаций
результате реальный процесс со-
Рис. 1.2. Реальный процесс разработки информационной системы
В середине 1980-х гг. была предложена спиральная модель жизнен­ного цикла (рис. 1.3). Ее принципиальной особенностью является сле-
14
дующее: прикладное программное обеспечение создается не сразу, как в случае каскадного подхода, а по частям с использованием метода прототипирования.
Рис. 1.3. Спиральная модель жизненного цикла
информационной системы
Под прототипом понимается действующий программный компо­нент, реализующий отдельные функции и внешние интерфейсы разра­батываемой информационной системы. Создание прототипов осу­ществляется в несколько итераций, или витков спирали. Каждая итера­ция соответствует созданию фрагмента или версии информационной системы, на ней уточняются цели и характеристики проекта, оценива­ется качество полученных результатов и планируются щей итерации. На каждой итерации производится тщательная оценка риска превышения сроков и стоимости проекта, чтобы определить необходимость выполнения еще одной итерации, степень полноты и точности понимания требований к системе, а также целесообраз­ность прекращения проекта [1, 3].
работы следую-
15
2. АРХИТЕКТУРА
ИНФОРМАЦИОННЫХ СИСТЕМ
2.1. ПОНЯТИЕ АРХИТЕКТУРЫ
ИНФОРМАЦИОННЫХ СИСТЕМ
Архитектура информационной системы – это способ организа­ции программного кода и компонентов, который определяет модель, структуру и выполняемые информационной системой функции, а так­же характеризует взаимосвязь всех ее компонентов. Таким образом, исходя из определения, архитектура информационной системы пред­ставляет собой описание ее основных компонентов и модулей с ципами их работы и взаимосвязи друг с другом. Архитектура также отображает различные вариации развития и эволюции информацион­ной системы.
Архитектура информационной системы включает в себя следую­щие компоненты.
1. Слой представления – клиентская часть с графическим интер­фейсом пользователя (Graphical User Interface, GUI), которая выполняет функцию терминала, т. е. средства представления данных и отправки команд. Часто этот слой называют «frontend».
2. Слой бизнес-логики, где происходит обработка команд, получен- ных от клиента, и выполняются основные вычисления. Чаще всего этот слой реализуется в виде серверного приложения (backend). Здесь же располагается система управления базой данных (СУБД), которая поз­воляет обратиться к данным и манипулировать ими.
3. Слой доступа к данных в структурированном виде.
При разработке информационных систем применяется послойная модель, включающая в себя все перечисленные компоненты. Такая модель носит название трехслойной архитектуры, ее структура приве­дена на рис. 2.1.
данным, т. е. сама база данных как хранилище
прин-
16
Рис. 2.1. Трехслойная архитектура информационной
системы
Несмотря на общую структуру, реализация трех слоев может быть выполнена по-разному. Так, если все компоненты слоев находятся на одном устройстве (компьютер, мобильный телефон), то такая архитек­тура называется настольной (desktop). Если компоненты слоев инфор­мационной системы распределены по нескольким устройствам, то ар­хитектура называется распределенной (distributed) [4].
2.2. ЧИСТАЯ АРХИТЕКТУРА
Чистая архитектура (Clean Architecture) – это рования программного обеспечения, предложенная Робертом Марти­ном, цель которой – создание гибкой, масштабируемой и легко тести­руемой архитектуры, отделяющей бизнес-логику от деталей реализа­ции (баз данных, пользовательских интерфейсов, фреймворков и др.).
Основными отличительными особенностями чистой архитектуры являются следующие.
1. Независимость от фреймворков, что позволяет снизить зависи-
мость бизнес-логики
от различных технических ограничений.
17
концепция проекти-
2. Возможность тестирования бизнес-правил без привлечения UI,
базы данных, серверов или любых других внешних элементов.
3. Возможность разделения программного кода на слои с четко
определенными правилами для упрощения перехода от одного к дру­гому.
4. Независимость от UI, позволяющая легко изменить пользова-
тельский интерфейс без изменения остальной системы.
5. Независимость от баз
правила не связаны с типом хранения данных.
Основные компоненты и их взаимодействие показаны на рис. 2.2.
данных, обусловленная тем, что бизнес-
Рис. 2.2. Чистая архитектура
Ключевыми компонентами чистой архитектуры являются следую­щие.
1. Сущности (Entities) – это объекты, содержащие критически важ­ные данные для бизнеса и методы для управления этими данными. Они не зависят от UI, баз данных или любых других элементов инфра­структуры, что делает их независимыми от изменений во внешних сло­ях и позволяет сохранять стабильность бизнес всего жизненного цикла программного продукта.
18
-правил на протяжении
2. Use Cases содержат специфичную для приложения бизнес-ло-
гику, они описывают конкретные действия, которые пользователь мо­жет выполнить с системой. В чистой архитектуре они реализуются в виде независимых от UI и баз данных классов, что обеспечивает гиб­кость и упрощает тестирование.
3. Контроллеры и ведущие служат связующим звеном между Use Cases и пользовательским интерфейсом
либо другими методами до-
ставки информации, например API. Контроллеры отвечают за обработ­ку входящих запросов, они являются связующим звеном между поль­зовательским интерфейсом и бизнес-логикой. Их задача – получить данные от пользователя, преобразовать при необходимости и передать дальше по цепочке. Ведущие занимаются подготовкой данных для отображения. Они берут на себя работу
по форматированию данных из моделей в удобный для пользователя вид, что может включать в себя выбор нужной информации, ее сортировку или локализацию. Исполь­зование этих двух компонентов позволяет избежать смешения бизнес­логики с пользовательским интерфейсом, что является ключевым для поддержания чистоты кода.
4. Внешние интерфейсы (Interface Adapters) – это точки интеграции
системы с внешним
миром, к ним относятся базы данных, сетевые службы или пользовательский интерфейс. В чистой архитектуре они располагаются на внешних слоях и общаются с бизнес-логикой через определенные границы, преобразуют данные в формат, удобный для использования Use Cases или сущностями.
Такая концепция архитектуры базируется на принципе DDD (Domain Driven Design), согласно которому дизайн системы должен быть основан на
предметной области, т. е. вся система строится прежде всего на сущностях и связях предметной области, а уже потом на дета­лях реализации, таких как базы данных, фреймворки и др.
Одним из основных принципов DDD является дистилляция объек­тов предметной области в сущности системы. Такой дизайн подразуме­вает, что сущность должна поддерживать
свой инвариант, т. е. непроти­воречивое состояние объекта. Инвариант класса не может поддержи­ваться другим классом, так как другой класс не должен знать про внут­ренние правила первого. Таким образом, изменения объекта должны проходить через его внутреннюю логику валидации.
Чистая архитектура напрямую сочетается с концепцией RDM (Rich
Domain Model), в которой бизнес-сущности реализуют
методы работы
19
с самими собой и следят за своими инвариантами. Противоположной концепцией домена является ADM (Anemic Domain Model), в которой бизнес-сущности не обладают никакой логикой и представляют собой простые наборы своих свойств.
Чистая архитектура с RDM-концепцией позволяют реализовывать информационные системы в сложных предметных областях. При этом концепция RDM требует хорошей проработки предметной области, за счет чего разработка
на старте будет идти медленнее. Концепция ADM позволяет отложить проработку предметной области, обеспечивая бо­лее быстрый старт [4, 5].
2.3. АРХИТЕКТУРА CQRS
CQRS (Command Query Responsibility Segregation) – это шаблон проектирования, который разделяет операции на две категории: коман­ды (изменяют состояние системы) и запросы (получают данные, не из­меняют состояние системы). Основной смысл этого подхода состоит в том, что для
режимов чтения и записи данных используются разные модели данных. Благодаря этому можно адаптировать модель данных для чтения таким образом, чтобы она облегчала загрузку данных и их передачу клиенту.
Основными принципами подхода CQRS являются следующие.
1. Разделение команд и запросов на разные модели, что позволяет
использовать различные подходы к обработке каждого компонента
повысить производительность и масштабируемость системы в целом.
и
2. Отказ от ORM (Object-Relational Mapping) в пользу использова- ния агрегатов (Aggregates), которые представляют собой связанные сущности в приложении и содержат логику изменения их состояния.
3. Применение асинхронной обработки, позволяющей выполнять несколько операций одновременно, что ускоряет обработку запросов и команд.
Архитектура на основе подхода CQRS показана на рис. 2.3. Компоненты CQRS можно разделить на две категории: компоненты
записи и компоненты чтения. Компоненты записи:
1) Command – это объект, который содержит данные, необходимые для выполнения операции записи в системе. Command может быть от­правлен из любой части системы, например из веб-приложения;
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]