Программная инженерия - сайт Лаврищевой Е.М.


Программная инженерия

Программная инженерия — раздел компьютерной науки, который:

  • изучает методы и средства построения компьютерных программ;
  • отображает закономерности развития и обобщает накопленный опыт программирования;
  • оперирует объектами (модулям, компонентами, программными аспектами и т.д.) и определяет автоматизированные операции по их применению;
  • вырабатывает правила, порядок инженерной деятельности и управления технологическим процессом построения из простых объектов более сложных целевых объектов (программного обеспечения, программных систем, семейств систем, программных проектов и т.д.), а также методы измерения и оценки готового продукта.

Понятие Software Engineering широко используется в кругах разработчиков программ и систем более 45 лет. Впервые этот термин прозвучал в 1968 г. на конференции НАТО. SE вобрала в себя принципы математики, информатики, программирования и компьютерных наук и представляет собой систему методов, средств и дисциплин планирования, разработки, эксплуатации и сопровождения ПО, готового к внедрению. SE ориентирована на индустрию производства программных продуктов с необходимым уровнем производительности и качества. Международное компьютерное сообщество специалистов SE сделало следующее:

  • построено ядро знаний SWEBOK (Software Engineering body of Knowledge, 2001 г.);
  • функционируют международные научные журналы по программной инженерии IEEE Trans. on SE, ACM Trans. on SE and Metodology, зарубежные монографии и учебники с ПИ и т.п.;
  • сформирована международная программа обучения ПИ — Curricula-2004 (intuit.ru), используется для обучения во многих странах;
  • создан институт SЕІ при Carnegie Mellon University (1984 г.), кафедры ПИ во многих университетах США и Европы для обучения и развития ПИ;
  • проводятся международные научные конференции по разным направлениям ПИ (например, reusability, Software Engineering Factories и др.);
  • используются новые парадигмы программирования (объектная, компонентная, сервисная, агентная, генерирующая и т.п.);
  • разработаны дисциплины SE и методология создания технологических и продуктовых линии (Product Lines) для разработки целевых объектов: программных систем — ПС, семейств систем — СПС, доменов и т.п., которые базируются на готовых ресурсах (ГОР) и компонентах повторного использования (КПИ) типа reuses, assets, servises и т.п.;
  • используются методы реинженерии, реверсной инженерии и рефакторинга для обновления устаревших программ предыдущих поколений компьютеров на платформы новых компьютеров;
  • распространены автоматизированные инструментальные среды (Microsoft Visual Studio, MSF, Rational Rose, COM, JAVA, CORBA и т.п.) поддержки разработки и производства разных целевых объектов.
  • созданы фабрики программ сборочного и интеграционного типа (Дж.Гринфильд, Г.Ленц, М.Фаулер и др.) и системные фабрики AppFab.