Лекция № 7. Определение требований к программному обеспечению и исходных данных для его проектирования
Содержание лекции: классификация программных продуктов по функциональному признаку; основные эксплуатационные требования к ним; разработка технического задания.
Цель лекции: получить представление о классификации программных продуктов и эксплуатационных требованиях к ним; ознакомиться с процессом разработки технического задания.
Каждый программный продукт предназначен для выполнения определенных функций. По назначению все программные продукты можно разделить на три группы [4]: системные, прикладные и гибридные (рисунок Г.1).
К системным относят программные продукты, обеспечивающие функционирование вычислительных систем (операционные системы, оболочки, утилиты).
Прикладные программы и системы ориентированы на решение конкретных пользовательских задач. Среди их пользователей различают разработчиков программ и непрограммистов, использующих компьютерные системы для достижения своих целей.
Разработчики программ используют специальные инструментальные средства (компиляторы, компоновщики, отладчики), которые интегрируют в системы программирования и среды разработки. Современные среды программирования (Delphi, Visual C++) реализуют визуальную технологию разработки программных продуктов и предоставляют программистам огромные библиотеки компонентов. К этой же группе относят инструментальные комплексы создания баз данных (Access, FoxPro, Oracle), средства создания интеллектуальных систем (экспертных, обучающих, систем контроля знаний). Последнее достижение в этом направлении - CASE-средства разработки программного обеспечения (ERwin, BPwin, Paradigm Plus, Rational Rose и другие).
В соответствии с современными требованиями непрограммисты не должны быть профессионалами в проблемах создания программных продуктов и специфике их взаимодействия с операционной системой. Для них разрабатывают специальные программные продукты, ориентированные на определенную предметную область. Такие продукты условно разделяют на:
а) продукты общего назначения:
1) текстовые редакторы;
2) электронные таблицы;
3) графические редакторы;
4) информационные системы общего назначения;
5) программы-переводчики;
б) профессиональные среды:
1) системы автоматизации проектирования;
2) системы-тренажеры;
3) бухгалтерские системы;
4) издательские системы;
5) профессиональные графические системы;
6) экспертные системы;
в) обучающие системы;
г) развлекающие программы:
1) информационные системы с тестами развлекающего характера;
2) музыкальные программы;
3) игровые программы.
Гибридные системы – это большие, узкоспециализированные системы для управления технологическими процессами различных типов в режиме реального времени, сочетающие признаки системного и прикладного ПО. Для повышения надежности и снижения времени обработки в них включают программы, обеспечивающие выполнение функций операционных систем.
К каждому из перечисленных типов программного обеспечения при разработке обычно предъявляют еще и эксплуатационные требования, определяющие некоторые характеристики разрабатываемого программного продукта, которые проявятся в процессе его функционирования. К таким характеристикам относят:
а) правильность - функционирование в соответствии с техническим заданием;
б) универсальность - обеспечение правильной работы при любых допустимых данных и защиты от неправильных данных;
в) надежность (помехозащищенность) - обеспечение полной повторяемости результатов (правильности при наличии различного рода сбоев);
г) проверяемость - возможность проверки получаемых результатов;
д) точность - обеспечение погрешности результатов не выше заданной;
е) защищенность - обеспечение конфиденциальности информации;
ж) программная совместимость - возможность совместного функционирования с другим программным обеспечением;
з) аппаратная совместимость - возможность совместного функциони-рования с некоторым оборудованием (указывается минимально возможная конфигурация оборудования, на котором будет работать ПО);
и) эффективность - использование минимально возможного количества ресурсов технических средств (время ответа системы, объем оперативной и внешней памяти, количество обслуживаемых внешних устройств);
к) адаптируемость - возможность быстрой модификации с целью приспособления к изменяющимся условиям функционирования;
л) повторная входимость - возможность повторного выполнения без перезагрузки с диска;
м) реентерабельность - возможность «параллельного» использования несколькими процессами (все данные, изменяемые программой в процессе выполнения, должны быть выделены в специальный блок, копия которого создается для каждого процесса при вызове программы).
Сложность многих программных систем не позволяет сразу сформулировать четкие требования к ним. Обычно для перехода от идеи создания программного обеспечения к четкой формулировке требований, которые могут быть занесены в техническое задание, необходимо выполнить предпроектные исследования в области разработки. Их целью является преобразование общих нечетких знаний о предназначении будущего программного обеспечения в сравнительно точные требования к нему. Существуют два варианта неопределенности:
а) неизвестны методы решения формулируемой задачи - такого типа неопределенности обычно возникают при решении научно-технических задач, поэтому во время предпроектных исследований определяют возможность решения поставленной задачи и методы, позволяющие получить требуемый результат, что может потребовать соответствующих научных исследований как фундаментального, так и прикладного характера, разработки и исследования новых моделей объектов реального мира;
б) неизвестна структура автоматизируемых информационных процессов - обычно встречается при построении автоматизированных систем управления предприятиями, поэтому в этом случае определяют:
1) структуру и взаимосвязи информационных процессов;
2) распределение функций между человеком и системой, аппаратурой и программным обеспечением;
3) функции программного обеспечения, условия его функционирования, особенности аппаратных и пользовательских интерфейсов;
4) требования к программным и информационным компонентам, необходимые аппаратные ресурсы, требования к базам данных и физические характеристики программных компонент.
Результаты предпроектных исследований предметной области используются в процессе разработки технического задания. Техническое задание представляет собой документ, в котором сформулированы основные цели разработки, требования к программному продукту, определены сроки и этапы разработки и регламентирован процесс приемно-сдаточных испытаний. В разработке технического задания участвуют как представители заказчика, так и представители исполнителя. В основе этого документа лежат исходные требования заказчика, анализ передовых достижений техники, результаты выполнения научно-исследовательских работ, предпроектных исследований, научного прогнозирования и т. п. Основными факторами, определяющими характеристики разрабатываемого ПО являются:
а) исходные данные и требуемые результаты, определяющие функции программы или системы;
б) среда функционирования (программная и аппаратная) - задается или выбирается для обеспечения параметров, указанных в техническом задании;
в) возможное взаимодействие с другим программным обеспечением и/или специальными техническими средствами - задается или выбирается исходя из набора выполняемых функций.
Разработка технического задания - процесс трудоемкий, требующий определенных навыков, выполняется в следующей последовательности. Прежде всего, устанавливают набор выполняемых функций, а также перечень и характеристики исходных данных. Затем определяют перечень результатов, их характеристики и способы представления. Далее уточняют среду функционирования ПО: конкретную комплектацию и параметры технических средств, версию используемой операционной системы, версии и параметры другого установленного ПО, с которым предстоит взаимодействовать будущему программному продукту. В случаях, когда разрабатываемое ПО собирает и хранит некоторую информацию или включается в управление каким-либо техническим процессом, необходимо также четко регламентировать действия программы в случае сбоев оборудования и энергоснабжения.
На техническое задание существует стандарт ГОСТ 19.201-78 «Техническое задание. Требования к содержанию и оформлению». В соответствии с этим стандартом техническое задание должно содержать следующие разделы:
а) введение;
б) основания для разработки;
в) назначение разработки;
г) требования к программе или программному изделию;
д) требования к программной документации;
е) технико-экономические показатели;
ж) стадии и этапы разработки;
з) порядок контроля и приемки.
При необходимости допускается в техническое задание включать приложения, в которых при необходимости приводят перечень научно-исследовательских работ, обосновывающих разработку; схемы алгоритмов, таблицы, описания, обоснования, расчеты и другие документы, которые следует использовать при разработке. В зависимости от особенностей разрабатываемого продукта разрешается использовать подразделы, вводить новые разделы или объединять их. Если какие-либо требования, предусмотренные техническим заданием, заказчик не предъявляет, следует в соответствующем месте указать «Требования не предъявляются». Подробно содержание каждого раздела рассматривается в методических указаниях к лабораторным работам.
Дополнительную информацию по теме можно получить в [1, 4, 9, 18].