Программная инженерия. Теория и практика
Олеслав Александрович Антамошкин
В учебнике освещены современные методы и средства программной инженерии, детально рассмотрен процесс разработки программного обеспечения (ПО), приведена теория управления разработкой ПО. В качестве средства разработки ПО представлен продукт Visual Studio Team System. Для закрепления студентами полученных теоретических знаний во второй половине учебника дан практикум. Предназначен для студентов, обучающихся по направлению подготовки 080801 «Прикладная информатика», а также может быть рекомендован студентам других специальностей, интересующимся как вопросами управления разработкой программного обеспечения, так и тематикой программной инженерии в целом.
О. А. Антамошкин
Программная инженерия. Теория и практика
Введение
Иан Соммервилл в своей книге «Инженерия программного обеспечения» определяет программную инженерию как интегрирование принципов математики, информатики и компьютерных наук с инженерными подходами, разработанными для производства осязаемых материальных артефактов. Дисциплина программной инженерии включается в круг вопросов компьютинга (англ. computing) и может рассматриваться как инженерная область, имеющая более тесные связи со своей базовой дисциплиной – компьютерными науками, чем другие инженерные области [1]. Среди других инженерных дисциплин она качественно выделяется нематериальностью программного обеспечения и дискретной природой его функционирования. Основываясь на математике и компьютинге, программная инженерия занимается разработкой систематических моделей и надежных методов производства высококачественного программного обеспечения, и данный подход распространяется на все уровни – от теории и принципов до реальной практики создания программного обеспечения, которая лучше всего заметна сторонним наблюдателям.
Термин «инженерия программного обеспечения» появился впервые в 1968 г. на конференции НАТО «Инженерия программного обеспечения» и должен был спровоцировать размышления относительно текущего в то время «кризиса программного обеспечения». С тех пор он стал использоваться для определения как профессии, так и области исследований, посвященных созданию программного обеспечения, которое имеет более высокое качество, более доступно, поддерживаемо и быстрее строится.
Так как эта область относительно молода по сравнению со своими сестринскими областями инженерии, все еще продолжаются дебаты вокруг того, что представляет собой «инженерия программного обеспечения» и удовлетворяет ли она понятию инженерии. Этот спор развивается естественным образом, начавшись с попыток рассматривать создание программного обеспечения только как программирование. Разработка программного обеспечения – термин, иногда предпочитаемый практиками в промышленности, которые рассматривают разработку программного обеспечения как несравнимо более мощную и конструкционно-емкую методологию в сравнении с процессом написания кода программистом.
Все же несмотря на юность профессии, будущее области радужно. Так, Money Magazine и Salary.com оценили профессию разработчика программного обеспечения как лучшую работу в Америке в 2006 г.
В настоящее время существует как минимум три основополагающих документа в области программной инженерии. Это SWEBOK (Software Engineering Body of Knowledge) – документ, подготавливаемый комитетом Software Engineering Coordinating Committee, в который вовлечено сообщество IEEE Computer Society (IEEE-CS). Назначение SWEBOK – в объединении знаний по инженерии программного обеспечения (разработке программного обеспечения), Второй документ – Software Engineering Code of Ethics and Professional Practice, посвящен этическим и профессиональным стандартам для инженерии ПО, выпущен в 1998 г. Третий документ (SE2004), выпущенный в 2004 г., посвящен составлению учебного плана по программной инженерии.
Эти документы созданы совместными усилиями IEEE-CS и Association for Computing Machinery (ACM) и призваны определить следующее:
• необходимый набор знаний и рекомендуемые практики;
• этические и профес