Структурный подход к проектированию программного обеспечения



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

Жизненный цикл программного обеспечения

Жизненный цикл программного обеспечения АИС (ЖЦ ПО) – непрерывный процесс, который начинается с момента принятия решения о разработке и завершается с физическим удалением программ. В течение ЖЦ ПО выполняется приобретение или разработка программ, их эксплуатация и сопровождение. В свою очередь, сопровождение программного обеспечения предполагает наличие необходимой документации, конфигурирование программ, постоянный аудит и обеспечение качества программных изделий. Разработка программного обеспечения может рассматриваться как проект, для которого требуется наличие инфраструктуры проекта и применение современных методов управления.

Жизненный цикл программного обеспечения предполагает использование определенной модели.

Каскадная модель предполагает рассмотрение программных изделий как монолитных программ, по отношению к которым действуют следующие правила:

· Переход на следующую стадию жизненного цикла программного обеспечения после полного завершения работ на текущей стадии;

· Возврат на предыдущие стадии не происходит.

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

Спиральнаямодель предполагает не единовременный процесс создания программного обеспечения, а поэтапное создание на основе прототипов. Под прототипом понимается некоторое программное обеспечение, реализующее определенные функции обработки, предоставляющее пользовательский и программный интерфейс. Итерационный характер разработки позволяет постепенно специфицировать программное обеспечение и реализовать наиболее близкое к реальным потребностям АИС программное обеспечение. В последнее время широкое распространение получили способ RAD (Rapid Application Development), использующий прототипы функций обработки, пользовательского интерфейса, форм документов и отчетов и т.п.

В состав жизненного цикла программного обеспечения входят следующие стадии:

1. Формирование требований к программному обеспечению.

2. Проектирование (разработка структуры программного обеспечения, выбор средств реализации).

3. Реализация (кодирование программных модулей, трансляция программного кода, сборка программных модулей, документирование).

4. Отладка и тестирование.

5. Ввод в действие.

6. Эксплуатация и сопровождение.

7. Снятие с эксплуатации.

Разработка программ

Разработка программ начинается со спецификации: определения требований к функциям обработки, программному и пользовательскому интерфейсу, входной и выходной информации, времени выполнения программы и другим характеристикам. Спецификация программ выполняется на основе постановки задачи и алгоритмизации обработки данных. Разрабатывается структура программного изделия в виде совокупности программных модулей, определяются необходимые библиотеки процедур, объекты типа ActiveX, драйверы и т.п., создается так называемый «проект приложения (Project for Application)» (рис. 1).

В зависимости от методологии разработки программного обеспечения и спецификации программы осуществляется классификация программных модулей и выбор инструментальных средств их создания. Для каждого программного модуля разрабатывается исходный код программы на выбранном языке программирования (код программы является формой записи алгоритма обработки на выбранном языке программирования). Этот этап носит название кодирования[1].

Исходный код программы подлежит трансляции, в ходе которой выполняется синтаксический разбор инструкций программы, исходный код программы преобразуется в объектный код (object file). В зависимости от способа анализа синтаксиса программ и построения объектного кода различают:

· компиляторы — осуществляющие полный разбор программного кода с последующим выполнением объектного кода программы;

· интерпретаторы — контролирующие каждую отдельную инструкцию и немедленно ее выполняющие.

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

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

Запуск приложений осуществляется с помощью исполнимого файла (.EXE или .COM) в среде операционной системы или в среде приложения (например, программные модули – макросы для документов Microsoft Office запускаются в среде основных программ офисного пакета).

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

Документирование программ предназначено для создания комплекта документации определенного назначения:

· исходный текст программы (запись алгоритмов обработки приложений на языке программирования),

· руководство программиста по установке программного комплекса, настройке базовых программных компонентов,

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

Рисунок 1

Алгоритмизация задач

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

· детерминированность (определенность) — однозначность выполнения действий для получения результата;

· дискретность — выделение отдельных этапов обработки данных;

· массовость — пригодность алгоритма для решения задач определенного класса;

· результативность — получение результата за обозримое время.

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

По степени подробности алгоритмы делятся на обобщенные (укрупненные) и детальные алгоритмы.

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

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

Существуют различные способы записи алгоритмов обработки данных, выбор которых зависит от методов средств разработки.

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

2. Формульный (модельный) способ - основан на математической модели, отражающей характер вычислений.

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

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

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

Структурный подход к проектированию программного обеспечения

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

Структурный анализ предполагает построение различного вида моделей:

SADT (Structured Analysis and Design Technique) – структурный анализ и проектирование АИС;

DFD (Data Flow Diagrams) – диаграммы потоков данных;

ERD (Entity Relationship Diagrams) – диаграммы «сущность-связь»;

STD (State Transition Diagrams) – диаграммы переходов состояний и др.

Методология SADT

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

Типовой блок:

 

Рисунок 2

Функции АИС образуют иерархию, функции верхнего уровня вырабатывают управляющую информацию для функций подчиненного уровня иерархии. Функция осуществляет структурное преобразование входных данных в выходные (Рис. 2). Входом для функции являются документы, массивы информации (база данных), а также данные интерактивного ввода. Управление рассматривается как комплекс требований и ограничений или критериев, учитываемых в процессе обработки данных. Механизмы представляют собой информационные технологии обработки данных. Выходом являются формируемые документы, массивы информации, графические изображения.

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

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

Моделирование потоков данных

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

 

 

Рисунок 3

Основными компонентами DFD диаграмм являются:

· Внешние сущности – источники информации, материальный предмет или человек, являющиеся источником и ли приемником информации.

· Системы/подсистемы АИС – часть АИС, выделяемая для упрощения модели.

· Процессы – преобразование входных потоков в выходные в соответствии с определенным алгоритмом.

· Накопители данных – абстрактное устройство для хранения информации.

· Потоки данных – информация, передаваемая от источника к приемнику.

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

Моделирование данных

Для моделирования данных и проектирования БД АИС наиболее часто применяется диаграмма ERD, разработанная П.Ченом. Базовыми понятиями являются:

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

· Связь – ассоциация двух сущностей, значимая для предметной области.

· Атрибут – любая характеристика сущности, значимая для предметной области.

Одной из наиболее часто используемых нотаций ERD-модели является нотация Р. Баркера, используемая фирмой Oracle Designer. Другой вариант - метод IDEF1X, позволяющий построить модель БД, эквивалентную реляционной модели в третьей нормальной форме (этот метод используется в следующих системах проектирования ERwin, Design/IDEF и др.).

Модульное программирование

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

· один вход и один выход;

· функциональная завершенность и логическая независимость;

· слабые информационные связи с другими модулями;

· обозримый размер и сложность программной реализации.

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

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

Применительно к приложениям Microsoft Office разрабатывается проект на языке VBA (Visual Basic for Application), который состоит из модулей двух типов:

· стандартные модули – содержат общие процедуры подпрограммы и процедуры функции;

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


Дата добавления: 2018-04-04; просмотров: 1081; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!