21
проектирования: 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].
Таким образом, предложенные в данной области знаний подходы, стратегии и методы
проектирования ПО, средства распределения и взаимодействия компонентов в разных
средах являются основными при разработке проекта с применением разных
элементов (шаблонов, сценариев, диаграмм и др.) и стилей проектирования структуры
ПО, а также мероприятий по проведению анализа полученных на этапе
проектирования атрибутов качества ПО.
1.3. Конструирование ПО (Software Construction)
Конструирование ПО – создание работающего ПО с привлечением методов
верификации, кодирования и тестирования компонентов. К инструментам
конструирования ПО отнесены языки программирования и конструирования, а также
программные методы и инструментальные системы (компиляторы, СУБД, генераторы
отчетов, системы управления версиями, конфигурацией, тестированием и др.). К
формальным средствам описания процесса конструирования ПО, взаимосвязей между
человеком и компьютером и с учетом среды окружения отнесены языки
конструирования.
Область знаний «Конструирование ПО (Software Construction)» включает следующие
разделы: