Технология разработки программного обеспечения

Общее понятие и основные сведения о программном модуле. Характеристики различных видов связности по экспертным оценкам. Показатели качества разработки программного обеспечения, их основные характеристики. Определение комплексных показателей качества.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 08.06.2011
Размер файла 146,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

План

  • 1. Теоретический вопрос: Понятие модуля. Связность модулей. Виды связности
    • 1.1 Понятие модуля
    • 1.2 Основные характеристики программного модуля
    • 1.3 Связность модулей
    • 1.4 Виды связности модулей
  • 2. Практическое здание: Отметить показатели качества разработки и основные характеристики ПС, ПИ или БД
    • 2.1 Показатели качества разработки и основные характеристики
    • 2.2 Определение комплексных показателей качества
  • Список литературы
  • 1. Теоретический вопрос: Понятие модуля. Связность модулей. Виды связности

1.1 Понятие модуля

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

Модульное программирование основано на понятии модуля - программы или функционально завершенного фрагмента программы.

Модуль характеризуют:

· один вход и один выход - на входе программный модуль получает определенный набор исходных данных, выполняет их обработку и возвращает один набор выходных данных;

· функциональная завершенность - модуль выполняет набор определенных операций для реализации каждой отдельной функции, достаточных для завершения начатой обработки данных;

· логическая независимость - результат работы данного фрагмента программы не зависит от работы других модулей;

· слабые информационные связи с другими программными модулями - обмен информацией между отдельными модулями должен быть минимален;

· размер и сложность программного элемента в разумных рамках.

Таким образом, модули содержат описание исходных данных, операции обработки данных и структуры взаимосвязи с другими модулями.

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

1.2 Основные характеристики программного модуля

Как разработать хороший модуль, который действительно будет способствовать упрощению программы?

В литературе приводятся различные критерии оценки приемлемости модуля. Были предложены следующие критерии:

· хороший модуль снаружи проще, чем внутри;

· хороший модуль проще использовать, чем построить.

Предлагается использовать следующие характеристики программного модуля для оценки его приемлемости: размер модуля, прочность модуля, сцепление с другими модулями и рутинность модуля.

Размер модуля измеряется числом содержащихся в нем операторов. Модуль не должен быть слишком маленьким или слишком большим. Большие модули, как правило, сложны для понимания и неудобны для внесения изменений, они могут существенно увеличить суммарное время повторных трансляций программы при отладке. Маленькие модули усложняют общую структурную схему программы и могут не окупать накладных расходов, связанных с их оформлением. Обычно рекомендуются программные модули размером от нескольких десятков до нескольких сотен операторов.

Прочность модуля - это мера его внутренних связей. Чем выше прочность модуля, тем больше связей скрыты от внешней по отношению к нему части программы и, следовательно, тем проще сама программа. Самой слабой степенью прочности обладает модуль, прочный по совпадению. В данном случае в программный модуль оформляется повторяющаяся в нескольких местах программы последовательность операторов. Если вдруг возникнет необходимость изменения этой последовательности в одном из контекстов, придется изменять сам модуль, что может сделать его использование в других контекстах ошибочным. Такой класс программных модулей не рекомендуется для использования.

Функционально прочный модуль - это модуль, реализующий одну какую-либо определенную функцию. При этом он может использовать и другие модули. Такой вид прочности модулей рекомендуется для использования.

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

Сцепление модуля - это мера его зависимости по способу передачи данных от других модулей. Чем слабее сцепление модуля с другими модулями, тем сильнее его независимость от других модулей. Для оценки степени сцепления существует шесть видов сцепления модулей:

· по данным;

· по образцу;

· по управлению;

· по внешним ссылкам;

· по общей области данных;

· по содержимому.

Худшим видом сцепления модулей является сцепление по содержимому. Таким является сцепление двух модулей, когда один из них имеет прямые ссылки на содержимое другого модуля (например, на константу, содержащуюся в другом модуле). Такое сцепление модулей недопустимо.

Не рекомендуется использовать также сцепление по общей области - это такое сцепление модулей, когда несколько модулей используют одну и ту же область памяти.

Сцепление по образцу предполагает, что модули обмениваются данными, объединенными в структуры. Этот тип обеспечивает неплохие характеристики, по сравнению с предыдущими. Недостаток заключается в том, что конкретные передаваемые данные «спрятаны» в структуры, и потому уменьшается «прозрачность» связи между модулями. Кроме того, при изменении структуры передаваемых данных необходимо модифицировать все использующие ее модули.

При сцеплении по управлению один модуль посылает другому некоторый информационный объект (флаг), предназначенный для управления внутренней логикой модуля. Таким способом часто выполняют настройку режимов работы программного обеспечения. Подобные настройки также снижают наглядность взаимодействия модулей и потому обеспечивают не лучшие характеристики технологичности разрабатываемого программного обеспечения.

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

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

1.3 Связность модулей

Связность модулей - мера прочности соединения функциональных и информационных объектов внутри одного модуля. Размещение сильно связанных элементов в одном модуле уменьшает межмодульные связи, в то время как помещение сильно связанных элементов в разные модули не только усиливает межмодульные связи, но и усложняет понимание их взаимодействия. Объединение слабо связанных элементов также уменьшает технологичность модулей, делая их сложнее для понимания.

1.4 Виды связности модулей

Различают следующие виды связности (в порядке убывания уровня) :

· функциональную;

· последовательную;

· информационную (коммуникативную);

· процедурную;

· временную;

· логическую;

· случайную.

При функциональной связности модуль предназначен для выполнения одной функции. Его исходные данные и операции предназначены для решения одной конкретной задачи. Такой модуль имеет максимальную связность и как следствие хорошую технологичность (простота компиляции, тестирования, сопровождения).

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

Информационно связанными считают функции, обрабатывающие одни и те же данные. Информационно связанный модуль имеет неплохие показатели технологичности, т.к. все функции, работающие с одними и теми же данными, собраны в один модуль, что позволяет при изменении формата данных корректировать только его. Данные, которые обрабатываются одной функцией, также считают информационно связанными.

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

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

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

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

В табл. 1 представлены характеристики различных видов связности по экспертным оценкам.

Таблица 1

Анализ табл. 1 показывает, что при проектировании программных модулей лучше всего использовать функциональную, последовательную и информационную связности.

2. Практическое здание: Отметить показатели качества разработки и основные характеристики ПС, ПИ или БД

2.1 Показатели качества разработки и основные характеристики

Качество программного обеспечения может быть оценено следующими характеристиками:

1 Функциональные возможности (Functionality)

Набор атрибутов, относящихся к сути набора функций и их конкретным свойствам. Функциями являются те, которые реализуют установленные или предполагаемые потребности.

Примечания:

1 Данный набор атрибутов характеризует то, что программное обеспечение выполняет для удовлетворения потребностей, тогда как другие наборы, главным образом, характеризуют, когда и как это выполняется.

2 В данной характеристике для установленных и предполагаемых потребностей учитывают примечание к определению качества.

2 Надежность (Reliability)

Набор атрибутов, относящихся к способности программного обеспечения сохранять свой уровень качества функционирования при установленных условиях за установленный период времени.

Примечания:

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

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

3 Практичность (Usability)

Набор атрибутов, относящихся к объему работ, требуемых для использования и индивидуальной оценки такого использования определенным или предполагаемым кругом пользователей.

Примечания:

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

Практичность должна рассматриваться во всем разнообразии условий эксплуатации пользователем, которые могут влиять на программное обеспечение, включая подготовку к использованию и оценку результатов.

2 Практичность, определенная в данном стандарте как конкретный набор атрибутов программной продукции, отличается от определения с точки зрения эргономики, где рассматриваются как составные части практичности другие характеристики, такие как эффективность и неэффективность.

4. Эффективность (Efficiences)

Набор атрибутов, относящихся к соотношению между уровнем качества функционирования программного обеспечения и объемом используемых ресурсов при установленных условиях.

Примечание:

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

5. Сопровождаемость (Maintainability)

Набор атрибутов, относящихся к объему работ, требуемых для проведения конкретных изменений (модификаций).

Примечание:

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

6. Мобильность (Portability)

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

Примечание:

Окружающая обстановка может включать организационное, техническое или программное окружение.

2.2 Определение комплексных показателей качества

1. Функциональные возможности (Functionality)

1.1 Пригодность (Suitability)

Атрибут программного обеспечения, относящийся к наличию и соответствию набора функций конкретным задачам.

Примечание:

Примерами соответствия является состав функций, ориентированных на задачу, из вхо-дящих в него подфункций и объемы таблиц.

1.2 Правильность (Accuracy)

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

Примечание:

Например, она включает необходимую степень точности вычисленных значений.

1.3 Способность к взаимодействию (Interoperability)

Атрибуты программного обеспечения, относящиеся к способности его взаимодействовать с конкретными системами.

Примечание:

Способность к взаимодействию используется вместо совместимости для того, чтобы избежать возможной путаницы с взаимозаменяемостью .

1.4 Согласованность (Compliance)

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

1.5 Защищенность (Security)

Атрибуты программного обеспечения, относящиеся к его способности предотвращать несанкционированный доступ, случайный или преднамеренный, к программам и данным.

2 Надежность (Reliability)

2.1 Стабильность (Maturity)

Атрибуты программного обеспечения, относящиеся к частоте отказов при ошибках в программном обеспечении.

2.2 Устойчивость к ошибке (Fault tolerance)

Атрибуты программного обеспечения, относящиеся к его способности поддерживать определенный уровень качества функционирования в случаях программных ошибок или нарушения определенного интерфейса.

Примечание:

Определенный уровень качества функционирования включает возможность отказобезопасности.

2.3 Восстанавливаемость (Recoverability)

Атрибуты программного обеспечения, относящиеся к его возможности восстанавливать уровень качества функционирования и восстанавливать данные, непосредственно поврежденные в случае отказа, а также к времени и усилиям, необходимым для этого.

3 Практичность (Usability)

3.1 Понятность (Understandability)

Атрибуты программного обеспечения, относящиеся к усилиям пользователя по пониманию общей логической концепции и ее применимости.

3.2 Обучаемость (Learnability)

Атрибуты программного обеспечения, относящиеся к усилиям пользователя по обучению его применению (например оперативному управлению, вводу, выводу).

3.3 Простота использования (Operability)

Атрибуты программного обеспечения, относящиеся к усилиям пользователя но эксплуатации и оперативному управлению.

4 Эффективность (Efficiency)

4.1 Характер изменения во времени (Time behavior)

Атрибуты программного обеспечения, относящиеся к временам отклика и обработки и к скоростям выполнения его функций.

4.2 Характер изменения ресурсов (Resource behavior)

Атрибуты программного обеспечения, относящиеся к объему используемых ресурсов и продолжительности такого использования при выполнении функции.

5 Сопровождаемость (Maintainability)

5.1 Анализируемость (Analysability)

Атрибуты программного обеспечения, относящиеся к усилиям, необходимым для диагностики недостатков или случаев отказов или определения составных частей для модернизации.

5.2 Изменяемость (Changeability)

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

5.3 Устойчивость (Stability)

Атрибуты программного обеспечения, относящиеся к риску от непредвиденных эффектов модификации.

5.4 Тестируемость (Testability)

Атрибуты программного обеспечения, относящиеся к усилиям, необходимым для проверки модифицированного программного обеспечения.

Примечание:

Значения этой подхарактеристики могут быть изменены рассматриваемыми модификациями.

6 Мобильность (Portability)

6.1 Адаптируемость (Adaptability)

Атрибуты программного обеспечения, относящиеся к удобству его адаптации к различным конкретным условиям эксплуатации, без применения других действий или способов, кроме тех, что предназначены для этого в рассматриваемом программное обеспечении.

6.2 Простота внедрения (Installability)

Атрибуты программного обеспечения, относящиеся к усилиям, необходимым для внедрения программного обеспечения в конкретное окружение.

6.3 Соответствие (Conformance)

Атрибуты программного обеспечения, которые заставляют программу подчиняться стандартам или соглашениям, относящимся к мобильности.

6.4 Взаимозаменяемость (Replaceabilily)

Атрибуты программного обеспечения, относящиеся к простоте и трудоемкости его применения вместо другого конкретного программного средства в среде этого средства.

программный модуль связность качество

Список литературы

1. Орлов С.А. Технологии разработки программного обеспечения. СПб: Питер, 2002.

2. Калянов Г.Н. CASE-технологии. Консалтинг при автоматизации бизнес-процессов. М.: Горячая линия - Телеком, 2000.

3. Ларман К. Применение UML и шаблонов проектирования / Пер. с англ. М.: Вильямс, 2002.

4. ГОСТ Р ИСО/МЭК 9126-93

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.