Шпаргалка по языку СИ. Конспект Лекций «программирование На Языке Высокого Уровня Си» П. Конспект лекций для студентов высших учебных заведений, обучающихся по специальности 230102. 65 Автоматизированные системы обработки информации и управления
Скачать 1.25 Mb.
|
Тема 2. Жизненный цикл программы. Критерии качества программы. Для лучшего управления процессом разработки больших программных проектов выделяют шесть этапов, представляющих собой «цикл разработки» или «жизненный цикл» программного обеспечения: 1) постановка задачи, анализ и уточнение требований, предъявляемых к системе; 2) определение спецификаций и разработка системной архитектуры; 3) разработка проекта, детальное проектирование модулей; 4) программирование (кодирование); 5) тестирование и отладка; 6) эксплуатация и сопровождение. Основные этапы разработки и проектирования регламентируются ГОСТ 19.102-77 в соответствии с табл.2. Таблица 2. Стадии и этапы разработки программного обеспечения Стадии разработки Этапы работ Содержание работ 1. Техническое задание Обоснование необходимости разработки программы Постановка задачи. Сбор исходных материалов. Выбор и обоснование критериев эффективности и качества разрабатываемой программы. Обоснование необходимости проведения научно- исследовательских работ Научно- исследовательские работы Определение структуры входных и выходных данных. Предварительный выбор методов решения задач. Обоснование целесообразности применения ранее разработанных программ. Определение требований к техническим средствам. Обоснование принципиальной возможности решения поставленной задачи Разработка и утверждение технического задания Определение требований к программе. Разработка технико-экономического обоснования разработки программы. Определение стадий, этапов и сроков разработки 19 программы и документации на нее. Выбор языков программирования. Определение необходимости проведения научно- исследовательских работ на последующих стадиях. Согласование и утверждение технического задания 2. Эскизный проект Разработка эскизного проекта Предварительная разработка структуры входных и выходных данных. Уточнение методов решения задачи. Разработка общего описания алгоритма решения задачи. Разработка технико-экономического обоснования Утверждение эскизного проекта Разработка пояснительной записки. Согласование и утверждение эскизного проекта 3. Технический проект Разработка технического проекта Уточнение структуры входных и выходных данных. Разработка алгоритма решения задачи. Определение формы представления входных и выходных данных. Определение семантики и синтаксиса языка Разработка структуры программы. Окончательное определение конфигурации технических средств Утверждение технического проекта Разработка плана мероприятий по разработке и внедрению программ. Разработка пояснительной записки. Согласование и утверждение технического проекта 4. Рабочий проект Разработка программы Программирование и отладка программы Разработка программной документации Разработка программных документов в соответствии с ГОСТ 19.101-77 Испытания программы Разработка, согласование и утверждение программы и методики испытаний Испытания программы Проведение предварительных государственных, межведомственных, приемосдаточных и других видов испытаний. Корректировка программы и программной документации по результатам испытаний 5. Внедрение Подготовка и передача программы Подготовка и передача программы и программной документации для сопровождения и (или) изготовления. Оформление и утверждение акта о передаче программы на сопровождение и (или) изготовление. Передача программ в фонд алгоритмов и программ 20 Стадии эскизного и технического проектов могут быть исключены по согласованию с заказчиком. Кроме этого, допускается вводить другие этапы работ, если это технически обосновано. Техническое задание и спецификация программы Техническое задание (ТЗ) является одним из важнейших документов в программной документации. Состав ТЗ регламентируется ГОСТ-м 19.201-78 и содержит следующие пункты: • введение; • основание для разработки; • назначение разработки; • требования к программе или программному изделию; • требования к программной документации; • технико-экономические показатели; • стадии и этапы разработки; • порядок контроля и приема. В техническом задании допускается включать приложения, добавлять новые разделы, уточняющие задачу. В разделе “Введение” указывают наименование, краткую характеристику области применения программы или программного изделия или объекта, в котором используют программу или программное изделие. В разделе “Основания для разработки” должны быть указаны: документ (документы), на основании которых ведется разработка; организация, утвердившая этот документ, и дата его утверждения; наименование и(или) условное обозначение темы разработки. В разделе “Назначение разработки” должно быть указано функциональное и эксплуатационное назначение программы или программного изделия. Раздел “Требования к программе или программному изделию” должен содержать следующие подразделы: 21 • требования к функциональным характеристикам, где указываются основные требования к составу выполняемых функций, организации входных и выходных данных, временным характеристикам и т.п.; • требования к надежности, где указываются требования к обеспечению надежного функционирования (обеспечения устойчивого функционирования, контроль входной и выходной информации, время восстановления после отказа и т.п.); • условия эксплуатации, где указываются условия (температура окружающего воздуха, относительная влажность и т.п. для выбранных типов носителей данных), при которых должны обеспечиваться заданные характеристики, а также вид обслуживания, необходимое количество и квалификация персонала; • требования к составу и параметрам технических средств, где приводится необходимый состав технических средств с указанием их основных технических характеристик; • требования к информационной и программной совместимости, где должны быть указаны требования к информационным структурам на входе и выходе и методам решения, исходным кодам, языкам программирования и программным средствам, используемым программой. При необходимости должна обеспечиваться защита информации и программ; • требования к маркировке и упаковке; • требования к транспортированию и хранению, где указываются условия транспортирования, места хранения, условия хранения, условия складирования, сроки хранения в различных условиях. В разделе “Требования к программной документации” должен быть указан предварительный состав программной документации и, при необходимости, специальные требования к ней. В разделе “Технико-экономические показатели” должны быть указаны: ориентировочная экономическая эффективность, предполагаемая годовая 22 потребность, экономические преимущества разработки по сравнению с лучшими отечественными и зарубежными образцами и аналогами. В разделе “Стадии и этапы разработки” устанавливают необходимые стадии разработки, этапы и содержание работ (перечень программных документов, которые должны быть разработаны), а также ориентировочные сроки выполнения отдельных этапов. В разделе “Порядок контроля и приемки” указываются основные мероприятия по контролю за выполнением работ и по приемке полученных результатов. Развернутый план проекта программной системы содержит следующие пункты: 1. Введение. Достаточно подробная общая характеристика системы, чтобы будущий пользователь мог принять решение о том, отвечает ли система его требованиям. 1.1. Функции системы. Поясняется назначение прикладной системы, приводится перечень основных процедур и обрабатываемых данных. 1.2. Сфера применения. Характеризуется круг пользователей, на которых ориентирована разрабатываемая система. 1.3. Сбор и корректировка данных. Описываются источники исходных данных, поступающих в систему, а также источники данных, используемых для корректировки. В этот пункт следует включить планы и графики корректирования данных. В дальнейшем информация используется как руководство при детальной проработке программ корректировки данных. 1.4. Отчеты. Описываются формы, определяются периодичность и общее содержание отчетов, выдаваемых системой. Эта информация служит основой для последующей детальной проработки программ генерации отчетов. 2. Вычислительная среда. Определяется минимальный состав оборудования, необходимого для нормального функционирования системы. 23 2.1. Технические средства. Описывается конфигурация технических средств, указывается требуемый объем оперативной памяти, определяются ограничения на сегментацию памяти, требования к внешним устройствам и т. д. 2.2. Программные средства. Указываются типы операционных систем, используемые библиотеки стандартных программ, системы управления базами данных и т. д. 2.3. Режимы работы. Определяется возможность функционирования системы в условиях пакетного режима, интерактивного режима, режима реального времени или их комбинаций. 3. Связь с внешней средой. Описывается взаимодействие пользователей с системой. 3.1. Вход системы. Определяются форматы данных всех типов, вводимых пользователями, а также внутренняя структура сданных. Эта информация служит руководством при разработке бланков входных форм и подготовке данных. 3.2. Выход системы. Описываются форматы отчетов, сообщений и других выходных форм. Эта информация используется при составлении планов и подготовке данных. 3.3. Управляющие параметры. Перечисляются параметры, задаваемые при настройке системы на конкретную конфигурацию технических и программных средств. 3.4. Рабочие инструкции. Дается общий обзор содержания инструкций, касающихся обращения с лентами, хранения бумаги и т. д. Данная информация используется при составлении инструкций для обслуживающего персонала. 4. Качество системы. 4.1. Соблюдение стандартов и общепринятых обозначений. Указывается, в какой мере система соответствует стандартному варианту языка программирования и отвечает стандартам версии, эксплуатируемой в данном вычислительном центре. Кроме того, определяется степень использования 24 общеупотребительных сокращений и математических обозначений. Это позволяет оценить трудоемкость сопровождения системы. 4.2. Универсальность системы. Обсуждается уровень независимости системы от конкретных внешних условий, с учетом которых она разрабатывается. Это характеризует сложность перевода системы на другие вычислительные установки. 4.3. Надежность функционирования. Рассматриваются такие вопросы, как ожидаемое время наработки на отказ, способы корректировки ошибок, проверка достоверности информации, точность результатов, статистические характеристики всех модулей, осуществляющих вероятностные расчеты, например генераторов псевдослучайных чисел. 4.4. Защита информации. Описываются средства, обеспечивающие сохранность данных и авторизацию доступа, используемые способы кодирования. 5. Документация по системе. 5.1. Пособия и руководства. Приводится перечень документации, прилагаемой к системе, – пособий, форм отчетности, рабочих описаний, системной и программной документации. 5.2. Спецификации программ. Дается общее функциональное описание отдельных программ, входящих в состав системы. Эта информация служит руководством при разработке программ. 5.2. Организация данных. Приводится общее описание взаимодействия отдельных информационных потоков в системе. Эти сведения используются при разработке принципов организации данных. Документы, содержащие общее описание проекта, служат, с одной стороны, своеобразным эталоном, на основании которого осуществляется проверка законченной системы, с другой – используются как руководства на этапах разработки, реализации и испытаний. 25 Разработка проекта программной системы Это этап детализации задачи. Здесь определяются структура входных и выходных данных системы - как внешних, так и, возможно, промежуточных (внутренних) и формы их хранения (оперативная память, файлы и т.д.), а также определяются основные функции по их преобразованию, но при этом не указывается, каким образом это выполняется. Детализация алгоритмов на этом уровне преждевременна, т.к. может вызвать нежелательные последствия. Как правило, уже на этом этапе в системе обосабливаются логически выделяемые подсистемы и модули. На этапе проектирования проводятся следующие работы: 1) разрабатывается общая структура вычислительной системы (периферийные устройства и их взаимодействие); 2) уточняется или разрабатывается общая модульная структура программной системы, интерфейс, алгоритмы и функции отдельных подсистем; 3) планируется процесс параллельной работы группы программистов и им передаются на разработку отдельные модули. Очевидно, что сам процесс проектирования является многоуровневым (иерархическим) процессом последовательной детализации. Рекомендуется проводить проектирование, стараясь выполнить максимальную проработку данного уровня, не затрагивая внутреннюю организацию модулей (подсистем) нижнего уровня. Шаги 2,3 повторяются на каждом уровне. Результаты оформляются в виде рассмотренного ранее развернутого плана проекта программной системы. Программирование (кодирование) или программная реализация алгоритмов Словесную или графическую запись алгоритма обычно нельзя сразу ввести в ЭВМ, поэтому необходимо записать алгоритм на каком-либо языке программирования (ЯП). В результате получается программа на ЯП, которая вводится на ЭВМ и поступает на обработку в системную программу – транслятор (переводчик). Транслятор проверяет программу и выдаёт 26 пользователю сообщение об ошибках. Если в программе ошибок нет, то транслятор переводит программу с ЯП на внутренний машинный язык ЭВМ. В результате получается машинная программа, которая управляет работой ЭВМ в процессе решения прикладной задачи. Переход от алгоритма к программе на ЯП называется кодированием алгоритма. Для каждого алгоритма можно построить несколько вариантов программы, поэтому при кодировании алгоритма нужно оптимизировать программу по лёгкости понимания, быстродействию и объёму памяти. Языки программирования можно разделить на 2 большие группы: алгоритмические и машинно-ориентированные. Алгоритмический язык (АЯ) – это специальный искусственный язык, с помощью которого можно достаточно просто и удобно записать любой алгоритм. В настоящее время существуют сотни алгоритмических языков, например, наиболее известны следующие языки программирования: Фортран – язык для научно-технических расчётов; ПЛ/1, Кобол – языки для экономических расчётов; Бейсик – язык начального обучения; Паскаль – универсальный язык для обучения и программирования; Си – язык прикладного и системного программирования; Модула-2 и Ада – универсальные языки программирования; Лисп, Пролог – языки функционального и логического программирования; С++, Java, Object Pascal – языки объектно-ориентированного программирования. Часто вместо термина алгоритмический язык используется термин – язык программирования высокого уровня. С технической точки зрения процесс кодирования алгоритма заключается в записи основных алгоритмических конструкций на языке программирования. Очень просто это можно представить в виде таблицы (табл.3), в которой сводятся основные алгоритмические конструкции и соответствующие им конструкции языка программирования. Таблица 3. Правила кодирования алгоритмов № Язык Си Язык Паскаль 1 Блок начало main() { PROGRAM Name; BEGIN 27 2 Блок конец } END. 3 Операция присваивания: переменой x присвоить значение Z: x←Z x = Z ; x := Z; 4 Разделение команд (операторов). Символ разделитель ; ; 5 Ввод данных scanf ( &перем1, &перем2,…) 1 ; READ ( перем1, перем2,…); или READLN ( перем1, перем2,…); 6 Вывод данных printf ( перем1, перем2,…) 1 ; WRITE ( перем1, перем2,…); или WRITELN ( перем1, перем2,…); 7 Условие с двумя вариантами действий if (Условие) { A;} else {B;} IF (Условие) THEN BEGIN A; END ELSE BEGIN B; END; 8 Условие с одним вариантом действий if (Условие) { A;} IF (Условие) THEN BEGIN A; END; 9 Цикл с предусловием while (Условие) { A; } WHILE (Условие) DO BEGIN A; END 10 Цикл с постусловием do { A; } while (Условие) ; REPEAT A; UNTIL (Условие ) ; 11 Описание данных main() { int i, j,…; // целые данные double x,y,z,…; // вещественные char c,p,…; // символьные char str[50]; // строковые … PROGRAM FIRST; VAR i, j,… : INTEGER ; {целые данные} x,y,z,…: REAL ; {вещественные } c,p,… : CHAR; {символьные } str : STRING; {строковые} BEGIN … 12 Подключение библиотек и модулей //ОБЯЗАТЕЛЬНО! #include #include {В случае необходимости} UNIT имямодуля-библиотеки; PROGRAM Name2; 1 Синтаксис упрощен в методических целях 28 #include main() { … … 13 Комментарий // текст в одной строке или /* многострочный текст */ { текст комментария в одну или несколько строк } или (* текст в одну или несколько строк *) или // текст в одной строке Машинно-ориентированный язык (МОЯ) – это язык машинных команд, записанных в символическом виде. Для обозначения таких языков применяются термины: язык ассемблера, автокод, мнемокод, язык символического кодирования и т.п. Программирование на машинно-ориентированном языке менее наглядно и более трудоёмко, чем программирование на АЯ. Однако в процессе работы с машинно-ориентированным языком можно учесть все особенности системы команд конкретной ЭВМ. Программа, составленная хорошим программистом на машинно-ориентированном языке, имеет лучшие характеристики по быстродействию и памяти, чем программа, полученная после трансляции с АЯ. Поэтому МОЯ применяются либо в системном, либо в высокоэффективном прикладном программировании. Пример 5. Используя таблицу, закодируем на языках Си и Паскаль (рис.8) структурные алгоритмы решения задачи табулирования функции на основе цикла с постусловием (на языке Си) и цикла с предусловием (на языке Паскаль). #include #include #include main() { double a,b,h,x,f ; scanf (&a, &b, &h); x = a; do { f = sin(x*x) - x; printf(x, f); x = x+h; } while ( x>b ); } PROGRAM TABUL1; VAR a,b,h,x,f: REAL; BEGIN READLN (a, b, h); x := A; WHILE ( x<= B ) DO BEGIN f:=sin(x*x) - x; WRITELN(x, f); x:=x+h; END END. Рис.8. Реализация алгоритмов на языке Си и Паскаль 29 Примечание. На языке Си функции ввода-вывода scanf и printf имеют более сложный синтаксис, поэтому полученная в примере программа требует небольшой доработки. Программа на языке Паскаль получилась полностью работоспособной. Тестирование и отладка Тестирование – процесс поиска ошибок работы программы, посредством проверки правильности результатов ее функционирования на наборах данных, характерных для рабочего состояния программы. Как правило, при тестировании известны исходные данные и правильный результат, который должна выдавать программа. Такие данные часто называются тестовыми последовательностями или просто тестами. Цель тестирования – подготовить как можно больше тестовых последовательностей и проверить работоспособность программы на них. Отладка – точное определение местоположения ошибок в программе, причин и условий их возникновения, с целью последующего их устранения. Трассировка (раскрутка) алгоритма – это процесс пошагового выполнения алгоритма с записью в таблицу значений переменных, значений условий, номеров последующего шага (блока) для выполнения и комментариев по выполнению. Трассировка позволяет в ручном режиме, на бумаге проверить работу алгоритма и при необходимости найти ошибки. Фактически трассировка в таком виде заменяет стандартного исполнителя алгоритма – ЭВМ на исполнителя-человека. Важно, чтобы исполнитель действовал исключительно по инструкциям алгоритма, а не «фантазировал», что-то придумывал или изменял по ходу выполнения алгоритма. Пример 6. Проведем трассировку структурного алгоритма на основе цикла с постусловием, приведенного в примере 4 (табл.4). Таблица 4. Трассировка(раскрутка) алгоритма № п/п № шага a b h x f x>b Примечание 1 0 Начало 2 1 1 2 0,2 Ввели в ячейки данные для a, b, h 3 2 1 Записываем в ячейку x := a=1 4 3, 3.1 –0,159 Начало цикла, вычисляем f:=sin 1 – 1 5 3.2 На экран выводzтся ячейки x = 1 и f = –0,159 6 3.3 1,2 x := x + h=1+0,2=1,2 7 3.4 Нет Проверка условия окончания цикла 1,2>2 30 8 3.1 –0.209 Вычисляем f:=sin (1,2) – 1,2= –0,209 9 3.2 На экран выводится 1,2 и –0,209 10 3.3 1,4 x := x + h=1,2+0,2=1,4 11 3.4 Нет Проверка условия окончания цикла 1,4>2 12 3.1 –0.475 Вычисляем f 13 3.2 На экран выводится 1,4 и –0,475 14 3.3 1,6 x := x + h=1,4+0,2=1,6 15 3.4 Нет Проверка условия окончания цикла 1,6>2 16 3.1 –1.051 Вычисляем f 17 3.2 На экран выводится 1,6 и –1,051 18 3.3 1,8 x := x + h=1,6+0,2=1,8 19 3.4 Нет Проверка условия окончания цикла 1,8>2 20 3.1 –1.898 Вычисляем f 21 3.2 На экран выводится 1,8 и –1,898 22 3.3 2,0 x := x + h=1,8+0,2=2,0 23 3.4 Нет Проверка условия окончания цикла 2,0>2 24 3.1 –2.757 Вычисляем f 25 3.2 На экран выводится 2,0 и –2,757 26 3.3 2,2 x := x + h=2,0+0,2=2,2 27 3.4 Да Проверка условия окончания цикла 2.2>2 28 4 Конец цикла, Конец работы алгоритма Верификация – доказательство правильности программы. Проблема верификации программ все еще является открытой, и в настоящее время существуют методы, позволяющие доказывать правильность лишь небольших и однотипных алгоритмов. Для сложных и больших алгоритмов методов верификации, к сожалению, пока не придумано. Более того, существует такая аксиома: любая сложная программа содержит хотя бы одну ошибку. Такое утверждение основывается на том факте, что в любой сложной программе с наличием циклов и ветвлений существует бесконечное (или очень большое) количество путей, и проверить работоспособность каждого пути, как правило, не представляется возможным, а значит вероятность того, что на одном из таких путей возникнет ошибка, достаточно велика. Фактически большинство методов верификации программ пытаются строго математически обойти все пути алгоритма и доказать, что ни на одном из них нет ошибок. При отладке программы, программист делает то же самое, – он пытается пройти все возможные пути и проверить на них работоспособность программы, но только не теоретическими методами, а практическим способом, выбирая различные тестовые последовательности, что бы охватить как можно большее количество путей в программе. Ошибки возникают именно на том пути, где программист не проверил работоспособность алгоритма. 31 Поэтому, для более тщательного тестирования и отладки программы, план проведения испытаний работы программы должен быть составлен заранее и тестовые данные должны подбираться для проверки функций программы, а не разработанных алгоритмов. Т.е. тестовые примеры создаются на этапе проектирования программной системы, а не на этапе кодирования. Можно выделить следующие виды тестирования: • автономное (тестирование модулей программистами); • комплексное (тестирование общих функций системы программистами); • системное (оценочное) – тестирование, как правило, с участием заказчика. Эксплуатация и сопровождение При эксплуатации могут возникать следующие ситуации, требующие модификации системы: • обнаруживаться ошибки; • обнаруживаться неэффективные алгоритмы; • потребоваться уточнение отдельных функций и данных; • потребоваться введение дополнительных функций. Все это обуславливает выпуск новых версий системы. Критерии качества программного обеспечения Модель качества программного обеспечения (ПО) описана в стандарте ИСО/МЭК 9126-1:1998 «Характеристики и метрики качества программного обеспечения» и категоризирует атрибуты качества ПО по шести характеристикам: функциональные возможности, надежность, практичность, эффективность, сопровождаемость и мобильность (рис.9). 32 качество программного продукта функциональные возможности пригодность правильность способность к взаимодействию защищенность согласованность надежность завершенность устойчивость к ошибкам восстанавливаемость согласованность практичность понятность обучаемость простота использования привлекательность согласованность эффективность временная эффективность ресурсоемкость согласованность сопровождаемость анализируемость изменяемость стабильность тестируемость согласованность мобильность адаптируемость простота установки сосуществование взаимозаменяемость согласованность Рис.9. Основные характеристики качества программного обеспечения Рассмотрим эти категории и их составляющие более подробно. Функциональные возможности (Functionality) Представляют собой способность ПО обеспечивать функции, удовлетворяющие установленным и подразумеваемым потребностям при использовании ПО в заданных условиях. Пригодность(Suitability) – способность ПО обеспечивать соответствующий набор функций для указанных задач и целей пользователя. Правильность (Accuracy) – способность ПО обеспечивать правильные или приемлемые результаты или эффекты. Способность к взаимодействию (Interoperability) – способность ПО взаимодействовать с одной или большим числом указанных систем. Способность к взаимодействию используется вместо совместимости, чтобы избежать возможной путаницы с заменяемостью. Защищенность (Security) – способность ПО защищать информацию и данные так, чтобы не уполномоченные субъекты или системы не могли читать или изменять их, а уполномоченные субъекты или системы не получали отказа на доступ к ним. 33 Согласованность (Compliance ) – способность ПО придерживаться стандартов, соглашений или норм из законов и подобных предписаний, связанных с областью применения. Надежность (Reliability) Это способность ПО сохранять свой уровень качества функционирования при использовании в указанных условиях. Ограничения в надежности являются следствием ошибок в требованиях, проекте и реализации. Отказы из-за этих дефектов в большей степени зависят от способа использования ПО и выбранных режимов работы программы, чем от времени ее выполнения. Завершенность (Maturity) – способность ПО предотвращать отказ как следствие ошибок в ПО. Устойчивость к ошибке (Fault tolerance) – способность ПО поддерживать заданный уровень качества функционирования в случаях ошибок в ПО или нарушения установленного интерфейса. Восстанавливаемость (Recoverability) – способность ПО в случае отказа восстанавливать уровень качества функционирования и поврежденные данные. После отказа, ПО иногда бывает неработоспособно в течение некоторого периода времени, длина которого оценивается его восстанавливаемостью. Доступность (Availability) – способность ПО быть в состоянии выполнять требуемую функцию в данный момент времени при установленных условиях использования. Внешне, доступность может оцениваться временем, в течение которого ПО находится в работоспособном состоянии, в пропорции от общего времени. Следовательно, доступность – комбинация завершенности (от которой зависит частота отказа) устойчивость к ошибке и восстанавливаемости (которые обусловливают длительность простоя после каждого отказа). Согласованность (Compliance ) – способность ПО придерживаться стандартов, соглашений или норм из законов и подобных предписаний, связанных с надежностью. 34 Практичность (Usability) Это способность ПО, обусловливающая легкость его понимания, изучения и использования, а также привлекательность для пользователя при использовании в указанных условиях. Понятность (Understandability) – способность ПО, обеспечивающая пользователю понимание, является ли ПО пригодным, и как его можно использовать для конкретных задач и условий использования. Понятность зависит от документации и первичных впечатлений от ПО. Изучаемость (Learnability) – способность ПО, обеспечивающая изучение пользователем его применения. Легкость использования (Operability) – способность ПО, обеспечивающая пользователю возможность его эксплуатировать и управлять им. Аспекты изменяемости, адаптируемости и легкости установки могут быть предпосылками для легкости использования. Легкость использования соответствует управляемости, устойчивости к ошибке и согласованности с ожиданиями пользователя. Для системы, которая эксплуатируется пользователем, комбинация функциональных возможностей, надежности, практичности и эффективности можно измерить внешне через качество в использовании. Привлекательность (Attractiveness) – способность ПО нравиться пользователю. Привлекательность связана с атрибутами ПО, обусловливающими большую привлекательность ПО для пользователя. Согласованность (Compliance ) – способность ПО придерживаться стандартов, соглашений, руководств по стилю или нормам, связанных с практичностью. 35 Эффективность (Efficiency) Это способность ПО обеспечивать требуемую производительность относительно количества используемых ресурсов в установленных условиях. Ресурсы могут включать другие программные продукты, аппаратные средства, материалы (например, бумага для распечатки, дискеты). Для системы, которая эксплуатируется пользователем, комбинация функциональных возможностей, надежности, легкости использования и эффективности можно измерить внешне через качество в использовании. Временная эффективность (Time behaviour) – способность ПО обеспечивать приемлемые времена отклика и обработки, а также пропускную способность при выполнении его функций в установленных условиях. Использование ресурсов (Resource utilization) – способность ПО использовать приемлемые ресурсы в течение приемлемого времени при выполнении его функций в установленных условиях. Согласованность (Compliance ) – способность ПО придерживаться стандартов или соглашений, связанных с эффективностью. Сопровождаемость (Maintainability) Это способность ПО к модификации. Изменения могут включать исправления, усовершенствования или адаптацию ПО к изменениям в среде, а также в требованиях и функциональных спецификациях. Анализируемость (Analyzability) – способность ПО к диагностике его недостатков или причин отказов в ПО, а также к идентификации его частей для модификации. 36 Изменяемость (Changeability) – способность ПО к обеспечению реализации специфицированных изменений. Реализация включает кодирование, проектирование и документирование изменений. Если ПО должен модифицировать конечный пользователь, изменяемость может быть предпосылкой для легкости использования. Стабильность (Stability) – способность ПО минимизировать непредвиденные эффекты от его изменений. Тестируемость (Testability) – способность ПО, обеспечивающая проверку и приемку модифицированного ПО. Согласованность (Compliance ) – способность ПО придерживаться стандартов или соглашений, связанных с сопровождаемостью. Мобильность (Portability) Это способность ПО к переносу из одной среды в другую. Среда может включать организационную, аппаратную или программную среду. Адаптируемость (Adaptability) – способность ПО к модификации для различных указанных сред без применения других действий или средств, чем те, что предназначены для этой цели для рассматриваемого ПО. Адаптируемость включает масштабируемость внутренних возможностей (например, экранных полей, размеров таблиц, объемов транзакций, форматов отчетов и т.д.). Если ПО должно адаптироваться конечным пользователем, адаптируемость соответствует пригодности для индивидуализации и может быть предпосылкой для легкости использования. Легкость установки (Installability) – способность ПО к установке в указанной среде. Если ПО должно устанавливаться конечным пользователем, легкость установки будет предпосылкой для легкости использования. Сосуществование (Co-existence) – способность ПО сосуществовать с другим независимым ПО в общей среде, разделяя общие ресурсы. 37 Заменяемость (Replaceability) – способность ПО к использованию вместо другого указанного ПО в среде заменяемого ПО. Заменяемость используется вместо совместимости, чтобы избежать возможной путаницы со способностью к взаимодействию. Заменяемость не предполагает, что заменяемое ПО способно заменить рассматриваемое ПО. Заменяемость может включать атрибуты как легкости установки, так и адаптируемости. Согласованность (Compliance) – способность ПО придерживаться стандартов или соглашений, связанных с мобильностью. Кроме указанных характеристик при оценке качества ПО следует учитывать качество в использовании (Quality in use) – степень, в которой продукт, используемый указанными пользователями, удовлетворяет их потребности в достижении определенных целей с результативностью, продуктивностью и удовлетворением в заданном контексте использования. Это представление пользователя о качестве системы, содержащей ПО, и измеряется скорее в терминах результата использования ПО, чем собственных свойств ПО. Качество в использовании определяется следующими параметрами: результативность (Effectiveness) – точность и полнота достижения определенных целей пользователями; продуктивность (Productivity) – соотношение израсходованных ресурсов и результативности; удовлетворение (Satisfaction) – отношение пользователей к использованию продукта. |