Программная инженерия. Назначение, основные принципы и понятия

Инженерия программного обеспечения — сравнительно молодая научная дисциплина. Термин software engineering был впервые предложен в 1968 году на конференции, посвященной так называемому кризису программного обеспечения. Этот кризис был вызван появлением мощной (по меркам того времени) вычислительной техники третьего поколения. Новая техника позволяла воплотить в жизнь не реализуемые ранее программные приложения. В результате программное обеспечение достигло размеров и уровня сложности, намного превышающих аналогичные показатели у программных систем, реализованных на вычислительной технике предыдущих поколений.

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

Модульное программирование:

  • Проблема: высокая стоимость ПО связана с повторной разработкой одинаковых фрагментов программ.
  • Решение: модульное программирование - это организация программы как совокупности небольших независимых блоков, называемых модулями, структура и поведение которых подчиняются определенным правилам.

Использование модульного программирования позволяет упростить тестирование программы и обнаружение ошибок, упрощается процесс повышения эффективности программ, так как критичные по времени модули могут быть написаны на языках низкого уровня (ассемблерах) и многократно переделываться независимо от других. Кроме того, модульные программы могут разрабатываться параллельно во времени многими исполнителями, что сокращает сроки их разработки и испытаний, их значительно легче понимать, а модули могут использоваться как строительные блоки в других программах.

Структурное программирование:

  • Проблема: возрастание стоимости ПО, связанное с переходом от разработки простых программ к разработке сложных.
  • Решение: структурное программирование.

Основные принципы структурного программирования:

  • Нисходящее функционирование программ;
  • Применение специальных языков программирования;
  • Планирование и документирование проекта, поддержка кодов проектной документации;
  • Структурное кодирование без go to.

Объектно-ориентированное программирование:

  • Проблема: рост стоимости ПО, связанный с тем, что изменения требований к программе стали возникать не только на стадии проектирования, но и на стадии сопровождения.
  • Решение: ООП. Использование метода, который состоял в введении понятия класса с его свойствами и поведением.

Основные парадигмы ООП:

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

Структура стоимости ПО зависит от типа ПО, применяемых методов его разработки м метода оценки. Типовое распределение стоимости между основными этапами:

 

 


Контрольные вопросы по теме «Программная инженерия»:

1. Что такое программное обеспечение (ПО)?

2. Что такое инженерия про­граммного обеспечения?

3. В чем различие между ин­женерией программного обеспечения и компьютер­ной наукой?

4. В чем различие между ин­женерией программного обеспечения и системотехникой?

5. Что такое технологический процесс создания ПО?

6. Что такое модель техноло­гического процесса создания ПО?

7. Какова структура затрат на создание ПО?

8. Что такое методы инженерии программного обеспечения?

9. Что такое CASE (Computer- Aided Software Engineering — автоматизированное проектирование и создание ПО)?

10. Каковы признаки качественного ПО?