И. Соммервилл - Инженерия программного обеспечения (1133538), страница 43
Текст из файла (страница 43)
7.8. Используя подход 'сущность-связь', опишите возможную модель данных для системы библиотечного каталога, представленную а этой главе(см. Рис, 7.8). 7.6. Рыработайтв объектную модель, включаощую диаграммы иерархии классов и агрегирования, и показызаацую основные элемшпы системы персонального компьютера и его процтзмммжо обеспечения. 7.7, Разработайте диаграмму последовательностей, которая показывает действия студента, регистри. рующегося на определенный курс в университете, Курс может иметь ограниченное число мест, поэтому процесс регистрации долхан проверять количество доступных мест. Предположите, что студент обращается к электронному каталогу курсов, чтобы выяснить количество доступных мест.
7.8, Опишите три действии, выполняемых при моделировании систем, которые могут быть поддержаны пакетом инструментальных САЗЕ-средств при выполнении некоторых методов анализа систем. Опишите три действия, которые невозможно легко автоматизировать. Прототипирование программных систем Цель настоящей главы — показать, как прототипирова ние используется в процессе разработки прогрзммноп обеспечения, и описать различные подходы к рззработ ке прототипов. Прочитав азу главу, вы должны: понять роль прото'гйпировапия в процессе раз работки ПО; знать различие между эволюционным и экспери ментальным прототипированием: освоить три метода разработки прототипов: ~ использованием языков программирования вы сокого уронил, на основе баз данных и с повтор ным использованием программных компонентов понять, почему прототипирование — наиболсч эффективная и удобнал технология просктирова ния и разработки пользовательских интерфейсов, 8.1.
Прототипирование в процессе разработки ПО 8.2. Технологии быстрого прототипирования 8лл Прототипирование пользовательских интерфейсов 170 т4асть П. Требования Заказчикам программного обеспечения и конечным пользователям обычно сложно четко сформулировать требования к разрабатываемой программной системе. Трудно предвидеть, как система будет влиять на трудовой процесс, как она будет взаимодействовать с друпзми система.- ми и какие операции, выполняемые польэователяии, необходимо автоматизировать.
Тщатель. ный анализ требований поиогает уменьшить неопределенность относительно того, что система долзкна делать. Однако реально проверить требования, прежде чем их утвердить, пракгиче. ски невозможно. В этой ситуации может помочь прототип системы. Прототип является начальной версией програимной системы, которая используется для демонстрации концепций, заложенных в системе, проверки вариантов требований, а также поиска проблем, которые могут возникнуть как в коде разработки, твк и при эксплуатации системы, и возможных вариантов их решения. Очень важна быстрая разработка прототипа системы, чтобы пользователи могли начать экспериментировать с ним как можно раньше.
Прототип ПО помогает на двух этапах процесса разработки системных требований. 1. Пзгзепкмка ж)нбзэаник. Пользователи мокнут экспериментировать с системными прототипами, что позволяет им проверять, как будет работать система. Пользователи получают новые идеи для постановки требований, мокнут определить сильные и слабые стороны ПО. В результате могут сформироваться новые требования. 2. Проверка иребовлний. Прототип позволяет обнаружить ошибки и упущения в ранее принятых требованиях. Например, системные функции, определенные в требованиях, могут быть полезными и нужными (с точки зрения польаователя).
Однако в процессе применения этих функций совместно с другими функциями пользователи могут изменить первоначалыюе мнение о них. В результате требования к системе изменятся, отражая измененгюе понимание пользователями системных функций. Прототипирование можно мспользовать при анализе рисков и на начальном этапе разработки планов управления программным проектом (см. главу 4).
Основной опасно. стью при разработке ПО являются ошибки и упущения в требованиях. Затраты на устра. пение ошибок в требованиях на более поздних стадиях процесса разработки могуг быть очень высокими. Эксперименты показывают (48], что прототипирование уменьшает число проблем, связанных с разработкой требований.
Кроме того, прототипирование уменьшает общую стоимость разработки системы. По этим причинам оно часто используется в процессе разработки требований. Однако различие между прототипированием, как отдельным этапом процесса разработки ПО, н разработкой основной программной системы неочевидно. В настоящее время многие системы разрабатываются с использованием эволюционного подхода, когда быстро создается первоначальная версия системы, которая затем постепенно изменяется до ес окончательного варианта.
При этом часто используются методы быстрой разработ. ки приложений, которые также можно использовать при создании прототипов. Эти во. просы обсуждаются в разделе 8.1. Наряду с тем что прототипы помогают формировать требования, они имеют и другие достоинства. 1. Различное толкование требований разработчиками ПО и пользователями можно выявить при демонстрации действующего прототипа системы. 2.
В процессе создания прототипа разработчики мокнут выявить неполные или несогласованные требования. 3. Работая, хотл и ограниченно, в виде прототипа. система может продемонстрировать свои слабые и сильные стороны. 8. Прототипирование программных систем 171 4. Прототип может служить основой для написания спецификации высококачественной системы. Разработка прототипа обычно ведет к улучшению спецификации системы. Действующий прототип может также использоваться для других целей 11781. 1. Офинке паоыооаэмля Прототип системы можно использовать для обучения персо- нала перед поставкой окончательного варианта системы.
2. Тооякрооояко пивин. Прототипы позволяют "прокручивать" тесты. Один и тот же тест запускается на прототипе и на системс. Если получаются одинаковые результаты, это означает, что тест не обнаружил дефектов в системе. Если результаты отличаются, то необходимо исследовать причины различия, что позволяет выявить возможные ошибки в системе. На основе изучения 39 различных программных проектов, использовавших прототипирование, в работе 11331 сделан вывод, что эффективность применения прототипов при разработке ПО состоит в следующем.
1. Улучшаются эксплуатационные качества системы. 2. Система больше соответствует потребностям пользователей. 3. Системная архитектура становится более совершенной. 4. Сопровождение системы упрощается и становится более удобным. 5. Сокращаются раскоды на разработку системы. Зги исследования показывают, что улучшение аксплуатационных качеств системы и увеличение соответствия системы потребностам пользователя не требуют увеличения общей стоимости разработки системы.
Прототипирование обычно повышает сгоимость начальных этапов разработки ПО, но снижает затраты на более поздних этапах. Модель процесса разработки прототипа показана на рис, 8.1. На первом этапе данного процесса определяются назначение прототипа и цель прототипирования. Целью может быть разработка макета пользовательского интерфейса, проверка функциональных системных требований или демонстрация реализуемости системы для руководства. Один и тот же прототип не может служить одновременно всем целям. Если цели определены неточно, функции прототипа мопт быть восприняты неверно. Ряс.
В. Е Процесс розрп бом хи тфот оэли ол На следующем этапе процесса разработки прототипа определяются его функциональ. ные возможности. т.е. принимается решение о том, какие свойства системы должен отражать прототип, а какие (что, возможно, более важно) — нет. Для уменьшения затрат на создание прототипа можно исключить некоторые системные функции. Например, можно ослабить временные характерисгики и требования к использованию памяти. Средства 172 Часть П, Требования управления н обработки ошибок мокнут игнорироваться либо быгь элементарными. если, конечно, целью прототипирования не является модель интерфейса пользователя. Также могут быть снижены требования к надежности и качеству программ.
Заключительный этап процесса прототипирования — оценивание созданного прототипа. В работе [178] утверждается, что зто наиболее важный этап процесса прототипирования. Здесь проверяется, насколько созданный прототип соответствует своему назначению и целям, а также на его основе создается план мероприятий по совершенствованию разрабатываемой системы. 8.1. Прототипирование в процессе разработкиПО Как уже отмечалось, конечным пользователям трудно представить, как они будут ис. пользовать новую систему ПО в повседневной работе. Если система большая и сложная, то это невозможно сделать, прежде чем система будет создана и введена в эксплуатацию.
Один из способов преодоления этой трудносги состоит в использовании эволюционного метода разработки систем. Это означает, что пользователю предоставляется незавершенная система, которая затем изменяется и дополняется до тех пор, пока не стануг ясны все требования пользователя. В качестве альтернативы можно построить "экспериментальный" про. тотип, который поможет проанализировать и проверить требования. После втого создается система. На рис. 8.2 показаны оба подхода к использованию прототипов. Рис. В.2. Эоаеюкк энное и охспфимея тельное Пот оэгипифовпние Эволюционное прототипирование начинается с построения относительно простой системы, которая реализует наиболее важные требования пользователя.
По мере выявления новых требований прототип изменяется и дополняется. В конечном счете он становится той системой, которая требуется. В этом процессе не используется детальная системная спецификация, во многих случаях нет даже формального документа с системными требованиями. В настоящее время эволюционное прототипирование является обычной технологией разработки программных систем, которая широко используется при разработке 'ггеЬузлов и приложений электронной коммерции. В противоположность эволюционному подходу метод экспериментального прототипирования прелназначеп для разработки и уточнения системной спецификации.