Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции!!!.doc
Скачиваний:
10
Добавлен:
27.09.2019
Размер:
1.76 Mб
Скачать

33. Case-технологии

Computer-Aided Software Engineering (разработка ПО с помощью компьютера)

MainFrame 1965 – 1970 – 1990 -- RYO = Roll your own

ClientServer 1980 – 1990 - 2000 – SDM = Structure Design Modeling

Internet 1998 – 2000 – 2005 – IE = Information Engineering

UnPc 2000 – GUI = Graphic User Interface

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

Основы CASE:

  1. методология+диаграммы

  2. диаграммы (созданные в спец. графических редакторах) – UPPER CASE

редакторы - помогают рисовать диаграммы; возникли с распространением PC и GUI

  1. Generator – LOWER CASE (генерация кода в некоторые целевые языки)

  2. Repository

Если сначала диаграммы рисовались вручную, то в середине 80-х годов появляются первые продукты, реализующие CASE-технологию. Компания TI (Texas Instruments) выпускает продукт IEF (Information Engineering Facility), компания KW (Knowledge Ware) создает ADW; целевыми платформами обоих продуктов являлись только мейнфреймы - это основной их недостаток. В 1986 году начинаются разработки продукта HPS (High Productivity System), а в 1990 году образуется компания SEER, которая выпускает HPS на рынок. В 1992-93гг. по заказу этой компании мы полностью переписали HPS, сохранив их замечательные бизнес-идеи.

В середине 80-х годов мы также разработали технологию RTST, которая включала в себя все перечисленные выше компоненты, включая генератор в Алгол 68. В чем-то мы даже превзошли американцев, поскольку они умели генерировать только экранные формы, базы данных и стандартные действия CRUD (create, read, update, delete), а мы в дополнение к этому генерировали и бизнес-логику на основе SDL-диаграмм.

1990е - В этот момент были очень популярны средства быстрого прототипирования – Rapid Application Development (RAD), такие как Power Builder, FORTE, Sun Microsystems Powery.

С 1998 года стала набирать силу технология Rational Rose, («three amigos» Рэмбо, Буча и Якобсона), UML - Universal Modeling Language

В 1996 году известный собиратель устарелых средств компания Sterling Software скупила почти все CASE –средства, кроме HPS фирмы SEER Technologies.

В конце концов, ещё более мощный «могильщик» Computer Associates купил компанию Sterling Software

34.Сопровождение

Сопровождение - это процесс, включающий

-исправление ошибок -модификацию функций

-добавление новых возможностей -обучение людей (заказчика)

-оптимизацию

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

Сопровождение занимает до 70% времени работы с продуктом (а доход приносит – 30% в год от стоимости продукта). Важным элементом сопровождения является «горяча линия».

Диаграмма сложн. Сопровождения – ось OY, Важн. Бизн. Процесса OX

  • Сложн. и не важн – выкинуть

  • Несложн. И не важн – простое сопровожд

  • Несложн и важное – улучш сопровождение

  • Сложн. и важное – реинжинеринг

Reverse engineering (knowledge moneing)

Чтобы дать хоть какое-то представление о системе Rescueware, перечислим некоторые её возможности (разумеется, далеко не все):

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

  2. На основании различных метрик определяется сложность работы, оценивается трудоёмкость и приблизительная стоимость работ.

  3. Строится дерево синтаксического разбора (видонезависимый и видозависимый анализы), пользователю в диалоговом режиме предоставляется возможность дополнительного изучения исходного приложения, представленного в виде гипертекста – на экране одновременно в разных окнах видны дерево разбора и исходный тест. Если пользователь смещается по дереву, автоматически перемещается и курсор в исходном тексте, и наоборот..

  4. По оригинальным алгоритмам исходное приложение преобразуется таким образом, чтобы уменьшить или вообще свести к нулю число оператора goto, разбить приложение на процедуры или на объекты (напоминаю, что в языке Кобол вообще не было понятия процедуры), удалить ставшие со временем недостижимыми участки кода, выполняются различные глобальные оптимизации. Здесь следует отметить, что в отличие от обычной компиляции, в которой главным требованием является семантическое соответствие объектного кода исходному, при этом сам объектный код никто не читает, в процессе реинжиниринга создаётся новый исходный код на другом языке, который будет сопровождаться этими же или другими программистами, поэтому на первый план выходят такие странные для компиляции вопросы, как “естественность” представления программы, структурное подобие исходному приложению, наглядное для человека форматирование текста и т.п.

  5. Генерация нового исходного текста на целевом языке с учётом только что перечисленных требований.

  6. Особого упоминания заслуживает BRE – business rules extraction – выделение бизнес правил. Представьте себе, что у Вас есть приложение (как обычно, написанное на многих разных языках), которое выполняет 10 функций. 7 из этих функций уже безнадежно устарели, оставшиеся 3 очень важны для Вашего бизнеса. Приложение старое, описания исходных алгоритмов уже не сохранились или сильно отстали от реальной программы, авторы с течением времени разбежались кто куда. Таким образом, единственным носителем актуального знания осталась работающая программа, но её сопровождение обходится очень дорого, поэтому хотелось бы выделить из текста только те описания и операторы, которые задействованы в нужных трёх функциях, а весь остальной текст выкинуть. Скорее всего, получившаяся программа будет больше, чем 30% от исходного текста, но всё-таки много меньше, чем вся исходная программа, поэтому сопровождать её будет легче и дешевле.