Инж. техн. системы Метод. материалы (1). Министерство науки и высшего образования российской
Скачать 61.41 Kb.
|
Контрольные вопросыКакие методы обнаружения ошибок вы знаете? В чем их суть (кратко)? На каких принципах базируется пассивное обнаружение ошибок? Как работает активное обнаружение ошибок? Приведите пример алгоритма активного обнаружения оши- бок. Какие требования к проверке входных данных предъявля- ются с целью минимизации воздействия ошибок? Лабораторная работа № 8. Выполнение обслуживания информационной системы в соответствии с пользовательской документацией Целью работы является ознакомление с процессом сопровож- дения программной системы. Результатом практической работы яв- ляется отчет, в котором должен быть приведен расчет стоимости сопровождения системы. Для выполнения лабораторной работы № 8 студент должен изучить приведенный ниже теоретический материал. Отчет сдается в распечатанном и электронном (файл Word) видах. Общие положения Сданный в эксплуатацию программный продукт в подавля- ющем большинстве случаев будет изменяться, поскольку в нем не исключены дефекты, а у его пользователей могут возникнуть новые требования, изменятся условия его эксплуатации и т. д. Весь спектр деятельности, направленный на обеспечение эффективной (с пози- ции затрат) поддержки программных систем, называется сопровож- дением программного обеспечения (software maintenance). Стандарт IEEE 1219 определяет сопровождение как модифи- кацию программного продукта после передачи в эксплуатацию для устранения сбоев, улучшения показателей производительности и/или других характеристик (атрибутов) продукта или его адапта- цию для использования в модифицированном окружении. Сопровождение программы может обходиться значительно дороже стоимости создания базовой версии приложения, поскольку позволяет однажды разработанную программную систему посред- ством ее адаптации использовать в течение длительного отрезка времени в изменяющихся внешних условиях. Общей задачей сопровождения является поддержка функци- онирования программной системы на протяжении всего периода её эксплуатации. Содержательная сторона сопровождения во многом определяется запросами на модификацию, исходящими от пользо- вателей. При этом запросы наиболее интенсивно поступают в служ- бу поддержки в первые шесть недель с момента сдачи системы в эксплуатацию. Дальнейшие запросы, как правило, связаны с адап- тацией ПО или с расширением его функциональности. При работе с заказчиком в обязанности инженеров службы сопровождения входит: проверка пользовательского сценария, при- водящего к сбою; идентификация причин сбоя; устранение причин сбоя или их обход (workaround); документирование всех работ и операций; внесение описания проблемы и ее решения в базу знаний службы сопровождения; передача всей информации разработчикам; информирование пользователя о статусе запроса на сопровождение. При сопровождении программной системы специалистами, не участвовавшими в её разработке, важным аспектом является трудо- емкость её «понимания» (понимание предметной области, архитек- туры, алгоритмов работы, исходного кода). «Понимание» про- граммных систем напрямую связано с качеством результата управ- ления конфигурациями: если документация согласована с кодом, то необходимый анализ кода и системы в целом не будет сопряжен с большими трудозатратами. В большинстве случаев правильное форматирование и присвоение переменным информативных имен (хороший стиль программирования) позволяют избежать многих трудностей. Организация процесса сопровождения подразумевает выпол- нение следующих действий: определение цели и состава процессов сопровождения; определение причин и видов изменения программного средства в процессе его сопровождения; организация процессов и передача на сопровождение раз- работанного программного средства; заключение договора между заказчиком и исполнителем на сопровождение программного средства; разработка концепции методов и процессов сопровождения программного средства; разработка спецификации требований на модификации при сопровождении программного средства; утверждение заказчиком концепции, договора и техниче- ского задания на сопровождение программного средства; организация контроля реализации концепции и договора на сопровождение программного средства. Управление процессом сопровождения Управленческие вопросы можно разделить на следующие группы: согласование с организационными целями; кадровое обеспечение; организация процесса сопровождения; организационные аспекты сопровождения; аутсорсинг. Согласование с организационными целями описывает, как осуществить возврат инвестиций от деятельности по сопровожде- нию. Организационные цели сопровождения направлены на макси- мальное продление срока эксплуатации программной системы, а де- ятельность по сопровождению есть обновление и расширение про- граммной системы как отклик на изменяющиеся потребности поль- зователей. Проблемы кадрового обеспечения связаны с тем, что инже- неры по сопровождению, как правило, считаются в компаниях- разработчиках специалистами «второго класса», поэтому часто воз- никают проблемы с удержанием квалифицированного персонала в отделах сопровождения. Организация процесса сопровождения во многом схожа с ор- ганизацией процесса создания программного обеспечения. В общем случае результатом итерации сопровождения является новая версия программной системы, которая проходит практически все этапы разработки. Организационные аспекты сопровождения связаны в первую очередь с тем, кто (какая организация) будет осуществлять сопро- вождение системы. Если сопровождение будет осуществляться си- лами разработчика, то необходимо определиться со структурными подразделениями, участвующими в этом процессе. Возможно также привлечение сторонних организаций. Преимуществами последнего подхода являются возможность выбора сопровождающей организа- ции из нескольких альтернатив (что позволяет выбрать подходящую стоимость сопровождения), а также появление у разработчика воз- можности заниматься другими видами работ (не сопровождением). Основным недостатком считается постепенная потеря разработчи- ками контроля над кодом созданной системы. Аутсорсинг подразумевает полную передачу непрофильных работ сторонним организациям. Лишь незначительная часть круп- ных корпораций использует аутсорсинг и только для некритичных компонентов, выполняющих не очень важные бизнес-функции, по- скольку они не хотят терять контроль над ассоциированными с эти- ми системами данными или функциональностью. К тому же сама процедура передачи системы на внешнее сопровождение слабо от- ражена в стандартах, что затрудняет документальное определение предоставляемых аутсорсером сервисов. Наилучшее решение – немедленно завершить выполнение программы или (в случае операционной системы) перевести ЦП в состояние ожидания. С точки зрения предоставления человеку, от- лаживающему программу, например системному программисту, са- мых благоприятных условий для диагностики ошибок немедленное завершение представляется наилучшей стратегией. Всегда, когда это возможно, лучше приостановить выполнение программы, чем регистрировать ошибки (либо обеспечить как дополнительную воз- можность работу системы в любом из этих режимов). Стоимость сопровождения Стоимость сопровождения определяется усилиями, затрачен- ными на понимание существующего кода системы и на разработку нового в рамках запроса на сопровождение, стоимость которого можно оценить по известной методике. На стоимость сопровожде- ния в целом могут оказать влияние следующие факторы: тип приложения; новизна программного обеспечения; наличие и квалификация персонала по сопровождению; длительность использования программной системы; характеристики и специфика аппаратной части, телекомму- никационной инфраструктуры; качество дизайна (например, модульность или масштабиру- емость), кода, документации и соответствующих работ по тестиро- ванию системы. На стоимость сопровождения влияет также сложность системы и ее компонентов: чем сложнее система, тем дороже ее сопровож- дение. Поэтому важно также осуществить прогнозирование количе- ства запросов на изменение системы при ее разработке. При этом следует учитывать связь системы с внешним окружением – для си- стем, находящихся в сложной взаимозависимости с внешним окру- жением, изменение последнего обязательно повлияет на систему. Для адекватной оценки этой взаимозависимости необходимо оце- нить следующие показатели: количество и сложность системных интерфейсов (чем больше системных интерфейсов и чем более сложными они явля- ются, тем выше вероятность изменений в будущем); количество изменяемых системных требований; бизнес-процессы, в которых используется данная система (по мере развития бизнес-процессов появляются изменения в требо- ваниях). Если сопровождение осуществляется сторонней организацией или группой специалистов той же фирмы, которые не занимались разработкой данной программной системы, то на первый план вы- ходит оценка трудозатрат, связанных с пониманием программного кода. В этом случае важно наличие согласованной документации и комментариев. Для косвенной оценки трудозатрат на сопровождение (и стоимости сопровождения) можно применить доля комментариев в общем числе строк сопровождаемого кода. Вычислить долю ком- ментариев можно с помощью специальных программ, в избытке присутствующих на рынке. При оценке стоимости сопровождения важно учесть затраты на распространение модифицированной про- граммной системы (или ее части) среди ее пользователей. Данная статья расходов значительно возрастает для многотиражных систем и систем, нуждающихся в частом обновлении версий. |