- •Технология программирования. Основные этапы ее развития. (и 2 вопрос тут же)
- •Этапы развития технологии программирования. (см. Пункт первый)
- •Технологии com и corba.
- •Проблемы, возникающие при разработке сложных программных систем.
- •Блочно-иерархический подход к созданию сложных систем.
- •Жизненный цикл и этапы разработки программного обеспечения. Кратко охарактеризуйте основные этапы.
- •Постановка задачи, анализ требований и определение спецификаций.
- •Проектирование, реализация и сопровождение.
- •Модели жизненного цикла программного обеспечения.
- •Case-технологии.
- •Оценка качества процессов создания программного обеспечения.
- •Использование cmm при оценке качества процессов создания программного обеспечения.
- •Использование стандартов iso 9000 и spice при оценке качества процессов создания программного обеспечения.
- •Понятие технологичности программного обеспечения.
- •Модули и их свойства.
- •Сцепление модулей.
- •Связность модулей.
- •Нисходящая и восходящая разработка программного обеспечения.
- •Структурное программирование.
- •Средства описания структурных алгоритмов.
- •Стиль оформления программы.
- •Эффективность и технологичность программного обеспечения.
- •Программирование с «защитой от ошибок».
- •Сквозной структурный контроль
- •Классификация программных продуктов по функциональному признаку.
- •Эксплуатационные требования к программным продуктам.
- •Предпроектные исследования предметной области.
- •Техническое задание. Основные разделы.
- •Архитектура программного обеспечения.
- •Тип пользовательского интерфейса.
- •Выбор языка и среды программирования.
- •1). Выбор языка программирования.
- •Спецификация программного обеспечения при структурном подходе.
- •Язык описания разработки программных продуктов uml.
- •Тестирование программного обеспечения.
Нисходящая и восходящая разработка программного обеспечения.
При проектировании, реализации и тестировании компонентов структурной иерархии, полученной при декомпозиции, применяют два подхода:
1)восходящий; 2)нисходящий.
еще один подход- «расширение ядра», предполагает, что в первую очередь проектируют и разрабатывают некоторую основу – ядро ПО( структуры данных и процедуры, связанные с ними). В дальнейшем ядро наращивают, комбинируя восходящий и нисходящий методы. На практике данный подход в зависимости от уровня ядра практически сводится либо к нисходящему, либо к восходящему подходам.
Восходящий подход. - сначала проектируют и реализуют компоненты нижнего уровня, затем предыдущего и т.д. По мере завершения тестирования и отладки компонентов осуществляют их сборку, причем компоненты нижнего уровня при таком подходе часто помещают в библиотеки компонентов.
Для тестирования и отладки компонентов проектируют и реализуют специальные тестирующие программы. Минусы:
-увеличение вероятности несогласованности компонентов вследствие неполноты спецификаций;
-наличие издержек на проектирование и реализацию тестирующих программ, которые нельзя преобразовать в компоненты;
-позднее проектирование интерфейса, => невозможность продемонстрировать его заказчику для уточнения спецификаций и т.д.
Нисходящий подход. - предполагает, что проектирование и последующая реализация компонентов выполняется «сверху-вниз», т.е. вначале проектируют компоненты верхних уровней иерархии, затем следующих и так далее до самых нижних уровней. В той же последовательности выполняют и реализацию компонентов. При этом в процессе программирования компоненты нижних, еще не реализованных уровней заменяют специально разработанными отладочными модулями – «заглушками», что позволяет тестировать и отлаживать уже реализованную часть.
Структурное программирование.
-Один из способов обеспечения высокого уровня технологичности разрабатываемого ПО. Различают три вида вычислительного процесса, реализуемого программами: линейный, разветвленный и циклический.
Линейная структура процесса вычислений - получения результата необходимо выполнить некоторые операции в определенной последовательности.
Разветвленная структура процесса вычислений - конкретная последовательность операций зависит от значений одной или нескольких переменных.
Циклическая структура - для получения результата некоторые действия необходимо выполнить несколько раз.
Для изображения схем алгоритмов программ в свое время был разработан ГОСТ 19.701-90, согласно которому каждой группе действий ставится в соответствие специальный блок (табл). Хотя этот стандарт предусматривает блоки для обозначения циклов, он не запрещает и произвольной передачи управления, т.е. допускает использование команд условной и безусловной передачи управления при реализации алгоритма.
любой сложный алгоритм можно представить с использованием 3х осн-х управляющих конструкций, в языках программирования высокого уровня появились управляющие операторы для реализации соответствующих конструкций. их принято считать базовыми:
следование - обозначает последовательное выполнение действий (рис. 2.3, а);
ветвление - соответствует выбору одного из двух вариантов действий (рис.2.3, б);
цикл-пока - определяет повторение действий, пока не будет нарушено некоторое условие, выполнение которого проверяется в начале цикла (рис. 2.3, в).
Примечание. Слово «структурное» в данном названии подчеркивает тот факт, что при программировании использованы только перечисленные конструкции (структуры). Отсюда и понятие «программирование без go to».
Программы, написанные с использованием только структурных операторов передачи управления, называют структурными, чтобы подчеркнуть их отличие от программ, при проектировании или реализации которых использовались низкоуровневые способы передачи управления.