Понятие качества программного средства. Жизненный цикл программного средства.
Качество ПС - это совокупность его черт и характеристик, которые влияют на его способность удовлетворять заданные потребности пользователей.
Критерии качества ПС:
- Функциональность.Способность ПС выполнять набор функций, удовлетворяющих заданным или подразумеваемым потребностям пользователей. Набор указанных функций определяется во внешнем описании ПС.
- Надежность.
- Легкость применения. Это характеристики ПС, которые позволяют минимизировать усилия пользователя по подготовке исходных данных, применению ПС и оценке полученных результатов, а также вызывать положительные эмоции определенного или подразумеваемого пользователя.
- Эффективность. Это отношение уровня услуг, предоставляемых ПС пользователю при заданных условиях, к объему используемых ресурсов.
- Сопровождаемость. Это характеристики ПС, которые позволяют минимизировать усилия по внесению изменений для устранения в нем ошибок и по его модификации в соответствии с изменяющимися потребностями пользователей.
- Мобильность. Это способность ПС быть перенесенным из одной среды (окружения) в другую, в частности, с одной ЭВМ на другую.
Функциональность и надежность являются обязательными критериями качества ПС.
Общие принципы обеспечения надежности ПС (основной мотив разработки ПС). В технике известны четыре подхода обеспечению надежности:
• предупреждение ошибок;
• самообнаружение ошибок (означает, что программа содержит средства обнаружения отказа в процессе ее выполнения);
• самоисправление ошибок (не только обнаружение отказа в процессе ее выполнения, но и исправление последствий этого отказа, для чего в программе должны иметься соответствующие средства);
• обеспечение устойчивости к ошибкам(в программе содержатся средства, позволяющие локализовать область влияния отказа программы, либо уменьшить его неприятные последствия, а иногда предотвратить катастрофические последствия отказа).
Целью подхода предупреждения ошибок - не допустить ошибок в готовых продуктах. Для достижения этой цели при разработке ПС следует сконцентрировать внимание на следующих вопросах:
• борьбе со сложностью (разбиение системы на такие части (подсистемы), между которыми должны остаться по возможности меньше связей, например, модульное программирование);
• обеспечении точности перевода (направлено на достижение однозначности интерпретации документов различными разработчиками, а также пользователями ПС);
• преодоления барьера между пользователем и разработчиком (как обеспечить, чтобы ПС выполняла то, что пользователю разумно ожидать от нее? Ответ: привлекать пользователя в процессы принятия решений при разработке ПС, тщательно освоить особенности работы пользователя);
• обеспечения контроля принимаемых решений (проверка правильности принятых решений на каждом процессе (этапе) разработки ПС. Это позволит обнаруживать и исправлять ошибки на самой ранней стадии после ее возникновения).
И хотя гарантировать отсутствие ошибок в ПС невозможно, но в рамках этого подхода можно достигнуть приемлемого уровня надежности ПС.
Под жизненным циклом ПС понимают весь период его разработки и эксплуатации (использования), начиная от момента возникновения замысла ПС и кончая прекращением всех видов его использования.
Различают следующие стадии жизненного цикла ПС: разработку ПС, эксплуатацию ПС.
1. Этапы стадии разработки(development):
- Внешнее описание определение требований к ПС со стороны пользователей (заказчика);
- Конструирование ПС охватывает процессы: разработку архитектуры ПС, разработку структур программ ПС и их детальную спецификацию;
- Кодирование создание текстов программ на языках программирования, их отладку с тестированием ПС;
- На этапе аттестации ПС производится оценка качества ПС, после успешного завершения которого разработка ПС считается законченной.
2. Стадия эксплуатации ПС. Состоит из двух параллельно проходящих фаз:
- Фаза применения ПС - это использование ПС для решения практических задач на компьютере путем выполнения ее программ;
- Фаза сопровождения ПС - это процесс сбора информации о его качестве в эксплуатации, устранения обнаруженных в нем ошибок, его доработки и модификации, а также извещения пользователей о внесенных в него изменениях.