С. А. Орлов технологии разработки

С. А. Орлов

ТЕХНОЛОГИИ РАЗРАБОТКИ

ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

РАЗРАБОТКА СЛОЖНЫХ ПРОГРАММНЫХ СИСТЕМ

Допущено Министерством образования Российской Федерации

в качестве учебного пособия для студентов высших учебных заведений,

обучающихся по направлению подготовки бакалавров и магистров

«Информатика и вычислительная техника»

Москва • Санкт-Петербург • Нижний Новгород • Воронеж

Ростов-на-Дону • Екатеринбург • Самара

Киев • Харьков • Минск

2002

Рецензенты:

Филиппович Ю. Н., канд. техн. наук, доцент Московского государственного Университета печати

Ревунков Г. И., канд. техн. наук, доцент Московского государственного технического Университета

им. Н Э. Баумана

Технологии разработки программного обеспечения: Учебник/ С. Орлов. — СПб.: Питер, 2002. — 464 с.: ил.

ISBN 5-94723-145-Х

Учебник посвящен систематическому изложению принципов, моделей и методов, используемых в инженерном цикле разработки сложных программных продуктов. Изложены классические основы программной инженерии, показаны последние научные и практические достижения, характеризующие динамику развития этой области; продемонстрирован комплексный подход к решению наиболее важных вопросов, возникающих в больших программных проектах. В основу материала положен двенадцатилетний опыт преподавания автором соответствующих дисциплин.

Книга допущена Министерством образования РФ в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению подготовки бакалавров и магистров «Информатика и вычислительная техника».

© ЗАО Издательский дом «Питер», 2002

Введение

Известно, что основной задачей первых трех десятилетий компьютерной эры являлось развитие аппаратных компьютерных средств. Это было обусловлено высокой стоимостью обработки и хранения данных. В 80-е годы успехи микроэлектроники привели к резкому увеличению производительности компьютера при значительном снижении стоимости.

Основной задачей 90-х годов и начала XXI века стало совершенствование качества компьютерных приложений, возможности которых целиком определяются программным обеспечением (ПО).

Современный персональный компьютер теперь имеет производительность большой ЭВМ 80-х годов. Сняты практически все аппаратные ограничения на решение задач. Оставшиеся ограничения приходятся на долю ПО.

Чрезвычайно актуальными стали следующие проблемы:

  • аппаратная сложность опережает наше умение строить ПО, использующее потенциальные возможности аппаратуры;

  • наше умение строить новые программы отстает от требований к новым программам;

  • нашим возможностям эксплуатировать существующие программы угрожает низкое качество их разработки.

Ключом к решению этих проблем является грамотная организация процесса создания ПО, реализация технологических принципов промышленного конструирования программных систем (ПС).

Настоящий учебник посвящен систематическому изложению принципов, моделей и методов (формирования требований, анализа, синтеза и тестирования), используемых в инженерном цикле разработки сложных программных продуктов.

В основу материала положен двенадцатилетний опыт постановки и преподавания автором соответствующих дисциплин в Рижском авиационном университете и Рижском институте транспорта и связи. Базовый курс «Технология конструирования программного обеспечения» прослушали больше тысячи студентов, работающих теперь в инфраструктуре мировой программной индустрии, в самых разных странах и на самых разных континентах.

Автор стремился к достижению трех целей:

  • изложить классические основы, отражающие накопленный мировой опыт программной инженерии;

  • показать последние научные и практические достижения, характеризующие динамику развития в области Software Engineering;

  • обеспечить комплексный охват наиболее важных вопросов, возникающих в больших программных проектах.

Компьютерные науки вообще и программная инженерия в частности — очень популярные и стремительно развивающиеся области знаний. Обоснование простое: человеческое общество XXI века — информационное общество. Об этом говорят цифры: в ведущих странах занятость населения в информационной сфере составляет 60%, а в сфере материального производства — 40%. Именно поэтому специальности направления «Компьютерные науки и информационные технологии» гарантируют приобретение наиболее престижных, дефицитных и высокооплачиваемых профессий. Так считают во всех развитых странах мира. Ведь не зря утверждают: «Кто владеет информацией — тот владеет миром!»

Поэтому понятно то пристальное внимание, которое уделяет компьютерному образованию мировое сообщество, понятно стремление унифицировать и упорядочить знания, необходимые специалисту этого направления. Одними из результатов такой работы являются международный стандарт по компьютерному образованию Computing Curricula 2001 — Computer Science и международный стандарт по программной инженерии IEEE/ACM Software Engineering Body of Knowledge SWEBOK 2001.

Содержание данного учебника отвечает рекомендациям этих стандартов. Учебник состоит из 17 глав.

Первая глава посвящена организации классических, современных и перспективных процессов разработки ПО.

Вторая глава знакомит с вопросами руководства программными проектами — планированием, оценкой затрат. Вводятся размерно-ориентированные и функционально-ориентированные метрики затрат, обсуждается методика их применения, описывается наиболее популярная модель для оценивания затрат — СОСОМО II. Приводятся примеры предварительной оценки программного проекта и анализа чувствительности проекта к изменению условий разработки.

Третья глава рассматривает классические методы анализа при разработке ПО.

Четвертая глава отведена основам проектирования программных систем. Здесь обсуждаются архитектурные модели ПО, основные проектные характеристики: модульность, информационная закрытость, сложность, связность, сцепление и метрики для их оценки.

Пятая глава описывает классические методы проектирования ПО.

Шестая глава определяет базовые понятия структурного тестирования программного обеспечения (по принципу «белого ящика») и знакомит с наиболее популярными методиками данного вида тестирования: тестированием базового пути, тестированием ветвей и операторов отношений, тестированием потоков данных, тестированием циклов.

Седьмая глава вводит в круг понятий функционального тестирования ПО и описывает конкретные способы тестирования — путем разбиения по эквивалентности, анализа граничных значений, построения диаграмм причин-следствий.

Восьмая глава ориентирована на комплексное изложение содержания процесса тестирования: тестирование модулей, тестирование интеграции модулей в программную систему; тестирование правильности, при котором проверяется соответствие системы требованиям заказчика; системное тестирование, при котором проверяется корректность встраивания ПО в цельную компьютерную систему. Здесь же рассматривается организация отладки ПО (с целью устранения выявленных при тестировании ошибок).

Девятая глава посвящена принципам объектно-ориентированного представления программных систем — особенностям их абстрагирования, инкапсуляции, модульности, построения иерархии. Обсуждаются характеристики основных строительных элементов объектно-ориентированного ПО — объектов и классов, а также отношения между ними.

В десятой главе дается сжатое изложение базовых понятий языка визуального моделирования — UML, рассматривается его современная версия 1.4.

Одиннадцатая глава представляет инструментарий UML для задания статических моделей, описывающих структуру объектно-ориентированных программных систем.

Двенадцатая глава отображает самый многочисленный инструментарий UML — инструментарий для задания динамических моделей, описывающих поведение объектно-ориентированных программных систем. Впрочем, здесь излагаются и смежные вопросы: формирование модели требований к разработке ПО с помощью аппарата Use Case, фиксация комплексных динамических решений с помощью коопераций и паттернов, бизнес-моделирование как средство предпроектного анализа организации-заказчика.

Тринадцатая глава отведена моделям реализации, описывающим формы представления объектно-ориентированных программных систем в физическом мире. Помимо компонентов, узлов и соответствующих диаграмм их обитания здесь приводится пример современной компонентной модели от Microsoft — COM.

В четырнадцатой главе обсуждается метрический аппарат для оценки качества объектно-ориентированных проектных решений: метрики оценки объектно-ориентированной связности, сцепления; широко известные наборы метрик Чидамбера и Кемерера, Фернандо Абреу, Лоренца и Кидда; описывается методика их применения.

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

Шестнадцатая глава обучает особенностям объектно-ориентированного тестирования, проведению такого тестирования на уровне визуальных моделей, уровне методов, уровне классов и уровне взаимодействия классов.

Семнадцатая глава демонстрирует возможности применения CASE-системы Rational Rose к решению задач автоматизации формирования требований, анализа, проектирования, компонентной упаковки и программирования программного продукта.

Учебник предназначен для студентов бакалаврского и магистерского уровней компьютерных специальностей, может быть полезен преподавателям, разработчикам промышленного программного обеспечения, менеджерам программных проектов.

Вот и все. Насколько удалась эта работа — судить Вам, уважаемый читатель.

Благодарности

Прежде всего, мои слова искренней любви родителям — Нине Николаевне и Александру Ивановичу Орловым (светлая им память).

Самые теплые слова благодарности моей семье, родным, любимым и близким мне людям — Лизе, Иванне, Жене. Без их долготерпения, внимания, поддержки, доброжелательности и сердечной заботы эта книга никогда не была бы написана. Моя признательность также и верному сеттеру Эльфу — это он внимательно следил завсеми моими ночными бдениями и клал мне лапу на плечо в особо трудные минуты.

Выход в свет этой работы был бы невозможен вне творческой атмосферы, бесчисленных вопросов и положительной обратной связи, которую создавали мои многочисленные студенты.

Хочется отметить, что корабль-учебник не прибыл бы в порт назначения без опытного капитана (руководителя проекта) Андрея Васильева. Автор искренне признателен талантливым сотрудникам издательства «Питер».

И конечно, огромное спасибо моим коллегам, всем людям, которые принимали участие в моем путешествии по городам, улицам и бесконечным переулкам страны ПРОГРАММНАЯ ИНЖЕНЕРИЯ.

От издательства

Ваши замечания, предложения, вопросы вы можете отправить по адресу электронной почты comp@ (издательство «Питер», компьютерная редакция). Мы будем рады узнать ваше мнение.

Все исходные тексты, приведенные в книге, вы можете найти по адресу http:// /download.

На web-сайте издательства вы найдете подробную информацию о наших книгах.

  1. Программа дисциплины Объектно-ориентированные case-технологии для направления 010500. 62 Прикладная математика и информатика подготовки бакалавров Автор Незнанов А. А. (aneznanov@hse ru)

    Программа дисциплины
    Программа дисциплины Объектно-ориентированные CASE-технологии (Технологии разработки сложных программных систем) для подготовки бакалавров по направлению 010500.
  2. Учебно-методический комплекс по дисциплине разработка и стандартизация программных средств и информационных технологий

    Учебно-методический комплекс
    В данном курсе изучаются такие разделы как: Прикладные программы с высокой степенью автоматизации управления. Адаптируемость пакетов программ. Проектирования программ сложной структуры.
  3. Учебно-методический комплекс по дисциплине " разработка и стандартизация программных средств и информационных технологий " (факультет прикладной информатики

    Учебно-методический комплекс
    Спецкурс «РАЗРАБОТКА И СТАНДАРТИЗАЦИЯ ПРОГРАММНЫХ СРЕДСТВ И ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ» нацелен на формирование у будущих учителей информатики умения реализовать, в первую очередь, педагогический потенциал компьютера.
  4. Рабочая программа дисциплина «Разработка и стандартизация программных средств и информационных технологий» Специальность (1)

    Рабочая программа
    Рабочая программа составлена на основании примерной программы дисциплины «Разработка и стандартизация программных средств и информационных технологий»
  5. Рабочая программа дисциплина «Разработка и стандартизация программных средств и информационных технологий» Специальность (2)

    Рабочая программа
    Целью изучения курса “Разработка и стандартизация программных средств и информационных технологий” является подготовка у будущих специалистов квалификации «информатик экономист» углубленная компьютерная и специальная подготовка в области
  6. Разработка комплексной системы управления информационным взаимодействием инновационно-ориентированных экономических субъектов

    Диссертация
    Защита состоится «17 » июня 2008 года в 15-00 часов на заседании регионального диссертационного совета по экономическим наукам ДМ 212.208.28 при «Южном федеральном университете» по адресу:
  7. Технология и организация туроператорских и турагентских услуг

    Документ
    1. Цель дисциплины: овладение студентами необходимым и достаточным уровнем иноязычной коммуникативной компетенции для решения социально-коммуникативных задач в различных областях профессиональной, научной, культурной и бытовой сфер
  8. Разработка программного модуля расчета метрик исходного кода программ Направление: 230100 Информатика и вычислительная техника Специальность: 230101 Вычислительные машины, комплексы, системы и сети

    Документ
    1) Перечень объектно-ориентированных метрик и правила их расчета. 2) Спецификация языка программирования Java. 3) Руководство по разработке модулей расширения программной платформы NetBeanse.
  9. Разработка электронного учебно-методического комплекса

    Документ
    Первые опыты по применению компьютеров в образовании относятся к началу 60-тых годов. Появились первые программные обучающие средства в виде автоматизированных учебных курсов, затем автоматизированных обучающих систем (АОС), реализующих

Другие похожие документы..