Автор работы: Пользователь скрыл имя, 13 Декабря 2013 в 08:51, доклад
Жизненный цикл – это период времени с момента принятия решения о необходимости создания ПО до полного изъятия из эксплуатации.
Основной документ, регламентирующий состав процессов ЖЦ, – стандарт ISO 12207, описывает структуру процессов ЖЦ, но не конкретизирует, как реализовать или выполнить действия и задачи, включенные в эти процессы. Согласно стандарту все процессы разделены на 3 группы:
Основные – приобретение, поставка, разработка, эксплуатация, сопровождение
Вспомогательные – документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, совместная оценка, аудит.
Этап анализа требований включает в себя:
Объектный анализ
Основное внимание – определению и описанию объектов или понятий в терминах предметной области. В результате составляется концептуальная модель.
Необходимые, но недостаточные результаты анализа:
К достаточным результатам относя
Тип |
Описание |
1. Модели системного окружения |
Определяет границы системы |
2. Поведенческие модели
|
Описывают общее поведение системы |
3. Модели данных |
Показывает структуру данных, их атрибуты и отношения между ними. Используется при проектировании баз данных. |
4. Объектные модели
|
Естественный способ отображения реально существующих объектов, которые находятся под управлением системы. Могут использоваться как для представления данных, так и для процессов их обработки. |
Создается структура будущей программой системы. Фазы проектирования:
Типовая структура распределения проектных работ:
Две ступени проектирования:
Часто выделяют интерфейсное проектирование, цель которого – сформировать графический интерфейс пользователя (GUI).
Предварительное проектирование обеспечивает:
Три типа деятельности:
Детализированный проект описывает каждый модуль. При разработке типичной ИС модули реализуются в виде клиентской компоненты, либо серверной компоненты. Как правило, за первую компоненту отвечают проектировщики прикладной части, вторую должны разрабатывать проектировщики баз данных.
В процессе структурирования необходимо ответить на вопросы:
Подсистема – это система, операции которой не зависят от сервисов, предоставляемых другими подсистемами. Состоит из модулей и имеет определенный интерфейс, с помощью которых взаимодействует с другими подсистемами.
Модуль – компонент системы, который предоставляет один или несколько сервисов для других модулей. Может использовать сервисы, поддерживаемые другими модулями. Не рассматривается как независимая система. Модули обычно состоят из ряда других, более простых, компонентов.
Архитектура системы может строиться в соответствии с определенной архитектурной моделью.
При разработке отдельных частей больших систем можно использовать разные архитектурные модели.
Четыре модели системного структурирования:
Разработчик архитектуры должен организовать подсистемы согласно некоторой модели управления, которая дополняла бы имеющуюся модель структуры.
Можно выделить два основных типа управления в программных системах:
Применима только для последовательных систем, недостаток - сложная обработка исключительных ситуаций. Принцип: из одной главной программы по мере необходимости вызываются подпрограммы. Каждая из них может вызывать другие подпрограммы и т.д. За управление отвечает та подпрограмма, которая выполняется в текущий момент. По окончании выполнения подпрограммы управление передается подпрограмме, которая ее вызвала.
Применяется в параллельных системах, часто – в системах реального времени. Может применяться в последовательных системах, где управляющая программа вызывает отдельные подсистемы в зависимости от значений некоторых переменных состояния. Принцип: один системный компонент назначается диспетчером и управляет запуском, завершением и координированием других процессов системы. Процесс (выполняемая подсистема или модуль) может протекать параллельно с другими процессами.
Управление основано на внешних событиях, событие – не только бинарный сигнал типа «да-нет», сигнал может принимать некоторый диапазон значений. Для обработки события подсистеме необходим доступ к информации состояния, однако такая информация обычно не определяется потоком управления.
Каждая подсистема уведомляет обработчика о своем интересе к конкретным событиям. Когда событие происходит, обработчик посылает его подсистеме, которая может обработать это событие. Алгоритм управления не встроен в обработчик событий и сообщений. Подсистемы определяют, какие события им требуются, а обработчик сообщений и событий следит, чтобы данные события были направлены именно им. Преимущество: относительно простая модернизация систем. Новую подсистему можно интегрировать, регистрируя ее события в обработчике событий. Каждая подсистема может активизировать любую другую подсистему, не зная ее имени или размещения. Подсистемы можно реализовать на разных машинах. Недостаток: подсистемам неизвестно, когда произойдет обработка события. Вполне допустима ситуация, когда разные подсистемы реагируют на одинаковые события (может привести к конфликтам при получении доступа к результатам обработки события).
Обеспечивает быструю реакцию на события. Для каждого типа прерываний – свой обработчик (тип прерывания ассоциируется с ячейкой памяти, в которой хранится адрес обработчика). При получении определенного прерывания аппаратный переключатель немедленно передает управление обработчику прерывания. В ответ на событие, вызванное прерыванием, обработчик может запустить или завершить другие процессы (это может определяться установленным приоритетом процессов).
Используется только в жестких СРВ, где требуется немедленная реакция на определенные события. Можно комбинировать эту модель с моделью централизованного управления (центральный диспетчер обрабатывает нормальный ход выполнения системы, а в критических ситуациях используется управление, основанное на прерываниях). Преимущество – мгновенная реакция системы на происходящие события. Недостаток – сложность программирования и аттестации системы.
Следует после этапа разработки системной структуры. Рассматриваются две модели:
Большая система должна быть расчленена на обозримые модули. Расчленение должно быть выполнено таким образом, чтобы:
Существует целый ряд других руководящих принципов, которые могут применяться для оценки и улучшения качества проекта на основании структурных карт.
Связность - мера прочности соединения функциональных и информационных объектов внутри одного модуля. Размещение сильно связанных объектов в одном и том же модуле уменьшает межмодульные взаимосвязи и взаимовлияния. Критерий связности контролирует, как действия в одном модуле связаны друг с другом. Связность модуля часто определяет качество его сцепления с другими модулями. Уровни связности: