Краткое содержание лекций по курсу «Объектно-ориентированный анализ и проектирование»

Краткое содержание лекций по курсу «Объектно-ориентированный анализ и проектирование»

Раздел 1. Методические аспекты проектирования программного обеспечения

Лекция 1.1. Определение проекта и проектирования. Основные особенности и проблемы современных программных проектов

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

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

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

Особенности современных проектов ПО:

  • структурная, функциональная и информационная сложность объекта внедрения;

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

  • отсутствие полных аналогов и высокая доля вновь разрабатываемого ПО;

  • наличие унаследованного ПО и необходимость его интеграции с разрабатываемым ПО;

  • территориально распределенная и неоднородная среда функционирования;

  • большое количество участников проектирования, разобщенность и разнородность отдельных групп разработчиков по уровню квалификации и опыту;

  • значительная длительность жизненного цикла ПО.

С конца 60-х годов прошлого века до сегодняшних дней продолжается так называемый «кризис ПО». Выражается он в том, что большие проекты выполняются с превышением сметы расходов и/или сроков отведенных на разработку, а разработанное ПО не обладает требуемыми функциональными возможностями, имеет низкую производительность и качество. По результатам исследований американской индустрии разработки ПО, выполненных в 1995 году, только 16% проектов завершились в срок, не превысили запланированный бюджет и реализовали все требуемые функции и возможности. 53% проектов завершились с опозданием, расходы превысили запланированный бюджет, требуемые функции не были реализованы в полном объеме. 31% проектов были аннулированы до завершения. Для двух последних категорий проектов бюджет среднего проекта оказался превышенным на 89%, а срок выполнения – на 122%. В последние годы процентное соотношение трех перечисленных категорий проектов незначительно изменяется в лучшую сторону.

Причины неудач:

  • нечеткая и неполная формулировка требований;

  • недостаточное вовлечение пользователей в работу над проектом;

  • отсутствие необходимых ресурсов;

  • неудовлетворительное планирование и отсутствие грамотного управления проектом;

  • частое изменение требований и спецификаций;

  • новизна и несовершенство используемой технологии;

  • недостаточная поддержка со стороны высшего руководства;

  • недостаточно высокая квалификация разработчиков, отсутствие необходимого опыта.

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

Литература к лекции 1.1

  1. Брукс П. Мифический человеко-месяц или как создаются программные системы.: Пер. с англ. – СПб.: Символ-Плюс, 1999.

  2. Йордон Э. Путь камикадзе.: Пер. с англ. – М.: Лори, 2001.

  3. Соммервил И. Инженерия программного обеспечения. 6-е изд.: Пер. с англ. – М.: Вильямс, 2002. – Глава 1.

Лекция 1.2. Жизненный цикл программного обеспечения. Стандарты, регламентирующие жизненный цикл

Одно из базовых понятий инженерии ПО – жизненный цикл ПО. Жизненный цикл ПО (ЖЦ ПО) – период времени от момента принятия решения о создании ПО до момента полного вывода ПО из эксплуатации. ЖЦ ПО регламентируется международными и национальными стандартами: ISO/IEC 12207: 1995, ГОСТ Р ИСО/МЭК 12207–99. В рамках технологий создания ПО понятие ЖЦ уточняется, но указанные стандарты не нарушаются.

Два взгляда на ЖЦ ПО: статический и динамический. Первый рассматривает ЖЦ как совокупность процессов ЖЦ. Процесс ЖЦ – набор взаимосвязанных действий, преобразующих некоторые входные данные и ресурсы в выходные. Каждый процесс характеризуется задачами, методами их решения, действующими лицами. Процессы ЖЦ протекают параллельно. Состав процессов ЖЦ ПО:

  • основные (приобретение, поставка, разработка, эксплуатация, сопровождение);

  • вспомогательные (документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, совместная оценка, аудит, разрешение проблем);

  • организационные (управление, создание инфраструктуры, усовершенствование, обучение).

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

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

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

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

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

Процесс документирования включает в себя следующие действия: подготовительную работу; проектирование и разработку документации; выпуск документации; сопровождение.

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

Процесс обеспечения качества включает в себя следующие действия: подготовительную работу; обеспечение качества продукта; обеспечение качества процесса; обеспечение других показателей качества ПО. Задачи обеспечения качества: гарантированное соответствие ПО требованиям заказчика, зафиксированным в договоре; гарантированнее соответствие процессов ЖЦ ПО, методов разработки, квалификации персонала установленным стандартам.

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

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

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

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

Процесс разрешения проблем предусматривает анализ и разрешение проблем, возникающих в течение ЖЦ ПО.

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

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

Процесс усовершенствования предусматривает оценку, измерение, контроль и усовершенствование процессов ЖЦ ПО. Основная задача усовершенствования – повышение производительности труда.

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

Процессы ЖЦ ПО взаимосвязаны.

Динамический взгляд на ЖЦ ПО отражается в модели ЖЦ во времени. Модель ЖЦ ПО – это структура, определяющая последовательность выполнения и взаимосвязи процессов, действий и задач на протяжении ЖЦ. В любой модели ЖЦ рассматривается как совокупность стадий ЖЦ. Стадия ЖЦ – это часть ЖЦ ограниченная временными рамками, по завершении которой достигается определенный важный результат в соответствии с требованиями для данной стадии ЖЦ.

Модели ЖЦ:

  • каскадная (водопадная);

  • эволюционная;

  • модель, основанная на формальных преобразованиях;

  • итерационные модели (пошаговая и спиральная).

Особенности каскадной модели: фиксация требований к системе в начале проекта; переход со стадии на стадию только после полного завершения работ на текущей стадии; недопустимость возврата на пройденные стадии; жесткая привязка процессов ЖЦ к стадиям ЖЦ. Достоинства: в конце каждой стадии проект находится в согласованном и полном состоянии; легко планировать и управлять. Недостатки: позднее обнаружение проблем; избыточность документации; разработка ПО в целом, без использования преимуществ декомпозиции; неравномерная нагрузка на членов группы, работающей над проектом, в ходе ЖЦ.

Особенности эволюционной модели: поэтапное уточнение требований к ПО с помощью прототипирования; параллельное осуществление анализа требований, разработки и верификации. Достоинства: полный учет требований заказчика, большее его участие в проекте; равномерная нагрузка на группу; раннее обнаружение проблем и их разрешение по мере возникновения. Недостатки: плохая документированность; запутанность создаваемого ПО и сложность внесения изменений; сложность планирования; необходимость специальных средств и технологий разработки ПО.

Особенности модели ЖЦ, основанной на формальных преобразованиях: использование специальных нотаций для формального описания требований; кодирование и тестирование заменяется процессом предобразования формальной спецификации в исполняемую программу. Достоинства: формальные методы гарантируют соответствие ПО спецификациям требований к ПО, т. о. вопросы надежности и безопасности решаются сами собой. Недостатки: большие системы сложно описать формальными спецификациями; требуются специально подготовленные и высоко квалифицированные разработчики; есть зависимость от средств разработки и нотации спецификаций.

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

Литература к лекции 1.2

  1. Вендров А. М. Проектирование программного обеспечения экономических информационных систем. 2-е изд. – М.: Финансы и статистика, 2005. – Глава 1.

  2. Жоголев Е. А. Технология программирования. – М.: Научный мир, 2004. – Глава 3.

  3. Соммервил И. Инженерия программного обеспечения. 6-е изд.: Пер. с англ. – М.: Вильямс, 2002 – Глава 3.

  1. Программа курса «Объектно-ориентированный анализ и программирование» (ооаиП) для специализации «Информационные технологии в мэо»

    Программа курса
    Изучение основ современной методологии анализа бизнес-процессов, моделирования сложных систем и разработки корпоративных информационных систем для последующего применения полученных знаний в профессиональной деятельности экономиста-международника.
  2. Программа дисциплины "Объектно-ориентированный анализ и программирование"

    Программа дисциплины
    Цикл разработки программного обеспечения (ПО), назначение и содержание этапов. Роль анализа в процессе разработки программного обеспечения. Основные понятия объектно-ориентированного анализа.
  3. Лекция по курсу «Методология научного творчества»

    Лекция
    Становление научного метода. Рассматривая историю науки, можно отметить, что параллельно с процессом становления науки происходило формирование системы методологического сознания.
  4. Конспект лекций по курсу «Базы данных»

    План-конспект
    4 Заключение 3 Тесты 33 Лекция .
  5. Программа курса лекций (2 курс, 3 сем., 36 ч., экзамен) 4 Литература 6 ЭВМ в планировании и обработке физического эксперимента (2 курс, 3 сем., 72 ч., диф зачёт) 8 Программа курса лекций (36 часов) 8

    Программа курса
    Основные понятия об ЭВМ. Архитектура фон-Неймана, Гарвардская архитектура. Центральный процессор, память, внешние устройства. Понятие шины. Методы адресации памяти (прямая, непосредственная, регистровая, индексная, косвенная и т.
  6. Учебно-методический комплекс ди сциплины “ Объектно-ориентированный анализ и программирование ” Доклад Е. И. Забудского “ Объектно-ориентированный анализ и программиро­вание. (2)

    Учебно-методический комплекс
    В Материалах к практическим занятиям (раздел 4, стр. 4) приведены: тема и примерное количество аудиторных часов, отводимых на ее изучение; содержание; теория и листинги программ; резюме; контрольные вопросы и задания (упражнения) по
  7. Концепция современного анализа и проектирования информационных систем 12 Методология объектно-ориентированного программирования 13

    Лекция
    Процессор, способный выполнять команды, т. е. интерпретировать последовательности битов как инструкции для активизации предписываемых этими инструкциями действий.
  8. Учебное пособие по курсу «Технология программирования»

    Учебное пособие
    Учебное пособие по курсу «Технология программирования» написано на основе одноимённого курса лекций читаемых автором в Ухтинском Государственном Техническом Университете.
  9. Рабочая программа по курсу «Технология программирования» направления

    Рабочая программа
    Рабочая программа по курсу «Технология программирования» составлена в соответствии с учебными планами направления 654700 «Информационные системы» специальности 071900 «Информационные системы и технологии»

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