Методы повышения надежности ПО

Классификация

Условно методы повышения надежности ПО можно разбить на две группы.

Первая группа объединяет методы, названные нами методы «а priori», поскольку эти методы применяются при создании ПО на различных стадиях ЖЦ. Основная идея, лежащая в основе данных методов - создание программ, правильных «по построению». В программировании существует своего рода «программный сопромат» - свод правил и приемов, как избежать ошибок при разработке ПО или, по крайней мере, свести их к минимуму. Методы данной группы реализуют первый и четвертый подходы.

Вторая группа - методы, названные нами методы «а posteriori» применяются к уже сформированным в ходе разработке ПО решениям - документам и программам. Методы данной группы реализуют второй и третий подходы.

Методы повышения надежности «а priori»

Нисходящее проектирование (проектирование «сверху-вниз»)

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

Под иерархической системой, или иерархией понимается система, состоящая из взаимосвязанных подсистем, каждая из которых в свою очередь является иерархической по своей структуре, и т. д. до тех пор, пока мы не доберемся до некоторого самого нижнего уровня элементарных подсистем [7][1]. Важно подчеркнуть, что в данном случае речь идет не о подчиненности (как обычно понимается «иерархия»), а о взаимодействии подсистем. Причем эти взаимодействия могут различаться по форме и силе.

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

По своей сути, нисходящее проектирование - это не метод, а стратегия, лежащая в основе большинства современных методов проектирования ПО, в том числе модульного, структурного и объектно-ориентированного программирования.

  • [1] В большинстве систем, встречающихся в природе, ответ навопрос о том, где прекратить дробление на части и какие подсистемы считать элементарными, достаточно произволен. 24
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >