Файл: Методы анализа & проектирования по.pptx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 06.05.2024

Просмотров: 54

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Методы анализа & проектирования ПО

Область знаний "Проектирование ПО (Software Design)"

(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) и техники - декомпозиция, абстракция, инкапсуляция и др.

Ключевые вопросы проектирования ПО

К ключевым вопросам проектирования ПО относятся:

Структура и архитектура ПО

Анализ и оценка качества проектирования ПО

Мероприятия по анализу сформулированных в требованиях атрибутов качества, оценки различных аспектов ПО:

Нотации проектирования

Структурные нотации

ADL (Architecture Description Language)

UML (Unified Modeling Language)

Преимущества UML

ERD (Entity-Relationship Diagrams)

IDL (Interface Description Language)

Use Case Driven

SysML

Поведенческие нотации

Диаграммы потоков данных (Data Flow)

Таблиц принятия решений (Decision Tables)

Деятельности (Activity)

Кооперации (Colloboration)

Последовательности (Sequence)

Язык спецификаций

Стратегия и методы проектирования ПО

Благодарю за внимание!

Методы анализа & проектирования ПО


Проектирование ПО - это процесс определения архитектуры, компонентов, интерфейсов, других характеристик системы и конечного состава программного продукта. 

Область знаний "Проектирование ПО (Software Design)"


Базовые концепции проектирования ПО

(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) и техники - декомпозиция, абстракция, инкапсуляция и др.

Ключевые вопросы проектирования ПО

К ключевым вопросам проектирования ПО относятся:


Декомпозиция программ на функциональные компоненты для независимого и параллельного их выполнения,
Принципы распределения компонентов в среде выполнения и их взаимодействия между собой,
Механизмы обеспечения качества и живучести системы и др.

Структура и архитектура ПО


При проектировании архитектуры ПО используется архитектурный стиль проектирования, основанный на определении основных элементов структуры - подсистем, компонентов и связей между ними.


Архитектура проекта - высокоуровневое представление структуры системы и спецификация ее компонентов. Архитектура определяет логику отдельных компонентов системы настолько детально, насколько это необходимо для написания кода, а также определяет связи между компонентами. Существуют и другие виды представления структур, основанные на проектировании образцов, шаблонов, семейств программ и каркасов программных сред.

Pattern

Анализ и оценка качества проектирования ПО

Мероприятия по анализу сформулированных в требованиях атрибутов качества, оценки различных аспектов ПО:


Количества функций,
Структура ПО,
Качества проектирования с помощью формальных метрик (функционально-ориентированных, структурных и объектно-ориентированных),
Проведения качественного анализа результатов проектирования путем статического анализа, моделирования и прототипирования.

Нотации проектирования


Нотации проектирования позволяют представить описание объекта (элемента) ПО и его структуру, а также поведение системы. 
Существует два типа нотаций: структурные, поведенческие и множество различных их представлений.

Структурные нотации


Это структурное, блок-схемное или текстовое представление аспектов проектирования структуры ПО из объектов, компонентов, их интерфейсов и взаимосвязей.
К нотациям относятся формальные языки спецификаций и проектирования:
    ADL (Architecture Description Language),
    UML (Unified Modeling Language),
    ERD (Entity-Relationship Diagrams),
    IDL (Interface Description Language),
    Use Case Driven и др.

    Нотации включают языки описания архитектуры и интерфейса, диаграммы классов и объектов, диаграммы сущность-связь, конфигурации компонентов, схем развертывания, а также структурные диаграммы, задающие в наглядном виде операторы цикла, ветвления, выбора и последовательности.

ADL (Architecture Description Language)


Языки описания архитектуры (ADLS) используются для описания архитектуры программного обеспечения.
Различными организациями было разработано несколько различных ADLS, в том числе:
    AADL (стандарт SAE),
    Wright (разработан в университете Carnegie Mellon),
    Acme (разработан в университете Carnegie Mellon),
    xADL (разработан в UCI),
    Darwin (разработан в Imperial College в Лондоне),
    DAOP-ADL (разработан в Университете Малаги), а также ByADL (Университет L’Aquila, Италия).

    Общими элементами для всех этих языков являются понятия компонента, коннектора и конфигурации. Также, помимо специализированных языков, для описания архитектуры часто используется унифицированный язык моделирования UML.

UML (Unified Modeling Language)


Язык графического описания для объектного моделирования в области разработки программного обеспечения, моделирования бизнес-процессов, системного проектирования и отображения организационных структур.


UML является языком широкого профиля, это — открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML-моделью.
UML был создан для определения, визуализации, проектирования и документирования, в основном, программных систем. UML не является языком программирования, но на основании UML-моделей возможна генерация кода.
UML позволяет также разработчикам программного обеспечения достигнуть соглашения в графических обозначениях для представления общих понятий (таких как класс, компонент, обобщение, агрегация и поведение) и больше сконцентрироваться на проектировании и архитектуре.

Преимущества UML


UML объектно-ориентирован, в результате чего методы описания результатов анализа и проектирования семантически близки к методам программирования на современных объектно-ориентированных языках;
UML позволяет описать систему практически со всех возможных точек зрения и разные аспекты поведения системы;
Диаграммы UML сравнительно просты для чтения после достаточно быстрого ознакомления с его синтаксисом;
UML расширяет и позволяет вводить собственные текстовые и графические стереотипы, что способствует его применению не только в сфере программной инженерии;
UML получил широкое распространение и динамично развивается.

ERD (Entity-Relationship Diagrams)


Модель данных, позволяющая описывать концептуальные схемы предметной области.
ER-модель используется при высокоуровневом (концептуальном) проектировании баз данных. С её помощью можно выделить ключевые сущности и обозначить связи, которые могут устанавливаться между этими сущностями.
ER-модель представляет собой формальную конструкцию, которая сама по себе не предписывает никаких графических средств её визуализации. В качестве стандартной графической нотации, с помощью которой можно визуализировать ER-модель, была предложена диаграмма сущность-связь (ER-диаграмма)
entity-relationship diagram, ERD).

IDL (Interface Description Language)


 Язык спецификаций для описания интерфейсов, синтаксически похожий на описание классов в языке C++.
Реализации:
    AIDL: Реализация IDL на Java для Android поддерживающая локальные и удаленные вызовы процедур. Может быть доступна из нативных приложений посредством JNI.
    CORBA IDL — язык описания интерфейсов распределённых объектов, разработанный рабочей группой OMG. Создан в рамках обобщённой архитектуры CORBA.
    IDL DCEязык описания интерфейсов спецификации межплатформенного взаимодействия служб, которую разработал консорциум Open Software Foundation (теперь The Open Group)
    MIDL (Microsoft Interface Definition Language) — язык описания интерфейсов для платформы Win32 определяет интерфейс между клиентом и сервером. Предложенная от Microsoft технология использует реестр Windows и используется для создания файлов и файлов конфигурации приложений (ACF), необходимых для дистанционного вызова процедуры интерфейсов (RPC) и COM/DCOM интерфейсов.
    COM IDL — язык описания интерфейсов между модулями COM. Является преемником языка IDL в технологии DCE  — спецификации межплатформенного взаимодействия служб, которую разработал консорциум Open Software Foundation (теперь The Open Group).


Use Case Driven


Сценарий использования, вариант использования, прецедент использования  — в разработке программного обеспечения и системном проектировании это описание поведения системы, когда она взаимодействует с кем-то (или чем-то) из внешней среды. Система может отвечать на внешние запросы Актёра, может сама выступать инициатором взаимодействия. Другими словами, сценарий использования описывает, «кто» и «что» может сделать с рассматриваемой системой, или что система может сделать с «кем» или «чем».
Методика сценариев использования применяется для выявления требований к поведению системы, известных также как пользовательские и функциональные требования.
В системном проектировании сценарии использования применяются на более высоком уровне чем при разработке программного обеспечения, часто представляя цели заинтересованных лиц или миссии. На стадии анализа требований сценарии использования могут быть преобразованы в ряд детальных требований и задокументированы с помощью диаграмм требований SysML или других подобных механизмов.

SysML


The Systems Modeling Language, язык моделирования систем.
 Предметно-ориентированный язык моделирования систем. Поддерживает определение, анализ, проектирование, проверку и подтверждение соответствия широкого спектра систем.
SysML изначально разрабатывался в рамках проекта спецификации с открытым исходным кодом, и имеет открытую лицензию для распространения и использования. Как язык, SysML является расширением части языка UML.


По сравнению с UML, ориентированным на моделирование программных продуктов, SysML предоставляет системному инженеру дополнительные возможности:
    Большая гибкость и выразительность. SysML убирает программно-ориентированные ограничения UML за счёт введения двух дополнительных типов диаграмм: диаграммы требований и параметрической диаграммы. Первая, очевидно, служит для сбора требований, а вторая для количественного анализа и анализа производительности. В результате становится возможным моделирование широкого спектра систем, которые могут включать оборудование, ПО, информацию, процессы, персонал и площади.
    SysML более компактный язык, его легче изучать и применять, так как он избавлен от многих программно-ориентированных особенностей UML.
    Конструкции языка для управления моделью поддерживают модели, представления и точки зрения (используются для создания представлений). Эти конструкции расширяют возможности UML и архитектурно стоят в одном ряду с IEEE-Std-1471-2000 (Рекомендованная IEEE практика для архитектурного описания программно-нагруженных систем) (IEEE Recommended Practice for Architectural Description of Software Intensive Systems).


Поведенческие нотации


Поведенческие нотацииотражают динамический аспект поведения систем и их компонентов.
Таким нотациям соответствуют:
    Диаграммы потоков данных (Data Flow),
    Таблиц принятия решений (Decision Tables),
    Деятельности (Activity),
    Кооперации (Colloboration),
    Последовательности (Sequence),
    Формальные языки спецификации (Z, RAISE).

Диаграммы потоков данных (Data Flow)


Так называется методология графического структурного анализа, описывающая внешние по отношению к системе источники и адресаты данных, логические функции, потоки данных и хранилища данных, к которым осуществляется доступ.
Диаграмма потоков данных (data flow diagram, DFD) — один из основных инструментов структурного анализа и проектирования информационных систем, существовавших до широкого распространения UML. Несмотря на имеющее место в современных условиях смещение акцентов от структурного к объектно-ориентированному подходу к анализу и проектированию систем, «старинные» структурные нотации по-прежнему широко и эффективно используются как в бизнес-анализе, так и в анализе информационных систем.
Модель DFD, как и большинство других структурных моделей — иерархическая модель. Каждый процесс может быть подвергнут декомпозиции, то есть разбиению на структурные составляющие, отношения между которыми в той же нотации могут быть показаны на отдельной диаграмме. Когда достигнута требуемая глубина декомпозиции — процесс нижнего уровня сопровождается мини-спецификацией (текстовым описанием).

Таблиц принятия решений (Decision Tables)


Способ компактного представления модели со сложной логикой. Аналогично условным операторам в языках программирования, они устанавливают связь между условиями и действиями. Но, в отличие от традиционных языков программирования, таблицы решений в простой форме могут представлять связь между множеством независимых условий и действий.
В простейшем случае здесь Условия — список возможных условий, Варианты выполнения условий — комбинация из выполнения и/или невыполнения условий из этого списка. Действия — список возможных действий, Необходимость действий — указание надо или не надо выполнять соответствующее действие для каждой из комбинаций условий.