- •Вопросы к экзамену по курсу "Технология программирования"
- •История развития языков программирования высокого уровня.
- •Архитектура языков программирования (три поколения).
- •Архитектура объектно-ориентированных языков программирования.
- •Сложность, присущая по (основные причины). Проблемы, возникающие при создании сложных систем.
- •Структура сложных систем (пять признаков). Примеры сложных систем (выделить признаки).
- •Основные понятия: метод, методология, технология. Классификация методов проектирования пс. Общая характеристика методов проектирования.
- •Эволюция программного продукта. Основные определения, понятия, отличительные черты.
- •Понятие «модуль» в программировании. Различные виды модулей при использовании основных методов проектирования пс.
- •Case – технологии (инструменты, системы, средства). Эволюция case – средств, их классификация, характеристики современных case – инструментов. Перспективы развития.
- •Роль case – инструментов в объектно-ориентированной методологии разработки пс. Связь case – технологии с методами быстрой разработки приложений (rad).
- •Классификация средств разработки (case - инструментов).
- •Жизненный цикл по (жц). Структура жц, основные фазы жц.
- •Организация процесса разработки пс (методы, средства, процедуры).
- •Модели процесса разработки пс (каскадная, спиральная)
- •Модели процесса разработки пс (компонентно-ориентированная, инкрементная, rad – модель).
- •Тяжеловесные и облегченные процессы разработки пс.
- •Унифицированный процесс разработки пс.
- •Iconix – процесс.
- •Scrum – процесс.
- •Артефакты
- •Встречи
- •Планирование спринта происходит в начале итерации(не более 4-8 часов), выбирается что будет сделано и обсуждается как это будет сделано.
- •Митинг Происходит каждый день в течение спринта(не более 15 минут), ищутся ответы на вопросы: что сделано? Что надо сделать? Какие есть проблемы?
- •Демонстрация проходит в конце спринта(не более 4-8 часов), показывается инкремент.
- •Прототип системы (достоинства и недостатки макетирования).
- •Масштаб проекта и риски
- •Содержание основных рабочих процессов по созданию по (анализ требований, системный анализ, проектирование).
- •Содержание основных рабочих процессов по созданию по (кодирование, тестирование).
- •Изменения в процессе эволюции программных систем, стоимость каждого вида изменения (в смысле затрат).
- •Организационные процессы (распределение ресурсов, управление проектом, организация коллектива разработчиков).
- •Документирование программного продукта. Различные виды документов, их содержание.
- •Виды документов при использовании объектно-ориентированной методологии разработки пс.
- •Временные затраты на реализацию этапов разработки по. Особенности распределения ресурсов при использовании объектно-ориентированной методологии.
- •Методы и средства структурного анализа.
- •Диаграммы потоков данных с расширениями для реального времени.
- •Пример банковской задачи (провести анализ).
- •Средства структурного проектирования (карты Константайна).
- •Методы проведения анализа объектно-ориентированных систем.
- •Типовая и структурная иерархии в объектно-ориентированной методологии.
- •Унифицированный язык моделирования пс (uml). Словарь, достоинства и возможности
- •Механизмы расширения в uml.
- •Диаграммы классов (точки зрения).
- •Отношения в диаграмме классов.
- •Классы ассоциаций.
- •Диаграммы вариантов использования, реализации вариантов использования.
- •Диаграммы взаимодействий.
- •Диаграммы пакетов и компонентов.
- •Диаграммы состояний.
- •Диаграммы активности (деятельностей).
- •Каркасы и паттерны.
- •Основные понятия и определения теории тестирования. Подходы к тестированию. Стратегии тестирования. Критерии тестирования.
- •Критерии тестирования стратегии "черного ящика".
- •1. Эквивалентное разбиение (самый популярный критерий из-за простоты)
- •2. Анализ граничных условий.
- •3. Метод функциональных диаграмм
- •Классический процесс тестирования по.
- •Тестирование модулей (блоков) программы. Тестирование интеграции.
- •Тестирование правильности (функциональное тестирование). Системное тестирование.
- •Особенности тестирования объектно-ориентированных программ. Тестирование классов.
- •Тестирование взаимодействия классов и функционирования компонентов.
- •Вопросы автоматизации тестирования. Инструменты тестирования.
Средства структурного проектирования (карты Константайна).
Проектирование – это фаза жизненного цикла, на которой должны быть реализованы спецификации анализа.
Проект системы является расширением логической модели, которая получена на этапе анализа, поэтому на входе этапа проектирования имеем диаграммы DFD (потоков данных), STD (переходов и состояний) и ERD (“сущность – связь”). На выходе:
1. Схема иерархии, которая отражает уровни абстракций (дерево), а также взаимодействие процессов (модулей), которые выявлены на всех DFD (отношения между модулями).
2. Спецификации модулей, которые описывают их внутреннюю структуру, т.е. логику.
Рассмотрим некоторые системы обозначения для описания этапа проектирования.
Для описания схем иерархии на практике чаще всего используются структурные карты Константайна.
На структурной карте отношения между модулями представляют в виде графа, вершинам которого соответствуют модули и общие области данных, а дугам - межмодульные вызовы и обращения к общим областям данных. Различают четыре типа вершин:
• модуль - подпрограмма,
• подсистема - программа,
• библиотека - совокупность подпрограмм, размещенных в отдельном модуле,
• область данных - специальным образом оформленная совокупность данных,, к которой возможно обращение извне.
При этом отдельные части программной системы (программы, подпрограммы) могут вызываться последовательно, параллельно или как сопрограммы.
Чаще всего используют последовательный вызов, при котором модули, передав управление, ожидают завершения выполнения вызванной программы или подпрограммы, чтобы продолжить прерванную обработку.
Под параллельным вызовом понимают распараллеливание вычислений на нескольких вычислителях, когда при активизации другого процесса данный процесс продолжает работу. На однопроцессорных компьютерах в мультипрограммных средах в этом случае начинается попеременное выполнение соответствующих программ.
Проектирование в объектно-ориентированном подходе (метод + модели). Типовая и структурная иерархии в объектно-ориентированной методологии (рисунок).
Методы проведения анализа объектно-ориентированных систем.
Типовая и структурная иерархии в объектно-ориентированной методологии.
Унифицированный язык моделирования пс (uml). Словарь, достоинства и возможности
UML (Unified Modeling Language) – унифицированный язык моделирования.
Создатели UML представляют его как язык для написания моделей анализа, проектирования, реализации, документирования объектно-ориентированных ПС, а также бизнес-систем и любых информационных систем. UML – это инструмент общения с самим собой, с членами команды и клиентами (заказчиками). UML – это не визуальный язык программирования. Но его модели прямо транслируются в текст на соответствующем языке программирования, а также в таблицы реляционной БД.
Словарь UML образуют три разновидности строительных блоков: предметы, отношения и диаграммы.
Предметы – это абстракции, которые являются основными элементами в модели. Например, класс, объект, интерфейс, кооперация, актер, прецедент, компонент, узел, взаимодействие, состояние, пакет, комментарии.
Отношения связывают предметы. В UML имеются четыре разновидности отношений: зависимость, ассоциация, обобщение и реализация.
Эти отношения являются базовыми строительными блоками отношений и используются при создании моделей. Кратко рассмотрим отношения.
Зависимость – это семантическое отношение между двумя предметами, т. е. изменение в одном предмете (независимом) влияет на семантику другого предмета (зависимого). На диаграммах отношение зависимости изображается прерывистой линией со стрелкой, направленной на независимый предмет.
Ассоциация – это структурное отношение, которое описывает набор связей между предметами (объектами). На диаграммах отношение ассоциации изображается сплошной линией. Ассоциация может быть направленной, иметь метки, мощность, имена ролей. Специальная разновидность ассоциации – агрегация, которая представляет структурное отношение между предметами (целым и его частями).
Обобщение – это отношение специализации, в котором объекты специализированного элемента (потомка, ребенка) могут заменять объекты обобщенного элемента (предка, родителя). Иначе говоря, потомок разделяет структуру и поведение родителя. На диаграммах отношение обобщения изображается сплошной линией с широкой стрелкой, направленной на обобщенный элемент предка.
Реализация – это семантическое отношение между предметами (в основном, между интерфейсом и реализацией класса и/или компонента). Отношение реализации также может быть установлено между прецедентом и кооперацией. На диаграммах отношение реализации изображается прерывистой линией с широкой стрелкой, направленной на интерфейс (прецедент).
Диаграммы – графические представления множества элементов, которые изображаются как связные графы, состоящие из вершин (предметов) и дуг (отношений).
Диаграммы строятся для визуализации системы с разных точек зрения. Затем они отображаются в ПС. Обычно диаграммы дают неполное представление элементов, которые составляют ПС (как и любая модель неполно описывает систему).
Теоретически диаграмма может содержать любую комбинацию предметов и отношений, но на практике в процессе моделирования ПС ограничиваются только девятью видами диаграмм:
• диаграммы прецедентов (диаграммы вариантов использования) – Use Case Diagrams;
• диаграммы классов – Class Diagrams;
• диаграммы объектов – Object Diagrams;
• диаграммы последовательности – Sequence Diagrams;
• диаграммы сотрудничества – Collaboration Diagrams;
• диаграммы состояний – State Diagrams;
• диаграммы деятельности – Activity Diagrams;
• диаграммы компонентов – Component Diagrams;
• диаграммы размещения – Deployment Diagrams.