Файл: Иванова Г.С. Технология программирования.pdf

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

Категория: Не указан

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

Добавлен: 20.11.2019

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

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

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

Таблица

 1.1 

Традиционная

разработка

Разработка

с

использованием

 CASE - 

средств

Основные

усилия

на

кодирование

и

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

 
«

Бумажные

» 

спецификации

Ручное

кодирование

Ручное

документирование

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

кодов

Сопровождение

кодов

Основные

усилия

на

анализ

и

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

Быстрое

итерационное

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

Автоматическая

генерация

кодов

Автоматическая

генерация

документации

Автоматический

контроль

проекта

Сопровождение

спецификаций

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

Таблица

 1.2 

Трудозатраты

этапа

разработки

, % 

Способ

разработки

Анализ

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

Кодирование

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

Традиционная

разработка

Структурный

подход

 
CASE-

технологий

20 

30 

40 

15 

30 

40 

20 

15 

45 

25 

15 

1.6. 

Ускорение

разработки

программного

обеспечения

.

Разработка

спиральной

модели

жизненного

цикла

программного

обеспечения

и

 CASE-

технологий

позволили

сформулировать

условия

выполнение

которых

сокращает

сроки

создания

программного

обеспечения

Современная

технологии

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

разработки

и

сопровождения

программного

обеспечения

должна

отвечать

следующим

требованиям

поддержка

полного

жизненного

цикла

программного

обеспечения

гарантированное

достижение

целей

разработки

с

заданным

качеством

и

в

установленное

время

возможность

выполнения

крупных

проектов

в

виде

подсистем

разрабатываемых

группами

исполнителей

ограниченной

численности

 (3-7 

человек

с

последующей

интеграцией

составных

частей

и

координации

ведения

общего

проекта

минимальное

время

получения

работоспособной

системы

возможность

управления

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

проекта

ведения

версий

проекта

и

автоматического

выпуска

проектной

документации

по

каждой

версии

независимость

выполняемых

проектных

решений

от

средств

реализации

  (

СУБД

операционных

систем

языков

и

систем

программирования

); 

поддержка

комплексом

согласованных

 CASE-

средств

обеспечивающих

автоматизацию

процессов

выполняемых

на

всех

стадиях

жизненного

цикла


background image

Этим

требованиям

отвечает

технология

RAD (Rapid Application Development - 

Быстрая

разработка

приложений

). 

Эта

технология

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

как

следует

из

названия

на

максимально

быстрое

получение

первых

версий

разрабатываемого

программного

обеспечения

Она

предусматривает

выполнение

следующих

условий

ведение

разработки

небольшими

группами

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

 (3-7 

человек

), 

каждая

из

которых

проектирует

и

реализует

отдельные

подсистемы

проекта

 - 

позволяет

улучшить

управляемость

проекта

использование

итерационного

подхода

способствует

уменьшению

времени

получения

работоспособного

прототипа

наличие

четко

проработанного

графика

цикла

рассчитанного

не

более

чем

на

три

месяца

существенно

увеличивает

эффективность

работы

Процесс

разработки

при

этом

делится

на

следующие

этапы

анализ

и

планирование

требований

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

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

реализация

внедрение

На

этапе

анализа

и

планирования

требований

формулируют

наиболее

приоритетные

требования

что

ограничивает

масштаб

проекта

На

этапе

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

используя

имеющиеся

 CASE-

средства

детально

описывают

процессы

системы

устанавливают

требования

разграничения

доступа

к

данным

и

определяют

состав

необходимой

документации

При

этом

для

наиболее

сложных

процессов

создают

частичный

прототип

разрабатывают

экранную

форму

и

диалог

По

результатам

анализа

процессов

определяют

количество

так

называемых

функциональных

точек

и

принимают

решение

о

количестве

подсистем

и

соответственно

команд

участвующих

в

разработке

Под

функциональной

точкой

в

технологии

 RAD 

понимают

любой

из

следующих

функциональных

элементов

разрабатываемой

системы

входной

элемент

приложения

 (

входной

документ

или

экранная

форма

); 

выходной

элемент

приложения

 (

отчет

документ

или

экранная

форма

); 

запрос

 (

пара

 «

вопрос

/

ответ

»); 

логический

файл

 (

совокупность

записей

данных

используемых

внутри

приложения

); 

интерфейс

приложения

 (

совокупность

записей

данных

передаваемых

другому

приложению

или

получаемых

от

него

). 

Нормы

рассчитанные

исходя

из

экспертных

оценок

для

систем

со

значительной

повторяемостью

кодов

определяются

следующим

образом

менее

 1 

тыс

функциональных

точек

- 1 

человек

от

 1 

до

 4 

тыс

функциональных

точек

 - 

одна

команда

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

более

 4 

тыс

функциональных

точек

 - 

одна

команда

на

каждые

 4 

тыс

точек

В

соответствии

с

этими

нормами

разрабатываемую

систему

делят

на

подсистемы

слабо

связанные

по

данным

и

функциям

и

точно

определяют

интерфейсы

между

различными

частями

Использование

 CASE-

средств

при

этом

позволяет

избежать

неконтролируемого

искажения

данных

при

передаче

информации

о

проекте

со

стадии

на

стадию

Далее

разработка

ведется

группами

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

которые

продолжают

прорабатывать

свои

части

системы

Действия

различных

групп

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

при

этом

должны

быть

хорошо

скоординированы

На

этапе

реализации

выполняют

итеративное

построение

реальной

системы

причем

при

этом

для

контроля

над

выполнением

требований

к

создаваемой

системе

привлекаются

будущие

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

Части

постепенно

интегрируют

в

систему

причем

при

подключении

каждой

части

выполняют

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

На

завершающих

этапах

разработки

определяют

необходимость

создания

соответствующих

баз

данных

которые

разрабатываются

и

подключаются

к

системе

Далее

формулируют

требования

к

аппаратным

средствам

устанавливают

способы

увеличения

произво

-

дительности

и

завершают

подготовку

документации

по

проекту

На

этапе

внедрения

проводят

обучение

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

и

осуществляют

постепенный

переход

на

новую

систему

причем

эксплуатация

старой

версии

продолжается

до

полного

внедрения

новой


background image

системы

Технология

 RAD 

хорошо

зарекомендовала

себя

для

относительно

небольших

проектов

разрабатываемых

для

конкретного

заказчика

Такие

системы

не

требуют

высокого

уровня

планирования

и

жесткой

дисциплины

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

Однако

эта

технология

не

применима

для

построения

сложных

расчетных

программ

операционных

систем

или

программ

управления

слож

-

ными

объектами

в

реальном

масштабе

времени

т

е

программ

с

большим

процентом

уникального

кода

Не

годится

она

и

в

случае

создания

приложений

от

которых

зависит

безопасность

людей

например

систем

управления

самолетами

или

атомными

электростанциями

так

как

технология

RAD 

предполагает

что

первые

несколько

версий

не

будут

полностью

работоспособны

что

в

данном

случае

полностью

исключается

1.7. 

Оценка

качества

процессов

создания

программного

обеспечения

Как

уже

упоминалось

выше

текущий

период

на

рынке

программного

обеспечения

характеризуется

переходом

от

штучного

ремесленного

производства

программных

продуктов

к

их

промышленном

}- 

