Объектно-ориентированные Case-технологии

Содержание

Слайд 2

Предпосылки и история Технологии разработки и анализа ПС Методы и инструментальные

Предпосылки и история Технологии разработки и анализа ПС Методы и инструментальные средства ПИ Языки

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

Л_1_Введение

Слайд 3

«…… одна цель – создание программного продукта с заданной функциональностью к заданному сроку» [Эрих Гамма] 3

«…… одна цель – создание программного продукта с заданной функциональностью к

заданному сроку»
[Эрих Гамма]

3

Слайд 4

Закон Мерфи: если существуют два способа сделать что-либо, причём один из

Закон Мерфи: если существуют два способа сделать что-либо, причём один из

которых ведёт к катастрофе, то кто-нибудь изберёт именно этот способ.
Следствия:
Всё не так легко, как кажется...
Всякая работа требует больше времени, чем вы думаете.
Из всех возможных неприятностей произойдёт именно та, ущерб от которой больше.
Если четыре причины возможных неприятностей заранее устранены, то всегда найдётся пятая.
Предоставленные сами себе события имеют тенденцию развиваться от плохого к худшему.
Как только вы принимаетесь делать какую-то работу, находится другая, которую надо сделать ещё раньше.
Всякое решение плодит новые проблемы.
Проблемы ИТ проектов:
Технические проблемы;
Проблемы «Человеческого фактора»;
Проблема «плохого» IT-решения;
Проблема взаимодействия компании-заказчика и разработчика.

4

Слайд 5

Предпосылки и история Первая ЭВМ ENIAC была создана под руководством Джона

Предпосылки и история

Первая ЭВМ ENIAC была создана под руководством Джона

Моучли в 1946 году в Пенсильванском университете (г. Филадельфия).
В СССР первая ЭВМ МЭСМ была разработана под руководством С.А. Лебедева в Киеве в 1951 году.
В 1953, в Москве разработана под руководством С.А. Лебедева самая быстрая ЭВМ в Европе того времени – БЭСМ, в ИТМ и ВТ (Институт точной механики и вычислительной техники АН СССР).
В США в 1951 году Д. Моучли запустил в серию ЭВМ UNIVAC (было выпущено 47 штук).
В СССР первой серийной ЭВМ была БЭСМ-2 (67 штук), которая выпускалась с 1958 года, практически сразу же за БЭСМ-2 была запущена в серию М-20, также серийно выпускались ЭВМ Урал-1 (183 штуки, начиная с 1957 года), с 1960 года – Минск-1 (220 шт.).
В 1957 году появился язык FORTRAN (FORmula TRANslator), созданный под руководством Джона Бэкуса в IBM. Те люди, которые собирали первые библиотеки полезных программ, придумали FORTRAN и реализовали первые трансляторы с него в коды ЭВМ, создали новую науку – системное программирование.

5

Слайд 6

Предпосылки и история В СССР системное программирование начало развиваться очень рано.

Предпосылки и история

В СССР системное программирование начало развиваться очень рано.

Профессор МГУ А.А. Ляпунов ещё в 1953 году начал работы по операторному методу в программировании, в 1953-54 гг. А.А. Ляпунов читал лекции по программированию будущему академику А.П. Ершову, среди его учеников были А.И.Китов и Н.А.Криницкий, И.В. Поттосин и многие другие известные программисты.
В 1956 году были опубликованы работы Ю.И. Янова по схемам программ, чуть позже работы С.С. Лаврова и А.П. Ершова по экономии памяти на основе раскраски графов. Работы Ю.И. Янова, С.С. Лаврова и А.П. Ершова во всем мире признаны классическими, заложившими основы теоретического программирования.
В 1958 всемирно известный статистик Джон Тьюкей (John Tukey) впервые ввел термин software – программное обеспечение.

6

Слайд 7

Предпосылки и история В конце 60-х – начале 70-х годов прошлого

Предпосылки и история

В конце 60-х – начале 70-х годов прошлого

века произошло событие, которое вошло в историю как первый кризис программирования.
Термин software engineering (программная инженерия) - впервые был озвучен в октябре 1968 года.
В 1970 г. У.У. Ройс произвел идентификацию нескольких стадий в ЖЦ ПО и было высказано предположение, что контроль выполнения стадий приведет к повышению качества ПО и сокращению стоимости разработки.
В 1972 году IEEE (Computer Society of the Institute for Electrical and Electronic Engineers, IEEE Computer Society – IEEE-CS (Компьютерное Общество) или IEEE) выпустил первый номер «Transactions on Software Engineering» – Труды по Программной Инженерии.
Первый целостный взгляд на эту область профессиональной деятельности появился 1979 году, когда Компьютерное Общество IEEE подготовило стандарт IEEE Std 730 по качеству программного обеспечения.
После 7 лет работы, в 1986 году IEEE выпустило IEEE Std 1002 «Taxonomy of Software Engineering Standards».

7

Слайд 8

Предпосылки и история В России термин «технология промышленного программирования» привнес капитан

Предпосылки и история

В России термин «технология промышленного программирования» привнес капитан

1-го ранга профессор В.П. Морозов в конце 1980 года.
«Поначалу такие вещи, как отчуждение программы от её автора, контроль за ходом разработки, графические схемы ситуаций мы называли «шпионскими штучками», но постепенно пришло понимание, что работа коллективов из сотен программистов без таких средств невозможна. Поскольку в западных странах «площадь соприкосновения с пользователем» (выражение А.П. Ершова) у программирования была несравненно больше, там понимание особенностей промышленного программирования пришло несколько раньше».
«Более 20 лет использование терминов Computer Science и Software Engineering было полностью делом индивидуального вкуса».
[Что такое программная инженерия. Зав. каф. системного программирования СПбГУ Генеральный директор ЗАО «Ланит-Терком» доктор физ-мат наук, профессор А.Н. Терехов]

8

Слайд 9

Предпосылки и история В конце 90-х годов XX века знания и

Предпосылки и история

В конце 90-х годов XX века знания и

опыт, которые были накоплены в индустрии программного обеспечения за предшествующие 30-35 лет, а также более чем 15-летние попытки применения различных моделей разработки, – все это, наконец, оформилось в то, что принято называть дисциплиной программной инженерии – Software Engineering.
В 1990 году началось планирование всеобъемлющих международных стандартов, в основу которых легли концепции и взгляды стандарта IEEE Std 1074 и результатов работы образованной в 1987 году совместной комиссии ISO/IEC JTC 1 (ISO – International Organization for Standardization; IEC – International Electrotechnical Commission; JTC 1 – Joint Technical Committee 1).

9

Слайд 10

Предпосылки и история В 1995 году группа этой комиссии SC7 «Software

Предпосылки и история

В 1995 году группа этой комиссии SC7 «Software

Engineering» выпустила первую версию международного стандарта ISO/IEC 12207 «Software Lifecycle Processes». Этот стандарт стал первым опытом создания единого общего взгляда на программную инженерию. Соответствующий национальный стандарт России – ГОСТ Р ИСО/МЭК 12207-99 [ГОСТ 12207, 1999] содержит полный аутентичный перевод текста международного стандарта ISO/IEC 12207-95 (1995 года).
В свою очередь, IEEE и ACM (ACM – Association of Computer Machinery), начав совместные работы еще в 1993 году с кодекса этики и профессиональной практики в данной области (ACM/IEEE-CS Code of Ethics and Professional Practice), к 2004 году сформулировали два ключевых описания Software Engineering.

10

Слайд 11

Предпосылки и история Guide to the Software Engineering Body of Knowledge

Предпосылки и история

Guide to the Software Engineering Body of Knowledge

