Материал: 4970

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

16

1)документирование требований (включая детальное описание для большинства прецедентов использования);

2)проектирование, реализацию и тестирование исполняемого функционального ядра системы;

3)уточнение экономического обоснования и более точная оценка сроков и стоимости разработки;

4)снижение основных рисков.

Итерация «Построение» включает в себя следующие этапы:

1)реализация большей части функциональности продукта;

2)завершение первого внешнего релиза системы. Итерация «Внедрение» включает в себя следующие этапы:

5)создание финальной версии продукта;

6)передача от разработчика к заказчику (бета-тестирование, обучение пользователей, определение качества продукта);

7)повторение внедрения (в случае несоответствия качества ожиданиям пользователей);

8)завершение полного цикла разработки.

Технология RUP на сегодняшний день является наиболее прогрессивной, так

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

Применение UML в RUP-процессах позволяет фиксировать окончание работ на очередной стадии в виде различных по назначению моделей. Более того, язык UML принят в качестве стандарта для графических примитивов в автоматизированных CASE-средствах от одноимённой компании Rational Software (IBM Rational Software Modeler и IBM Rational Software Architect), предназначенных для ускоренной разработки программных продуктов. Типичное распределение трудоёмкости по стадиям технологии RUP приведено рисунке 1.

 

 

 

17

 

 

 

 

 

Рабочие процессы

Распределение трудоёмкости по стадиям разработки

 

 

 

Начальная

Уточнения

Конструирование

Внедрение

 

 

стадия

 

 

 

 

 

 

 

 

Итерация 1 Итерация Итерация Итерация Итерация Итерация Итерация

 

 

 

1

n

1

n

1

n

Основные

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

 

 

 

 

 

 

 

процессы

 

 

 

 

 

 

 

 

 

Управление

 

 

 

 

 

 

 

 

требованиями

 

 

 

 

 

 

 

 

Анализ и

 

 

 

 

 

 

 

 

проектирование

 

 

 

 

 

 

 

 

Реализация

 

 

 

 

 

 

 

 

Тестирование

 

 

 

 

 

 

 

 

Развёртывание

 

 

 

 

 

 

 

Процессы

Управление

 

 

 

 

 

 

 

поддержки

проектом

 

 

 

 

 

 

 

 

Управление

 

 

 

 

 

 

 

 

конфигурацией и

 

 

 

 

 

 

 

 

изменениями

 

 

 

 

 

 

 

 

Создание среды

 

 

 

 

 

 

 

 

разработки

 

 

 

 

 

 

 

 

Рисунок 1 − Процессы, стадии и итерации технологии RUP

 

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

 

 

18

 

 

Постановка задачи на разработку программного обеспечения

 

 

Функциональный анализ бизнес-процессов.

 

Участники процесса:

Анализ информационных процессов. Моделирование бизнес-

 

- системный аналитик;

процессов и реорганизация (при необходимости)

 

- системотехник

 

 

 

 

Генерация требований к проектируемой программной системе

 

 

в виде технического задания ( ответы на вопросы:

 

 

«Что должна выполнять проектируемая система?

CASE

 

Какие данные требуются и обрабатываются?»)

 

 

Участники процесса:

Разработка прототипа

 

- системотехник,

интерфейса

 

 

- дизайнер

 

 

 

Участники процесса:

 

Разработка модели и структуры базы

 

- программист

 

данных

 

Участники процесса:

Разработка руководства

 

 

 

 

- технический писатель

пользователя

 

 

 

 

 

 

 

Спецификация модулей программной

 

 

 

системы

 

 

 

Описание реализации экономико-

 

 

 

математических моделей

 

Участники

 

 

 

процесса:

 

Проектирование логики работы модулей и

 

- программисты

 

взаимодействия модулей

RAD

разработчики

 

 

 

 

 

Разработка исходного кода модулей на

 

 

 

языке программирования

 

 

 

Отладка исходного кода совместно со

 

 

 

сторонними компонентами (СУБД,

 

 

 

оборудование, телекоммуникации)

 

Участники процесса: технический писатель;

Разработка документации

 

программист; дизайнер

 

 

 

(в т.ч. электронной)

 

 

 

Цикл

 

 

 

 

 

 

итераций

Участники процесса:

 

Приёмо-сдаточные испытания

 

 

 

 

- персонал заказчика;

 

Опытная эксплуатация

 

- программисты;

 

 

 

 

 

- специалист технической

 

 

поддержки

 

Эксплуатация промышленная

 

 

 

Поддержка и модернизация

 

 

Рисунок 2 – Жизненный цикл программных продуктов

 

19

1.5. Парадигмы программирования

Эволюция программного обеспечения обусловлена следующими проблемами: усложнением моделей предметной области; требованиями к организации групповой разработки программных продуктов; адаптация к быстрой смене поколений вычислительной техники, к уровням и развитию телекоммуникаций; требованиями к обеспечению взаимодействия систем в гетерогенных средах; мобильностью и интероперабельностью программного кода и т.д. Эволюция программного обеспечения находит своё отражение в становлении и развитии технологий (парадигм) программирования. Парадигмой программирования следует считать весь комплекс средств, которыми обладают разработчики программных продуктов, как-то: методы и средства проектирования программных систем; языки программирования; среды разработки исходного кода; средства автоматизации процессов разработки прототипов интерфейсов пользователей и классов в виде CASE-систем (Computer Aided Software Engineering); средства ускоренной разработки приложений (RAD-системы); средства экстремального программирования (в минимально сжатые сроки с привлечением большой группы разработчиков); средства реализации языков программирования четвёртого уровня и т.д.

Рассмотрим в качестве примера две парадигмы:

1)структурное проектирование и программирование (см. рисунок 3);

2)объектно-ориентированное проектирование и программирование.

1.5.1. Структурное проектирование

Структурное проектирование включает в себя:

1)нисходящее каскадное проектирование ("сверху вниз");

2)модульное программирование;

3)структурное программирование.

Нисходящее проектирование – разработка иерархической схемы, которая отражает состав и взаимоподчинённость всех функций, обнаруженных в ходе функционального анализа предметной области. Такой схемой является функциональная структура алгоритма (ФСА) приложения. Функциональная структура алгоритма строится посредством функциональной декомпозиции, т.е. выявления главной цели, подцелей и задач. Одна задача соответствует одной функции. Функциональная структура алгоритма является основой для построения алгоритма приложения. Пример функциональной структуры алгоритма приведён на рисунке 4.

20

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

1.5.2. Структурное программирование

Структурное программирование − технология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры базовых конструкций (блоков). Технология предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом.

Базовые элементы структурного программирования:

1)последовательное исполнение — однократное выполнение операций в том порядке, в котором они записаны в тексте программы;

2)ветвление — однократное выполнение одной из двух или более операций,

взависимости от выполнения некоторого заданного условия;

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

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

5)переход к выполнению таких инструкций из основной программы осуществляется посредством вызова подпрограммы (процедуры или функции);

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

Вразрабатываемой процедурной программе базовые элементы могут быть вложены друг в друга произвольным образом, при этом возможны условные и безусловные переходы на определённые (посредством меток) строки программного кода, но никаких других средств управления последовательностью выполнения операций в такой программе не предусматривается. Данная технология предусматривает каскадный процесс разработки программ (см. «каскадный жизненный цикл») методом «сверху вниз».

Источник: https://studfile.net/preview/16710630/