Главная » Просмотр файлов » И. Соммервилл - Инженерия программного обеспечения

И. Соммервилл - Инженерия программного обеспечения (1133538), страница 149

Файл №1133538 И. Соммервилл - Инженерия программного обеспечения (И. Соммервилл - Инженерия программного обеспечения) 149 страницаИ. Соммервилл - Инженерия программного обеспечения (1133538) страница 1492019-05-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 149)

Преобразование исходного кода программ Самый простой способ реинжениринга программ- зто зрггомвтичсский перевод исход. ного кода с одного языка программирования на другойв болеечсовременный, При этом структура и орпшнэзция программ остаются неизменными. Программа может переводиться как на обновленную версию исходного языка (например, с языка СОВОЬ74 на язык СОВО1: 85), так и на другой "не родственный" язык (например. с языка г ОВТВАХ на С).

Причины перевода на другой язык могут быть следующие. 1. Облоагелие лгажформм алларагллмх средсом. В организации может быть принято решение по изменению аппаратной платформы. Новые аппаратные средства могут не поддерживать компиляторы исходного языка программ. 2.

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

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

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

стран вать и совершенствовать создаваемую систему вручную. 28.2. Анализ систем Цель такого анализа — воссгановление структуры и спецификации системы. Этот про. цесс нс подразумевает изменения программ. Входными данными процесса анализа обыч. ио служит исходный код системы. Однако зачастую даже он недоступен, тогда процесс анализа начинается с исполняемой программы.

Анализ систем не тождсственеп реинженирингу систем. Целью анализа является определение архитскгуры и спецификации системы па основе ее исходного кода Целью реинжениринга можно назвать создание усовершенствованной и удобной в сопровождении системы. По, как показано па рис. 28.2, анализ системы может быть составной частью процесса реинжениринга. Схема процесса анализа системы приведена иа рис. 285. Вначале с помощью автоматизиро. ванных срслств проводится анализ струкгуры системы. В большинстве случаев этого недостаточно для воссоздания систслшой архитектурьс Треб>ется дополнительная работа с исходным кодом системы н с моделью ее структуры. Эта дополпительнал информация сравнивается с данными, собранныьщ во времл автоматического анализа системы, и представляется в виде ориентированного графа, отображающего связи в исходном коде программ.

28. Реинжениринг программного обеспечения 575 Рис 28.5. Про!гесс аяалкза спплак Репозиторий системной информации служит лля сравнения структуры графа и кода. На основе ориентированного графа можно пол)чить такие документы, как схемы структуры программ и данных, а также матрицы зависимостей. Матрицы зависимостей показывают места определения в програл~лгах системных объектов и ссылки на них, Процесс разработки локументацни повторлющийся, так как информация о системной структуре используется для дальнейшего уточнения информации, которал хранится в системном репозитарии. В процессе анализа полезны разные срсдсува просмотра программ, которые предос. тавляют раэлнчныс системы представления программ и позволяют легко перемещаться по исходному коду.

Например, с их помощью можно найти определения ланпых, а затем переместиться по коду к месту их использования. Описание некоторых подобных систем просмотра программ можно найти в (73, 2б8, 257). После создания документации но системной архитектуре, в рспозиторий вводится ло. полнительная информация, поэволяющал воссгановить системную спецификацию. Также обязательно ручное описание структуры системы. К сожалению, спецификацию невозможно создать автоматически из модели системы.

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

Регулярное сонровоящеинс системы также нс способствует сохранению системной структуры. После частых изменений некоторые фрагменты кода становятся неиспользуемыми, однако это можно обнаружить только по. еле тгнательного анализа программы. В листинге 28.1 показан пример того, как усложненная логика >правления может сделать трудной для понимания достаточно простую программу. Программа написана на языке, подобном РОВТВЛМ, который часто использовалсл длл созданил программ такого рода. Программа нс стала понятнее даже после того, как я дал переменным осмысленные имена. Это программа управления обогрсвателсм.

