Каждое ПС должно выполнять определенные функции (т.е. делать то, что задумано) и обладать рядом свойств, позволяющим успешно его использовать в течении длительного периода, т.е. обладать определенным качеством.
Качество (quality)ПС - это совокупность его черт и характеристик, которые влияют на его способность удовлетворять заданные потребности пользователей.
В настоящее время критериями качества ПС (criteria of software quality) принято считать:
* функциональность,
* надежность,
* легкость применения,
* эффективность,
* сопровождаемость,
* мобильность.
Функциональность - это способность ПС выполнять набор функций, удовлетворяющих заданным потребностям пользователей. Набор указанных функций определяется во внешнем описании ПС.
Надежность уже обсуждалось на 1 лекции.
Легкость применения - это характеристики ПС, которые позволяют минимизировать усилия пользователя по применению ПС и оценке полученных результатов.
Эффективность - это отношение уровня услуг, предоставляемых ПС пользователю, к объему используемых ресурсов.
Сопровождаемость - это характеристики ПС, которые позволяют минимизировать усилия по внесению изменений в ПС, для устранения в нем ошибок и по его модификации в соответствии с меняющимися потребностями пользователей.
Мобильность - это способность ПС быть перенесенным из одной среды (окружения) в другую (в частности, с одного компьютера на другой; с одной ОС на другую).
* Функциональность и надежность являются обязательными критериями качества ПС. Остальные критерии используются в зависимости от потребностей пользователей.
Известны 4 подхода:
1. предупреждение ошибок;
Этот подход связан с организацией разработки ПС, т.е. непосредственно с технологией программирования.
Совокупные методы:
1. борьба со сложностью
Известны два общих метода борьбы со сложностью систем:
- обеспечения независимости компонент системы. Это означает разбиение системы на такие части, между которыми должны остаться по возможности меньше связей. Одним из воплощений этого метода является модульное программирование.
- использование в системах иерархических структур. Это позволяет локализовать связи между компонентами, допуская связи между компонентами, принадлежащими смежным уровням иерархии. Этот метод означает разбиение большой системы на подсистемы, образующих малую систему.
2. обеспечение точности интерпретации («перевода»)
Оно направлено на достижение однозначности интерпретации («перевод») документов различными разработчиками, а также пользователями ПС.
3. преодоление барьера между пользователем и разработчиком
Разработчикам необходимо правильно понять, во-первых, чего хочет пользователь, и, во-вторых, его уровень его подготовки.
4. обеспечение контроля принимаемых решений
Обязательным шагом в каждом этапе разработки ПС должна быть проверка правильности принятых решений.
Методы проверки:
- смежный контроль (проверка ПС лицами, не участвующими в его разработке),
- сочетание как статических, так и динамических методов контроля (нужно не только контролировать исходный код ПС, но и проверять, какой процесс обработки разработки (этап) он описывает – т.е. контроль исполнения отдельных блоков программы).
Остальные три подхода связаны с организацией самих продуктов технологии программирования, т.е. ПС (программ). Они учитывают возможность ошибки в программах.
2. самообнаружение ошибок (программа содержит специальные средства обнаружения отказа в процессе ее выполнения).
3. самоисправление ошибок (это означает не только обнаружение отказа в процессе ее выполнения, но и исправление последствий этого отказа, для чего в программе должны иметься соответствующие средства).
4. обеспечение устойчивости к ошибкам (в ПС содержатся специальыне средства, позволяющие уменьшить область влияния отказа программы, либо уменьшить его неприятные последствия, а иногда предотвратить последствия отказа).