Опубликован: 20.07.2007 | Уровень: специалист | Доступ: платный
Лекция 2:

Элементы программной инженерии

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Аннотация: Приведены основные понятия программной инженерии, показана роль программной инженерии в современной системе разработки ПО. Раскрыты цели работы программных инженеров. Вводится общее понятие процесса создания программного продукта, понятия моделей процесса создания программного продукта

1. Вспоминая предыдущую лекцию

Наша предыдущая лекция целиком была посвящена знакомству с терминологией и введению в предмет. Сформулируем кратко некоторые выводы:

  • Программирование (Computer science) - молодая, активно развивающаяся область, за полвека своего развития преодолевшая огромный путь. Будучи как искусством, так и наукой, в наше время термин программирование приобрел качественно новую окраску, став одной из отраслей бизнеса.
  • Под IT-проектами можно понимать любые проекты в области информационных технологий. Мы далее будем рассматривать лишь те IT-проекты, целью которых является разработка программного обеспечения.
  • Программное обеспечение (Software) - набор компьютерных программ, процедур и связанной с ними документации и данных. Таким образом, программное обеспечение - это не просто программа. Это еще и документация и руководство пользователя. Вместо термина программное обеспечение часто используют термин программный продукт.
  • Для того чтобы бизнес, связанный с разработкой ПО, был успешным, необходимо выпускать качественное ПО, интересное потенциальным пользователям, делать это в срок, укладываться в имеющийся бюджет. К сожалению, доля проваленных проектов по-прежнему катастрофически высока.
  • Анализ рынка ПО в мире показывает большие темпы роста. В отрасль вкладываются огромные деньги. В России в отрасли IT наблюдается бум. Отрадный факт - укрепление Российских IT-компаний.
  • Основными причинами неудачи IT-проектов являются:

    Причина 1. Нереалистичные временные рамки.

    Причина 2. Недостаток количества исполнителей.

    Причина 3. Размытые границы проекта.

    Причина 4. Недостаток средств.

    Причина 5. Нехватка квалифицированных кадров.

  • Технологии программирования - путь к успеху в разработке ПО. Использование различных технологий позволяет преодолевать сложность решаемых задач и, соответственно, сложность создания качественного ПО. Среди основных технологий можно выделить следующие: структурное программирование, модульное программирование, объектно-ориентированное программирование, компонентное программирование.

2. Вместо введения

2.1. Источник материала

При написании данной лекции активно использовались материалы Иана Соммервилля (Ian Sommerville) - одного из наиболее уважаемых авторов в данной области.

Источник (на английском языке):

Источник (на русском языке):

  • Иан Соммервиль. Инженерия программного обеспечения. 6 изд, и.д. "Вильямс", 2002.
2.2. Цели лекции

В предыдущей лекции мы познакомились с базовыми понятиями и обсудили ряд проблем, которые возникают при разработке программного обеспечения. В данной лекции мы кратко рассмотрим основные понятия программной инженерии - отрасли, имеющей непосредственное отношение к разработке ПО. Заметим, что по программной инженерии написано большое количество объемных книг (см., например, предыдущий раздел). Существует масса терминологии, подходов, схем, стандартов, технологий... В этой лекции мы не ставим цели объять необъятное. Подробный курс по программной инженерии будет прочитан позже (его место в учебном плане - 3-4 курс). В нашем курсе мы постараемся лишь познакомиться с этой важной и сложной дисциплиной. Так, мы коснемся некоторой терминологии, немного затронем теорию, кратко поговорим о проблемах. На других лекциях мы поговорим о практических подходах к решению данных проблем.

3. Программная инженерия, основные понятия

3.1. Инженеры и программные инженеры

Говоря о программной инженерии, необходимо выяснить, кто такие инженеры.

За ответом обратимся к Большой Советской Энциклопедии:

Инженер (франц. ingenieur, от лат. ingenium - способность, изобретательность), специалист с высшим техническим образованием. Первоначально - название лиц, управлявших военными машинами [2.5].

Понятие гражданский инженер появилось в 16 в. в Голландии применительно к строителям мостов и дорог, затем в Англии и др. странах. Первые учебные заведения для подготовки инженеров были созданы в 17 в. в Дании, в 18 в. - в Великобритании, Франции, Германии, Австрии и др. В России первая инженерная школа основана Петром I в 1712 в Москве. В Петербурге были открыты Горное училище, приравненное к академиям (1773), Институт инженеров путей сообщения (1809), Училище гражданских инженеров (1832, с 1882 - Институт гражданских инженеров), Инженерная академия (1855). С 19 в. за рубежом стали различать инженеров-практиков, или профессиональных инженеров (по существу специалистов, имевших квалификацию техника), и дипломированных инженеров, получивших высшее техническое образование (Civil Engineer) [2.5].

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

3.2. Программная инженерия как инженерная дисциплина

Теперь попробуем ответить на вопрос, что такое программная инженерия.

Программная инженерия (инженерия программного обеспечения, software engineering) - инженерная дисциплина, связанная с теорией, методами и средствами профессиональной разработки ПО [2.1, 2.2, 2.3].

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

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Магомедрасул Гусейнов
Магомедрасул Гусейнов
Россия, махачкала, дгу
Сергей Зеленев
Сергей Зеленев
Россия, Архангельская область