Смекни!
smekni.com

Неправильный перевод информации как причина ошибок в программных средствах (стр. 2 из 7)

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

Исследовательское программирование. При этом подходе предпола­гается быстрая (насколько это возможно) реализация рабочих версий программ ПС, выполняющих лишь в первом приближении требуе­мые функции. После экспериментального применения реализован­ных программ производится их модификация с целью сделать их бо­лее полезными для пользователей. Этот процесс повторяется до тех пор, пока ПС не будет достаточно приемлемо для пользователей. Та­кой подход применялся на ранних этапах развития программирова­ния, когда технологии программирования не придавали большого значения (использовалась интуитивная технология). В настоящее время этот подход применяется для разработки таких ПС, для кото­рых пользователи не могут точно сформулировать требования (на­пример, для разработки систем искусственного интеллекта).

Прототипирование (разработка прототипа). Этот подход модели­рует начальную фазу исследовательского программирования (вплоть до создания рабочих версий программ, предназначенных для прове­дения экспериментов) с целью установить требования к ПС. В даль­нейшем должна последовать разработка ПС по установленным тре­бованиям в рамках какого-либо другого подхода (например, водо­падного).

Формальные преобразования. Этот подход включает разработку формальных спецификаций ПС и превращение их в программы пу­тем корректных преобразований. На этом подходе базируется ком­пьютерная технология (CASE-технология) разработки ПС.

Сборочное программирование. При этом подходе предполагается, что ПС конструируется, главным образом, из программных компо­нент, которые уже существуют. Должно быть некоторое хранилище (библиотека) таких компонент, каждая из которых может много­кратно использоваться в разных ПС. Такие компоненты называются

повторно используемыми {reusable). Процесс разработки ПС при данном подходе состоит скорее из сборки программ из компонент, чем из их программирования [32].

В дальнейшем мы в основном будем рассматривать водопадный подход с некоторыми модификациями. Во-первых, потому, что в этом подходе приходиться иметь дело с большинством процессов программ­ной инженерии, а во-вторых, потому, что в рамках этого подхода созда­ется большинство больших программных систем. Именно этот подход рассматривается в качестве индустриального подхода разработки про­граммного обеспечения. Исследовательское программирование исходит из взгляда на программирование как на искусство. Оно применяется, когда не удается точно сформулировать требования к ПС (когда водо­падный подход не применим). В нашей книге мы этот подход рассмат­ривать не будем. Прототипирование рассматривается как вспомога­тельный подход, используемый в рамках других подходов, в основном, для прояснения требований к ПС. Компьютерной технологии (включая обсуждение жизненного цикла ПС, созданного по этой технологии) бу­дет посвящена отдельная глава. Сборочное программирование мы так­же рассматривать не будем, хотя о повторно используемых программ­ных модулях мы говорить будем, обсуждая свойства программных модулей.

В рамках водопадного подхода различают следующие стадии жиз­ненного цикла ПС (см. рис. 3.1): разработку ПС, производство про­граммных изделий (ПИ) и эксплуатацию ПС.

Стадия разработки ПС {softwaredevelopment) состоит из этапов его внешнего описания, конструирования ПС, кодирования (программиро­вание в узком смысле) ПС и аттестации ПС. Всем этим этапам сопутст­вуют процессы документирования и управления ПС {softwaremanage­ment). Этапы конструирования и кодирования часто перекрываются, иногда довольно сильно. Это означает, что кодирование некоторых час­тей программного средства может быть начато до завершения этапа конструирования.

Этап внешнего описания ПС включает процессы, приводящие к созданию документа, который мы будем называть внешним описанием ПС {softwarerequirementsdocument). Этот документ является описанием поведения ПС с точки зрения внешнего по отношению к нему наблюда­теля с фиксацией требований относительно его качества. Внешнее опи­сание ПС начинается с анализа и определения требований к ПС со сто-

роны пользователей (заказчика), а также включает процессы спе­цификации этих требований.

Рис. 3.1. Структура жизненного цикла ПС

Конструирование ПС {softwaredesign) охватывает процессы: раз­работку архитектуры ПС, разработку структур программ ПС и их де­тальную спецификацию.

Кодирование ПС {softwarecoding) включает процессы создания текстов программ на языках программирование, их отладку с тестиро­ванием ПС.

На этапе аттестации ПС {softwarecertfication) производится оценка качества ПС. Если эта оценка оказывается приемлемой для практического использования ПС, то разработка ПС считается закон­ченной. Это обычно оформляется в виде документа, фиксирующего ре­шение комиссии, проводящей аттестацию ПС.

