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