
- •Оглавление
- •9. Тестирование программных продуктов …………………..263
- •10. Отладка программного обеспечения …………………..287
- •11.Составление программной документации …………………..300
- •Предисловие
- •Введение
- •1. Технология программирования. Основные понятия и подходы
- •1.1. Технология программирования и основные этапы ее развития
- •1.2. Проблемы разработки сложных программных систем
- •1.3. Блочно-иерархический подход к созданию сложных систем
- •1.4. Жизненный цикл и этапы разработки программного обеспечения
- •1.5. Эволюция моделей жизненного цикла программного обеспечения
- •1.6. Ускорение разработки программного обеспечения. Технология rad
- •1.7. Оценка качества процессов создания программного обеспечения
- •Контрольные вопросы
- •2. Приемы обеспечения технологичности программных продуктов
- •2.1. Понятие технологичности программного обеспечения
- •2.2. Модули и их свойства
- •2.3. Нисходящая и восходящая разработка программного обеспечения
- •2.5. Стиль оформления программы
- •2.6. Эффективность и технологичность
- •2.7. Программирование «с защитой от ошибок»
- •2.8. Сквозной структурный контроль
- •Контрольные вопросы и задания
- •3. Определение требований к программному обеспечению и исходных данных для его проектирования
- •3.1. Классификация программных продуктов по функциональному признаку
- •3.2. Основные эксплуатационные требования к программным продуктам
- •3.3. Предпроектные исследования предметной области
- •3.4. Разработка технического задания
- •1.Введение
- •2. Основание для разработки
- •3. Назначение
- •4. Требования к программе или программному изделию
- •5. Требования к программной документации
- •4. Требования к программе или программному изделию
- •5. Требования к программной документации
- •1. Введение
- •2. Основание для разработки
- •3. Назначение
- •4. Требования к программе или программному изделию
- •5. Требования к программной документации
- •3.5. Принципиальные решения начальных этапов проектирования
- •Контрольные вопросы и задания
- •4. Анализ требований и определение спецификаций программного обеспечения при структурном подходе
- •4.1. Спецификации программного обеспечения при структурном подходе
- •4.2. Диаграммы переходов состояний
- •4.3. Функциональные диаграммы
- •4.4. Диаграммы потоков данных
- •4.5. Структуры данных и диаграммы отношений компонентов данных
- •4.6. Математические модели задач, разработка или выбор методов решения
- •Контрольные вопросы и задания
- •5. Проектирование программного обеспечения при структурном подходе
- •5.1. Разработка структурной и функциональной схем
- •5.2. Использование метода пошаговой детализации для проектирования структуры программного обеспечения
- •5.3. Структурные карты Константайна
- •5.4. Проектирование структур данных
- •5.5. Проектирование программного обеспечения, основанное на декомпозиции данных
- •5.6. Case-технологии, основанные на структурных методологиях анализа и проектирования
- •Контрольные вопросы и задания
- •6. Анализ требований и определение спецификаций программного обеспечения при объектном подходе
- •6.2. Определение «вариантов использования»
- •Типичный ход событий (окончание)
- •Альтернатива
- •6.3. Построение концептуальной модели предметной области
- •6.4. Описание поведения. Системные события и операции
- •Контрольные вопросы и задания
- •7. Проектирование программного обеспечения при объектном подходе
- •7.1. Разработка структуры программного обеспечения при объектном подходе
- •7.2. Определение отношений между объектами
- •7.3. Уточнение отношений классов
- •7.4. Проектирование классов
- •7.5. Компоновка программных компонентов
- •7.6. Проектирование размещения программных компонентов для распределенных программных систем
- •7.7. Особенность спиральной модели разработки. Реорганизация проекта
- •Контрольные вопросы и задания
- •8. Разработка пользовательских интерфейсов
- •8.1. Типы пользовательских интерфейсов и этапы их разработки
- •8.2. Психофизические особенности человека, связанные с восприятием, запоминанием и обработкой информации
- •8.3. Пользовательская и программная модели интерфейса
- •8.4. Классификации диалогов и общие принципы их разработки
- •8.5. Основные компоненты графических пользовательских интерфейсов
- •8.6. Реализация диалогов в графическом пользовательском интерфейсе
- •8.7. Пользовательские интерфейсы прямого манипулирования и их проектирование
- •8.8. Интеллектуальные элементы пользовательских интерфейсов
- •Контрольные вопросы и задания
- •9. Тестирование программных продуктов
- •9.1. Виды контроля качества разрабатываемого программного обеспечения
- •9.2. Ручной контроль программного обеспечения
- •9.3. Структурное тестирование
- •9.4. Функциональное тестирование
- •9.5. Тестирования модулей и комплексное тестирование
- •9.6. Оценочное тестирование
- •Контрольные вопросы и задания
- •10. Отладка программного обеспечения
- •10.1. Классификация ошибок
- •10.2. Методы отладки программного обеспечения
- •10.3. Методы и средства получения дополнительной информации
- •10.4. Общая методика отладки программного обеспечения
- •Контрольные вопросы
- •11. Составление программной документации
- •11.1. Виды программных документов
- •11.2. Пояснительная записка
Контрольные вопросы
Что понимают под термином «технология программирования»?
Что называют подходом и чем подход отличается от метода?
Назовите основные периоды истории развития технологии программирования. Чем характеризуются эти периоды? Как изменялись основные подходы и используемые средства?
Дайте определение понятию «сложная иерархическая система». Какой подход используют при разработке таких систем? На каких характеристиках этих систем он основан? В чем особенность данного подхода при разработке программного обеспечения?
Что понимают под термином «жизненный цикл программного обеспечения»? Какие основные процессы включают в это понятие?
Назовите основные этапы разработки программного обеспечения. Какие основные задачи решаются на этих этапах?
Назовите основные модели жизненного цикла программного обеспечения. С чем связано появление новых моделей?
Какие технологии называют CASE-технологиями? Почему?
Назовите основные составляющие любой CASE-технологии.
Перечислите основные положения технологии RAD? Какие программные системы нельзя разрабатывать с использованием этой технологии?
Что понимают под моделями качества процессов разработки программного обеспечения? Для чего они разработаны? Что гарантирует сертификация качества процессов? Почему?
Почему мы говорим, что современный этап развития технологии программирования характеризуется переходом от ремесленного к промышленному производству программного обеспечения?
2. Приемы обеспечения технологичности программных продуктов
В условиях индустриального подхода к разработке и сопровождению программного обеспечения особый вес приобретают технологические характеристики разрабатываемых программ. Для обеспечения необходимых технологических свойств применяют специальные технологические приемы и следуют определенным методикам, сформулированным всем предыдущим опытом создания программного обеспечения. К таким приемам и методикам относят правила декомпозиции, методы проектирования, программирования и контроля качества, которые под общим названием «структурный подход к программированию» были сформулированы еще в 60-х годах XX в. В его основу были положены следующие основные концепции:
нисходящая разработка;
модульное программирование;
структурное программирование;
сквозной структурный контроль.
2.1. Понятие технологичности программного обеспечения
Под технологичностью понимают качество проекта программного продукта, от которого зависят трудовые и материальные затраты на его реализацию и последующие модификации. Хороший проект сравнительно быстро и легко кодируется, тестируется, отлаживается и модифицируется.
Из опыта нескольких поколений разработчиков программного обеспечения известно, что технологичность программного обеспечения определяется проработанностью его моделей, уровнем независимости модулей, стилем программирования и степенью повторного использования кодов.
Чем лучше проработана модель разрабатываемого программного обеспечения, тем четче определены подзадачи и структуры данных, хранящие входную, промежуточную и выходную информацию, тем проще их проектирование и реализация и меньше вероятность ошибок, для исправления которых потребуется существенно изменять программу. Чем выше независимость модулей, тем их легче понять, реализовывать, модифицировать, а также находить в них ошибки и исправлять их.
Стиль программирования, под которым понимают стиль оформления программ и их «структурность», также существенно влияет на читаемость программного кода и количество ошибок программирования. Кризис 60-х годов XX в. был вызван в том числе и стилем программирования, при котором программа напоминала клубок спутанных ниток или блюдо спагетти, и отсутствием языковых конструкций поддержки «структурного» стиля.
Увеличение степени повторного использования кодов предполагает как использование ранее разработанных библиотек подпрограмм или классов, так и унификацию кодов текущей разработки. Причем для данного критерия ситуация не так однозначна, как в предыдущих случаях: если степень повторного использования кодов повышается искусственно (например, путем разработки «суперуниверсальных» процедур), то технологичность проекта может существенно снизиться.
Как следует из определения, высокая технологичность проекта особенно важна, если разрабатывается программный продукт, рассчитанный на многолетнее интенсивное использование, или необходимо обеспечить повышенные требования к его качеству.