- •Препроцессор. Директивы препроцессора.
- •Описание, определение и вызов функций. Параметры по умолчанию. Встроенные функции.
- •Особенности работы с указателями разных типов в языке с.
- •Модели памяти. Функции работы с динамической памятью.
- •Шаблоны функций. Перегружаемые функции.
- •Организация ввода-вывода.
- •Разработка надежного программного обеспечения. Обработка исключительных ситуаций.
- •13. Особенности программирования для ос Windows.
- •14. Библиотека динамической компоновки. Области применения. Разработка и использование dll-библиотек.
- •15. Объектно-ориентированное программирование. Классы. Определение спецификации доступа.
- •16. Объектно-ориентированное программирование. Полиморфизм.
- •17. Ооп. Наследование. Области видимости для классов.
- •18. Ооп. Классы. Дружественные функции.
- •19. Понятие компоненты. Типы компонент. Свойства. Контейнерные компоненты.
- •20. Организация процесса конструирования по. Типы по. Стратегии конструирования.
- •21. Понятие жизненного цикла. Модели жизненного цикла.
- •22. Особенности процесса синтеза программных систем.
- •23. Разработка структуры программы. Модульное программирование. Критерии оценки программ.
- •24. Проектирование программ. Методы нисходящего и восходящего проектирования.
- •27. Классические методы анализа проектирования. Метод Джексона.
- •28. Структурные методы проектирования. Sadt.
- •29. Структурные методы проектирования программных систем. Использование dfd и er диаграмм.
- •30. Case-системы. Классификация.
- •31. Методы контроля и тестирования по. Статический и динамический контроль. Функциональное тестирование.
- •32. Методы контроля и тестирования по. Структурное тестирование. Многомодульное тестирование.
- •33. Разработка интерфейса пользователя. Структуры диалога. Критерии выбора структуры диалога.
- •34. Разработка интерфейса пользователя. Описание диалога. Использование сетей переходов для представления структуры диалога. Правила свёртки сети переходов.
- •40. Критерии оценки качества по. Документирование и оценка качества в соответствии с iso 9000.
- •41. Основные понятия сом-технологии.
22. Особенности процесса синтеза программных систем.
Синтез программных систем включает в себя 3 основных стадии ЖЦ: проектирование, кодирование, тестирование.
При выполнении синтеза первоначально создаются модели анализа. Выделяют 3 модели анализа:
Информационная модель – описывает информацию, которую, по мнению заказчика должна обрабатывать проектируемая система.
Функциональная модель – определяет набор функций разработки.
Поведенческая модель – устанавливает желательные режимы работы.
Затем переходят к этапу проектирования, который имеет 3 фазы: процедурная разработка – описывает последовательность действий в структурных компонентах.
Разработка данных – является результатом преобразования информационной модели в структуры данных программных систем.
Разработка архитектуры – определяет основные структурные компоненты программы в целом и взаимосвязи.
Этап проектирования – итерационный процесс, при помощи которого требования к системе транслируются в инженерные представления.
23. Разработка структуры программы. Модульное программирование. Критерии оценки программ.
Программный модуль – любой фрагмент описания процесса, оформленный как самостоятельный ПП, пригодный для использования в дальнейших спецификациях. Программный модуль рассматривается как средство борьбы со сложностью программы и дублированием кода.
Модульное программирование обеспечивает независимость компонент системы и использование иерархических структур. Для взаимодействия модуля с другими частями программы он должен обладать интерфейсом. Интерфейс модуля – определённые правила доступа к внешним фрагментам модуля и соглашения о форматах входных и выходных данных.
Для получения максимально эффективного модульного программирования любой модуль должен соответствовать 2 критериям:
- критерий Хольта: хороший модуль снаружи всегда проще, чем изнутри;
- хороший модуль проще использовать, чем построить.
Характеристики оценки приемлемости программных модулей:
+ размерность модуля – измеряется числом содержащихся в нём операторов. Маленькие -> громоздкая модульная структура. Большие -> неудобно изучать и изменять.
+ связность модуля – мера его внутренних связей. Чем больше связность, тем больше связей он скрывает от внешней по отношению к нему части программы. Для оценки связности определяют степени связности.
СС=0: связность по совпадению. Существует в модуле, между элементами которого нет осмысленных связей.
СС=1: логическая связность. Части модуля объединены по функциональному подобию.
СС=3: временная связность. Части модуля не связаны между собой, но необходимы в один и тот же момент времени.
СС=5: процедурная связность. Модуль состоит из элементов, реализующих независимые действия, для которых задан порядок передачи управления. Зависимости по данным нет.
СС=7: коммутативная связность. Части модуля связаны по данным. Процедуры и функции модуля разделяют некоторую общую структуру.
СС=9: информационная связность. Выходные данные одной части модуля используются в качестве входных данных в другой части модуля.
СС=10: функциональная связность. Модуль выполняет одну функционально законченную операцию в виде единого цикла.
+сцепление – мера относительной независимости данного модуля от других. Характеризуется способом передачи данных. Чем слабее сцепление модуля, тем он более независим. Степени сцепления:
сцепление по содержимому – обладают 2 модуля, если один из них имеет прямые ссылки на содержимое другого модуля.
Сцепление по общей области – несколько модулей используют одну и ту же область памяти.
Сцепление по внешним ссылкам – возникает при обращении к данным через внешние точки входа.
Сцепление по управлению – если один из модулей управляет процессом выполнения другого модуля путём сброса/установки флага.
Сцепление по данным – предполагает обмен модулей данными стандартного типа, при этом принимающий модуль знает имя передающего и типы, и количество параметров.
Сцепление по образцу – обмен между модулями параметрами пользовательского типа.
+рутинность модуля – мера независимости модуля от предыстории обращения к нему. Модуль рутинный, если результат обращения к нему зависит только от значения текущих передаваемых параметров.
