Аннотация курса Технология разработки программного обеспечения
Курс по выбору
"Время от времени можно прочитать в газете о том, как в переоборудованном гараже пара программистов сделала замечательную программу, оставившую позади разработки больших команд. И каждый программист охотно верит в эти сказки, поскольку знает, что может создать любую программу со скоростью, значительно превышающей те 1000 операторов в год, которые, по сообщениям, пишут программисты в промышленных бригадах. Почему же до сих пор все профессиональные бригады программистов не заменены одержимыми дуэтами из гаражей?" (Ф.Брукс "Мифический человеко-месяц или как создаются программные системы. СПб.: Символ-Плюс. 1999)
- Программу, реализующую метод Гаусса численного решения системы линейных алгебраических уравнений, один человек может написать за один день (утверждение).
- На разработку операционной системы IBM OS/360 в 1960-х затрачено 5000 человеко-лет (факт).
- Программное обеспечение проекта НАСА "Space Shuttle" оценивается в 40 млн строк кода (еще один факт).
- Только 26% программных проектов заканчиваются успешно, т.е. вовремя (современная оценка, встречающаяся в опубликованных материалах западных компаний).
На протяжении достаточно недолгой компьютерной истории предпринимались попытки разработать методы проектирования ПО, помогающие справиться с растущей сложностью программ. В конце 1980-х - начале 1990-х годов был разработан ряд похожих методов объектно-ориентированного анализа и проектирования, различающихся в некоторых деталях. Объединение усилий трех лидеров (Grady Booch, James Rumbaugh, Ivar Jacobson) в области ОО-проектирования, привело к созданию:
- унифицированного процесса разработки ПО - Unified Process;
- единой нотации для описания проектов - языка визуального моделирования UML.
Процесс - последовательность этапов, которые необходимо выполнить при разработке проектов. Визуальное представление модели явления облегчает ее восприятие. Язык визуального моделирования UML может применяться в различных областях, в том числе для описания и моделирования сложных программных систем. Он лежит в основе многих современных средств автоматизации разработки программного обеспечения (CASE-средств). Работа в современной компании, занимающейся разработкой программного обеспечения, требует знания методов, применяемых в промышленной разработке программ и основных этапов, из которых состоит процесс разработки.
В курсе "Технология разработки программного обеспечения" рассматриваются основные понятия языка UML и его применение в процессе разработки программного обеспечения.