Программное изделие (ПИ) - экземпляр или копия разработанного ПС. Изготовление ПИ - это процесс генерации и/или воспроизведения (снятия копии) программ и программных документов ПС с целью их поставки пользователю для применения по назначению. Производство ПИ - это совокупность работ по обеспечению изготовления требуемого количества ПИ в установленные сроки [22]. Стадия производства ПИ в жизненном цикле ПС является, по существу, вырожденной (не сущест-

венной), так как представляет собой рутинную работу, которая может быть выполнена автоматически и без ошибок. Этим она принципиально отличается от стадии производства различной техники, поэтому в лите­ратуре эту стадию, как правило, не включают в жизненный цикл ПС.

Стадия эксплуатации ПС охватывает процессы хранения, внедре­ния и сопровождения ПС, а также транспортировки и применения ПИ по своему назначению. Она состоит из двух параллельно проходящих фаз: фазы применения ПС и фазы сопровождения ПС [44, 65].

Применение ПС (softwareoperation) - это использование ПС для решения практических задач на компьютере путём выполнения его про­грамм.

Сопровождение ПС (softwaremaintenance) - это процесс сбора ин­формации о качестве ПС в эксплуатации, устранения обнаруженных в нём ошибок, его доработки и модификации, а также извещения пользо­вателей о внесённых в него изменениях [22, 44, 65].

3.3. Понятие качества программного средства

Каждое ПС должно выполнять определённые функции, т. е. делать то, что задумано. Хорошее ПС должно обладать еще целым рядом свойств, позволяющим успешно его использовать в течение длительно­го периода, т. е. обладать определённым качеством. Качество (quality) ПС - это совокупность его черт и характеристик, которые влияют на его способность удовлетворять заданным потребностям пользователей [59]. Из этого определения не следует, что разные ПС должны обладать одной и той же совокупностью таких свойств с их наилучшими показа­телями, поскольку улучшение одного из таких свойств ПС часто может быть достигнуто лишь ценой изменения стоимости, сроков завершения разработки и ухудшения других свойств этого ПС. Качество ПС являет­ся удовлетворительным, когда оно обладает указанными свойствами в такой степени, в какой гарантируется успешное его использование.

Совокупность свойств, которая образует удовлетворительное для пользователя качество ПС, зависит от условий и характера эксплуата­ции этого ПС, т. е. от позиции, с которой должно рассматриваться каче­ство этого ПС. Поэтому при описании качества ПС должны быть фик­сированы критерии отбора требуемых свойств ПС. В настоящее время критериями качества ПС (criteriaofsoftwarequality) принято считать [7, 30,49,59,63]:

• лёгкость применения,

• надёжность,

• функциональность,

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

• сопровождаемость,

• мобильность.

Функциональность (functionality) ПС - это способность ПС выпол­нять набор функций, удовлетворяющих заданным или подразумевае­мым потребностям пользователей. Этот набор определяется во внешнем описании ПС.

Надёжность ПС подробно обсуждалась в первой главе.

Лёгкость применения (easyofuse) ПС - это характеристики ПС, позволяющие минимизировать усилия пользователя по подготовке ис­ходных данных, применению ПС и оценке полученных результатов, а также вызывающие положительные эмоции определённого или подра­зумеваемого пользователя.

Эффективность (efficiency) ПС - это отношение уровня услуг, предоставляемых ПС пользователю при заданных условиях, к объёму используемых ресурсов.

Сопровождаемость (maintainability) ПС - это характеристики ПС, которые позволяют минимизировать усилия по внесению изменений для устранения в нём ошибок и по его модификации в соответствии с изменяющимися потребностями пользователей.

Мобильность (portability) ПС - это способность ПС быть перене­сённым из одной среды применения в другую, в частности, с одного компьютера на другой.

Функциональность и надёжность являются обязательными крите­риями качества ПС, причем обеспечение надёжности будет красной ни­тью проходить по всем этапам и процессам разработки ПС. Остальные критерии используются в зависимости от потребностей пользователей в соответствии с требованиями к ПС. Обеспечение этих критериев будет обсуждаться в подходящих частях книги.

3.4. Обеспечение надёжности - основной мотив разработки программных средств

Рассмотрим теперь общие принципы обеспечения надёжности ПС, что является основным мотивом разработки ПС, задающим специфиче-