- •Надёжность программного обеспечения.
- •Показатели надёжности.
- •Принципиальная схема разработки программных средств. (Технология, процесс создания).
- •Способы описания алгоритмов.
- •Описание алгоритма с помощью таблиц решения.
- •Виды программных документов.
- •Эксплуатационные документы.
- •Классификация документов.
- •Работы, выполняемые на стадии «Эскизный проект».
- •Простейшие пути повышения качества программ.
- •Классификация ошибок.
- •Сквозной структурный контроль.
- •Стиль программирования и качества программ.
- •Графическая иерархическая документация. Наглядная таблица содержания. Обзорные диаграммы. Детальные диаграммы. Верификация программ. Последовательность этапов верификации. Выводы.
- •Терминология и обозначения.
- •Очевидно, что g и h являются простыми программами, иначе f была бы не простой.
- •Число управляющих линий в блоке h удовлетворяет соотношению:
- •Общая структура case средств. Технология структурного программирования. Общая структура коллектива. Трудовые затраты.
- •Современные методы и средства разработки прикладных программных средств. Особенности case технологий. Общая характеристика технологии создания прикладных программных средств.
- •Классификация программного обеспечения.
- •Языки программирования.
- •Методология объектно-ориентированного программирования. Понятие объекта, понятие класса, характеристики объекта, характеристики класса. Языки объектно-ориентированного программирования.
- •Особенности рабочего интерфейса
- •Разработка диаграммы классов в среде
- •Диаграмма классов
- •Разработка диаграммы вариантов использования в среде Rational Rose.
- •Разработка диаграммы последовательности в среде Rational Rose.
- •Разработка диаграммы состояний в среде Rational Rose.
Простейшие пути повышения качества программ.
Рассмотрим два термина по отношению к программе «правильная», «устойчивая».
Программа считается правильной, если она выполняет функции, которые на неё возлагает пользователь и не имеет не желательных подобных эффектов. Правильность в более плоском смысле называется корректностью.
Программа считается устойчивой, если вычислительная система, реализующая её, функционирует успешно несмотря на случайные отклонения как во внешних условиях (неправильные входные данные), так и внутри её самой (отказ одного из дисководов). Термин «устойчивость» аналогичен термину «нечувствительность» к отказам и сбоям.
Программирование - сложный интеллектуальный процесс. Важнейшие особенности процесса проектирования программы, которые порождают свойственные программированию проблемы:
широкое многообразие программных продуктов, затрудняющих специализацию коллективов и отдельных пользователей
практическое отсутствие прототипов и трудность использования аналогичных проектов в виду большого количества детальных отличий даже близких программ.
сложность разделения задачи на части, обусловленной необходимости точного описания как самой задачи, так и выделенных частей в достаточно компактной форме, и обязательного согласования раздельно выполненных заданий по входам и выходам для последующей интеграции.
зависимость общего результата от малейших упущений, неточностей и ошибок.
В программирование не может быть незначительных ошибок или не существовать погрешностей. Пропуск запятой или отсутствие пробела делают программу неработоспособной. Следовательно, программирование – сложный, изобилующий, насыщенный мельчайшими деталями процесс и ошибки в нём неизбежны.
Исследование многих авторов даёт примерно одинаковую частоту ошибок в сложных программах. Из 100 строк программы в среднем 1-2 содержит ошибку. Если программа не выполняет функций, которые вытекают из инструкций пользователя, то такая программа содержит по крайней мере одну ошибку. Под отказом программы понимают появление в неё ошибки.
Классификация ошибок.
1. Ошибки, связанные с недостаточным знанием аппаратных средств системы и конкретной её конфигурацией.
неисправность обращения к средствам ввода-вывода;
неправильное отношение к ВЗУ.
2. Ошибки, связанные с недостаточным знанием языка или конкретной реализации (версии) транслятора.
неправильное обращение к подпрограмме;
неправильный выбор и использование идентификаторов и меток;
изменение числа букв идентификатора и компилятора, размеров поля памяти, числа блоков, числа строк и т.д.;
ошибочное применение синтаксических конструкций;
неправильное использование команд.
3. Технологические ошибки.
3.1 ошибки спецификации: программа делает не то, что требовал заказчик или не то, что предусматривалось техническим заданием;
3.2 ошибки в алгоритме;
3.3 ошибки взаимного сопряжения модулей программы по управлению информацией;
3.4 неправильная передача управления;
3.5 неправильное формирование логического выражения;
3.6 наложение массивов или переменных.
Исследование показывает, что 40%-45% ошибок возникает на этапе постановки и понимания сущности задачи, распределения работ между исполнителями, выбора алгоритма и методов решения.