Чтение онлайн

на главную

Жанры

Технологии программирования

Костерин В В

Шрифт:

5) описание функционирования программы с учетом ее модульного деления (приводится словесное описание выполнения программы с учетом вызовов модулей);

6) описание модулей программы (подраздел заполняется на основе паспортов модулей).

6. ТЕХНИКО-ЭКОНОМИЧЕСКИЕ ПОКАЗАТЕЛИ

Технико-экономические показатели должны определяться заказчиком без участия исполнителя.

7. СТАДИИ И ЭТАПЫ РАЗРАБОТКИ

Разработка программы должна выполняться по следующим этапам:

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

запиской — 5 недель;

2) разработка рабочего проекта программы с комплексным тестированием — 6 недель;

3) приемка-сдача с исправлением обнаруженных недостатков в программе и программной документации — 2 недели;

4) внедрение.

8. ПОРЯДОК КОНТРОЛЯ И ПРИЕМКИ

8.1. Виды испытаний

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

8.2. Общие требования к приемке

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

Приложение 3

ФОНД ЭВРИСТИЧЕСКИХ ПРИЕМОВ ПРОЕКТИРОВАНИЯ ПРОГРАММ

1. ВЫБОР СТРАТЕГИИ ПРОЕКТИРОВАНИЯ ПРОГРАММ

1.1. Заменить восходящий способ проектирования программ нисходящим.

1.2. Инверсия приема.

1.3. Использовать комбинированный (восходяще-нисходящий) способ проектирования. В данном случае главная часть программы разрабатывается нисходящим способом, а отдельные модули и подсистемы — восходящим.

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

2. ВЫБОР ПОДХОДА В ПРОГРАММИРОВАНИИ (методологии проектирования)

2.1. Заменить методологию, ориентированную на обработку (модульное программирование; функциональная декомпозиция; проектирование с использованием потока данных; структурное проектирование; технология структурного анализа проекта SADT; проектирование, основанное на использовании структур данных; методология Джексона; методология Уорнера и др.), на методологию, ориентированную на данные (абстракции данных Дейкстры, объектно-ориентированная методология; методология, ориентированная на проектирование концептуальных баз данных и др.).

2.2. Инверсия приема.

3. ВЫБОР ЯЗЫКА

3.1. Выбрать более "любимый" язык программирования.

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

3.3. Заменить проблемно-ориентированный язык на объектно-ориентированный.

3.4. Инверсия приема.

3.5. Заменить язык высокого уровня языком низкого уровня.

3.6. Инверсия приема.

3.7. Использовать в проекте два и более языков программирования.

3.8. Подключать объектный код (откомпилированный с помощью компилятора другого

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

3.9. Использовать встроенный ассемблер системы программирования.

4. ПРЕОБРАЗОВАНИЕ АРХИТЕКТУРЫ, ИЛИ СТРУКТУРЫ ПРОГРАММНОЙ СИСТЕМЫ

4.1. Увеличить число модулей системы.

4.2. Инверсия приема.

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

4.4. Инверсия приема.

4.5. Заменить глобальные переменные локальными переменными.

4.6. Инверсия приема.

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

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

4.9. Оформить модули, связанные между собой единой логикой, в библиотеку.

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

4.11. Использовать библиотечные модули, разработанные другими программистами.

5. ПРЕОБРАЗОВАНИЕ СТРУКТУРЫ МОДУЛЯ

5.1. Заменить линейную структуру команд циклической. (Повышает компактность кода программы.)

5.2. Инверсия приема.

5.3. Заменить ветвящуюся структуру циклической.

5.4. Инверсия приема.

5.5. Заменить ветвящуюся структуру if — then — else вариантом оператора case.

5.6. Заменить ветвящуюся структуру case цепочкой операторов if — then.

5.7. Инверсия приема.

5.8. Заменить цикл repeat — until циклом while.

5.9. Инверсия приема.

5.10. Заменить цикл repeat— until циклом for.

5.11. Инверсия приема.

5.12. Заменить цикл while циклом for.

5.13. Инверсия приема.

5.14. Выделить тело цикла в отдельную подпрограмму. Данный прием повышает читабельность программы, но его следует использовать только тогда, когда это не нарушает внутренней логики цикла.

5.15. Использовать рекурсию.

5.16. Заменить подпрограмму-процедуру подпрограммой-функцией. Данный прием позволяет получить дополнительный параметр, выдаваемый подпрограммой (например, код ошибки).

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

5.18. Полностью исключить или минимизировать использование оператора goto. Улучшает структуру программы, ее читабельность и логику.

Поделиться:
Популярные книги

Александр Агренев. Трилогия

Кулаков Алексей Иванович
Александр Агренев
Фантастика:
альтернативная история
9.17
рейтинг книги
Александр Агренев. Трилогия

Пустоши

Сай Ярослав
1. Медорфенов
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Пустоши

Барон нарушает правила

Ренгач Евгений
3. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон нарушает правила

Вперед в прошлое 3

Ратманов Денис
3. Вперёд в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 3

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Афганский рубеж

Дорин Михаил
1. Рубеж
Фантастика:
попаданцы
альтернативная история
7.50
рейтинг книги
Афганский рубеж

Совпадений нет

Безрукова Елена
Любовные романы:
любовно-фантастические романы
5.50
рейтинг книги
Совпадений нет

Идеальный мир для Социопата 13

Сапфир Олег
13. Социопат
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Идеальный мир для Социопата 13

Наследник в Зеркальной Маске

Тарс Элиан
8. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник в Зеркальной Маске

Королевская Академия Магии. Неестественный Отбор

Самсонова Наталья
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Королевская Академия Магии. Неестественный Отбор

Proxy bellum

Ланцов Михаил Алексеевич
5. Фрунзе
Фантастика:
попаданцы
альтернативная история
4.25
рейтинг книги
Proxy bellum

Светлая ведьма для Темного ректора

Дари Адриана
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Светлая ведьма для Темного ректора

Матабар. II

Клеванский Кирилл Сергеевич
2. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар. II

Академия

Сай Ярослав
2. Медорфенов
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Академия