Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
36
Добавлен:
01.06.2015
Размер:
349.7 Кб
Скачать

Изучение программной инженерии

ПринципыПрактикаПриложения

Инструментальные средства

Математика

Формальные основы и методы, семантика и схемы программ

© 2005, В.В.Хашковский, Д.П.Калачев.

41

Математика

Программирование и языки программирования — это математические объекты, подверженные формальному описанию

Инженерные дисциплины помимо всего прочего, имеют серьезный математический базис

© 2005, В.В.Хашковский, Д.П.Калачев.

42

Программная инженерия и информатика

Информатика занимается теорией и методами компьютерных и программных систем.

Программная инженерия занимается практическими проблемами создания ПО.

В идеале, вся программная инженерия должна быть поддержана какими-то теориями информатики, но практике все значительно сложнее.

Инженеры зачастую применяют первые попавшиеся методы, а элегантные теории информатики не всегда могут быть

применены к реальным большим системам.

© 2005, В.В.Хашковский, Д.П.Калачев.

43

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

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

Программная инженерия является частью системной инженерии, наряду с созданием аппаратных платформ, созданием архитектуры, системной интеграцией и т.п.

В системной инженерии основной упор приходится именно на системные вопросы (спецификация системы, проектирование архитектуры, интеграция и внедрение), а не на составные части системы.

Системная инженерия значительно старше программирования как дисциплина

© 2005, В.В.Хашковский, Д.П.Калачев.

44

Методы программной инженерии

Метод программной инженерии — это структурный подход к созданию ПО, нацеленный на создание эффективного ПП наиболее прибыльным путем.

Функционально-ориентированные методы (ориентированы на идентификацию основных функций системы):

Структурный анализ Тома ДеМарко (1978)

JSD Джексона (1983)..

Объектно-ориентированные методы

Рамбо (1991)

Буч (1994)

Со временем эти методы были объединены в UML.

Практически все методы построены на идее создания графических моделей системы с последующим использованием этих моделей

в качестве спецификации или архитектуры системы.

© 2005, В.В.Хашковский, Д.П.Калачев.

45

Состав метода

Методы должны включать в себя следующие компоненты:

Описание моделей системы и их нотаций

(например, объектные модели, конечно-автоматные модели и т.д.)

Правила, накладывающие ограничения на использование моделей в системе

Рекомендации — эвристики, характеризующие хорошие приемы проектирования в данном методе

(например, рекомендация о том, что ни у одного объекта не должно быть больше семи подобъектов)

Руководство к действию — описание действий, которым можно следовать во время создания моделей и последующего их использования

(все атрибуты должны быть документированы до определения операций, связанных с этим объектом)

© 2005, В.В.Хашковский, Д.П.Калачев.

46

Цель применения методов программной инженерии

обеспечение следующих свойств ПО:

Сопровождаемость (maintainability). Система должна быть написана с расчетом на дальнейшее развитие. Это критическое свойство системы, т.к. изменения ПО неизбежны вследствие изменения бизнеса.

Надежность (dependability). Надежность включает в себя отказоустойчивость, безопасность и защищенность. Надежное ПО не должно приводить к физическому или экономическому ущербу в случае сбоя системы.

Эффективность (efficiency). ПО не должно впустую тратить системные ресурсы, такие как память или процессорное время. Поэтому эффективность включает в себя отзывчивость, время процессора, утилизацию памяти и т.п.

Удобство использования (usability). ПО должно быть легким в использовании, причем именно тем типом пользователей, на которых рассчитано приложение. Это включает в себя интерфейс пользователя и адекватную документацию

© 2005, В.В.Хашковский, Д.П.Калачев.

47

Основные трудности программной инженерии

Устаревшие системы (legacy challenge), которые необходимо сопровождать и развивать

Работа в гетерогенной среде (heterogeneity challenge) с распределенными системами, включающими в себя различное программное и аппаратное обеспечение

Недостаток времени, отводимого на разработку программных продуктов (delivery challenge)

Суперпозиция проблем

© 2005, В.В.Хашковский, Д.П.Калачев.

48

CASE (Computer-Aided Software Engineering)

Понятие CASE включает в себя широкий комплекс программ, предназначенных для поддержки процессов создания программного продукта, включая анализ требований, моделирование, отладку и тестирование. Большинство современных методов поддержаны соответствующими CASE- средствами.

CASE-средства:

CASE-средства верхнего уровня - поддерживают анализ и проектирование, иногда называют (upper-CASE tools)

CASE-средства нижнего уровня, поддерживают реализацию и

тестирование, (такие как отладчики, средства анализа системы, генераторы тестов и редакторы программ), называют средствами нижнего уровня (lower-CASE tools).

© 2005, В.В.Хашковский, Д.П.Калачев.

49

Заключение

Программная инженерия – это это инженерная дисциплина, которая связана со всеми аспектами производства ПО

Программные продукты состоят из разработанных программ и связанной с ними документации. Важными атрибутами продукта являются сопровождаемость, надежность, эффективность и удобство использования

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

Методы представляют собой организованные способы разработки ПО. Они включают в себя рекомендации по следованию процессу, нотации, используемые в методе, правила описания системы и руководства по применению

CASE­средства представляют собой программные системы, разработанные для поддержки типовых действий в программном процессе, таких как редактура проектировочных диаграмм, проверка целостности этих диаграмм и отслеживание запущенных программных тестов

© 2005, В.В.Хашковский, Д.П.Калачев.

50

Соседние файлы в папке Материал Курса