
- •1. Жизненный цикл программной системы.
- •2. Классический подход к созданию программных систем.
- •3. Понятия связности модулей и сцепления модулей.
- •4. Структурное программирование.
- •Структурное тестирование программного обеспечения
- •1. Связь процессов тестирования и процессов проектирования.
- •2. Уровни тестирования и виды тестирования.
- •3. Стратегия тестирования.
- •4. Тестирование программного модуля.
- •5. Восходящее и нисходящее тестирование.
- •6. Методы тестирования: модифицированный нисходящий, монолитный, сандвич, модифицированный сандвич.
- •7. Системное тестирование: метод функциональных диаграмм.
- •Объектно-ориентированный подход к разработке по
- •1. Абстрагирование и инкапсуляция
- •2. Модульность программных систем
- •3. Виды иерархий в программных системах.
- •4. Понятие объекта. Состояние, поведение и индивидуальность объекта.
- •5. Отношение между объектами: использование, включение.
- •6. Отношение простого наследования классов.
- •7. Добавление, замещение и уточнение методов класса при наследовании.
- •8. Отношение ассоциации между классами, включая агрегацию.
- •9. Отношение зависимости между классами, отношение реализации.
- •Шаблоны проектирования
- •1. Шаблон «Одиночка» Singleton
- •2. Шаблон «Фабричный метод» Factory Method
- •3. Шаблон «Декоратор» Decorator
- •4. Шаблон «Стратегии» Strategy
- •5. Шаблон «Компоновщик» Composite.
- •6. Шаблон «Наблюдатель» Observer
- •7. Архитектурные шаблоны (парадигмы).
- •Унифицированный процесс разработки по (rup)
- •1. Основные черты. Фазы и основные потоки работ.
- •2. Документ «Видения». Модель и словарь предметной области.
- •3. Функциональные и нефункциональные требования к системе. Варианты использования системы.
- •4. Прецеденты и отношения между вариантами использования (прецедентами).
- •5. Модель анализа и классы анализа.
- •6. Архитектурное представление.
7. Архитектурные шаблоны (парадигмы).
Архитектура программной системы – это структура и принципы организации взаимодействия наиболее важных компонентов системы
Архитектурные представления системы предназначены для различных групп заинтересованных лиц (разработчики, руководители, системные администраторы, пользователи и т.д.):
Представление вариантов использования (Use Case View) – подмножество модели вариантов использования. Включает варианты использования, описывающие архитектурно значимое поведение системы.
Логическое представление (Logical View) – подмножество модели проектирования, которое содержит наиболее значимые классы и их распределение по пакетам и подсистемам.
Представление развертывания (Deployment View) – описывает ответственность физических узлов сети, распределение задач (процессов и потоков) по узлам.
Представление реализации (Implementation View) – описывает организацию ПО в терминах пакетов и слоев.
Представление процессов (Process View) – подмножество модели проектирования, которое содержит описание задач (процессов и потоков), их взаимодействие и конфигурацию.
Представление данных (Data View) – подмножество модели данных для случая когда устойчивость данных является важным аспектом системы.
Шаблон «Клиент-сервер» Client-Server
Клиент/серверная архитектура описывает распределенные системы, состоящие из отдельных клиента и сервера и соединяющей их сети. Простейшая форма системы клиент/сервер, называемая 2-уровневой архитектурой – это серверное приложение, к которому напрямую обращаются множество клиентов.
Система разделяется на два приложения, где клиент выполняет запросы к серверу. Во многих случаях в роли сервера выступает база данных, а логика приложения представлена процедурами хранения.
Применимость
создаваемое приложение должно размещаться на сервере и не должно поддерживать множество клиентов;
создаются Веб-приложения, предоставляемые через Веб-браузер;
реализуются бизнес-процессы, которые будут использоваться в рамках организации;
создаются сервисы для использования другими приложениями;
необходимо централизовать хранилище данных, функции резервного копирования и управления;
разрабатываемое приложение должно поддерживать разные типы клиентов и разные устройства.
Результаты
Большая безопасность. Все данные хранятся на сервере, который обычно обеспечивает больший контроль безопасности, чем клиентские компьютеры.
Централизованный доступ к данным. Поскольку данные хранятся только на сервере, администрирование доступа к данным намного проще, чем в любых других архитектурных стилях.
Простота обслуживания. Роли и ответственность вычислительной системы распределены между несколькими серверами, общающимися друг с другом по сети. Благодаря этому клиент гарантированно остается неосведомленным и не подверженным влиянию событий, происходящих с сервером (ремонт, обновление либо перемещение).
Тесное связывание данных и бизнес-логики приложения на сервере.
Шаблон «Брокер сообщений» Message Broker
Основанная на шине сообщений архитектура описывает принцип использования программной системы, которая может принимать и отправлять сообщения по одному или более каналам связи, обеспечивая, таким образом, приложениям возможность взаимодействия без необходимости знания конкретных деталей друг о друге. Это стиль проектирования, в котором взаимодействия между приложениями осуществляются путем передачи (обычно асинхронной) сообщений через общую шину.
Заглушки и брокеры (скелеты) являются посредниками (объектами, управляющими доступом к другим объектам). С помощью них передаваемые сообщения преобразовываются в удобную для передачи форму, реализуется связь между узлами. С точки зрения пользователя соединение выглядит так, будто один узел передает сообщение другому напрямую.
Шаблон «Многоуровневая (многослойная) архитектура»
Многоуровневая архитектура обеспечивает группировку связанной функциональности приложения в разных слоях, выстраиваемых вертикально, поверх друг друга. Функциональность каждого слоя объединена общей ролью или ответственностью. Слои слабо связаны, и между ними осуществляется явный обмен данными.
(слой обозначает логическое разделение функциональности, а уровень физическое разворачивание на разных системах).
При строгом разделении на слои компоненты одного слоя могут взаимодействовать только с компонентами того же слоя или компонентами слоя, расположенного прямо под данным слоем. Более свободное разделение на слои позволяет компонентам слои взаимодействовать с компонентами того же и всех нижележащих слоев.
Многослойная архитектура поддерживается рядом шаблонов проектирования. Например, под названием Отделение представления объединяется ряд шаблонов, разделяющих взаимодействие пользователя с UI, представление, бизнес-логику и данные приложения, с которыми работает пользователь.
Структура
Применимость
имеются готовые уровни, подходящие для повторного использования в других приложения;
имеются приложения, предоставляющие подходящие бизнес-процессы через интерфейсы сервисов;
создается сложное приложение и предварительное проектирование требует разделения, чтобы группы могли сосредоточиться на разных участках функциональности;
приложение должно поддерживать разные типы клиентов и разные устройства;
требуется реализовать сложные и/или настраиваемые бизнес-правила и процессы.