276.00K

Основы конструирования программного обеспечения

1.

Основы
конструирования
программного
обеспечения

2.

Программы – данные, предназначенные для управления
конкретными компонентами системы обработки информации в
целях реализации определенного алгоритма.
Программное обеспечение – совокупностть программ системы
обработки информации и программных документов, необходимых
для эксплуатации этих программ.
Компонент – программа, рассматриваемая как единое целое,
выполняющая
законченную
функцию
и
применяемая
самостоятельно или в составе комплекса.
Комплекс – программа, состоящая из двух и более компонентов или
комплексов,
выполняющих
взаимосвязанные
функции,
и
применяемая самостоятельно или в составе другого комплекса.

3.

Технология
разработки
программного
обеспечения – система инженерных принципов
для создания программного обеспечения
заданного качества в установленные сроки и с
минимальными затратами ресурсов.

4.

Классификация программного
обеспечения:
По назначению
По способу распространения
По способу приобретения
По доступности исходного кода

5.

Жизненный цикл ПО
Водопадная модель по Уинстону Ройсу
Системный анализ
Анализ требований
Проектирование
Кодирование
Тестирование
Сопровождение

6.

Спиральная модель
1988 г., Гарри Боэм
Анализ риска
Линия принятия решений
Оценивание
заказчиком
Конструирование
Переход к более
полной версии

7.

Модель быстрой
разработки
• Модель быстрой разработки RAD (Rapid Application
Development) : компонентная модель
Достоинства:
Обеспечивает уменьшение времени выполнения
итерации
Модель может быть использована для информационных
систем
Недостатки:
Не обеспечивают высокую производительность ПО
Не применимы в условиях высокого технического риска

8.

XP-процесс
• eXtreme Programming – экстремальное
программирование
одна из гибких методологий разработки программного
обеспечения. Авторы методологии — Кент Бек, Уорд
Каннингем, Мартин Фаулер и другие.
1999 г., Кент Бек
Основная задача – устранить высокую стоимость
изменений ПО
Используется в малых и средних по численности
группах разработчиков (10 человек различной
квалификации)
Характеристики:
Выход новой реализации – 2 месяца
Непрерывное и опережающее тестирование
Парное владение кодом

9.

Сбор и анализ требований
Этапы:
Определение концепции продукта
Документ о концепции и границах
проекта
Сбор требований
Документ о вариантах использования
Анализ требований
Спецификация требований к
программному продукту
Итог: техническое задание

10.

Участники разработки
требований
Заказчики или инвестор
Пользователи (подкласс заказчиков)
Аналитики требований
Разработчики
Тестеры
Технические писатели
Менеджер проекта
Сотрудники правового отдела
Производственники (внедрение)
Сотрудники отдела продаж
Сотрудники отдела технического
обслуживания

11.

Уровни требований
• Бизнес-требования
требования заказчиков ПО
• Требования пользователей
• Функциональные требования
функционал разрабатываемого ПО

12.

Спецификация требований
Спецификация требований – это документ, содержащий
подробное описание требований к готовому продукту.
Предназначен для разработчиков
Способы представления
требований:
Графические описания
Структурированные описания на
естественном языке
Формальные спецификации,
использующие
специальные языки (XML,
DFD, ERD, STD,
UML, блок-схемы)

13.

Шаблон спецификации (1)
1 Введение
1.1. Назначение
1.2. Соглашения, принятые документах
1.3. Предполагаемая аудитория и
рекомендации по чтению
1.4. Границы проекта
2. Общие описания
2.1. Общий взгляд на продукт
2.2. Особенности продукта
2.3. Классы и характеристики
пользователей
2.4. Операционная среда
2.5. Ограничения дизайна и реализации
2.6. Документация для пользователей
2.7. Предположения и зависимости
3. Функции системы
3.1. Функциональные требования

14.

Шаблон спецификации (2)
4. Требования к внешнему интерфейсу
4.1. Интерфейсы пользователя
4.2. Интерфейсы оборудования
4.3. Интерфейсы ПО
4.4. Интерфейсы передачи информации
5. Другие нефункциональные требования
5.1. Требования к производительности
5.2. Требования к охране труда
5.3. Требования к безопасности
5.4. Атрибуты качества

15.

Техническое задание (1)
1. Обоснование необходимости разработки программы
1.1. Постановка задачи
1.2. Сбор исходных материалов
1.3. Выбор и обоснование критериев эффективности и
качества разрабатываемой программы
1.4. Обоснование необходимости проведения научноисследовательских работ
2. Научно-исследовательские работы
2.1. Определение структуры входных и выходных
данных
2.2. Предварительный выбор метода решения задачи
2.3. Обоснование целесообразности применения
ранее разработанных программ
2.4. Определение требований к техническим
средствам
2.5. Обоснование принципиальной возможности
решения поставленной задачи

16.

Техническое задание (2)
3. Разработка и утверждения технического
задания
3.1. Определение требований к программе
3.2. Разработка технико-экономического
обоснования разработки программы
3.3. Определение стадий, этапов и сроков
разработки программы и документации
на нее
3.4. Выбор языков программирования
3.5. Определение необходимости проведения
научно-исследовательских работ на
следующих стадиях
3.6. Согласование и утверждение
технического задания

17.

Этапы проектирования (1)
Модели ПО:
•Информационная
Описание информации, с которой будет работать ПО.
Разрабатываются структуры данных
•Функциональная
Определяется перечень функций, выполняемых ПО. Разработка
используемых алгоритмов
•Поведенческая
Описание работы системы. Основа для разработки архитектуры ПО

18.

Этапы проектирования (2)
• Предварительное
проектирование
Определение архитектуры будущего ПО
• Детальное проектирование
Уточнение архитектуры, определение
структуры данных и алгоритмы для их
обработки

19.

Эскизный проект
1.Разработка эскизного проекта:
1.1 Предварительная разработка
структуры входных и выходных
данных
1.2 Уточнение методов решения задачи
1.3 Разработка общего описания
алгоритма решения задачи
1.4 Разработка технико-экономического
обоснования
2. Утверждение эскизного проекта
2.1 Разработка пояснительной записки
2.2 Согласование и утверждение

20.

Технический проект(1)
1 Разработка технического проекта
1.1 Уточнение структуры входных и выходных
данных
1.2 Разработка алгоритма решения задачи
1.3 Определение формы входных и выходных
данных
1.4 Определение семантики и синтаксиса
языка
1.5 Разработка структуры программы
1.6 Окончательное определение
конфигурации технических средств.

21.

Технический проект(2)
2. Утверждение технического проекта
2.1 Разработка плана мероприятий по
разработке и внедрению программы
2.2. Разработка пояснительной записки
2.3 Согласование и утверждение
технического проекта

22.

Общие принципы тестирования
•Тестирование обнаруживает:
ошибки в вычислениях,
логические ошибки,
несоответствие функций программы
и ее назначения (неполнота функций),
несоответствие функций программы требованиям
заказчика,
частые отказы, сбои.
•Тестирование не доказывает безошибочность
программы!
•Принципы тестирования (≪черного ящика≫ и
≪белого ящика≫

23.

Тестирование «черного ящика»
•Используется для тестирования функций
программы (интерфейса пользователя)
•Управляющая структура тестируемого кода
не известна, а известно, какой должен быть
результат
F(x)

24.

Тестирование «белого ящика»
•Позволяет обнаружить ошибки в вычислениях и в
логике.
•Основано на анализе управляющей структуры
программного кода.
•Осуществляется проверка всех независимых
маршрутов(путей).
•Недостаток: если путей много, тестирование
трудоемко.

25.

Этапы тестирования: (1)
•Тестирование элементов
Автономно проверяется каждый модуль (белый
ящик)
•Тестирование интеграции
Тестирование группы модулей. Проверка их
стыковки и взаимного влияния (черный ящик)
•Тестирования правильности.
Проверка реализации функциональных и иных
требований . Оценка соответствия программного
обеспечения техническому заданию (черный ящик)
•Системное тестирование
Проверка правильности объединения всех
элементов вычислительной системы,
оборудования и программного обеспечения,
реализацию с системных требований

26.

Дополнительные методы тестирования:
•Тестирование восстановления после отказов и сбоев
•Тестирование производительности
•Стрессовое тестирование
•Регрессивное тестирование

27.

Рабочий проект
1.Разработка программы
1.1 Программирование и отладка программы
2. Разработка программной документации
2.1 Разработка программных документов в
соответствии с требованиями ГОСТ 19.101-77
3. Испытания программы
3.1 Разработка, согласование и утверждение
порядка и методики испытаний
3.2. Проведение предварительных
государственных, межведомственных, приемосдаточных и других видов испытаний.
3.3 Корректировка программы и программной
документации по результатам испытаний.

28.

Внедрение:
1.
Подготовка и передача программы
1.1 Подготовка и передача программы и
программной документации для
сопровождения
1.2. Оформление и утверждение акта о
передаче программы на сопровождение
1.3. Передача программы в фонд
алгоритмов и программ

29.

Документирование ПО
ГОСТ
Единая система программной документации
(ЕСПД)
(ГОСТ 19.00177 – ГОСТ 19.60478) и
ГОСТ 19.70190 (ИСО 580785)
(ЕСПД. Схемы алгоритмов, программ, данных и
систем.
Условные обозначения и правила выполнения).

30.

Инструментальные средства
программиста и case технологии
Computer Aided Software Engineering
Erwin - средство для автоматизации анализа и
проектирования моделей данных и преобразования их
в программный код
Bpwin - средство для проектирования и создания
спецификации программной или информационной
системы
Project Workbench - средство поддержки планирования
и его контроля
IBM-Rational
Rational Software Architect
English     Русский Правила