(SWEBOK), IEEE 2004 Version – Руководство к Своду Знаний по Программной Инженерии, в дальнейшем просто «SWEBOK».
Software Engineering 2004 – Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering – Учебный План для Преподавания Программной Инженерии в ВУЗах (данное название на русском языке представлено в вольном смысловом переводе).

11

http://www.computer-museum.ru

Слайд 12

Технологии разработки и анализа ПС Извлечение, анализ и моделирование требований. Парадигмы

Технологии разработки и анализа ПС

Извлечение, анализ и моделирование требований.
Парадигмы моделирования ПС.
Проектирование

ПО: концепции и стратегии проектирования, проектирование человеко-машинного интерфейса; готовых компонентов и методов их генерации; средства поддержки проектирования – инструментальных средств поддержки.
Статический и статико-динамический анализ.
Верификация и аттестация: основы, рецензия кода, тестирование, оценка пользовательского интерфейса, анализ проблем.
Динамическая верификация, интеграция различных методов верификации.
Метрики тестового покрытия.
Моделирование, измерение и тестирование производительности и потребления ресурсов.
Вопросы обучения технологиями разработки и анализа программ.

12

Слайд 13

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

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

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

13

Методы и инструментальные средства ПИ

Слайд 14

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

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

и семантики языков программирования.
Средства и системы компиляции программ.
Опыт использования современных языковых средств и систем программирования в различных предметных областях.

14

Языки и системы программирования, семантика программ

Слайд 15

Методы, средства и системы управления базами данных и знаний Модели, методы

Методы, средства и системы управления базами данных и знаний

Модели, методы и

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

15

Слайд 16

Актуальность программной инженерии 26 http://www.pmi.ru/profes/16022010_Ovchinnikova.pdf

Актуальность программной инженерии

26

http://www.pmi.ru/profes/16022010_Ovchinnikova.pdf

Слайд 17

Актуальность программной инженерии https://www.ibm.com/developerworks/ru/library/r-requirements/ 28 http://www.pmi.ru/profes/16022010_Ovchinnikova.pdf

Актуальность программной инженерии
https://www.ibm.com/developerworks/ru/library/r-requirements/

28

http://www.pmi.ru/profes/16022010_Ovchinnikova.pdf

Слайд 18

Актуальность программной инженерии Проблемы аутсорсинга: Service Level Agreement, SLA Соглашение об уровне предоставления услуги 29 http://www.pmi.ru/profes/16022010_Ovchinnikova.pdf

Актуальность программной инженерии

Проблемы аутсорсинга: Service Level Agreement, SLA Соглашение об уровне

предоставления услуги

29

http://www.pmi.ru/profes/16022010_Ovchinnikova.pdf

Слайд 19

Теория, основанная на опыте. Теория, созданная отдельно от практики. От прикладных

Теория, основанная на опыте.
Теория, созданная отдельно от практики.
От прикладных методов к

теории.

Основные понятия и определения

Программная инженерия (Software Engineering):
Систематическое применение научных и технических знаний, методов и опыта для разработки, реализации, тестирования и документирования программного обеспечения [ISO/IEC 2382-1].
Применение систематизированного, упорядоченного, количественно измеримого подхода к разработке, эксплуатации и сопровождению программного обеспечения, что означает применение инженерии к программному обеспечению [ISO/IEC 24765].

3

Слайд 20

