- •Вопросы для подготовки к экзаменам по дисциплине «Разработка и стандартизация программных средств и информационных технологий»
- •Проблемы разработки сложных программных систем
- •Блочно-иерархический подход к созданию сложных систем
- •Жизненный цикл и этапы разработки программного обеспечения
- •Ускорение разработки программного обеспечения
- •Оценка качества процессов создания программного обеспечения
- •Понятие технологичности программного обеспечения
- •Модули и их свойства
- •Нисходящая и восходящая разработка программного обеспечения
- •Структурное и «неструктурное» программирование
- •Эффективность и технологичность
- •Сквозной структурный контроль
- •Определение требований к программному обеспечению и исходных данных для его проектирования
- •Классификация программных продуктов по функциональному признаку
- •Предпроектные исследования предметной области
- •Разработка технического задания
- •Анализ требований и определение спецификаций программного обеспечения при структурном подходе
- •Функциональные диаграммы
- •Диаграммы потоков данных
- •Диаграммы переходов состояний
- •Проектирование структур данных
- •Case-технологии, основанные на структурных методологиях анализа и проектирования
- •Анализ требований и определение спецификаций при объектном подходе
- •Определение «вариантов использования»
- •Построение концептуальной модели предметной области
- •Проектирование программного обеспечения при объектном подходе
- •Разработка структуры программного обеспечения при объектном подходе
- •Определение отношений между объектами
- •Типы пользовательских интерфейсов и этапы их разработки
- •Основные компоненты графических пользовательских интерфейсов
- •Реализация диалогов в графическом пользовательском интерфейсе
- •Психофизические особенности человека связанные с восприятием, запоминанием и обработкой информации.
- •Пользовательская и программная модели интерфейса
- •Виды контроля качества разрабатываемого программного обеспечения
- •Ручной контроль программного обеспечения
- •Структурное и функциональное тестирования
- •Тестирование модулей и комплексное тестирование
- •Отладка программного обеспечения
- •Классификация ошибок
- •Общая методика отладки программного обеспечения
- •Оценочное тестирование
- •Виды программных документов
- •1 Общие положения
- •3 Основные технические решения
- •4 Мероприятия по подготовке объекта автоматизации к вводу системы в действие
- •4.1 Приведение информации к виду, пригодному для обработки на эвм
- •4.2 Мероприятия по подготовке персонала
- •4.3 Организация необходимых подразделений и рабочих мест
- •4.4 Изменение объекта автоматизации
- •4.5 Дополнительные мероприятия
- •Руководство пользователя
- •3.3 Проверка работоспособности системы
- •4 Описание операций
- •6 Рекомендации по освоению
- •Руководство системного программиста
- •Основные правила оформления программной документации
- •Техническое задание
- •1. Общие положения
- •2. Содержание разделов
- •Стадии разработки (гост 19.102-77)
- •Описание программы (гост 19.402-78)
- •Текст программы (гост 19.401-78)
- •Программа и методика испытаний (гост 19.301-79)
- •Требования к программным документам, выполненным печатным способом (гост 19.106-78)
-
Определение требований к программному обеспечению и исходных данных для его проектирования
Процесс определения требований к ПО базируется на понятии требования. Рассмотрим определение этого понятия в с точки зрения программной инжененрии.
В стандарте (IEEE Standard Glossary of Software Engineering Terminology, 1990), разработанным Институтом инженеров по электротехнике и электронике программное требование (Software Requirement) определяется следующим образом:
1. Условие или возможность, необходимая пользователю для решения задач или достижения цели.
2. Условие или возможность, которой должна обладать система или ее компонент, соответствующие договору, стандарту, спецификации или другому официальному документу.
3. Документированное представление условия или возможности перечисленные в предыдущих пунктах.
Наиболее фундаментальной проработанной методологией в области программной инженерии является Rational Unified Process (RUP). В старой редакции RUP программное требование определяется как возможность, которую кто-либо ожидает от данного ПО. В последней редакции RUP под требованием к ПО подразумевается спецификация наблюдаемого поведения системы, например, входных и выходных данных, функций или атрибутов системы или атрибутов внешней среды системы.
-
Классификация программных продуктов по функциональному признаку
Этап постановки задачи - один из наиболее ответственных этапов создания программного продукта. На этом этапе формулируют основные требования к разрабатываемому программному обеспечению. Оттого, насколько полно определены функции и эксплуатационные требования, насколько правильно приняты принципиальные решения, определяющие процесс проектирования, во многом зависит стоимость разработки и ее качество.
Каждый программный продукт предназначен для выполнения определенных функций. По назначению все программные продукты можно разделить натри группы: системные, прикладные и гибридные (рис. 3.1).
К с и с т е м н ы м обычно относят программные продукты, обеспечивающие функционирование вычислительных систем (как отдельных компьютеров, так и сетей). Это -операционные системы, оболочки и другие служебные программы (утилиты).
Операционные системы, как правило, управляют ресурсами (процессором и памятью), процессами (задачами и потоками) и устройствами. Сложность организации операционных систем обуславливается степенью автоматизации и достигаемой эффективности процессов управления. Так мультипрограммные операционные системы существенно сложнее однопрограммных, что хорошо видно на примере MS DOS и WINDOWS.
Оболочки (например, NORTON COMMANDER) в свое время появились для организации более удобного интерфейса пользователя с файловой системой MS DOS. Современные оболочки, такие, как FAR, используют для обеспечения пользователю привычной среды при работе с файловой системой.
К утилитам принято относить программы и системы, непосредственно не входящие в состав операционной системы, но обеспечивающие выполнение определенных функций, таких как архивация файлов, проверка компьютера на заражение вирусами, осуществление удаленного доступа к информации и др.
Прикладные программы и системы ориентированы на решение конкретных пользовательских задач. Различают пользователей:
• разработчиков программ;
• непрограммистов, использующих компьютерные системы для достижения своих целей. Разработчики программ используют специальные инструментальные средства, такие как
компиляторы, компоновщики, отладчики, которые последнее время обычно интегрируют в системы программирования и среды разработки.
Современные среды программирования, например, Delphi, Visual C++, реализуют визуальную технологию разработки программных продуктов и предоставляют программистам огромные библиотеки компонентов, которые можно включать в свою разработку. К этой же группе относят инструментальные комплексы создания баз данных, такие как Access, FoxPro, Oracle, средства создания интеллектуальных систем, например, экспертных, обучающих, систем контроля знаний и т. д. Последнее достижение в этом направлении - CASE-средства разработки программного обеспечения, такие как ERwin, BPwin, Paradigm Plus, Rational Rose и др.
Пользователи-непрограммисты в соответствии с современными требованиями не должны быть профессионалами в проблемах создания программных продуктов и специфике их взаимодействия с операционной системой, Для них разрабатывают специальные программные продукты, ориентированные на определенную предметную область. Такие продукты условно можно разделить па продукты общего назначения, профессиональные среды или пакеты, обучающие системы, развлекающие программы и т. д.
Продукты общего назначения используют разные группы пользователей. К ним можно отнести текстовые редакторы, например, WinWord, электронные таблицы типа Excel, графические редакторы, информационные системы общего назначения, например, карта Москвы, программы-переводчики, и т. п.
Профессиональные продукты предназначены для специалистов в различных областях, например, к ним можно отнести:
• системы автоматизации проектирования, ориентированные на различные технические области;
• системы-тренажеры, например, тренажер для отработки действий пилотов в аварийной ситуации;
• бухгалтерские системы, например. 1C;
• издательские системы, например, PageMaker, QuarkXpress;
• профессиональные графические системы, например, Adobe Illustrator, PhotoShop, CorelDraw и т. п.;
• экспертные системы и т. д.
Системы автоматизации производственных процессов отличаются от профессиональных тем, что они ориентированы на пользователей разных профессий, связанных единым производственным процессом.
Обучающие программы и системы в соответствии со своим названием предназначены для обучения, например, иностранным языкам, правилам дорожного движения и т. п.
К развлекающим относят игровые программы, музыкальные программы, опять же информационные системы, но с тестами развлекающего характера, например гороскопы и т. п.
Г и б р и д н ы е системы сочетают в себе признаки системного и прикладного программного обеспечения. Как правило, это большие, но узкоспециализированные системы, предназначенные для управления технологическими процессами различных типов в режиме реального времени. Для повышения надежности и снижения времени обработки в такие системы обычно включают программы, обеспечивающие выполнение функций операционных систем.
К каждому из перечисленных выше типов программного обеспечения при разработке, помимо функциональных, обычно предъявляют еще и определенные эксплуатационные требования.