созданию

Соответственно

возросли

требования

к

качеству

разрабатываемого

программного

обеспечения

что

требует

совершенствования

процессов

их

разработки

На

настоящий

момент

существует

несколько

стандартов

связанных

с

оценкой

качества

этих

процессов

которое

обеспечивает

организация

-

разработчик

К

наиболее

известным

относят

международные

стандарты

серии

 ISO 9000 (ISO 9000 - ISO 9004); 

СММ

 - Capability Maturity Model - 

модель

зрелости

 (

совершенствования

процессов

создания

программного

обеспечения

предложенная

 SEI (Software Engineering Institute - 

институт

программирования

при

университете

Карнеги

-

Меллон

); 

рабочая

версия

международного

стандарта

 ISO/IEC 15504: Information Technology - Software 

Process Assessment; 

эта

версия

более

известна

под

названием

 SPICE - (Software Process 

Improvement and Capability dEtermination - 

определение

возможностей

и

улучшение

процесса

создания

программного

обеспечения

). 

Серия

стандартов

ISO 9000.

В

серии

 ISO 9000 

сформулированы

необходимые

условия

для

достижения

некоторого

минимального

уровня

организации

процесса

но

не

дается

никаких

рекомендаций

по

дальнейшему

совершенствованию

процессов

СММ

СММ

представляет

собой

совокупность

критериев

оценки

зрелости

организации

-

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

и

рецептов

улучшения

существующих

процессов

Примечание

.

Изначально

СММ

разрабатывалась

и

развивалась

как

методика

позволяющая

крупным

правительственным

организациям

США

выбирать

наилучших

поставщиков

программного

обеспечения

Для

этого

предполагалось

создать

исчерпывающее

описание

способов

оценки

процессов

разработки

программного

обеспечения

и

методики

их

дальнейшего

усовершенствования

В

итоге

авторы

смогли

добиться

такой

степени

подробности

и

детализации

что

стандарт

оказался

пригодным

и

для

обычных

компаний

-

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

желающих

качественно

улучшить

существующие

процессы

разработки

привести

их

к

определенным

стандартам

СММ

определяет

пять

уровней

зрелости

организаций

-

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

причем

каждый

следующий

уровень

включает

в

себя

все

ключевые

характеристики

предыдущих

1.

Начальный

уровень

 (initial level)- 

описан

в

стандарте

в

качестве

основы

для

сравнения

со

следующими

уровнями

На

предприятии

такого

уровня

организации

не

существует

стабильных

условий

для

создания

качественного

программного

обеспечения

Результат

любого

проекта

целиком

и

полностью

зависит

от

личных

качеств

менеджера

и

опыта

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

причем

успех

в

одном

проекте

может

быть

повторен

только

в

случае

назначения

тех

же

менеджеров

и

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

на

следующий

проект

Более

того

если

эти

менеджеры

или

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

уходят

с

предприятия

то

резко

снижается

качество

производимых

программных

продуктов

В

стрессовых

ситуациях

процесс

разработки

сводится

к

написанию

кода

и

его

минимальному

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


background image

2.

Повторяемый

уровень

 (repeatable level) - 

на

предприятии

внедрены

технологии

управления

проектами

При

этом

планирование

и

управление

проектами

основывается

на

накопленном

опыте

существуют

стандарты

на

разрабатываемое

программное

обеспечение

  (

причем

обеспечивается

следование

этим

стандартам

и

специальная

группа

обеспечения

качества

В

случае

необходимости

организация

может

взаимодействовать

с

субподрядчиками

В

критических

условиях

процесс

имеет

тенденцию

скатываться

на

начальный

уровень

3.

Определенный

уровень

 (defined level) - 

характеризуется

тем

что

стандартный

процесс

создания

и

сопровождения

программного

обеспечения

полностью

документирован

  (

включая

и

разработку

ПО

и

управление

проектами

). 

Подразумевается

что

в

процессе

стандартизации

происходит

переход

на

наиболее

эффективные

практики

и

технологии

Для

создания

и

поддержания

подобного

стандарта

в

организации

должна

быть

создана

специальная

группа

Наконец

обязательным

условием

для

достижения

данного

уровня

является

наличие

на

предприятии

программы

постоянного

повышения

квалификации

и

обучения

сотрудников

Начиная

с

этого

уровня

организация

перестает

зависеть

от

качеств

конкретных

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

и

процесс

не

имеет

тенденции

скатываться

на

уровень

ниже

в

стрессовых

ситуациях

4.

Управляемый

уровень

 (managed level) - 

в

организации

устанавливаются

количественные

показатели

качества

как

на

программные

продукты

так

и

на

процесс

в

целом

Таким

образом

более

совершенное

управление

проектами

достигается

за

счет

уменьшения

отклонений

различных

показателей

проекта

При

этом

осмысленные

вариации

в

производительности

процесса

можно

отличить

от

случайных

вариаций

 (

шума

), 

особенно

в

хорошо

освоенных

областях

5.

Оптимизирующий

уровень

 (optimizing level) - 

характеризуется

тем

что

мероприятия

по

улучшению

применяются

не

только

к

существующим

процессам

но

и

для

оценки

эффективности

ввода

новых

технологий

Основной

задачей

всей

организации

на

этом

уровне

является

постоянное

улучшение

существующих

процессов

При

этом

улучшение

процессов

в

идеале

должно

помогать

предупреждать

возможные

ошибки

или

дефекты

Кроме

того

должны

вестись

работы

по

уменьшению

стоимости

разработки

программного

обеспечения

например

с

помощью

создания

и

повторного

использования

компонентов

Сертификационная

оценка

соответствия

всех

ключевых

областей

проводится

по

 10-

балльной

шкале

Для

успешной

квалификации

данной

ключевой

области

необходимо

набрать

не

менее

 6 

баллов

Оценка

ключевой

области

осуществляется

по

следующим

показателям

заинтересованность

руководства

в

данной

области

например

планируется

ли

практическое

внедрение

данной

ключевой

области

существует

ли

понимание

у

руководства

необходимости

данной

области

и

т

д

.; 

насколько

широко

данная

область

применяется

в

организации

например

оценке

в

 4 

балла

соответствует

фрагментарное

применение

успешность

использования

данной

области

на

практике

например

оценке

в

 0 

баллов

соответствует

полное

отсутствие

какого

-

либо

эффекта

а

оценка

в

 8 

баллов

выставляется

при

наличии

систематического

и

измеримого

положительного

результата

практически

во

всей

организации

В

принципе

можно

сертифицировать

только

один

процесс

или

подразделение

организации

например

подразделение

разработки

программного

обеспечения

компании

 IBM 

сертифицировано

на

пятый

уровень

Кстати

в

мире

существует

совсем

немного

компаний

которые

могут

похвастаться

наличием

у

них

пятого

уровня

СММ

хотя

бы

в

одном

из

подразделений

 - 

таких

всего

около

 50-

ти

С

другой

стороны

насчитывается

несколько

тысяч

компаний

сертифицированных

по

третьему

или

четвертому

уровням

т

е

существует

колоссальный

разрыв

между

оптимизированным

уровнем

зрелости

и

предыдущими

уровнями

Однако

еще

больший

разрыв

наблюдается

между

количеством

организаций

начального

уровня

и

числом

их

более

продвинутых

собратьев

 - 

по

некоторым

оценкам

свыше

 70 % 

всех

компаний

-

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

находится

на

первом

уровне

СММ

 [3]. 

SPICE.

Стандарт

 SPICE 

унаследовал

многие

черты

более

ранних

стандартов

в

том

числе

и

уже

упоминавшихся

 ISO 9001 

и

СММ

Больше

всего

 SPICE 

напоминает

СММ

Точно

так

же

как

и

в

СММ

основной

задачей

организации

является

постоянное

улучшение

процесса

разработки


background image

программного

обеспечения

Кроме

того

в

 SPICE 

тоже

используется

схема

с

различными

уровнями

возможностей

 (

в

 SPICE 

определено

 6 

различных

уровней

), 

но

эти

уровни

применяются

не

только

к

организации

в

целом

но

и

к

отдельно

взятым

процессам

В

основе

стандарта

лежит

оценка

процессов

Эта

оценка

выполняется

путем

сравнения

процесса

разработки

программного

обеспечения

существующего

в

данной

организации

с

описанной

в

стандарте

моделью

Анализ

результатов

полученных

на

этом

этапе

помогает

определить

сильные

и

слабые

стороны

процесса

а

также

внутренние

риски

присущие

данному

процессу

Это

помогает

оценить

эффективность

процессов

определить

причины

ухудшения

качества

и

связанные

с

этим

издержки

во

времени

или

стоимости

Затем

выполняется

определение

возможностей

процесса

т

е

возможностей

его

улучшения

В

результате

в

организации

может

появиться

понимание

необходимости

улучшения

того

или

иного

процесса

К

этому

моменту

цели

совершенствования

процесса

уже

четко

сформулированы

и

остается

только

техническая

реализация

поставленных

задач

После

этого

весь

цикл

работ

начинается

сначала

Безусловно

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

процессов

жизненного

цикла

программного

обеспечения

абсолютно

необходимо

Однако

следует

иметь

в

виду

что

построение

 «

более

зрелого

» 

процесса

разработки

не

обязательно

обеспечивает

создание

более

качественного

программного

обеспечения

Это

хотя

и

связанные

но

совершенно

различные

процессы

Использование

формальных

моделей

и

методов

позволяет

создавать

понятные

непротиворечивые

спецификации

на

разрабатываемое

программное

обеспечение

Конечно

внедрение

таких

методов

имеет

смысл

хотя

оно

весьма

дорого

и

трудоемко

а

возможности

их

применения

весьма

ограничены

Основная

же

проблема

 - 

проблема

сложности

разрабатываемого

программного

обеспечения

с

совершенствованием

процессов

разработки

пока

не

разрешена

Создание

программного

обеспечения

по

-

прежнему

предъявляет

повышенные

требования

к

квалификации

тех

кто

этим

занимается

проектировщикам

программного

обеспечения

и

непосредственно

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

Контрольные

вопросы

1.

Что

понимают

под

термином

 «

технология

программирования

»? 

2.

Что

называют

подходом

и

чем

подход

отличается

от

метода

3.

Назовите

основные

периоды

истории

развития

технологии

программирования

Чем

характеризуются

эти

периоды

Как

изменялись

основные

подходы

и

используемые

средства

4.

Дайте

определение

понятию

  «

сложная

иерархическая

система

». 

Какой

подход

используют

при

разработке

таких

систем

На

каких

характеристиках

этих

систем

он

основан

В

чем

особенность

данного

подхода

при

разработке

программного

обеспечения

5.

Что

понимают

под

термином

  «

жизненный

цикл

программного

обеспечения

»? 

Какие

основные

процессы

включают

в

это

понятие

6.

Назовите

основные

этапы

разработки

программного

обеспечения

Какие

основные

задачи

решаются

на

этих

этапах

      7.

Назовите

основные

модели

жизненного

цикла

программного

обеспечения

С

чем

связано

появление

новых

моделей

8.

Какие

технологии

называют

 CASE-

технологиями

Почему

9.

Назовите

основные

составляющие

любой

 CASE-

технологии

10. 

Перечислите

основные

положения

технологии

 RAD? 

Какие

программные

системы

нельзя

разрабатывать

с

использованием

этой

технологии

11. 

Что

понимают

под

моделями

качества

процессов

разработки

программного

обеспечения

Для

чего

они

разработаны

Что

гарантирует

сертификация

качества

процессов

Почему

12. 

Почему

мы

говорим

что

современный

этап

развития

технологии

программирования

характеризуется

переходом

от

ремесленного

к

промышленному

производству

программного

обеспечения