Лекция № 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].