Главная страница
Навигация по странице:

  • Спиральная модель.

  • Изменение жизненного цикла программного обеспечения при использовании CASE-технологий.

  • Таблица 1.1

  • Таблица 1.2

  • 1.6. Ускорение разработки программного обеспечения. Технология RAD

  • 1.7. Оценка качества процессов создания программного обеспечения

  • Серия стандартов ISO 9000.

  • Учебник Технология программирования. Технология программирования


    Скачать 7.85 Mb.
    НазваниеТехнология программирования
    АнкорУчебник Технология программирования.pdf
    Дата04.05.2017
    Размер7.85 Mb.
    Формат файлаpdf
    Имя файлаУчебник Технология программирования.pdf
    ТипДокументы
    #6946
    КатегорияИнформатика. Вычислительная техника
    страница4 из 27
    1   2   3   4   5   6   7   8   9   ...   27
    Модель с промежуточным контролем. Схема, поддерживающая итерационный характер процесса разработки, была названа схемой с промежуточным контролем (рис.
    1.11). Контроль, который выполняется по данной схеме после завершения каждого этапа, позволяет при необходимости вернуться на любой уровень и внести необходимые изменения.
    Основная опасность использования такой схемы связана с тем, что разработка никогда не будет завершена, постоянно находясь в состоянии уточнения и усовершенствования.

    34
    Примечание. Народная мудрость в подобных случаях говорит «лучшее - враг хорошего». Осталось только понять, что можно считать «хорошим» и как все-таки добиться лучшего...
    Спиральная модель. Для преодоления перечисленных проблем в середине 80-х годов
    XX в. была предложена спиральная схема (рис. 1.12). В соответствии с данной схемой программное обеспечение создается не сразу, а итерационно с использованием метода прототипирования, базирующегося на создании прототипов. Именно появление прототипирования привело к тому, что процесс модификации программного обеспечения перестал восприниматься, как «необходимое зло», а стал восприниматься как отдельный важный процесс.
    Прототипом называют действующий программный продукт, реализующий отдельные функции и внешние интерфейсы разрабатываемого программного обеспечения.
    На первой итерации, как правило, специфицируют, проектируют, реализуют и тестируют интерфейс пользователя. На второй – добавляют некоторый ограниченный набор функций.
    На последующих этапах этот набор расширяют, наращивая возможности данного продукта.
    Основным достоинством данной схемы является то, что, начиная с некоторой итерации, на которой обеспечена определенная функциональная полнота, продукт можно предоставлять пользователю, что позволяет:

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

    заинтересовать большое количество пользователей, обеспечивая быстрое продвижение следующих версий продукта на рынке;

    35

    ускорить формирование и уточнение спецификаций за счет появления практики использования продукта;

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

    36
    Нотацией называют систему обозначений, используемых для описания некоторого класса моделей. Нотации бывают графические (предоставление моделей в виде графов, диаграмм, таблиц, схем и т.п.) и текстовые (описания моделей на формальных и естественных языках). В CASE-технологиях нотации используют для описания структуры проектируемой системы, элементов данных, этапов обработки и т.п.
    Средства — инструментарий для поддержки методов: средства создания и редактирования графического проекта, организации проекта в виде иерархии уровней абстракции, а также проверки соответствия компонентов разных уровней. Различают:

    CASE-средства анализа требований, проектирования спецификаций и структуры, редактирования интерфейсов (первое поколение CASE-I);

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

    обеспечивают автоматизированный контроль совместимости спецификаций проекта;

    уменьшают время создания прототипа системы;

    ускоряют процесс проектирования и разработки;

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

    частично генерируют коды программ для различных платформ разработки;

    поддерживают технологии повторного использования компонентов системы;

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

    37
    Таблица 1.1
    Традиционная разработка
    Разработка с использованием CASE- средств
    Основные усилия на кодирование и тестирование
    Основные усилия на анализ и проектирование
    «Бумажные» спецификации
    Быстрое итерационное прототипирование
    Ручное кодирование
    Автоматическая генерация кодов
    Ручное документирование
    Автоматическая генерация документации
    Тестирование кодов
    Автоматический контроль проекта
    Сопровождение кодов
    Сопровождение спецификаций проектирования
    Таблица 1.2
    Трудозатраты этапа разработки, %
    Способ разработки
    Анализ Проектирование
    Кодирование Тестирование
    Традиционная разработка
    20 15 20 45
    Структурный подход
    30 30 15 25
    CASE-технологий
    40 40 5
    15
    Использование CASE-средств позволяет существенно снизить трудозатраты на разработку сложного программного обеспечения (табл. 1.2 [30]) в основном за счет автоматизации процессов документирования и контроля. Однако следует иметь в виду, что современные CASE-средства дороги, а их использование требует более высокой
    квалификации разработчиков. Следовательно, их имеет смысл использовать в сложных проектах, причем, чем сложнее разрабатываемое программное обеспечение, тем больше выигрыш от использования CASE-технологий. На сегодняшний день практически все промышленно производимое сложное программное обеспечение разрабатывается с использованием CASE-средств.
    1.6. Ускорение разработки программного обеспечения. Технология RAD
    Разработка спиральной модели жизненного цикла программного обеспечения и CASE- технологий позволили сформулировать условия, выполнение которых сокращает сроки создания программного обеспечения.

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

    поддержка полного жизненного цикла программного обеспечения;

    гарантированное достижение целей разработки с заданным качеством и в установленное время;

    возможность выполнения крупных проектов в виде подсистем, разрабатываемых группами исполнителей ограниченной численности (3-7 человек) с последующей интеграцией составных частей, и координации ведения общего проекта;

    минимальное время получения работоспособной системы;

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

    независимость выполняемых проектных решений от средств реализации (СУБД, операционных систем, языков и систем программирования);

    поддержка комплексом согласованных CASE-средств, обеспечивающих автоматизацию процессов, выполняемых на всех стадиях жизненного цикла.
    Этим требованиям отвечает технология RAD (Rapid Application Development – Быстрая разработка приложений). Эта технология ориентирована, как следует из названия, на максимально быстрое получение первых версий разрабатываемого программного обеспечения. Она предусматривает выполнение следующих условий:

    ведение разработки небольшими группами разработчиков (3-7 человек), каждая из которых проектирует и реализует отдельные подсистемы проекта – позволяет улучшить управляемость проекта;

    использование итерационного подхода способствует уменьшению времени получения работоспособного прототипа;

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

    39
    Под функциональной точкой в технологии RAD понимают любой из следующих функциональных элементов разрабатываемой системы:

    входной элемент приложения (входной документ или экранная форма);

    выходной элемент приложения (отчет, документ или экранная форма);

    запрос (пара «вопрос/ответ»);

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

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

    менее 1 тыс. функциональных точек – 1 человек;

    от 1 до 4 тыс. функциональных точек – одна команда разработчиков;

    более 4 тыс. функциональных точек – одна команда на каждые 4 тыс. точек.
    В соответствии с этими нормами разрабатываемую систему делят на подсистемы, слабо связанные по данным и функциям, и точно определяют интерфейсы между различными частями. Использование CASE-средств при этом позволяет избежать неконтролируемого искажения данных при передаче информации о проекте со стадии на стадию.
    Далее разработка ведется группами разработчиков, которые продолжают прорабатывать свои части системы. Действия различных групп разработчиков при этом должны быть хорошо скоординированы.
    На этапе реализации выполняют итеративное построение реальной системы, причем при этом для контроля над выполнением требований к создаваемой системе привлекаются будущие пользователи.
    Части постепенно интегрируют в систему, причем при подключении каждой части выполняют тестирование. На завершающих этапах разработки определяют необходимость создания соответствующих баз данных, которые разрабатываются и подключаются к системе. Далее формулируют требования к аппаратным средствам, устанавливают способы увеличения производительности и завершают подготовку документации по проекту.
    На этапе внедрения проводят обучение пользователей и осуществляют постепенный переход на новую систему, причем эксплуатация старой версии продолжается до полного внедрения новой системы.
    Технология RAD хорошо зарекомендовала себя для относительно небольших проектов, разрабатываемых для конкретного заказчика. Такие системы не требуют высокого уровня планирования и жесткой дисциплины проектирования. Однако эта технология не применима для построения сложных расчетных программ, операционных систем или программ управления сложными объектами в реальном масштабе времени, т.е. программ с большим процентом уникального кода. Не годится она и в случае создания приложений, от которых зависит безопасность людей, например, систем управления

    40
    самолетами или атомными электростанциями, так как технология RAD предполагает, что первые несколько версий не будут полностью работоспособны, что в данном случае полностью исключается.
    1.7. Оценка качества процессов создания программного обеспечения
    Как уже упоминалось выше, текущий период на рынке программного обеспечения характеризуется переходом от штучного ремесленного производства программных продуктов к их промышленному созданию. Соответственно возросли требования к качеству разрабатываемого программного обеспечения, что требует совершенствования процессов их разработки. На настоящий момент существует несколько стандартов, связанных с оценкой качества этих процессов, которое обеспечивает организация-разработчик. К наиболее известным относят:

    международные стандарты серии ISO 9000 (ISO 9000 - ISO 9004):

    СММ – Capability Maturity Model – модель зрелости (совершенствования) процессов создания программного обеспечения, предложенная SEI (Software Engineering Institute – институт программирования при университете Карнеги-Меллон);

    рабочая версия международного стандарта ISO 1ЕС 15504: Information Technology –
    Software Process Assessment: эта версия более известна под названием SPICE – (Software
    Process Improvement and Capability dEtermination – определение возможностей и улучшение процесса создания программного обеспечения).
    Серия стандартов ISO 9000. В серии ISO 9000 сформулированы необходимые условия для достижения некоторого минимального уровня организации процесса, но не дается никаких рекомендаций по дальнейшему совершенствованию процессов.
    СММ. СММ представляет собой совокупность критериев оценки зрелости организации- разработчика и рецептов улучшения существующих процессов.
    Примечание. Изначально СММ разрабатывалась и развивалась как методика, позволяющая крупным правительственным организациям США выбирать наилучших поставщиков программного обеспечения. Для этого предполагалось создать исчерпывающее описание способов оценки процессов разработки программного обеспечения и методики их дальнейшего усовершенствования. В итоге авторы смогли добиться такой степени подробности и детализации, что стандарт оказался пригодным и для обычных компаний-разработчиков, желающих качественно улучшить существующие процессы разработки, привести их к определенным стандартам.

    41
    СММ определяет пять уровней зрелости организаций-разработчиков, причем каждый следующий уровень включает в себя все ключевые характеристики предыдущих.
    1.
    Начальный уровень (initial level) – описан в стандарте в качестве основы для сравнения со следующими уровнями. На предприятии такого уровня организации не существует стабильных условий для создания качественного программного обеспечения.
    Результат любого проекта целиком и полностью зависит от личных качеств менеджера и опыта программистов, причем успех в одном проекте может быть повторен только в случае назначения тех же менеджеров и программистов на следующий проект. Более того, если эти менеджеры или программисты уходят с предприятия, то резко снижается качество производимых программных продуктов. В стрессовых ситуациях процесс разработки сводится к написанию кода и его минимальному тестированию.
    2.
    Повторяемый уровень (repeatable level) – на предприятии внедрены технологии
    управления проектами. При этом планирование и управление проектами основывается на накопленном опыте, существуют стандарты на разрабатываемое программное обеспечение (причем обеспечивается следование этим стандартам) и специальная группа обеспечения качества. В случае необходимости организация может взаимодействовать с субподрядчиками. В критических условиях процесс имеет тенденцию скатываться на начальный уровень.
    3.
    Определенный уровень (defined level) – характеризуется тем, что стандартный процесс создания и сопровождения программного обеспечения полностью документирован
    (включая и разработку ПО, и управление проектами). Подразумевается, что в процессе стандартизации происходит переход на наиболее эффективные практики и технологии. Для создания и поддержания подобного стандарта в организации должна быть создана специальная группа. Наконец, обязательным условием для достижения данного уровня является наличие на предприятии программы постоянного повышения
    квалификации и обучения сотрудников. Начиная с этого уровня, организация перестает зависеть от качеств конкретных разработчиков, и процесс не имеет тенденции скатываться на уровень ниже в стрессовых ситуациях.
    4.
    Управляемый уровень (managed level) – в организации устанавливаются
    количественные показатели качества как на программные продукты, так и на процесс в целом. Таким образом, более совершенное управление проектами достигается за счет уменьшения отклонений различных показателей проекта. При этом осмысленные вариации в производительности процесса можно отличить от случайных вариаций (шума), особенно в хорошо освоенных областях.
    5.
    Оптимизирующий уровень (optimizing level) – характеризуется тем, что мероприятия по улучшению применяются не только к существующим процессам, но и для оценки эффективности ввода новых технологий. Основ-

    42
    ной задачей всей организации на этом уровне является постоянное улучшение
    существующих процессов. При этом улучшение процессов в идеале должно помогать предупреждать возможные ошибки или дефекты. Кроме того, должны вестись работы по уменьшению стоимости разработки программного обеспечения, например с помощью создания и повторного использования компонентов.
    Сертификационная оценка соответствия всех ключевых областей проводится по 10- балльной шкале. Для успешной квалификации данной ключевой области необходимо набрать не менее 6 баллов. Оценка ключевой области осуществляется по следующим показателям:

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

    насколько широко данная область применяется в организации, например, оценке в 4 балла соответствует фрагментарное применение;

    успешность использования данной области на практике, например, оценке в 0 баллов соответствует полное отсутствие какого-либо эффекта, а оценка в 8 баллов выставляется при наличии систематического и измеримого положительного результата практически во всей организации.
    В принципе, можно сертифицировать только один процесс или подразделение организации, например, подразделение разработки программного обеспечения компании
    IBM сертифицировано на пятый уровень. Кстати, в мире существует совсем немного компаний, которые могут похвастаться наличием у них пятого уровня СММ хотя бы в одном из подразделений – таких всего около 50-ти. С другой стороны, насчитывается несколько тысяч компаний, сертифицированных по третьему или четвертому уровням, т. е. существует колоссальный разрыв между оптимизированным уровнем зрелости и предыдущими уровнями. Однако еще больший разрыв наблюдается между количеством организаций начального уровня и числом их более продвинутых собратьев – по некоторым оценкам, свыше 70 % всех компаний-разработчиков находится на первом уровне СММ [3].
    1   2   3   4   5   6   7   8   9   ...   27


    написать администратору сайта