URSS.ru Магазин научной книги
Обложка Макаровских Т.А. Проектирование программных средств Обложка Макаровских Т.А. Проектирование программных средств
Id: 323485
899

Проектирование программных средств Изд. стереотип.

2025. 362 с.
Типографская бумага

Аннотация

Настоящее учебное пособие является дополнением к книге Т.А.Панюковой «Документирование программного обеспечения», ранее выходившей в нашем издательстве. В нем собрана информация по некоторым разделам программной инженерии, которые влияют на процесс документирования и являются для него фундаментом. В частности, это вопросы организации жизненного цикла программного средства, тестирования программ, исследования надежности. Отдельные... (Подробнее)


Оглавление
top
Введение9
1. Особенности создания программных средств (ПС)12
1.1. Специфические особенности ПС. ПС - новый вид товарной продукции12
1.1.1. Понятие ПС12
1.1.2. Специфика разработки ПС13
1.1.3. Программное обеспечение - новый вид товарной продукции14
1.2. Жизненный цикл ПС и его основные этапы15
1.2.1. Основные процессы жизненного цикла ПС17
1.2.2. Вспомогательные процессы жизненного цикла23
1.2.3. Организационные процессы жизненного цикла26
1.2.4. Стандартизация жизненного цикла ПС28
1.2.5. Адаптация процессов и работ в стандартах жизненного цикла ПС к характеристикам конкретных проектов34
1.2.6. Модели жизненного цикла ПС36
1.3. Анализ и разработка требований к ПС48
1.3.1. Определение и категории требований48
1.3.2. Разработка требований53
1.3.3. Анализ требований55
1.3.4. Документирование требований57
1.4. Определение целей создания ПС65
1.4.1. Разновидности целей65
1.4.2. Общие правила постановки целей69
1.5. Разработка внешних спецификаций на ПС70
1.6. Цели и порядок проектирования ПС74
1.6.1. Методическая, технологическая, инструментальная и организационная поддержка процесса проектирования75
1.6.2. Этапы проектирования сложных ПС77
1.7. Модульная структура ПС81
1.7.1. Основные характеристики программного модуля81
1.7.2. Методы разработки структуры программы85
1.8. Внешнее проектирование модулей88
1.9. Стиль программирования91
2. Тестирование ПС96
2.1. Принципы тестирования ПС. Проектирование теста96
2.1.1. Принципы тестирования ПС101
2.1.2. Виды тестирования ПС105
2.1.3. Проектирование теста107
2.2. Общая характеристика методов тестирования109
2.2.1. Статические методы тестирования109
2.2.2. Динамические методы тестирования110
2.2.3. Функциональное тестирование116
2.2.4. Тестирование базового пути116
2.3. Тестирование модулей119
2.3.1. Пошаговое и монолитное тестирование120
2.3.2. Восходящее тестирование121
2.3.3. Нисходящее тестирование122
2.3.4. Метод сандвича124
2.3.5. Тестирование сопряжения и автономное тестирование125
2.4. Тестирование комплексов программ127
2.5. Отладка программ134
3. Надежность ПС137
3.1. Определение надежности ПС141
3.1.1. Оценка надежности ПС146
3.1.2. Основные понятия в проблематике надежности ПС148
3.1.3. Факторы, определяющие надежность ПС149
3.2. Показатели надежности программного средства151
3.3. Факторы надежности ПС159
3.4. Общая характеристика моделей надежности ПС164
3.4.1. Модель надежности ПС166
3.4.2. Классификация моделей надежности167
3.4.3. Классификация Гоэла168
3.5. Ошибки ПС и их причины169
3.5.1. Неправильный перевод как причина ошибок170
3.5.2. Ошибки вычислений171
3.5.3. Ошибки обработки и интерпретации данных172
3.5.4. Ошибки пользовательского интерфейса173
3.6. Классификация программных ошибок174
3.6.1. Ошибки пользовательского интерфейса175
3.6.2. Ошибки обработки граничных условий177
3.6.3. Ошибки управления потоком178
3.6.4. Ошибки передачи и интерпретации данных179
3.6.5. Ситуация гонок180
3.6.6. Контроль версий и идентификаторов181
3.6.7. Ошибки тестирования182
3.6.8. Классификация ошибок с точки зрения тестировщика183
3.6.9. Классификация ошибок по степени их критичности184
3.6.10. Классификация ошибок в зависимости от их места в жизненном цикле программного изделия185
3.6.11. Немного юмора186
3.7. О моделях надежности программного обеспечения187
3.8. Эмпирические модели надежности190
3.8.1. Модель сложности190
3.8.2. Модель, определяющая время доводки программ193
3.9. Динамические модели надежности195
3.9.1. Модель Шумана195
3.9.2. Модель La Padula198
3.9.3. Модель Джелинского-Моранды199
3.9.4. Модель Шика-Волвертона201
3.9.5. Модель Муса202
3.9.6. Модель переходных вероятностей204
3.9.7. Модель Гоэл-Окимото206
Заключение207
3.10. Статические модели надежности208
3.10.1. Модель Миллса208
3.10.2. Модель Липова211
3.10.3. Простая интуитивная модель212
3.10.4. Модель Коркорэна214
3.10.5. Модель Нельсона215
Заключение216
4. Экономические вопросы программной инженерии217
4.1. Особенности определения экономической эффективности ПС219
4.2. Расчет экономического эффекта при производстве ПС222
4.2.1. Технико-экономическое обоснование проектов ПС222
4.2.2. Эффективность технологий проектирования ПС225
4.3. Расчет экономического эффекта при применении ПС229
4.4. Расчет коэффициента экономической эффективности и срока окупаемости капитальных вложений ПС232
4.5. Цели технико-экономического анализа разработки ПС235
4.6. Факторы, определяющие затраты на создание ПС240
4.6.1. Факторы, определяющие затраты на разработку ПС241
4.6.2. Методики оценивания технико-экономических показателей243
4.7. Составляющие затрат на разработку ПС246
4.8. Методы сбора и обработки данных о разработках ПС255
4.9. Трудоемкость, длительность, стоимость разработки ПС257
4.9.1. Трудоемкость разработки258
4.9.2. Оценка функционального размера информационной системы259
4.9.3. Оценка длительности разработки информационной системы271
4.9.4. Оценка стоимости разработки информационных систем274
4.9.5. Оценка трудоемкости и стоимости процесса сопровождения информационной системы278
4.10. Методы обеспечения технологической безопасности ПС и данных280
4.10.1. Контрольно-испытательные методы анализа безопасности ПС280
4.10.2. Логико-аналитические методы контроля безопасности ПС283
5. Сертификация и стандартизация ПС286
5.1. Задачи и проблемы сертификации ПС286
5.1.1. Определение сертификации287
5.1.2. Проблемы сертификации ПС290
5.2. Цели и виды сертификации292
5.3. Виды сертификационных испытаний программ294
5.4. Методы, технология, средства обеспечения сертификации ПС298
5.4.1. Методы сертификации программных средств299
5.4.2. Технология сертификации300
5.4.3. Средства обеспечения сертификации ПС302
5.5. Стандарты сертификации ПС305
5.6. Задача количественной оценки качества ПС. Виды метрикЗОЗ 5.6.1. Основные направления применения метрик311
5.6.2. Метрические шкалы312
5.7. Показатели качества ПС. Стандарты, регламентирующие показатели качества ПС314
5.7.1. Показатели качества ПС315
5.7.2. Стандарты, регламентирующие показатели качества ПС318
5.7.3. Выбор показателей качества320
5.7.4. Оценка качества322
5.8. Понятие сложности, основные компоненты сложности325
5.9. Оценка сложности программного средства332
5.9.1. Предварительная оценка сложности программы на этапе разработки спецификации требований к программе333
5.9.2. Предварительная оценка сложности на этапе определения архитектуры334
5.9.3. Критерии оценки компьютерных программ и баз данных337
5.9.4. Метрики размера программ338
5.9.5. Метрики сложности потока управления программ340
5.9.6. Метрики сложности потока данных343
5.10. Основные понятия и виды корректности программ344
5.10.1. Определение корректности344
5.10.2. Виды корректности346
5.10.3. Аналитическая проверка корректности347
5.10.4. Типы этапонов, методы измерений и проверки корректности программ348

Введение
top

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

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

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

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

Во второй главе рассматриваются вопросы, посвященные тестированию программных средств, тестированию программных модулей, отладке программ, испытаниям и сопровождению программных средств. Рассматривается место документации в этом сложном процессе.

Третья глава посвящена надежности программных средств и рассмотрению различных моделей надежности.

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

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

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

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


Об авторе
top
photoМакаровских Татьяна Анатольевна
Доктор физико-математических наук, доцент, профессор кафедры «Системное программирование» Южно-Уральского государственного университета. В 2003 г. с отличием окончила ЮУрГУ по специальности «Прикладная математика». В 2006 г. защитила кандидатскую диссертацию по специальности «Теоретические основы информатики» в Вычислительном центре имени А. А. Дородницына РАН. В 2020 г. защитила докторскую диссертацию по той же специальности в ЮУрГУ. Является автором более 100 научных публикаций, 7 учебных пособий, монографии «Маршруты-покрытия специального вида в графах: Теоретические основы и применение в ресурсосберегающих технологиях» (М.: URSS), а также более 10 зарегистрированных программ для ЭВМ.