И. Соммервилл - Инженерия программного обеспечения (1133538), страница 6
Текст из файла (страница 6)
Эти методы, названные функционально.модульнымн или функциональио.ориентированными, связаны с определением основных функциональных компонентов программной системы и в свое время широко использовались. В 00-90-х годах к этим методам до- 26 ь4асть Ь Инженерия программного обеспечения: обзор бавились объектно. ориентированные методы, предложенные Б>чем (ВоосЬ) (54) и Рэмбо (ВшпЬаця1ь) (302).
Эти методы, использ>тощие разные подходы, ныне интегрированы в единый унифицированный метод, построенный на основе унифицированного языка моделирования \)МЬ (()п)бьеб Мобейпц Ьапяцакс) (55, 117, 303, 304, 17о, 30ь)г. Все упомян>тые методы основаны на идее создания моделей системы, которые можно представить графически, и на использовании этих моделей в качестве спецификации системы или ее структуры. Методы инженерии ПО обычно включают перечисленные в табл.
1.2 компоненты. Таблица 1.2. Компоненты методов инженерии ПО Компонент Описание Пример Описание модели системы Описания моделей создаваемых систем н нотация. используемая лля разработки э гик моделей Правила н ограничения, которые необходимо выполнять при раэра ботке моделей систем Модели объектов, модели пото. коз данных, модели конечных автоматов и т.п.
Правила Каждый элемент модели дол- жен иметь чникальиос имя Рекомендации Эвристические советы и рекомендации, отрвяшющие практический опыт применения данного метода Описание работ, которые необхо. димо выполнить для построения модели системы, а также рекомендации по организации этих работ Любой объект в модели не дол- жен иметь более семи подчи- ненных ему объектов Атрибуты любого объекта должны бьпъдокумептированы, прежде чем будут определены операции, связанные с втнм обьекгом Руководство по примснениюмстода Не существует идеального и универсального метода — каждый метод имеет свою об. ласть применимости.
Например, объектноориентированные методы часто применяются для создания интерактивных (диалоговых) програминых систем, но практически нс используются при разработке систем, работающих в режиие реального времени. 1.1.9. САБЕ-технология З Здесь и даосе ио всей кинге зсодсакосз вдсаиаиаетас акоьерамура, добааааиак арк иереводе. — Прим. рсд. Аббревиатура САЯЕ обозначает Сощрцгсг-АЫес) Бойьваге ЕпБ>пееппк — автоматизированная разработка программного обеспечения. Под этим понимается широкий спектр программ, применяемых для поддержки н сопровождения различных этапов создания ПО: анализа системных требований, моделирования системы, ее отладки и тестирования и др.
Все современные методы создания ПО используют соответствующие САБЕ. средства: редакторы нотаций, применяемых для описания моделей, модули анализа. проверяющие соответствие модели правилам метода, и генераторы отчетов, помогающие при создании документации на разрабатываемое ПО. Кроме того. САЯЕ-средства могут включать генератор кода, который автоматически генерирует исходный код программ на основе модели системы, а также руководство пользователя.
САЯЕсредства, предназначенныс дэя анализа спецификаций и проектирования ПО, иногда называют САЯЕсредствами верхнего уровня, поскольку они применяются на начальной стадии разработки программных систем. В то же время САЯЕсредства, нацеленные на поддержку разработки и тестирования ПО, т.е. отладчики, системы анализа программ, генераторы тестов и редакторы программ, подчас называют САБЕсредствами нижнего уровня, 1.
Введение 27 1.1.10. Характеристики качественного программного обеспечения Таблица 1.3. Основные показатели качественного программного обеспечения Описание Показатель Удобство сопрово- ждения ПО должно быть таким. чтобы существовала возможность его усо. вершенствования в ответ на измененные требования заказчика или пользователя, Это определяющий показатель. поскольку любое ПО неминуемо подвергается модернизации вследствие изменений, происходящих в реальном мире Определяется рядом характеристик, таких как безотказность, за- щищенность и безопасность.
Надежность ПО означает, что воз- можные сбои в работе системы не приведут к физическому или эко- номическомуушербу Работа ПО не должна приводить к расточительному расходованию таких системных ресурсов, как память или время занятости процес- сора. Поэтому эффективность ПО описывается следующими харак- теристиками: скорость выполнения, используемое процессорное время, объем требуемой памяти и т.п. ПО должно быть удобным в эксплуатации и ие требовать чрезмер- ного напряжения усилий пользователя того уровня, на которого оно рассчитано. Это означает, что программная система должна обладать соответствующим пользовательским интерфейсом и необ- ходимой докулсентацисй Надежность Эффективность Удобство висполь- зовании В этой книге основное внимание уделяется только двум из перечисленных показав лей — удобству сопровождения и надежности.
Большинство методов, средств и техно: гий инженерии программного обеспечения ориентированы на то, чтобы помочь а соз, нии программных систем с этими показателями качественного ПО. Освещение темы:. фективности ПО требует специальных знаний, удобство эксплуатации ПО так отдельная и большая тема, но к ней я еще вернусь в главе 15. Кроме функциональных возможностей, присущих программным продуктам по опред: лению, эти продукты обладают и другими показателями, характеризующими их качеств Данные показатели не вытекают непосредственно из того, какие действия может выло нять программный продукт. Онн характеризуют поведение программы во время выло пения ею своих действий, структуру и организацию исходного кода программы, ее дос ментированность. Примером таких показателей (иногда называемых нефункциональнс ми показателями) может служить время ожидания пользователем ответа на свой запрс или понятность программного кода.
Конечно, множество тех показателей или характеристик, которые можно ожидать о ПО, зависит от типа программной системы. Например, банковская система должна быть з сщищенной, интерактивная игра должна быть чувствительной к действиям пользоэателяигрока, систему телефонных переключений прежде всего характеризует ее надежность и т., Но эти специфические показатели, как и множество других подобных характеристик, можп обобщить в виде показателей качественных программных систем, приведенных в табл.
1.3. 28 Часть |. Инженерия программного обеспечения: обзор 1.1.11. Основные проблемы, стоящие перед специалистами по программному обеспечению В ХХ1 столетии специалисты по программному обеспечению столкнутся с описанными ниже проблемами. 1. Плзбзанл нлоюдозания ранее создан)юго ПО. Многие большие программные системы, эксплуатируемые в настоящее время, созданы много лет назад, но до сих пор выполняют свои функции надлежащим образом.
Проблема наследования означает поддержку и модернизацию таких систем, причем при минимальных финансовых и временных затратах. 2. Прабзечп все ввзрлслююкЗей разноуюдкости луюгрпммных сисзюм. В настоящее время программное обеспечение должно быть способно работать в качестве систем, распреде. ленных в компьютерных сетях, состоящих из компьютеров разных типов и использующих различные операционные системы.
Проблема возрастающей разнородности программных систем состоит в том, что необходимо разрабатывать надежные про. граммные системы, способные работать совместно с ПО разных типов. 3, Пробзечл, эзузаждзннал юуюйюанкзм уменьшения времени нл создание ПО. Многие традиционные технологии создания качественного программного обеспечения требуют больших временных затрат. Вместе с тем сегодня запросы рынка ПО и требования к программным системам меняются очень быстро. Поэтому и ПО должно меняться с соответствующей скоростью. Проблема, порожденная требованием уменынения времени на создание ПО, закзючается в том, чтобы сократить время на разработку больших н сложных программных систем без снижения их качества. Конечно, перечисленные проблемы связаны друг с другом.
Например, возможна такая ситуация, когда необходимо быстро разработать на основе существующей системы ее сетевой вариант. Для решения таких проблем необходимы новые средства и технологии, которые вобрали бы в себя все лучшие методы современной инженерии программного обеспечения. 1.2. Профессиональные и этические требования к специалистам по программному обеспечению Подобно любым другим профессионалам, специалисты по программному обеспечению должны согласиться, что к ним предъявляется более широкий круг требований, чем простая необходимость иметь тот или иной профессиональный уровень. Они работают в определенном правовом и социальном окружении.
Область инженерии программного обеспечепил, как и любая другая сфера человеческой деятельности, имеет ограничения в виде честных, национальных и международных законодательств. Поэтому специалисты по программному обеспечению должны принять на себя определенные этические и моральные обязательства, чтобы стать настоящими профессионалами. Не требует лишних пояснениИ утверждение, что специалисты должны быть честными и порядочными людьми.