Важнейшие области: Бизнес-процессы и оценка функционирования (Business Processes and Operational Assessment

Важнейшие области:
Бизнес-процессы и оценка функционирования (Business Processes and Operational Assessment (BPOA))
Моделирование

и Анализ (Modeling, Simulation, & Analysis (MS&A))
Архитектура систем/решений/тестирования (System/Solution/Test Architecture (SSTA))
Анализ стоимости жизненного цикла и соотношения прибылей и затрат (Life Cycle Cost & Cost-Benefit Analysis (LCC & CBA))
Обеспечение пригодности к обслуживанию/ логистика (Serviceability/ Logistics (S/L))
Управление рисками/конфигурацией/исходным состоянием (Management: Risk, Configuration, Baseline)

4

http://www.ibm.com/developerworks/ru/library/r-temnenco/

Основные понятия и определения

Слайд 21

5

5

Слайд 22

Принципы программной инженерии Переход от редукционистского к системному подходу. Переход от

Принципы программной инженерии

Переход от редукционистского к системному подходу.
Переход от структуры к

поведению («…что происходит в системе — это её изменения во времени, ...нужно рассматривать изменения во времени и взаимодействия, разворачиваемые во времени»).
Переход от одной группы описаний ко множественности групп описаний.
Переход от рабочего проектирования (модель – код) к обязательному предварительному архитектурному.
«Вместо того, чтобы сразу работать с «кодом» программ…и прочими реализационными описаниями систем, для начала нужно сделать сущностное, не зависящее от деталей реализации описание создаваемой системы: архитектуру. Архитектура описывает основные подсистемы и их взаимодействие в языке, свободном от деталей реализации.
Одной архитектуре может соответствовать множество разных реализаций. Архитектура более живуча, чем её реализации».

6

Слайд 23

Переход от непосредственной реализации к моделецентричной реализации (все ошибки убираются на

Переход от непосредственной реализации к моделецентричной реализации (все ошибки убираются на

этапе моделирования, а не на этапе реального воплощения ...).
Переход от документоцентризма к датацентризму (… работа с изменениями должна вестись в терминах отдельных данных, а не «документов»).
Переход от работы «для одного хозяина» к работе со множеством заинтересованных сторон.
Переход от «проверки» к раздельным верификации к валидации.
Верификация – проверка на соответствие формальным требованиям.
Валидация — проверка того, что требования конкретного внешнего потребителя или пользователя продукта, услуги или системы могут быть удовлетворены.

Принципы программной инженерии

7

Слайд 24

Переход от методов жесткого планирования к использованию гибких методов. Переход от

Переход от методов жесткого планирования к использованию гибких методов.
Переход от «технологического

конвейера» к «заказам-поставкам» Процесс управления ЖЦ не «конвейер» - выполнение серии технологически предписанных работ (в теории управления организационными процессами это называют «оркестровка»… В жизни независимые действующие лица участвуют в процессе, выполняют контракт на оказание услуги по своей части – в теории управления организационными процессами это называют «хореография».

Принципы программной инженерии

8

Платформа Jazz. Функциональность сервиса поддерживается многими продуктами IBM Rational, включая Team Concert для планирования проекта, мониторинга прогресса и отчетности: «От развития до развертывания ... и все между ними».
JazzHub - это процесс разработки ПО как сервис.
Университеты (преподаватели, студенты) могут использовать его бесплатно в образовательных целях.
Облачный сервис JazzHub: https://hub.jazz.net/

Слайд 25

СИСТЕМНАЯ ИНЖЕНЕРИЯ Тестирование системы в среде Тестирование подсистем Архитектура системы Требования

СИСТЕМНАЯ ИНЖЕНЕРИЯ
Тестирование системы в среде
Тестирование подсистем
Архитектура системы
Требования к системе

СИСТЕМНАЯ ИНЖЕНЕРИЯ

АИС
Тестирование интеграции компонентов АИС
Тестирование компонентов АИС
Архитектурные решения АИС
Требования к АИС

ПРОГРАММНАЯ ИНЖЕНЕРИЯ
Тестирование модулей
Детальный дизайн
Тестирование кода

Принципы системной инженерии

#Андиева#БОСИ

Слайд 26

САМОСТОЯТЕЛЬНО! Системная инженерия. Историческая справка Системная инженерия и традиционные инженерные дисциплины

САМОСТОЯТЕЛЬНО!

Системная инженерия. Историческая справка
Системная инженерия и традиционные инженерные дисциплины
Системная инженерия и

управление проектом
Системы, нуждающиеся в системной инженерии

#Андиева#БОСИ