Системы автоматизации разработки программного обеспечения - Николай Алексеевич Соловьев, Елена Николаевна Чернопрудова

Системы автоматизации разработки программного обеспечения

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

Читать бесплатно онлайн Системы автоматизации разработки программного обеспечения - Николай Алексеевич Соловьев, Елена Николаевна Чернопрудова

Введение

Создание автоматизированных информационных систем (АИС) – весьма сложная и трудоемкая задача в связи с тем, что современное программное обеспечение (ПО) данного класса составляет сотни тысяч операторов. Будущий специалист в области разработки ПО должен иметь представление о современных методах автоматизации анализа, проектирования, реализации и тестирования АИС, т.е. ориентироваться в современных подходах к технологиям программирования.

Теоретической основой построения систем автоматизации проектирования ПО (САПР ПО) являются методы технологии разработки ПО, автоматизация которых является предметом изучения настоящего учебного пособия. Изложение материала строится в соответствии с основными этапами жизненного цикла ПО.

Основой изложенного материала стал учебник «Технология программирования», разработанного в МГТУ им. Н. Баумана профессором Г.С. Ивановой, и допущенного Министерством образования и науки Российской Федерации (Минобрнауки РФ) для студентов ВУЗов, обучающихся по направлению 2301000 – Информатика и вычислительная техника. Материал доработан в процессе многолетней апробации на кафедре программного обеспечения вычислительной техники и автоматизированных систем «Оренбургский государственный университет».

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

1.1 Актуальность автоматизации разработки программного обеспечения

Производство программного обеспечения сегодня – крупнейшая отрасль мировой экономики, в которой занято около 3-х млн. специалистов. Еще несколько млн. человек напрямую зависят от качества корпоративных автоматизированных информационных систем (АИС).

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

1.1.1 Кризис программной инженерии, его причины и пути преодоления

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

В конце ХХ – го века в программной инженерии сложилось критическая ситуация, неразрешенная до сих пор. Кризис выражается в том, что большие проекты ПО стали выполняться с отставанием графика и со значительным превышением расходов, а разработанный продукт не обладал требуемыми функциональными возможностями или производительностью, что не устраивает потребителей. Так, например, в 1995 г. компания Standish Group проанализировала работу 364 американских корпораций по итогам выполнения более 23 000 проектов, связанных с разработкой ПО.

Результаты анализа, представленные на рисунке 1.1, оказались удручающими.


Рисунок 1.1 – Результаты анализа проектов в области программной инженерии


Причины кризиса:

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

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