Панельный переключатель имеет по. ложения Оп (Включено), 0(( (Выключено) и Соп(го((еб (Ре~улирование). Если система находится в режиме регулирования, она включается или выключается в зависимости от тсрмореле и установок таймера. Если обогреватель включен, перекзючатсль Зв)гсйч1еаг(пд выключает его, н наоборот. 576 'Хвать УП. Эволюция программного обеспечения Как правило, такая сложная логическая структура, как в коде листинга 28.1, образуется после внесения изменений в процессе сопровождения. Реализуя новые условия или связанные с ними действия, забывают об изменении структуры программы'. Не задумываясь о перспективе, этот путь можно назвать кратчайшим и менее рискованным, так как он снижает вероятность возникновения большого количества ошибок в системе.

Если же подумать о будущем, это решение приведет к трудному для понимания коду. Сложная структура кода может также появиться от желания программистов избежать дублирования кода. Ра. нее, когда на программы накладывалось требование ограничения памяти, это бьшо обязательным условием. Листинг 28.1. Программа с нечеткой логикой ягагг: дег (Тгше-оп, ТЕше-оЕЕ, Тиае, яесггпд, Тешр, яы1гсп) ЕЕ яыЕссп = оЕЕ досо оЕЕ ЕЕ Яызгсй -" оп дого оп досо Спгг1д оЕЕ: ЕЕ неасЕпд-всаспв оп досо зы-оЕЕ досо 1оор оп: ЕЕ неас1пд-всаспв = оее досо зы-ог1 досо 1оор Спгг18п ЕЕ Тиае = ТЕше-оп дого оп ЕЕ Тыве = Тыве-оЕЕ дого оЕЕ ЕЕ тЕше < ТЕше-оп дого Ягагг Ее типе > т1ше-оее досо зсагс 1Е Тешр > яеССЕпд СЬеп дого оЕЕ ЕЕ Тешр < ЯеССЕпд Спеп досо оп Яы-оЕЕ: неасзпд-всаспв := оЕЕ дого ЯыЕСси я<-оги неасгпд-всасцв := оп зыгссуи яыгссь-ьеасЕпд 1оор: дого Згагг В листинге 28.2 приведена та жс салгая программа, переписанная мной с использованием структурированных управлшбвгих конструкций.

Три положения переключателя (Оп, Ой и Соп(го((еб) четко о%рсдсгеЪы и связаны с соответствующим кодом. Язык (зта не был использован при написании этой программы потому, что исходная программа не являлась объектно. ориентированной. Листинг 28.2. Структурированнан программа 1оор -- пес получает значения переменных нэ окрувення снстеыы Дег (Тгше-оп, ТЕше-оЕЕ, Тгше, Яегс1пд, Тешр, Яы1гсЫ саве Яы1ссп ос ыпеп Оп => ЕЕ Невзгод-эгагпв = оЕЕ Спев Зы1сс(г-Ьеас1пд ; неасгпд-всасчв := оп епб ЕЕ наев ОЕЕ-"> зс НеаСЕпд-вгаспв = оп Ваап ЯыЕСсп-ЬеаГЕпд ; НеаСЕпд-всаспв :=оЕЕ епб ЕЕ наев Сопгго11ес( => зЕ Тгше >= ТЕше-оп апб Тгше <= ТЕше-оЕЕ Феп ее тешр > зессгпд еп<( неасЕпд-всасчв = оп Фьеп Зы1ссЬ-Ьеас1пдг неасЕпд-всагпв = оЕЕ е1вм тешр < яесг1пд апб неас1пд-всаспв оее сьев 28.

Реинжениринг программного обеспечения 572 Ямгссп-Ьеас1пдг Неавзпд-эеаепэ := оп епб зк епб зк епп паве еЫ 1оор В процессе реструктуризации программ можно также упрощать сложные условные операторы. В лисгинге 28.3 показан пример упрощения условного оператора, содержащего логический оператор отрицания по(. Листинг 28.3. Упрощение услоиия — Сложное условие 12 пок (д > В апс( (С < (З ок пок (8 > Г1 1 1.. — Упрощенное условие 12 д <= В еп6 (С <= (З ок Е > Г) В известной работе [80) доказано, что любую программу можно переписать с помощью простых условных операторов 1(-1((еп-е(ве и циклов а(з((е-1оор, при этом можно исключить все безусловные операторы перехода. Эта теорема является основой автоматической реструктуризации программ. Зтапы такого преобразования программ показаны иа рис. 28.6.

Сначала программа представляется в виде ориентированного граф, после чего создастся структурированная программа без использования операторов перехода. ркс 28.б. Аетоятпичеснпя [мструктуризлвкя я[кирами Созданный ориентированный граф показывает поток передачи управления в программе. К этому графу применяются методы упрощения и преобразования, в результате чего находятся и устраняются неиспользуемые части кода.

Характеристики

Тип файла
DJVU-файл
Размер
8,79 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6381
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее