Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методические указания по дисциплине Программная инженерия

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
927 Кб
Скачать

Использование такой зависимости возможно при следующих допущениях:

1.Количество задач, решаемых при создании программного продукта, конечно.

2.Последовательность решения задач образует пуассоновский поток случайных событий с интенсивностью λ.

3.Количество исполнителей пропорционально числу решаемых задач (каждый исполнитель работает над своим модулем независимо от других исполнителей).

4.Зависимость вероятности правильного решения от времени выражается прямой пропорциональной зависимостью:

Для пуассоновского потока вероятность того, что в интервале [0.t] не произошло ни одного события, имеет показательное распределение.

T – момент времени, когда событие произошло, т.е. задача решена. Тогда по определению функции распределения:

Вероятность того, что событие произошло:

Скорость решения задачи (частота событий) – плотность распределения случайной величины (производная от функции распределения :

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

Прореженные потоки называются p-преобразованиями. Согласно свойствам пуассоновского потока p-преобразованный поток – пуассоновский поток с интенсивностью pλ. Для потока правильных решений выписывается соотношение:

(1)

=> скорость правильного решения:

(2)

Если вероятность правильного решения задачи p является функцией времени, то по определению функции распределения выражения (1) и (2) примут следующий вид:

11

Согласно допущению 4 P(t) = α·t =>

Пусть , тогда

И общие затраты

Ежегодные затраты выражаются как производная от общих затрат:

Исходят из того, что нужно рассчитать два параметра.

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

Из опыта крупных компаний следует, что допущения 1-4 выполняются.

Оценка надежности программного обеспечения Кортеж программы

Факторы, влияющие на надежность ПО (кортежей):

1.Структура программы (т.е. ее исходный текст): максимально современный язык программирования с использованием методов структурного и объектноориентированного программирования, увеличение производительности.

2.Окружающая среда (оболочка) – операционная система, драйверы устройств, прикладные и системные программы.

3.Режим эксплуатации программы (правильное использование объемов данных).

4.Документация: точность и правильность составления.

12

Экономические характеристики показателей качества.

1.Затраты на исправление кортежа.

2.Убытки от ошибок кортежа.

Периоды эксплуатации кортежа.

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

2.Отладка кортежа – нормальный режим эксплуатации кортежа, характеризуется постепенным уменьшением ошибок.

3.Нормальная эксплуатация кортежа – характеризуется низкой или нулевой частотой появления ошибок.

4.Начальный износ кортежа (оборудования) – частота ошибок увеличивается, требуется корректировка документации или программы.

5.Полный отказ кортежа – требуется замена или новая установка программы.

Затем осуществляется переход на 1 этап.

Экономические оценки надежности программы

Факторы, обуславливающие моральное старение кортежа:

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

2.Окончание работ, для которых была написана программа.

3.Появление новых стандартов или требований к входной или выходной информации.

4.Изменение требований к времени решения задач.

5.Введение новой ОС или оболочки.

6.Изменение базового языка программирования.

Условие перехода на новый кортеж:

Пусть Р1 – остаточная стоимость эксплуатации старого кортежа от данного момента времени до момента окончательного старения кортежа.

Р2 – стоимость начальной эксплуатации нового кортежа за тот же период времени. З2 – разовые затраты на освоение персоналом нового кортежа.

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

Условие эффективности перехода на новый кортеж:

13

Методы управления разработкой программ

Исполнители договариваются о методах взаимодействия друг с другом, о распределении ответственности за модули и о методах взаимодействия самих модулей.

Если число исполнителей N, то число интерфейсов, которые они разрабатывают (интерфейс – взаимодействие между исполнителями), определяется по формуле:

, т.е. оценим число исполнителей, необходимых для написания комплекса программ, объемом 50 000 строк кода за 2 года (прикладная программа).

Определим число исполнителей:

250 строк кода уходит в год на разговоры.

Число интерфейсов увеличивается пропорционально числу исполнителей.

Чем больше N интерфейсов, тем меньше производительность труда исполнителей.

Статистические данные оценки производительности программистов:

Вид программы

Производительность

Управляющие 600 программы (программы ОС)

Системные 2000 программы (компиляторы)

Прикладные 5000÷6000 программы

1

 

2

 

 

 

 

 

 

 

 

3

4

 

 

Производительность

измеряется

в

 

 

 

 

 

строках

кода

в

год,

которые

 

 

5

 

 

6

 

 

7

 

выполняются транслятором

 

 

8

 

 

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

14

 

 

 

 

 

Главный программист знает задачу, руководит всей работой.

Старший программист заменяет главного и пишет часть программы (верхнего уровня). Младшие программисты пишут программу.

главный

1 старший

 

5

4

6

2

7

3

 

млад. млад. млад.

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

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

Граф взаимодействия разработала компания IBM.

Вбригаду главного программиста еще входят следующие специалисты:

«Администратор», который занимается подбором кадров, вопросами финансирования, управляет машинными ресурсами.

«Библиотекарь», который следит и управляет системными библиотеками.

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

Международный стандарт ISO 9001

Его цель: обеспечить рамки для оценки качества программного обеспечения.

(ISO/IEC 9126 - это стандарт на информационные технологии.)

Стандарт определяет модель качества и применяется к каждому типу ПО.

Существуют шесть характеристик качества и их подхарактеристики:

1.Действенность:

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

2)Точность (правильность) – АПО , которые предоставляют право или соответствуют результатам или эффектам.

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

4)Уступчивость определяет АПО, которые связывают ПО со стандартами, или соглашениями, или законами, или предписаниями.

15

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

2.Надежность:

1)Завершенность (обдуманность) определяет АПО, которые предполагают, как часто будут появляться повреждения в ПО.

2)Допустимые недостатки (повреждения) определяет АПО, которые способствуют эксплуатации без специфичных изменений.

3)Восстановление определяет АПО, которые помогают поддерживать уровень характеристик и немедленно обретать нужные данные в случае программных дефектов.

3.Практичность:

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

2)Способность узнавать определяет АПО, необходимые пользователю для применения знаний.

3)Способность эксплуатировать определяет АПО, которые служат пользователю для непосредственной работы и контроля работы.

4.Эффективность:

1)Режим работы определяет АПО, которые влияют на время работы и скорость выполнения функций.

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

5.Ремонтопригодность:

1)Возможность анализа определяет АПО, которые необходимы для диагностики недостатков или причин, или необходимых изменений в дальнейшем.

2)Возможность внесения изменений определяет АПО, которые служат для внесения изменений, удаления дефектов и изменения среды.

3)Прочность (устойчивость) определяет АПО, направленные на преодоление

внезапной опасности от внесения изменений.

4) Возможность выдержать испытание определяет АПО, нужные для подтверждения изменения программного продукта.

6.Портативность (приспособляемость):

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

2)Возможность установке определяет АПО, предназначенные для установления ПО в определенной среде.

3)Возможность согласования определяет АПО, которые делают это ПО стандартным или согласующимся.

4)Заменяемость определяет АПО, которые могут использовать в других местах программного продукта в среде самого себя (этого же программного продукта).

16

Детализация характеристики ремонтопригодности

иее подхарактеристики (метрика)

1.Возможность анализа – анализируется:

Количество циклов в программном продукте.

Количество утверждений.

Комментарии к коэффициентам.

Необходимость проверки.

2.Возможность внесения изменений:

Количество шагов.

Количество групп уровней.

Среднее число утверждений.

Количество изменений.

3.Прочность (устойчивость):

Количество параметров ссылок.

Количество глобальных изменений.

Количество параметров изменений.

Количество требований.

4.Возможность выдержать испытания:

Количество нециклических путей.

Количество групп уровней.

Количество циклов.

Количество путей вызовов.

Все метрики зависят от используемого языка программирования и его конструкции.

Все характеристики качества основываются на трех принципах:

1.Принцип использования программного продукта – пересмотр программного продукта.

2.Перемещение программного продукта.

3.Эксплуатация программного продукта.

Три типа моделей качества:

1.Факторы (определение) описывают внешний вид программного продукта с точки зрения пользователя.

2.Критерии (построение) описывают внутренний вид программы с точки зрения разработчика.

3.Метрики (контроль) определяются и используются для обеспечения шкалы и метода измерения.

17

Структурное программирование

Состоит из трех частей:

1.Суть (принцип) структурного программирования.

2.Нисходящая разработка.

3.Сквозной структурный контроль.

1.Суть структурного программирования

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

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

Структурное программирование использует три базовые комбинации:

1) Следование:

один

 

 

 

 

 

 

один

Опер. А

 

 

Опер. B

вход

 

 

выход

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

истина

 

 

 

2) Развилка:

 

 

 

 

 

 

Опер. А

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

один

проверка

 

 

 

 

 

один

вход

 

 

 

 

 

выход

 

 

 

 

 

 

 

 

 

 

 

 

 

ложь

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опер. B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3) Цикл (повторение):

один

проверка

ложь

один

 

 

 

 

 

выход

вход

 

 

 

 

 

истина Опер. А

Проектирование сверху – вниз. Меньше использовать оператор GOTO метка. Необходимо наличие одного входа и одного выхода к одному и тому же оператору (группе операторов).

18

2. Нисходящая разработка

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

Модуль – отдельная программная часть, выполняющая одну функцию. Модуль - это элемент программы.

3. Сквозной структурный контроль

Это средство, которое облегчает управление проектом. Является техническим средством и используется людьми, занятыми непосредственно в проекте. Контрольные встречи (сессии) проводятся руководителем проекта или главным программистом, его замом и исполнитель работы (контролируемое лицо), иногда лицо со стороны заказчика.

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

Итог структурного программирования

1.Принцип решения сложных проблем путем разбиения на множество независимых задач.

2.Принцип иерархического упорядочивания – принцип организации составных частей (независимых задач) в иерархическое дерево.

Методология моделирования SADT

(Structured Analysis and Design Technique)

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

Функциональная модель SADT отражает функциональную структуру объекта, т.е. производимые объектом действия и связи между этими действиями и подразделяется на:

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

2.IDEF1X - методология информационного моделирования и основанная на концепции "сущность-связь".

19

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

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

5.DFD (Data Flow Diagrams - диаграммы потоков данных) методология структурного анализа, описывающая внешние по отношению к системе источники и адреса, логические функции, потоки данных и хранилища, к которым осуществляется доступ.

6.ERD (Entity-Relationship Diagrams - диаграммы "сущность - связь") способ определения данных и отношений между ними, обеспечивающий детализацию хранилищ данных проектируемой системы, включая идентификацию объектов (сущностей), свойств этих объектов (атрибутов) и их отношений с другими объектами (связей).

7.STD (State Transition Diagrams - диаграммы переходов состояний)

методология моделирования последующего функционирования системы на основе ее предыдущего и текущего функционирования.

8.CRN (Color Petri Nets - раскрашенные сети Петри) методология создания динамической модели бизнес-процесса, позволяющая проанализировать зависящие от времени характеристики процесса и распределение ресурсов для входящих потоков различной структуры.

9.ABC (Activity Based Costing - функционально-стоимостный анализ) метод определения стоимости и других характеристик изделий и услуг на основе функций и ресурсов, задействованных в бизнес-процессах.

10.Используя перечисленные средства, можно создать полное описание экономической или информационной системы (того, что делает или должна делать система).

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]