Процесс разработки “Design and programming are human activities. Forget it and all is lost.” B.Stroustrup, 1991.

Slides:



Advertisements
Similar presentations
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Advertisements

PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
Разработка программного обеспечения (Software Engineering) Ian Sommervillle Часть 4. Реализация ПО: Проектирование с повторным использованием компонентов.
Автоматическая генерация кода программ с явным выделением состояний Канжелев С.Ю. магистрант СПбГУ ИТМО Шалыто А.А. доктор технических наук профессор СПбГУ.
Дипломная работа Ивановой О.О., группа 545 Научный руководитель: д. ф.-м. н., профессор Терехов А.Н. Генерация кода по диаграмме активностей.
Системы отбора. Условные обозначения (1) (2) (3) (4) (5) (6) (7) Математическое моделирование процессов отбора2.
Разработка информационной системы накопительной программы лояльности для мобильных устройств Автор: Дьяченко Василий Владимирович мат-мех, 545 группа Научный.
1 СПбГУ ИТМО, кафедра Компьютерных Технологий ПРИМЕНЕНИЕ АВТОМАТНОГО ПРОГРАММИРОВАНИЯ ДЛЯ ПОСТРОЕНИЯ СИСТЕМ УПРАВЛЕНИЯ БИЗНЕС- ПРОЦЕССАМИ Евгений Андреевич.
Параметризация устройств сетевого управления Казакова А.С. Научный руководитель: Венгерова Е.А. Рецензент: Ушаков К.С. Кафедра системного программирования.
Особенности Java. Блок static static { } Создание и уничтожение объектов  new – создание объекта  finalyze()
Разработка программного обеспечения (Software Engineering) Часть 2. Создание ПО.
Разработка геоинформационной системы (ГИС) для системы телекоммуникаций (СТ) «Ботик» Кузнецов А.А., Гумин М.В. ИПС РАН, Переславль-Залесский 2004.
1 Генерация контекстных ограничений для баз данных Выполнил: Жолудев В. Научный руководитель: Терехов А.Н. Рецензент: Иванов А.Н.
©1998, 1999, 2000 Rational Software - All rights reserved Session VM08 Structuring Your Rational Rose Model Robert Bretall Rational Software.
Microsoft Solutions Framework Технологии программирования. Курс на базе Microsoft Solutions Framework Семинар 2. Знакомство с построением диаграмм вариантов.
 Нужно много различных протоколов связи  Каждый из них может реализовываться на разных платформах Современные сети Много устройств, компьютеров и сетей.
Principles of Object-Oriented Software Development Unified Modeling Language.
Microsoft Solutions Framework Технологии программирования. Курс на базе Microsoft Solutions Framework Лекции 3-4. Визуальное моделирование при анализе.
Методология структурного анализа и проектирования SADT
COMP1007 Intro to Systems Requirements © Copyright De Montfort University 2002 All Rights Reserved COMP1007 Intro to Systems Requirements Lecture 4 Identifying.
Пользовательские действия (custom actions) в JSP. JSTL.
PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
Анализ и Проектирование качественных приложений Презентация по книге Крэга Лармана.
Разработка программного обеспечения (Software Engineering) Ian Sommervillle Часть 3. Требования к ПО: модели систем.
Объектно-ориентированное проектирование DSP-систем в телекоммуникациях Подготовил: Сергеев Виктор Николаевич СПбГУ, математико-механический Факультет,
Место человека в интеллектуальной техносреде В.В. Бушуев, д.т.н., проф., Генеральный директор Института энергетической стратегии ЦМТ, г.
Разработка программного обеспечения (Software Engineering) Ian Sommervillle Часть 3. Требования к ПО: разработка требований.
Санкт-Петербургский Государственный Университет Экономики и Финансов
Исследование возможностей сервисной шины SonicMQ Дипломная работа студентки 545 группы Комольцевой Дарьи Владимировны Научный руководитель: Графеева Н.Г.
UML - Development Process 1 Software Development Process Using UML (2)
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
Slide 1 UML Review Chapter 2: Introduction to Object-Oriented Systems Analysis and Design with the Unified Modeling Language, Version 2.0 Alan Dennis,
Unified Modeling Language, Version 2.0
Lecture 3: Visual Modeling & UML 1. 2 Copyright © 1997 by Rational Software Corporation Computer System Business Process Order Item Ship via “ Modeling.
UML What Is the UML? The Unified Modeling Language (UML) is the successor to the wave of object- oriented analysis and design (OOA&D) methods.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
1 Introduction to UML. 2 What is UML? UML is an acronym for Unified Modeling Language. Unified –Combines the best from existing object- oriented software.
TAL7011 – Lecture 4 UML for Architecture Modeling.
Object-Oriented Analysis and Design. Lesson 1: Introduction to Software Engineering.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
The Unified Modeling Language (UML)
Моделирование бизнес процессов и выявление требований к их автоматизации Михаил Кумсков, главный эксперт учебного центра Luxoft.
Introduction to OOAD and the UML
Introduction to OOAD & Rational Rose cyt. 2 Outline RUP OOAD Rational Rose.
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 15 The Unified Modeling Language: a Primer.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
Unified Process Software Development Darren Roback/Ravali Kallem CMIS Fall 2009.
Basic Characteristics of Object-Oriented Systems
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
UML. Model An abstract representation of a system. Types of model 1.Use case model 2.Domain model 3.Analysis object model 4.Implementation model 5.Test.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Modeling with UML – Class Diagrams
Introduction to UML.
Unified Modeling Language (UML)
Systems Analysis and Design With UML 2
University of Central Florida COP 3330 Object Oriented Programming
Introduction to Object Oriented Analysis, Design and Unified Modeling Language (UML) Shanika Karunasekera.
Rational Worldwide Software Symposium
ניתוח מערכות מידע א' הרצאה 3
Unified Modeling Language
Introduction to UML.
Rational Worldwide Software Symposium
Rational Worldwide Software Symposium
Presentation transcript:

Процесс разработки “Design and programming are human activities. Forget it and all is lost.” B.Stroustrup, 1991

Фазы процесса Начало Уточнение Разработка Развитие

Методы OMT (Object Modeling Technique, Rumbaugh) RDD (Responsibility Driven Design) Objectory RUP (Booch, Rumbaugh, Jacobson) Способ моделирования Артефакты фаз процесса

CRC - карточки Class Student Ответственность Учиться Сдать экзамены Коллаборанты Teacher

UML Unified Modeling Language CASE - средства: Rational Rose Together ArgoUML

UML Язык моделирования Не является языком программирования Определяет нотацию Имеет метамодель, выраженную на нем самом

История 1988 – 1995 работы Mellor, Booch, Rambough, Jacobson, Koad, Jordan, Shlaer… 1995 – UML 0.8 (Grady Booch, Jim Rambough) 1997 – UML 1.0 (Grady Booch, Jim Rambough, Ivar Jacobson) Rational Software

Нотация Сущности Структурные Поведенческие Группирующие аннотационные Отношения Зависимость Ассоциация Обобщение Реализация

Нотация Диаграммы Вариантов использования Состояний Деятельностей Классов Объектов Последовательностей и кооперации Компонентов Размещения

Варианты использования Actor – внешнее по отношению к системе действующее лицо, некто или нечто взаимодействующее с системой, роль. Use case – некая последовательность действий системы, представляющая ценность для Actor-а, вариант использования системы (Ivar Jacobson). Use-case описывает, что делает система, но не указывает как.

Пример: Экзамен Teacher принимает экзамен у Student.

Включаемые use-cases Stereotype: > Различные use-cases могут иметь общие части abstract use-case не активируется actor-ами

Генерализация actor-ов Различные actors могут играть одну и те-же общую роль в некотором use-case

Расширение use-cases Stereotype: > Некоторые use-cases могут вызываться в контексте других только при некоторых условиях

Tips Use-case должен описывать ЧТО делает система, но НЕ КАК => Глубокие иерархии use-cases чаще всего бесполезны и ведут к функциональной декомпозиции => Большое количество мелких use- case не прибавят понимания того, что делает система

Диаграммы состояний Описывают состояния объекта и переходы между состояниями State – некое состояние объекта Event – событие, вызывающее переход Transition – переход в новое состояние Condition – условие перехода (true|false) Action – мгновенное непрерываемое действие, сопровождающее переход Activity – деятельность, связанная с состоянием

Пример: сдача экзамена

Пример: вложенные состояния Применение: группировка состояний и упрощение диаграммы Имеют не более одного начального и конечного состояний

Пример: состояния с историей Н – недавнее историческое состояние Н* - глубокое историческое состояние

