Программная инженерия. Назначение, основные принципы и понятия
Инженерия программного обеспечения — сравнительно молодая научная дисциплина. Термин software engineering был впервые предложен в 1968 году на конференции, посвященной так называемому кризису программного обеспечения. Этот кризис был вызван появлением мощной (по меркам того времени) вычислительной техники третьего поколения. Новая техника позволяла воплотить в жизнь не реализуемые ранее программные приложения. В результате программное обеспечение достигло размеров и уровня сложности, намного превышающих аналогичные показатели у программных систем, реализованных на вычислительной технике предыдущих поколений.
Основная задача ПИ – сокращение стоимости программ. Этапы развития ПИ связаны с появлением очередной проблемы и нахождением путей и способов её решения. ПИ – дисциплина, которая связана с аспектами разработки ПО от начальной стадии создания спецификации до поддержки системы после сдачи в эксплуатацию.
Модульное программирование:
- Проблема: высокая стоимость ПО связана с повторной разработкой одинаковых фрагментов программ.
- Решение: модульное программирование - это организация программы как совокупности небольших независимых блоков, называемых модулями, структура и поведение которых подчиняются определенным правилам.
Использование модульного программирования позволяет упростить тестирование программы и обнаружение ошибок, упрощается процесс повышения эффективности программ, так как критичные по времени модули могут быть написаны на языках низкого уровня (ассемблерах) и многократно переделываться независимо от других. Кроме того, модульные программы могут разрабатываться параллельно во времени многими исполнителями, что сокращает сроки их разработки и испытаний, их значительно легче понимать, а модули могут использоваться как строительные блоки в других программах.
Структурное программирование:
- Проблема: возрастание стоимости ПО, связанное с переходом от разработки простых программ к разработке сложных.
- Решение: структурное программирование.
Основные принципы структурного программирования:
- Нисходящее функционирование программ;
- Применение специальных языков программирования;
- Планирование и документирование проекта, поддержка кодов проектной документации;
- Структурное кодирование без go to.
Объектно-ориентированное программирование:
- Проблема: рост стоимости ПО, связанный с тем, что изменения требований к программе стали возникать не только на стадии проектирования, но и на стадии сопровождения.
- Решение: ООП. Использование метода, который состоял в введении понятия класса с его свойствами и поведением.
Основные парадигмы ООП:
- Инкапсуляция – объединение в классе данных и методов (сокрытие данных)
- Наследование – возможность порождения нового класса на основе существующего с частичным изменением его свойств и методов.
- Полиморфизм – определение свойств, методов объекта по контексту.
Структура стоимости ПО зависит от типа ПО, применяемых методов его разработки м метода оценки. Типовое распределение стоимости между основными этапами:
Контрольные вопросы по теме «Программная инженерия»:
1. Что такое программное обеспечение (ПО)?
2. Что такое инженерия программного обеспечения?
3. В чем различие между инженерией программного обеспечения и компьютерной наукой?
4. В чем различие между инженерией программного обеспечения и системотехникой?
5. Что такое технологический процесс создания ПО?
6. Что такое модель технологического процесса создания ПО?
7. Какова структура затрат на создание ПО?
8. Что такое методы инженерии программного обеспечения?
9. Что такое CASE (Computer- Aided Software Engineering — автоматизированное проектирование и создание ПО)?
10. Каковы признаки качественного ПО?