Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Основы программирования обслуживания вызовов в реальном времениСодержание книги
Поиск на нашем сайте
В наше время нельзя описывать станции автоматической коммутации, не уделяя основного внимания их программному обеспечению - самой сложной (и самой трудоемкой при разработке) части цифровой АТС. Эта сложность обусловлена двумя рассматриваемыми в данной главе составляющими: функциональное наполнение ПО и выполнение задач в реальном времени. Кроме того, в следующей главе 10 мы поговорим о ПО технического обслуживания и административного управления, а в главе 11 - о ПО телекоммуникационных услуг. Для лучшего восприятия излагаемого в этом параграфе материала полезно с самого начала привести следующие цифры. Станционному ПО АТС, обслуживающей 10000 абонентов, необходимо одновременно держать под контролем приблизительно 1000 соединений в фазе разговора плюс 200 соединений в фазе установления/ разрушения плюс 20 транзакций эксплуатационного управления, причем требования реального времени ограничивают время отклика программного обеспечения для обработки сигнализации интервалом 10-100 мс, для функций обработки вызова - интервалом 100-1000 мс, для диалога человек-машина - 1-3 с, для транзакций технической эксплуатации - 1-10 с. В новых цифровых АТС, например, 5 ESS компании Lucent, DMS-100 компании Nortel, EWSD компании Siemens и др. функционирование ПО в реальном времени отчасти скрыто за их операционными системами, что хотя и упрощает разработку программ для этих систем, но и затемняет реальное понимание работы систем. В ранних системах коммутации с монолитной программной архитектурой, подобной архитектуре 1 ESS или ИВТУ, поведение программного управления в реальном времени более очевидно. И хотя среда, в которой специалисты должны были разрабатывать ПО первых АТС с управлением по записанной программе, была весьма сложной и не очень комфортной, педагогические возможности объяснить поведение ПО этих АТС в реальном времени намного лучше. Например, уже рассматривавшийся в главе 6 проект программного управления коммутационной станцией с помощью специализированной электронной управляющей машины «Нева» предусматривал разработку программ для этого компьютера на языке Ассемблера, используя косвенную адресацию, макрокоманды и подпрограммы. Язык высокого уровня не применялся, т.к. хотя Алгол, Кобол и Фортран уже были изобретены, их использование для задач реального времени в системе управления узлом коммутации, да еще на таких «тихоходных» компьютерах, было попросту невозможно. Система команд «Невы» содержала, кроме универсальных команд (сложение, вычитание, логические операции, сдвиги ит.п.), большое количество специализированных команд, обеспечивавших выигрыш времени в процессе обработки вызовов или экономию памяти машины. Так, в группе команд арифметических операций к четырем обычным командам были добавлены часто использовавшиеся команды сложения кода с единицей и вычитание из кода единицы. Логические операции включали в себя логический сдвиг влево и вправо (ЛСД); циклический сдвиг (ЦСЖ); размножение операционного регистра (РМ). Была введена специальная группа операций побитовой обработки информации, содержавшая восемь (а с учетом модификаций - 18) разных по смыслу команд: единица в разряде (РЕ); нуль в разряде (РН); инверсия разряда (РИ); проверка разряда (РП); номер левой единицы (НЕ); номер левой единицы с инверсией (НЕЙ); номер несовпадений в массиве (ННМ) и номер несовпадений с инверсией в массиве (ННИМ). Можно представить, как непривычно это выглядит сейчас, но для тогдашних программистов, к которым принадлежал и автор этих строк, латинский алфавит ограничивался практически шестью буквами А,В,С,D,E,F, необходимыми для шестнадцатеричной системы счисления, а мнемоника ассемблерных команд вполне привычно сочеталась с кириллицей. К этим ассемблерным командам относились также операции ассоциативного поиска, содержавшие две команды поиска в упорядоченном и в неупорядоченном массивах. Операции с циклическими массивами и команды системы прерывания ('возбудить сигнал прерывания', 'гасить сигнал', 'маскировать сигнал', 'демаскировать сигнал', 'есть прерывание', 'нет прерывания' и 'конец программы') как раз и обеспечивали специфику обслуживания вызовов в реальном времени. Для управляемого ЭУМ «Нева» импульсно-временного транзитного узла ИВТУ, также рассмотренного в главе 6, был выбран единый цикл сканирования всех комплектов, равный 10 мс. Результаты сканирования использовались для формирования очередей к программам обработки вызовов. При этом смысловое содержание вводимой из периферийных управляющих устройств (ПУУ) информации определялось по таблицам решений, которые составлялись для всех типов АТС, связанных с ИВТУ, и в которых учитывались способ передачи сигналов, скорость этой передачи и ряд других факторов. Проблемы реального времени обусловили разработку специализированной телефонной операционной системы (ТОС), основной частью которой являлась подсистема приоритетного обслуживания, определявшая последовательность вызова программ, к которым в данный момент имеются запросы. Все программы были распределены по абсолютным и относительным уровням приоритета. При этом программы сканирования и ввода вызывались на нулевом (высшем) уровне приоритета по расписанию, т.е. через заданные интервалы времени. Система приоритетного обслуживания проектировалась таким образом, чтобы, с одной стороны, обеспечить необходимую последовательность выполнения отдельных программ и, с другой, -сократить до минимума затраты времени на переключение программ, а вместе с тем и минимизировать объем памяти, необходимой для хранения отложенных программ. Система прерывания содержала поле для запоминания сигналов прерывания, делившихся на 17 абсолютных приоритетных уровней, из которых наивысшим приоритетным уровнем обладал единственный аппаратный уровень; остальные 16 были программными. На каждом из абсолютных приоритетных уровней было предусмотрено до 256 относительных приоритетов, которые не вызывали прерывания текущих программ, но определяли порядок обслуживания программ данного уровня. Для определения оптимального числа уровней прерывания, распределения всех программ по абсолютным и относительным приоритетным уровням, определения размеров циклических массивов очередей заявок и решения других задач телефонной операционной системы последняя должна была быть тщательно рассчитана и оптимизирована, так как от этого зависела правильность распределения ресурсов управляющего компьютера и, в первую очередь, использование ресурса времени центрального процессора. Оптимизация телефонной операционной системы производилась с помощью разработанных автором математического аппарата и инженерных методов расчета и оптимизации приоритетного обслуживания программ [47]. Концептуально иные подходы к решению тех же задач программирования в реальном времени были разработаны для архитектуры программного обеспечения 1ESS. Время выполнения программ в процессоре 1 ESS распределяется между классами программ, которые отвечают за ввод/вывод с запуском от таймера, обработку вызовов и техническое обслуживание системы. Распределение времени процессора между этими тремя классами программ весьма подробно рассмотрено в книге Р.Томпсона [200]. Там указано, что сканирование свободных абонентских линий в 1ESS производится каждые 100 мс, и что такая частота вызовов соответствует, в среднем, одному новому вызову во временном интервале опроса при интенсивности потока вызовов, составляющей 36000 вызовов в ЧНН. Если бы эти вызовы были распределены во времени строго равномерно (что невероятно), распределение рабочего времени процессора между тремя классами программ в интервале, равном 1 минуте, было бы гладким, равномерным и неизменным. В реальных условиях поток вызовов имеет случайный характер, а распределение рабочего времени процессора определяет усредненная величина - интенсивность нагрузки. На рис. 9.2 показано, как распределяется между тремя классами программ рабочее время процессора в зависимости от интенсивности телефонной нагрузки в системе. На оси у показано рабочее время процессора, а на оси х- интенсивность телефонной нагрузки в системе. В левой стороне рис. 9.2 состояние системы соответствует 3 часам ночи, когда телефонная нагрузка практически равна 0. В правой стороне рисунка состояние системы соответствует часам наибольшей нагрузки, когда процессор с ней едва справляется. Цифры на рис. 9.2 условны, для простоты предполагается, что распределение рабочего времени процессора является линейной функцией интенсивности нагрузки. Программы опроса спланированы на выполнение с постоянной частотой. Но исполнение программы, которая ищет и находит заявку, занимает больше рабочего времени процессора, чем исполнение той же программы, когда она ищет заявку и не находит ее. Предположим, что программы опроса расходуют 40% рабочего времени процессора именно на вспомогательные действия, связанные с поиском заявок - сканирование датчиков состояния снятия трубки, изменений во внутренних буферах контроля, сигналов от таймера и пр. В левой части рис. 9.2, которая соответствует нулевой телефонной нагрузке и отсутствию заявок, общее рабочее время процессора складывается только из времени опроса. Предположим, что программы опроса расходуют на каждое исполнение, в среднем, на 50% больше рабочего времени процессора при телефонной нагрузке Ттах, чем наихже исполнение при телефонной нагрузке 0. В таком случае рабочее время процессора, выделяемое программам опроса, в правой части рис. 9.2 возрастает до 60%. Рис. 9.2 Распределение рабочего времени управляющего процессора при разной интенсивности телефонной нагрузки на примере 1 ESS Расходование 40-60% рабочего времени только на поиск заявок может показаться неэффективным. Но лучшим показателем эффективности служит рабочее время процессора, затрачиваемое на обслуживание найденной заявки. Пусть п -среднее число заявок, найденных программами опроса в типовом 5-миллисекундном интервале времени. Если нагрузка мала, программы опроса расходуют 2 миллисекунды (40%) из 5 миллисекунд интервала и, возможно, на-ходяттолько п=1 заявку. На одну найденную заявку расходуется 2 мс. Если нагрузка большая, программы опроса расходуют 3 мс (60%) из 5 миллисекунд интервала, но могут найти и п=60 заявок. На одну найденную заявку, в среднем, израсходуется 0.05 мс. В том случае, когда ввод/вывод запускается прерыванием, и на каждое прерывание расходуется дополнительно 0.1 мс рабочего времени, одна задача расходует 0.1 мс, а 60 задач расходуют 6 мс. Таким образом, ввод/ вывод с запуском от прерывания может быть в 20 раз эффективней ввода/вывода с запуском от таймера при малой телефонной нагрузке, но при высокой телефонной нагрузке он вдвое менее эффективен. Поскольку архитектуру определяет ситуация с высокой интенсивностью телефонной нагрузки - эффективность важна только для загруженной системы программного управления, а когда интенсивность телефонной нагрузки невысока - рабочее время управляющего процессора экономить незачем, потому что у процессора все равно немного работы. Предположим, что программы обработки вызовов, регулярно выполняемые вне зависимости от наличия или отсутствия телефонной нагрузки, расходуют 10% рабочего времени процессора, а сама обработка вызовов занимает дополнительно 30% рабочего времени процессора, что соответствует точке Ттах. В левой части рис. 9.2, где интенсивность телефонной нагрузки равна 0, и обрабатываемых вызовов нет, общее рабочее время процессора, выделяемое для обработки вызовов, составляет только 10% рабочего времени, занимаемого регулярными программами. В правой части рис. 9.2, где интенсивность телефонной нагрузки равна Ттах, обработка вызовов занимает 40% рабочего времени процессора. Заметим, что при интенсивности телефонной нагрузки Ттах опрос и обработка вызовов вместе занимают 100% рабочего времени процессора. Поскольку свободного рабочего времени не остается, интенсивность телефонной нагрузки Ттах определяют как предельную. Если интенсивность нагрузки превысит Ттах, процессор не сможет выполнить необходимый объем работы и перейдет в режим кратковременной перегрузки. Существуют различные программные средства сглаживания кратковременных всплесков нагрузки, Например, во время таких всплесков могут приостанавливаться те программы периодического техобслуживания, которым обычно присваивают низкий приоритет, а их выполнение производится тогда, когда время процессора не занято опросом или обработкой вызовов. В левой части рис. 9.2, где интенсивность нагрузки нулевая, для техобслуживания доступно 50% рабочего времени, а в правой его части для задач техобслуживания рабочего времени не остается. Однако очень длительный период повышенной нагрузки может привести к переполнению очереди и к аварийному отказу всей программной системы. Рассмотрим интенсивность нагрузки, равную половине максимальной величины. В результате интерполяции между двумя крайними точками на рис. 9.2 получим, что опрос занимает 50% рабочего времени процессора, обработка вызовов - 25% этого времени, а 25% остается для техобслуживания. Хотя рис. 9.2 хорошо иллюстрирует зависимость распределения рабочего времени процессора от интенсивности телефонной нагрузки, он не показывает поведение программ в реальном времени. В 1 ESS и в машинах «Нева» оно определяется приоритетами. В 1 ESS имеются приоритеты базового уровня, обозначаемые буквами от А до Е и I. Для предотвращения перегрузки периодическому сканированию абонентских линий назначается низкий приоритет D. В условиях обычной нагрузки сканирование абонентских линий выполняется каждые 100 мс. Когда процессор очень занят, время между двумя запусками программ приоритета D может достигать 700 мс, и при этом экономятся шесть циклов сканирования. Единственная расплата за такую экономию -малозаметная задержка сигнала ответа станции при перегрузке системы. Практически такое же решение было реализовано в конце 80-х годов в АТС DX-200, а затем и в АТСЦ-90, после того как лавиной телефонных поздравлений по случаю 8 Марта была остановлена одна из первых цифровых АТС в стране. Эффект, который дает это решение, иллюстрирует рис. 9.3. Рис. 9.3 Эффект программного управления нагрузкой АТС И все же разработчики 1 ESS не только сильно недооценили трудности разработки программного обеспечения, но и сильно переоценили производительность своего процессора 1Е. Эти два важнейших вопроса, конечно, тесно связаны - если программа оказывается длиннее, чем ожидалось, время ее выполнения, по-видимому, становится больше, и требуется больше рабочего времени процессора, чем ожидалось. Хотя было обещано, что процессор 1Е будет управлять коммутационной станцией емкостью несколько сотен тысяч абонентских линий, первоначально процессор 1Е с трудом обслуживал несколько тысяч абонентских линий и вскоре был заменен более быстродействующим процессором 1 А. В отличие от этого, все процессоры «Нева» в до сих пор успешно работающих междугородных АМТС «Кварц», как и в выпущенном всего в единственном экземпляре транзитном узле ИВТУ, не достигли предельных значений производительности. Разные судьбы машин 1ESS и машин «Нева» были обусловлены отнюдь не техническими решениями. 9.4 Технологические аспекты разработки программного обеспечения АТС 1ESS и ИВТУ были новаторскими работами, обобщенный опыт которых дал начало современной теории проектирования программного обеспечения реального времени. Независимо от используемой теоретической модели, жизненный цикл программного обеспечения системы коммутации разделяется на четыре фазы: • разработка, • тестирование, • внедрение, • сопровождение, из которых в этом параграфе основное внимание уделяется первой. Одной из ранних моделей разработки программного обеспечения является модель водопада (waterfall model), или, иначе, - каскадная модель, представленная на рис. 9.4. Дальнейшая эволюция этой модели, обусловленная, в частности, рассматриваемыми в следующей главе требованиями надежности и эффективности эксплуатационного управления системами коммутации, а также необходимостью оперативного ввода новых телекоммуникационных услуг на основе их быстрого макетирования, привел к V-модели, являющейся развитием каскадной модели и представленной на рис. 9.5. Обе эти модели предполагают, что любая фаза работы завершается до того, как начнется работа следующей фазы. Однако сегодня при разработке ПО используется методология объектно-ориентированного программирования, для которой больше подходит предложенная Б.Боэмом [21] спиральная модель, приведенная на рис. 9.6 и соответствующая итерационному процессу создания ПО путем последовательных приращений. Не вдаваясь в детали других фаз жизненного цикла ПО, сосредоточимся на процессе разработки телекоммуникационного программного обеспечения. В схеме этого процесса, приведенной на рис. 9.7, предусмотрена иерархическая декомпозиция процесса разработки на последовательность шагов, уточняющих проект. Такими укрупненными шагами (уровнями проектирования) являются анализ и формализация требований и интерфейсов коммутационного оборудования (R-уровень), определение архитектуры (системной и функциональной) и модульной структуры ПО (А-уровень), разработка SDL-спецификаций модулей (блоков, процессоров, процедур, макросов, структур данных) и межмодульных интерфейсов (S-уровень) и собственно программирование и отладка программ (Р-уровень). Уровни проектирования различаются как степенью конкретизации (возрастающей сверху вниз), так и языковыми средствами описания. Представление системы ПО на вышестоящем уровне является в известном смысле «общим прародителем» семейства ее представлений на нижестоящих уровнях. На всех уровнях проектирования (а не только на S-уровне) производится последовательная спецификация задач, которые решает ПО. Под спецификацией здесь понимается описание в терминах, характерных для самой задачи, а не для ее реализации, служащее основой для дальнейшей детализации и разработки телекоммуникационного ПО. Можно считать, что каждый уровень проектирования получает спецификации от вышестоящего уровня и, в свою очередь, вырабатывает данные необходимые, для спецификации одного (или более) из нижестоящих уровней. Отличительные свойства спецификаций - однозначность, точность, формальность, понятность и читаемость. Как отмечено в [44], язык программирования более высокого уровня может считаться языком спецификаций по отношению к языку более низкого уровня. При этом спецификация программного модуля не обязана быть короче самого модуля, ибо от нее требуется не краткость, а точность и понятность. Определение и спецификация требований к ПО узла коммутации являются основными задачами R-уровня проектирования. На этом уровне разрабатываются технические требования, структурная схема станции, интерфейсы ПО с коммутационным оборудованием и т.д. Языком описания, как правило, служит естественный язык со всеми присущими ему недостатками - неоднозначностью, связанной с тем, что естественный язык недостаточно точен для описания программных систем, и разные разработчики могут по-разному понять одну и ту же фразу технического задания, и неполнотой описания ПО, которая усугубляется тем, что при разработке большой и сложной системы телекоммуникационных программ проходит много времени, прежде чем становится ясно, какой информации R-уровня недостает. Еще одна трудность, возникающая на R-уровне проектирования, -невозможность удержать семантику описания требований на одинаковом уровне детализации. В результате одни описания R-уровня оказываются несколько туманными, другие - излишне детализированными, предоставляя элементы реализации, причем, возможно, не самой удачной, выбранной без рассмотрения остальных частей системы и не позволяющей разработчикам следующих уровней проектирования использовать эффективные структуры данных или приемы программирования. После завершения R-уровня проектирования, т.е. когда точная внешняя спецификация системы программного управления коммутационного узла заменит ее неформальное описание, начинается разработка архитектуры ПО (А- уровень). А-уровень проектирования можно условно разделить на два подуровня - разработка функциональной архитектуры и разработка системной архитектуры. Принципы проектирования этих подуровней претерпели за последние годы принципиальные изменения. Вычурные системные решения, хаотические управляющие структуры и тысячестрочные подпрограммы сменились тщательно определенными и хорошо документированными функциональными модулями. Произошло заметное смещение критериев проектирования -алгоритмам управления ресурсами управляющих процессов отводится значительно меньшая роль, чем проблемам структуризации системы и взаимодействия процессов. На том же А-уровне проектирования разрабатывается структурная модель программной системы, состоящая из иерархии содержательных функций, эффект выполнения которых влияет на функционирование коммутационного узла и обслуживание вызовов. Такая структурная модель в рекомендованном ITU-T языке спецификаций и описаний SDL называется диаграммой дерева блоков. Блок представляет собой наиболее крупный объект в SDL, который, в свою очередь, содержит один или несколько процессов. Разбиение системы ПО на составные части делается таким образом, чтобы каждая из частей была небольшой, удобной для восприятия и соответствующей естественному функциональному разбиению, и чтобы связи между частями, возникающие в результате разбиения, были как можно более слабыми. На каждом этапе разбиения специфицируются также каналы, входные сигналы, выходные сигналы и данные. Программная документация А- уровня служит исходными данными для проектирования SDL-спецификаций программных процессов, процедур и макросов, что в отечественной литературе иногда именуется алгоритмическим обеспечением АТС. Неформально алгоритм можно определить как совокупность правил, определяющих эффективную процедуру решения любой задачи из некоторого заданного класса задач. Сам термин произошел от арабского имени великого узбекского математика IX века Мухаммеда аль Хорезма и, следовательно, известен достаточно давно, но как математические объекты алгоритмы исследуются с 30-х годов прошлого столетия. Уточнения понятия алгоритма основываются, в частности, на понятиях частично-рекурсивной функции или машины Тьюринга. Строго говоря, составление алгоритма программного управления АТС является в математическом смысле алгоритмически неразрешенной проблемой, т.к. область аргументов такого алгоритма обязательно должна включать в себя состояния и текущие значения реального времени функционирования узла коммутации. С другой стороны, известен так называемый тезис Черча, состоящий в том, что любая вычислимая арифметическая функция является частично-рекурсивной. Следовательно, алгоритмическая неразрешимость проблемы составления алгоритма программного управления АТС вытекает из простых мощностных соображений: всех арифметических (числовых) функций - континиум, а частично-рекурсивных - счетное множество. Тем не менее, термин алгоритмическое обеспечение прочно укоренился в лексиконе специалистов по программному обеспечению систем коммутации. Интуитивно под этим термином понимаются спецификации телекоммуникационного программного обеспечения. Именно в таком смысле этот термин используется и в настоящей книге. Детальное проектирование S-уровня включает в себя уточнение спецификаций интерфейсов программных модулей и структур данных и проектирование SDL-диаграмм модулей. При уточнении интерфейсов окончательно определяются порядок и структура параметров, глобалов и сообщений, составляющих интерфейс. Проектирование SDL- диаграмм на S-уровне тоже выполняется сверху вниз методом пошаговых уточнений каналов, сигналов, процессов, процедур, макроопределений. Точно так же, как конструкторские чертежи, например, в машиностроении, SDL-диаграммы - это не просто картинки, а законченный и богатый язык. Механизмы SDL просты и обладают большой выразительной силой, что делает SDL естественным и удобным для применения. Требуется совсем небольшая практика, что бы научиться читать на SDL и точно воспринимать информационное содержание, передаваемое графическими обозначениями и словами языка. Однако, будучи языком с точно определенной семантикой, SDL налагает жесткие ограничения на правила толкования смысла спецификаций и на правила написания SDL-диаграмм. Можно напомнить, что разработка языка SDL проводится ITU-T с начала 70-х годов. Первая версия SDL6bma опубликована в 1977 г., вторая - в 1982 г., а третья, расширенная и модернизированная, -в 1985 г. Этим версиям присвоены наименования, соответственно, SDL-76, SDL-80, SDL-84. Первые версии представляли собой средства полуформального описания систем с помощью графического псевдокода, но постепенно возможности формального структурированного описания систем развились существенно глубже, вплоть до создания полностью формализованных и выполнимых спецификаций ПО узлов коммутации. В таблице 9.1 приведены основные операторы графической версии SDL. Завершающим шагом разработки ПО является кодирование и отладка программ (Р-уровень проектирования). Именно Р-уровень многие называют программированием. В течение этого этапа программная разработка конвертируется в коды, которые могут исполняться в управляющих процессорах. Первые системы программного управления коммутацией создавались на языке Ассемблер, но значительное улучшение характеристик процессоров, в полном соответствии с законом Мура, привело к возможности эффективного использования языков высокого уровня, в число которых входит популярный для телекоммуникационных приложений язык Си++. Таблица 9.1 Символы SDL Окончание табл. 9.1
Качество ПО Наибольшую популярность приобрели некоторое время назад численные оценки качества программ, предложенныеХолстедом. Согласно предложенной им метрике, длина программы N=r|1log2ri]+r|2log2r|2, где Г|, - число простых операторов, а г|2 - число простых операндов в программе. Развитию этой программометрики были посвящены сотни публикаций, а применительно к программному управлению узлами коммутации интересные результаты получены в [10]. В практической же области в настоящее время используются иные модели оценки качества ПО, из которых мы упомянем две - одну, предложенную Институтом разработки программного обеспечения (SEI) университета Карнеги Меллона и называемую моделью мандатной зрелости (СММ), и другую, разработанную ISO(TC-176). Обе модели поддерживают процесс сертификации организаций-разработчиков программного обеспечения. Полезная с педагогической точки зрения, модель мандатной зрелости СММ оперирует пятью уровнями зрелости процесса разработки ПО. Первый уровень называют начальным (initial level). Он соответствует ситуации, когда процесс разработки ПО не организован, и разработка основана только на индивидуальных качествах, грамотности и опыте программистов. Второй уровень называется уровнем повторяемости (repeatable level). На этом уровне зрелости существуют правила и процедуры разработки ПО, обеспечивается дисциплинированный подход к разработке, предусматривающий планирование и отслеживание проектов и позволяющий, когда это возможно, успешно повторять решения и подходы одного проекта в других проектах. Третий уровень называется уровнем определенности (defined level). Это означает, что процесс проектирования ПО хорошо определен и документируется. Он включает в себя стандарты и процедуры выполнения работы, устойчивые и повторяемые элементы, общее понимание целевой функции ПО, сквозной контроль и критерии завершения. Четвертый уровень называется уровнем управляемости (managed level) и предполагает, что качество процесса проектирования ПО, как и качество продукта, в определенной степени предсказуемо. Процесс этого уровня является устойчивым, измеряемым и корректируемым, что дает возможность влиять на качество продукта. Последний, пятый уровень называется уровнем оптимизации (optimizing level). На этом уровне реализуется программа непрерывной модернизации, используются профилактические методики, которые сокращают время разработки и повышают качество ПО, применяются новые приемы и методики, направленные на постоянное улучшение процесса разработки и, следовательно, качества продукта. Характеристика организации-разработчика ПО может уточняться в зависимости от достигнутого ею уровня проектирования, и командой сертифицированных специалистов ее программному продукту может быть присвоен соответствующий мандатный уровень зрелости. Аналогична задача международного стандарта управления качеством ISO 9000-3, обеспечивающего гарантии качества разработки, поставки и сопровождения ПО. Он определяет систему оценки качества, включая его управляемость, а также функции жизненного цикла (разработку, тестирование и установку) и функции сопровождения (управление конфигурацией, документация, измерение и обучение). Соответствие организации-разработчика ПО этим требованиям проверяется организацией, которая имеет подтвержденные ISO право и полномочия выдавать сертификат согласия ISO, причем организация-разработчик должна сертифицироваться регулярно с определенной периодичностью. На рис. 9.8 показана технология проектирования телекоммуникационного ПО, соответствующая приведенным в этом параграфе принципам обеспечения качества ПО.
|
||||
Последнее изменение этой страницы: 2016-12-11; просмотров: 474; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.135.231 (0.012 с.) |