Диаграммы деятельностей Описывают последовательности действий используются для описания операций и вариантов использования Activity - деятельность Transition – переходы между деятельностями Guard condition – условие перехода Decision – блок принятия решения Concurrent threads – параллельные деятельности Synchronization bar – линейка синхронизации параллельных деятельностей

Пример: банкомат

Классы Class – набор объектов с общей структурой и поведением Interface – базовый класс, задающий только поведение, имеет стереотип > Abstract class – базовый класс, не имеющий экземпляров Parameterized class – параметризованный класс, шаблон Instantiated class – депараметризованный шаблон

Примеры классов

Атрибуты классов Attribute – атрибут (поле) Class attribute – атрибут класса (static) Derived attribute – производный атрибут Export control – доступ (public, protected, private) Containment – способ включения (value, reference) Syntax: :

Атрибуты классов name, birth_date – аттрибуты age – производный аттрибут (вычисляется через birth_date)

Атрибуты классов name, birth_date и age - аттрибуты класса

Методы(операции) Method (operation) – метод Class method – метод класса (static) Export control – public, protected, private Syntax: name( ) : Parameter: parameter_name : type

Диаграмма классов - определяет типы объектов системы и статические связи между ними

Dependency Отношение зависимости Обладает ролью и множественностью Может иметь стереотип

Association Ассоциация - отношение взаимодействия Обладает 2-мя ролями Роль обладает множественностью (1, n, *, 0..n, 1..n, 1..*) Пример: работник может занимать несколько должностей, на одной должности находится не более одного работника

Association Ассоциация может иметь выделенное направление Должность связана базовым тарифом оплаты Тариф оплаты никак не связан с конкретной должностью

Aggregation Агрегация – отношение часть-целое Часть принадлежит только одному целому Сотрудник относится к одному и только одному отделу

Composition Композиция – частный случай агрегации Жизненный цикл частей и целого совпадают Отделы не существуют без компании

Generalization Генерализация (наследование, обобщение) – отношение частное-общее Отдел кадров – частный случай отдела

Realization Реализация – отношение детализации Треугольник и квадрат – реализации абстрактной фигуры

Диаграммы пакетов Package – пакет. Общий механизм организации элементов модели в группы Имеет имя Определяет пространство имен Может быть импортирован другим пакетом

Package

Package diagram

package: service

package: service::local

package: service::server

package: service::agent

стереотипы пакетов system – вся система subsystem – подсистема facade – представление другого пакета Например, пакет внешних интерфейсов подсистемы framework – набор шаблонов stub – заместитель другого пакета Созданный, например, для тестирования

Диаграммы взаимодействия Последовательностей - Sequence diagrams Коллабораций - Collaboration diagrams Отражают динамические аспекты поведения объектов Семантически эквивалентны Содержат: Объекты Связи Сообщения Потоки данных

sequence diagram

collaboration diagram

Диаграммы компонент Показывают связи между компонентами системы стереотипы компонент: executable - исполняемый компонент library - библиотека table - таблица базы данных file - файл данных document - документ

component Компонент – физическая упаковка логической сущности Может реализовывать несколько классов и интерфейсов Использует другие компоненты

component diagram

servers

Диаграмма размещения Показывает физическое расположение исполняемых компонент по процессорам системы и структуру сети Элементы: Node – узел, процессор Process – процесс, поток

deployment diagram

Rational Unified Process

RUP: Business modeling Задачи: Идентификация бизнес-процессов (use-cases) Идентификация бизнес-акторов и сущностей(entity) Улучшение (refine) бизнес-процессов Модели: business use-case model business object model

business use-case model Модель, описывающая бизнес процессы в терминах business-actors и business use-cases Business actor – некто или нечто вовне бизнеса, взаимодействующее с ним UML: класс со стереотипом > Business use-case – бизнес-процесс, представляющий ценность для business actor UML: use-case со стереотипом >

business use-case model

business object model Модель, описывающая реализацию business use-cases в терминах взаимодействующих business workers и entities Business use-case realization – коллаборация, описывающая при помощи activity, sequence, class и interaction диаграмм, как данный business use-case реализован в business-object model. UML: use-case со стереотипом “business use-case realization”

business objects Business-worker – исполнитель бизнес- процесса UML: class со стереотипом > Business-entity – пассивная сущность, используемая в бизнесе UML: class со стереотипом >

business object model use-case realization содержит набор диаграмм, описывающих КАК реализован исходный use-case

activity diagram для use-case realization “контракт”

class diagram для use-case realization “контракт”

Collaboration diagram для use-case “контракт”

RUP: Анализ требований Задачи: сбор и анализ требований к системе классификация use-cases оценки затрат и рисков Модели: Use-case model

Vision  Vision – представляет собой общее описание проекта и является базисом для уточнения требований к системе  Содержит: Цели проекта Stakeholders & Users (описание инициаторов проекта и конечных пользователей ) Перспективы и возможности продукта Особенности Ограничения

Use-case model  Use-case model – модель, описывающая требования к системе в терминах вариантов использования (use-case). Создается на основе Vision и Business Analysis.  Элементы use-case model: Actor – внешнее по отношению к системе действующее лицо, роль. UML: Class со стереотипом > Use-case – вариант использования системы actor-ом UML: use-case

Пример: use-case model

Actors generalization

included use-cases

семантика >

extended use-cases

семантика >

use-case generalization

семантика generalization

use-case package содержит набор вариантов использования, актеров, диаграмм и других пакетов используется для структуризации use-case model UML: package со стереотипом >

use-case storyboard -Коллаборация, описывающая реализацию use-case с точки зрения пользовательского интерфейса UML: use-case со стереотипом >

SRS SRS (Software Requirements Specification) - полностью определяет требования к системе, зависит от Vision Содержит: Функциональные требования (что должна делать система, роли пользователей, фактически, описание use-cases) Нефункциональные требования (производительность, ограничения по используемым технологиям и т.д.)

RUP: Analysis & Design Задачи: Трансформировать требования собранные на предыдущем этапе в дизайн системы Проработать архитектуру системы Адаптировать дизайн к среде исполнения Модели: Analysis model Design model

Analysis model  Абстрактная модель системы, описывающая ее в терминах use-case realization. Язык реализации классов не фиксируется. Обычно не сопровождается.  Элементы analysis model: Use-case realization – реализация use-case, набор activity, state, collaboration и class диаграмм Boundary class – класс, разграничивающий actor-ов и систему Control – класс, управляющий другими классами Entity – класс, моделирующий информацию, используемую в системе

Boundary class -Класс, разграничивающий (под-)систему и окружение. UML: class со стереотипом > Примеры: классы пользовательского интерфейса, классы интерфейсов систем и устройств 3 представления boundary class в Rational Rose

Control -Класс, управляющий другими классами. Можно сказать, что control “исполняет” use-case UML: class со стереотипом > 3 представления control class в Rational Rose

Entity -Класс, класс, моделирующий информацию, используемую в системе UML: class со стереотипом > 3 представления entity class в Rational Rose

Проверка контрактов

Class diagram

Заключение контракта

Сlass diagram

Collaboration diagram

Ограничения на связи From\To (navigability) BoundaryEntityControl Boundaryyes avoid Entityno*yesno* Controlavoidyes * Используйте обратные связи со стереотипом “subscribe-to” Avoid – короткоживущая связь, нет необходимости моделировать (RUP)

Design model  М одель реализации системы. Создается на основе Analysis model. Фиксирует язык реализации классов. Сопровождается до конца разработки.  Элементы design model: Layer - слой (application, business, middle, system) Subsystem - подсистема Package - пакет Class – класс Use-case realization - коллаборация

Layer - пакет, включающий другие пакеты некоторого уровня абстракции. UML: package со стереотипом > Типичные уровни: Application – набор специфичных для приложения подсистем Business – подсистемы специфичные для данного типа бизнеса Middleware – подсистемы c платформно-независимыми сервисами System – интерфейсы к аппаратуре, API операционной системы и тд

Package -набор классов, отношений, use-case realization и других пакетов UML: package

SAD  SAD (Software Architecture Document) – содержит полное описание архитектуры системы  Содержит: Use-case view Logical View (архитектурно важные части Design model) Process View Deployment View Implementation View Performance issues Quality issues

RUP: Implementation Задачи: Структурирование системы Реализация компонент системы Артефакты: Implementation model

Implementation model – коллекция подсистем (subsystems) и содержащих их компонентов (components). Компоненты включают как поставляемые компоненты (deliverable components, такие как программы),так и их составляющие.