- •Питання для підготовки до семестрового іспиту Спеціальність: 5.05010301 «Розробка програмного забезпечення»
- •Загальні відомості про стандарт swebok
- •1. Основы программных требований (Software Requirements)
- •2. Проектирование по (Software design)
- •3. Конструирование по (Software Construction)
- •4. Тестирование по (Software Testing)
- •5. Сопровождение по (Software maintenance)
- •6. Управление конфигурацией по (Software Configuration Management-scm)
- •7. Управление инженерией по (Software Engineering Management)
- •8. Процесс инженерии по (Software Engineering Process)
- •9. Методы и средства инженерии по (Software Engineering Tools and Methods)
- •10. Качество по (Software Quality)
- •Стандарт 12207: процеси життєвого циклу програмного забезпечення
- •Каскадна модель життєвого циклу програмного забезпечення
- •Інкрементна модель життєвого циклу програмного забезпечення
- •Спіральна модель життєвого циклу програмного забезпечення
- •Важковагові та полегшені процеси розробки програмного забезпечення
- •Види вимог
- •Аналіз та збирання вимог
- •Верифікація та формалізація вимог
- •Об’єктно-орієнтована інженерія вимог
- •Метод інженерії вимог а. Джекобсона
- •Визначення об’єктів в моделі аналізу вимог
- •Трасування та атрибути вимог
- •Перевірка та вимірювання вимог
- •Основні поняття аналізу предметної області
- •Метод аналіз та побудови моделей с. Шлаер та с. Меллора
- •Методи проектування архітектури пз
- •Структурний підхід до проектування
- •Об’єктно-орієнтований підхід до проектування
- •Методи моделювання uml
- •Предмети в uml
- •Відношення в uml
- •24. Діаграми в uml
- •Діаграми класів в uml
- •Діаграми схем станів
- •Діаграми діяльності
- •Діаграми взаємодії
- •Діаграми співробітництва
- •Діаграми послідовності
- •Діаграми Use Case
- •Діаграми об’єктів в uml
- •Основи конструювання
- •Стандарти конструювання програмного забезпечення
- •Моделі конструювання програмного забезпечення
- •Планування конструювання
- •Проектування в конструюванні
- •Статичні методи тестування програм
- •Динамічні методи тестування програм
- •Функціональне тестування програм
- •Організація підготовки тестів
- •Команда тестувальників
- •Організація процесу тестування
- •Модель якості програмного забезпечення
- •5). Сопровождаемость
- •Стандартний метод оцінки значень показників якості
- •Керування якістю програмного забезпечення
- •Моделі оцінки надійності
- •Методи керування проектами
- •Планування проекту
- •Організаційні аспекти керування в проекті
- •Оцінка проекту
- •Методи керування ризиками
- •Керування конфігурацією програмної системи
- •Проблеми організації документування
- •Формування вимог до документації
- •Планування документування проектів
- •Керування спеціалістами при документуванні
- •Документообіг в життєвому циклі
- •Стандарти, що регламентують документування програмних проектів
- •Стандарти, що регламентують експлуатаційну документацію
Методи проектування архітектури пз
Проектирование ПО - процесс определения архитектуры, компонентов, интерфейсов, других характеристик системы и конечного результата.
Область знаний йПроектиротаки ПО (Software Dдign)» состоит из следующих разделов:
базовые концепции проектирования ПО (Software Design Basic Concepts),
ключевые вопросы проектирования ПО (Key Issue in Software Design),
структура и архитектура ПО (Software Structure and Architecture),
анализ и оценка качества проектирования ПО (Software Design Quality Analysis and Evaluation),
нотации проектирования ПО (Software Design Notations),
стратегия и методы проектирования ПО (Software Design Strategies and Methods).
К базовым концепциям проектирования ПО относятся процессы ЖЦ (стандарт ISO/IEC 12207), процесс проектирования архитектуры с использованием разных принципов (объектного, компонентного и др.) и техник: абстракции, декомпозиции, инкапсуляции и др. Автоматизируемая система декомпозируется на отдельные компоненты, выбираются необходимые артефакты (нотации, методы и др.) программной инженерии и строится архитектура ПО.
К ключевым вопросам проектирования ПО относятся: декомпозиция на функциональные компоненты для независимого и параллельного их выполнения, принципы распределения компонентов в среде выполнения и их взаимодействие между собой, механизмы обеспечения качества и живучести системы и др.
При проектировании структуры ПО используется архитектурный стиль проектирования, основанный на определении основных элементов структуры -подсистем, компонентов и связей между ними.
Архитектура проекта - высокоуровневое представление структуры, задаваемое с помощью паттернов, компонентов и их идентификация. Описание архитектуры содержит описание логики отдельных компонентов системы, достаточное для проведения работ по кодированию, и связей между ними. Существуют и другие виды структур, основанные на проектировании образцов, шаблонов, семействе программ и их каркасов.
Паттерн - это конструктивный элемент ПО, который задает взаимодействие объектов (компонентов) проектируемой системы, определение ролей и ответственности исполнителей. Основным языком задания этого элемента является UML.
Паттерн может быть: структурным, в котором определяются типовые композиции структур из объектов и классов диаграммами классов, объектов, связей и др.; поведенческим, определяющим схемы взаимодействия классов объектов и их поведение диаграммами активностей, взаимодействия, потоков управления и др.; креативным, отображающим типовые схемы распределения ролей экземпляров объектов диаграммами взаимодействия, кооперации и др.
Анализ и оценка качества проектирования ПО включает мероприятия по анализу сформулированных в требованиях атрибутов качества, оценки различных аспектов ПО размера и структуры ПО, функций и качества проектирования с помощью формальных метрик (функционально-ориентированных, структурных и объектно-ориентированных), а также проведения качественного анализа результатов проектирования путем статического анализа, моделирования и прототипирования.
Нотации проектирования позволяют представить артефакты ПО и его структуру, а также поведение системы. Существует два типа нотаций: структурные, поведенческие и множество различных их представлений.
Структурные нотации являются графическими, они используются для представления структурных аспектов проектирования, компонентов и их взаимосвязей, элементов архитектуры и их интерфейсов. К ним относятся формальные языки спецификаций и проектирования: ADL (Architecture Description Language), UML (Unified Modeling Language), ERD (Entity-Relation Diagrams), IDL (Interface Description Language), классы и объекты, компоненты и классы (CRC Cards), Use Case Driven и др. Нотации включают языки описания архитектуры и интерфейса, диаграммы классов и объектов, диаграммы сущность-связь, компонентов, развертывания, а также структурные диаграммы и схемы.
Поведенческие нотации отражают динамический аспект поведения систем и их компонентов. Таким нотациям соответствуют диаграммы: Data Flow, Decision Tables, Activity, Colloboration, Pre-Post Conditions, Sequence, таблицы принятия решений, формальные языки спецификации, языки проектирования PDL и др.
Стратегия и методы проектирования ПО. Данный раздел знаний представляет различные стратегии и методы, которые используются при проектировании. К общим стратегиям относятся: снизу-вверх, сверху-вниз, абстракции, паттерны и др. Функционально-ориентированные (структурные) методы базируются на структурном анализе, структурных картах, Dataflow-диаграммах и др. Они ориентированы на идентификацию функций и их уточнение сверху-вниз, после чего проводится разработка диаграмм потоков данных и описание процессов. В обьектно-ориентированном проектировании ключевую роль играет наследование, полиморфизм и инкапсуляция, а также абстрактные структуры данных и отображение объектов [30] Подходы, ориентированные на структуры данных, базируются на методе Джексона (Jackson) [8] и используются для задания входных и выходных данных структурными диаграммами.
Компонентное проектирование ориентировано на использование и интеграцию компонентов (особенно компонентов повторного использования) и на их интерфейс, обеспечивающий взаимодействие компонентов; является базисом других видов программирования, в том числе сервисно-ориентированного, в котором группы компонентов обеспечивают функциональный сервис. К другим методам относятся: формальные, точные и трансформационные методы, а также UML для моделирования архитектурных решений с помощью диаграмм [31].
Таким образом, предложенные в данной области знаний подходы, стратегии и методы проектирования ПО, средства распределения и взаимодействия компонентов в разных средах являются основными при разработке проекта с применением разных элементов (шаблонов, сценариев, диаграмм и др.) и стилей проектирования структуры ПО, а также мероприятий по проведению анализа полученных на этапе проектирования атрибутов качества ПО.
Проектирование ПО - это процесс разработки, следующий за этапом анализа и формирования требований. Задачей проектирования является преобразование требований к системе в проектные решения, требования к ПО и построение архитектуры системы.
Проектирование архитектуры системы проводится разными методами, основанными на известных подходах (структурный, объектно-ориентированный, компонентный и др.), каждый из которых предлагают свой путь решения проблемы проектирования, включая соответствующие им конструктивные элементы и методы задания структуры моделей (концептуальной, объектной и др.) системы. Среди методов проектирования наиболее часто использовался стандартный, процессы и задачи которого регламентированы стандартом.
При проектировании используется объектно-ориентированная парадигма, по которой любая система рассматривается как совокупность взаимодействующих объектов. Все подпроцессы проектирования будем рассматривать относительно тех объектов, требования к которым определены на этапе инженерии требований.