Основы программной инженерии
Лекция 1. Введение в программную инженерию
Разогрев
Обсудить вопросы:
-
Как называется наша специальность
-
Чем занимается специалист этой профессия
-
Что это такое – наука, ремесло, искусство?
Что такое разработка программного обеспечения: искусство, наука, ремесло…? Могут быть разные мнения. Сегодня – это все сразу. А чем должна быть? ПО – это продукт, которым пользуются обычные люди, не специалисты в вычислительной технике.
Сегодня разработка ПО – заложница собственного быстрого развития и привлекательности. Он не похожа на инженерию из-за того, кто работает в этой отрасли. 40% разработчиков имеют диплом специалиста CS (Маконнел, профессиональная разработка ПО). Практически никто в разработке ПО. Абсолютное большинство либо не имеет профильного образования, либо это образование не позволяет выпускнику сразу начать работать. Из-за этого разработка превращается больше в магию.
Университет готовит ученых и инженеров. Кем будем мы после того как окончим обучение?
Отличие инженерии от науки.
Наука:
Ищет новые знания
-
Проверяет гипотезы, расширяет знания
-
Ученые должны быть в курсе новейших исследований
-
Возможна узкая специализация
-
Не нужен надзор
-
О результатах работы судят другие ученые
-
Научное образование готовит к продолжению учебы
-
Стоимость не играет важной роли
-
Риск может быть оправдан
Инженерия:
Создает продукты, которыми пользуются обычные люди
-
Отыскивает полезные знания и учится применять их для решения практических задач
-
Инженерам должны быть известны методы, надежность и эффективность которых уже подтверждена
-
Необходимо понимать и учитывать все факторы, которые влияют на разрабатываемое изделие
-
Необходимы нормативы, поскольку результатами работы пользуются люди
-
Инженерное образование готовит к практической работе сразу после завершения учебы
-
Стоимость разработки и производства играет ключевую роль
-
Риск недопустим
Разработка ПО должна быть инженерной дисциплиной.
Представление дисциплины
-
Цель дисциплины – сформировать общее представление о будущей профессии. Дать подсказки, что нужно делать, чтобы стать настоящим специалистом.
-
Какие вопросы будут рассматриваться на лекциях: ключевые аспекты профессиональной разработки ПО, важнейшие аспекты профессионального роста
-
Какие вопросы будут рассматриваться на лабораторных: грамотное кодирование, системы контроля версий, системы коммуникации в проекте, резюме, подготовка к сертификации.
-
Контрольные мероприятия: два рубежных контроля, зачет.
История программной инженерии
1945-1965 – становление.
1958 – Джон Тьюкей (John Tukey) Появление термина softwere.
1968 – NATO Software Engineering Conference. Официальное появление программной инженерии (Software Engineering).
1965-1985 – Кризис ПО. Выявлены многие проблемы разработки ПО. OS/360, Therac 25
1972 – первый номер Transactions on Software Engineering (IEEE - Institute of Electrical and Electronics Engineers) – труды по программной инженерии.
1975 – Фредерик Брукс. Мифический Человеко-Месяц (Fred Brooks. The Mythical Man Month)
1979 – IEEE Std 730 – качетво ПО.
1985 - 1986
1986 – Фредерик Брукс. No Silver Bullet
1986 – IEEE Std 1002 – Taxonomy of Software Engineering Standarts
1993 – ACM/IEEE-CS Code of Ethics and Professional Practice (ACM – Association of Computing Machinery)
1995 – ISO/IEC 12207 “Software lifecycle processes” (ГОСТ ИСО/МЭК 12207-99) (ISO – International Organization of Standardization, IEC - International Electrotechnical Commission)
2004 – Guide to Software Engineering Body of Knowledge (SWEBOK)