SlideShare uma empresa Scribd logo
1 de 99
Baixar para ler offline
MedTech
Chapter 3 – Software Design
Specificities of the design step, UML modeling
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 1
MedTech – Mediterranean Institute of Technology
Software Engineering
MedTech
MedTech
INTRODUCTION TO SOFTWARE DESIGN
Design
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 2
MedTech
Software Design: Definition
• Software design is an iterative process through which
requirements are translated into a “blueprint” for
constructing the software.
• A blueprint is a reproduction of a technical drawing,
documenting an architecture or an engineering design
• Initially, the blueprint depicts a holistic view of
software.
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 3
Introduction to Software Design
MedTech
Process of Design Engineering
• During the design process the software specifications are
transformed into design models
• Models describe the details of the data structures, system
architecture, interface, and components.
• Each design product is reviewed for quality before moving to
the next phase of software development.
• At the end of the design process a design model and
specification document is produced.
• This document is composed of the design models that
describe the data, architecture, interfaces and components.
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 4
Introduction to Software Design
MedTech
Design Specification Models
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 5
Introduction to Software Design
Entity-
Relationship
Diagram
Data Flow
Diagram
State-Transition
Diagram
Data Dictionary
Process Specification (PSPEC)
Control Specification (CSPEC)
Data Object Description
Data Design
Architectural Design
Interface Design
Procedural
Design
THE DESIGN MODELTHE ANALYSIS MODEL
MedTech
Data Design
• Created by transforming the analysis information model (data dictionary and
ERD) into data structures required to implement the software.
• Part of the data design may occur in conjunction with the design of software
architecture.
• More detailed data design occurs as each software component is designed.
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 6
Introduction to Software Design
Data Dictionary
MedTech
Data Design
• Created by transforming the analysis information model (data dictionary and
ERD) into data structures required to implement the software.
• Part of the data design may occur in conjunction with the design of software
architecture.
• More detailed data design occurs as each software component is designed.
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 7
Introduction to Software Design
Entity Relationship Diagram
MedTech
Architectural Design
• Defines :
• The relationships among the major
structural elements of the software
• The “design patterns” than can be
used to achieve the requirements
that have been defined for the
system
• The constraints that affect the way in
which the architectural patterns can
be applied.
• It is derived from the system
specification, the analysis model, and
the subsystem interactions defined in
the analysis model (DFD).
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 8
Introduction to Software Design
Dataflow Diagram
MedTech
Architectural Design
• Defines :
• The relationships among the major
structural elements of the software
• The “design patterns” than can be
used to achieve the requirements
that have been defined for the
system
• The constraints that affect the way in
which the architectural patterns can
be applied.
• It is derived from the system
specification, the analysis model, and
the subsystem interactions defined in
the analysis model (DFD).
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 9
Introduction to Software Design
MVP Design Pattern
MedTech
Interface Design
• Describes how the software
elements communicate with each
other, with other systems and with
human users
• Much of the necessary information
required is provided by the data
flow and control flow diagrams
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 10
Introduction to Software Design
Control Flow Diagram
MedTech
Procedural/Component-level Design
• Created by transforming the structural elements defined by the
software architecture into procedural descriptions of software
components
• Uses information obtained from :
• Process specification (PSPEC)
• Use cases, FlowCharts, Activity Diagrams…
• Control specification (CSPEC)
• State Transition Diagram (STD), Decision tables …
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 11
Introduction to Software Design
State Transition Diagram
MedTech
DESIGN FUNDAMENTAL CONCEPTS
Design
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 12
MedTech
Fundamental Concepts
• Abstraction: Data, procedure, control
• Architecture: Overall structure of the software
• Patterns: Convey the essence of a proven design solution
• Modularity: Compartimentalization of data and function
• Information Hiding: Controlled interfaces
• Functional Independance: Single-minded function and low coupling
• Refinement: Elaboration of detail for all abstractions
• Refactoring: Reorganization technique that simplifies the design
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 13
Software Design
MedTech
Fundamental Concepts
• Abstraction
• Allows designers to focus on solving a problem without being concerned
about irrelevant lower level details
• Procedural Abstraction: named sequence of events
• Data Abstraction: named collection of data objects
• Refinement
• Process of elaboration where the designer provides successively more
details for each design component
• Modularity
• Degree to which the software can be understood by examining its
components independently of one another
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 14
Software Design
MedTech
Fundamental Concepts: Patterns
• A common solution to a common problem in a given context
• High level patterns for organizing software: architectural styles
• Low level patterns for describing details :
• Creational Patterns: Builder, factory, prototype, singleton…
• Structural Patterns: Adapter, bridge, composite, façade…
• Behavioral Patterns: Command, interpreter, oterator, mediator...
• Design Patterns
• Enable a designer to determine wheter the pattern:
• Is applicable to the current work
• Can be reused
• Can serve as a guide for developing a similar but functionally or structurally
different pattern
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 15
Software Design
MedTech
Fundamental Concepts: Information Hiding
• A good split of modules is when modules communicate with one
another with only the information necessary to achieve the software
function
• Enforces access constraints to
• Procedural details with a module
• Local data structure used by that module
• Benefits
• Reduces the likelihood of “side effects”
• Limits the global impact of local design decisions
• Emphasizes communication through controlled interfaces
• Discourages the use of global data
• Leads to encapsulation—an attribute of high quality design
• Results in higher quality software
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 16
Software Design
MedTech
Fundamental Concepts: Functional Independence
• Cohesion
• Degree to which a module
performs one and only one
function
• All elements of component are
directed toward performing
the same task
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 17
Software Design
Functional
Sequential
Communicational
Procedural
Temporal
Logical
Coincidental Low Cohesion
High Cohesion
MedTech
Fundamental Concepts: Functional Independence
• Coupling
• Degree to which a module is
connected to other modules in the
system
• Two components can be dependant
in many ways:
• References made from one to
another
• Amount of data passed from one to
another
• Amount of control one has over the
other
• …
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 18
Software Design
Content
Common
External
Control
Stamp
Data
Uncoupled Low Cohesion
High Cohesion
MedTech
Fundamental Concepts: Refinement
• Refinement is a process of elaboration
• It is a top-down design strategy
• A program is developed by successfully refining levels of procedural
details
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 19
Software Design
Open Door
walk to door;
reach for knob;
open door;
walk through;
close door.
repeat until door opens
turn knob clockwise;
if knob doesn't turn, then
take key out;
find correct key;
insert in lock;
endif
pull/push door
move out of way;
end repeat
MedTech
Fundamental Concepts: Refactoring
• ”Refactoring is the process of changing a software system in such a
way that it does not alter the external behavior of the code, yet
improves its internal structure”, M. Fowler
• Refactoring a software means examining the existing design for:
• Redundancy
• Unused design elements
• Inefficient or unnecessary algorithms
• Poorly constructed or inappropriate data structures
• Any other design failure that can be corrected to yield a better design
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 20
Software Design
MedTech
VISUAL MODELING WITH UML
Design
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 21
MedTech
Visual Modeling
• Modeling captures essential parts of the system
• Visual modeling is modeling using standard graphical notations
• Visual modeling
• Captures business process from user’s perspective
• Is a communication tool between the business domain and the computer
domain
• Manages complexity using refinement techniques
• Defines software architecture
• Promotes reuse
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 22
Visual Modeling with UML
MedTech
UML
• Unified Modeling Language
• Standard language for visualizing, specifying, constructing and
documenting the artifacts of a software system.
• Combines notions from:
• Data modeling concepts (entity relationship diagrams)
• Business modeling (workflow)
• Object modeling
• Component modeling
• Can be used with all processes, throughout the development lifecycle,
and across different implementation technologies
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 23
Visual Modeling with UML
MedTech
UML Usage
• UML may be used to:
• Display the boundary of a system and its major functions using use cases
and actors
• Illustrate use case realizations with interaction diagrams
• Represent a static structure of a system using class diagrams
• Model the behaviour of objects with state transition diagrams
• Reveal the physical implementation architecture with component and
deployment diagrams
• Extend the basic functionalities with stereotypes
• UML is NOT:
• A programming language
• Highly formal language for theorem proving
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 24
Visual Modeling with UML
MedTech
Why Unified?
• Across historical methods and notations
• Combines the commonly accepted concepts from many object-oriented methods
• Across the development lifecycle
• Seamless from requirements to deployment
• Across application domains
• Models most application domains, including large, complex, real-time,
distributed, data or computation intensive,…
• Across implementation languages and platforms
• Usable for systems implemented in various languages and platforms
• Across development processes
• Usable as the modeling language underlying mist existing or new development
processes
• Supports iterative, incremental, agile,... Models
• Across internal concepts
• Represents internal relationships in a broad way applicable to many situations
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 25
Visual Modeling with UML
MedTech
UML Views
• View: A subset of UML modeling constructs that represents one
aspect of a system
• Views are divided into areas
• Structural classification
• Things in the system and their relationships to other things
• Things are modelized using “classifiers” (class, use case, actor, node…)
• Dynamic behavior
• Behavior of a system or other classifier over time
• Can be described as a series of changes to snapshots of the system drawn from
the static view
• Physical layout
• Computational resources in the system and deployment of artifacts on them
• Model management
• Organization of the models into hierarchical units
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 26
Visual Modeling with UML
MedTech
UML Views
Area View Diagram
Structural Static View Class Diagram
Design View Internal Structure
Collaboration Diagram
Component Diagram
Use Case View Use Case Diagram
Dynamic State Machine View State Machine Diagram
Activity View Activity Diagram
Interaction View Sequence Diagram
Communication Diagram
Physical Deployment View Deployment Diagram
Model Management Model Management View Package Diagram
Profile Package Diagram
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 27
Visual Modeling with UML
MedTech
UML DESIGN: USE CASE VIEW
Design
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 28
MedTech
Use Case View
• Captures the behavior of a system, subsystem, class or coponent, as it
appears to an outside user
• Partitions the system’s functionality into transactions meaningful to
actors, users of the system
• Actors can be human, other computer systems or processes
• The pieces of interactive functionalities are calles use cases
• A use case describes an interaction with actors as a sequence of
messages between the system and one or more actors
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 29
UML Design: Use Case View
MedTech
Actor
• Idealization of a role played by an external person, process or thing
interacting with a system, subsystem or class
• Characterizes th interactions that a class of outside user may have
with the system
• One physical user may be bound to multiple actors
• Different users may be bound to the same actor definition
• Each actor participates in one or more use cases by exchanging
messages
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 30
UML Design: Use Case View
MedTech
Use Case
• Coherent unit of externally visible functionality provided by a
classifier (subject), and expressed by sequences of messages
exchanged by the subject and one or more actors of the system unit
• Defines a piece of coherent behavior without revealing the internal
structure of the subject
• The execution of each use case is independent of the others
• But its implementation may create implicit dependencies among them due
to shared objects
• The dynamics of a use case may be specified by
• UML interactions: statechart diagrams, sequence diagrams, communication
diagrams…
• Informal text descriptions
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 31
UML Design: Use Case View
MedTech
Use Case Diagram
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 32
UML Design: Use Case View
MedTech
Use Case Relationships
• Association
• The communication path between an actor and a use case
that it participates in
• Extension
• Relationship from an extension use case to a base use case
• Specifies how the behavior defined for the extension use
case can be inserted into that of the base use case
• Inclusion
• Relationship from a base use case to an inclusion use case
• Specifies that the behavior defined for the inclusion use
case is to be inserted into that of the base use case.
• Use case generalization
• Relationship between a general use case and a more
specific use case that inherits and adds features to it
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 33
UML Design: Use Case View
MedTech
Use Case Relationships: Example
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 34
UML Design: Use Case View
MedTech
Use Case Relationships: Example
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 35
UML Design: Use Case View
MedTech
Use Case Textual Description
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 36
UML Design: Use Case View
MedTech
Use Case View: Case Study
• We want to model a simplified system of the automatic teller machine
(ATM), offering the following services:
1. Distribution of money to every holder of a smartcard via a card reader and
a cash dispenser
2. Consultation of account balance, cash and cheque deposit facilities for
bank customers who hold a smartcard from their bank
3. All transactions are made secure
4. It is sometimes necessary to refill the dispenser
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 37
UML Design: Use Case View
MedTech
Use Case View: Proposition of Solution
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 38
UML Design: Use Case View
MedTech
UML DESIGN: STATIC VIEW
Design
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 39
MedTech
Static View
• Foundation of UML
• Concepts that are meaningful in an application
• Describes behaviral declarations, such as operations, without the
details of their dynamic behaviour (described by the dynamic views)
• Key elements: classifiers and relationships
• Classifier
• Modeling element that describes things containing values
• Describes identity, state, behaviour, relationships and optionally the
internal structure of the object
• Relationships
• Are defined between classifiers to represent associations, dependency,
generalization, realization or usage
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 40
UML Design: Static View
MedTech
Class Diagram
• A picture of:
• The classes in an OO system
• Their fields and methods
• Connections between the classes that interact or inherit from one another
• It does NOT represent:
• Details of how the classes interact with each other
• Algorithmic details: how a particular behavior is implemented
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 41
UML Design: Static View
MedTech
Classifiers
• Class: Main classifier in the static view
• Discrete concept within the application being modeled, representing things
of a particular kind: physical, business, logical, application, computer or
behavioral
• Defines a set of objects that have state and behavior
• State: described by attributes
• Behavior: described by operations (methods)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 42
UML Design: Static View
MedTech
Classifiers
• Interface
• Description of the behavior of objects without giving their implementation
or state
• One or more class or component may realize an interface
• Each class must implement the operations found in the interface
• Data types
• A primitive type: description of primitive values that lack identity
(independent existence)
• Include numbers and strings
• Passed by value and immutable entities
• Has no attributes, but may have operations, that do not modify the data
values, but may return other values
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 43
UML Design: Static View
MedTech
Class
• Class name in top of the box
• Write <<interface>> on top of interfaces’ names
• Use italics for an abstract class name
• Attributes (optional)
• Should include all fields of the object
• visiblity name : type [count] = defaultVal
• Visiblity:
• + public
• # protected
• - private
• ~ package (default)
• / derived (can be computed from other
attributes)
• Static attributes are underlined
• Example
• - balance : double = 0.00
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 44
UML Design: Static View
MedTech
Class
• Operations / Methods (optional)
• May omit trivial (get/set) methods, but never
omit methods from an interface
• Should not include inherited methods
• visiblity name (param1:type, param2:type ):
return_type
• Visiblity:
• + public
• # protected
• - private
• ~ package (default)
• Static methods are underlined
• Example:
• + distance(p1: Point, p2: Point): double
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 45
UML Design: Static View
MedTech
Relationships
• Association
• Description of a connection among instances of classes
• Dependency
• Relationship between two model elements
• Generalization
• Relationship between a more specific and a more general description
• Used for inheritance and polymorphic type declarations
• Realization
• Relationship between a specification and its implementation
• Usage
• A situation in which one element requires another for its correct
functioning
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 46
UML Design: Static View
MedTech
Association
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 47
UML Design: Static View
MedTech
Association Class
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 48
UML Design: Static View
MedTech
Association: Navigability
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 49
UML Design: Static View
MedTech
Naming an Association
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 50
UML Design: Static View
MedTech
Aggregation and Composition
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 51
UML Design: Static View
• Aggregation:
• Association that represents a part-whole relationship
• Composition:
• A stronger form of association
• The composite has the sole responsibility for managing its parts
• An object may belong to at most one composition
MedTech
Generalization
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 52
UML Design: Static View
• Taxonomic relationship between a more general description (parent)
and a more specific description (child), that builds on it and extends it
• Used for all classifiers
• For classes, the terms superclass and subclass are used
MedTech
Realization
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 53
UML Design: Static View
• Connects a model elements (for ex. a class) to another model element
(for ex. an interface) that supplies its behavioral specification, but
not its structure or implementation
MedTech
Dependency
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 54
UML Design: Static View
• Indicates a semantic relationship between two or more model
elements
• Relates the model elements themselves, and doesn’t require a set of
instances for its meaning
• Indicates a situation where a change to the supplier element may
require a change to the client element
• Association and generalization are specific dependencies
MedTech
Object Diagram
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 55
UML Design: Static View
• A diagram of a snapshot, an image of the system at a point in time
• Used as an example of the system
MedTech
Static View: Case Study
• We want to model a simplified system of flight reservation for a travel
agency
• These are the key sentences representing the needs of the business
experts
1. Airline companies offer several flights
2. A flight is open to reservation and closed by the company
3. A client can book one or several flights, for different passengers
4. A reservation concerns a single flight and a single passenger
5. A reservation can be canceled or confirmed
6. A flight has a departure airport and an arrival airport
7. A flight has a date and time of departure, and a date and time of arrival
8. A flight can have stopovers in airports
9. A stopover has an arrival time and a departure time
10. Each airport services one or more towns
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 56
UML Design: Static View
MedTech
Static View: Proposition of a Solution
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 57
UML Design: Static View
MedTech
UML DESIGN: INTERACTION VIEW
Design
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 58
MedTech
Interaction View
• Provides a holistic view of the behavior of an entire system
• Describes how groups of objects collaborate in some behavior
• Two kinds of diagrams:
• Sequence diagram
• Displays an interaction as a two-dimentional chart
• The vertical dimension is the time axis
• The horizontal dimension shows the roles that represent individual objects in the
collaboration
• Doesn’t show exact time intervals
• Communication diagram
• Shows interactions organized around the parts of a composite structure or the
roles of a collaboration
• Explicitly shows the relationships between the elements
• Doesn’t show time as a separate dimension, just with sequence numbers
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 59
UML Design: Interaction View
MedTech
Sequence Diagram vs. Communication Diagram
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 60
UML Design: Interaction View
Sequence Diagram
Communication Diagram
MedTech
Sequence Diagram: Key Parts
• Participant
• Object or entity that acts in the sequence diagram
• Can be an instance of a class, or an actor
• Message
• Communication between participant objects
• A sequence diagram can start with an unattached “found message” arrow
• Found message: message where the receiving event occurrence is known, but
there is no known sending event occurrence
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 61
UML Design: Interaction View
MedTech
Sequence Diagram: Objects
• Objects are represented using squares with object type (class),
optionally preceded by object name and a colon
• If you want to write only the class name, without the object name, the
colon is mandatory
• The object’s lifeline is represented by a dashed vertical line
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 62
UML Design: Interaction View
MedTech
Sequence Diagram: Messages
• A message (method call) is indicated by a horizontal arrow to the
object
• A dashed arrow back indicates a return
• There are different arrow heads for normal / asynchronous methods
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 63
UML Design: Interaction View
MedTech
Sequence Diagram: Messages
• The message name and arguments are written above the arrow
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 64
UML Design: Interaction View
MedTech
Sequence Diagram: Lifetime
• Creation
• Arrow with new or create on it
• An object created after the start of the
scenario appears lower than the others
• Deletion
• An X at the bottom of object’s lifeline
• Either deleted explicitely or implicitely
(garbage collected) by the system
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 65
UML Design: Interaction View
MedTech
Sequence Diagram: Activation
• Activation
• Thick box over object’s lifeline
• Drawn when the object’s method is on the stack
• Either the method is still running, or waiting for a response
• Use nesting to represent recursion
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 66
UML Design: Interaction View
MedTech
Sequence Diagram: Selections and Loops
• Frame: box around part of
a sequence diagram to
indicate selection or loop
• If : (opt) [condition]
• If/else: (alt) [condition],
separated by horizontal
dashed line
• Loop: (loop) [condition
or items to loop over]
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 67
UML Design: Interaction View
MedTech
Sequence Diagram: Linking Diagrams
• If one sequence diagram is too large or refers to another diagram,
indicate it with either:
• An unfinished arrow and comment
• A ”ref ” frame that names the other diagram
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 68
UML Design: Interaction View
MedTech
Interaction View: Case Study
• We have an order and are going to invoke a command on it to calculate
its price.
• To do that, the order needs to look at all the line items on the order
and determine their prices, which are based on the pricing rules of the
order line's products.
• Having done that for all the line items, the order then needs to
compute an overall discount, which is based on rules tied to the
customer.
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 69
UML Design: Interaction View
MedTech
Interaction View: Proposition of a Solution (1)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 70
UML Design: Interaction View
MedTech
Interaction View: Proposition of a Solution (2)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 71
UML Design: Interaction View
MedTech
UML DESIGN: ACTIVITY VIEW
Design
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 72
MedTech
Activity View
• Activity: Graph of nodes and flows that shows the flow of control and
data through the steps of a computation
• Steps can be either concurrent or sequential
• Can involve synchronization and branching constructs
• Activity contains:
• Activity nodes: a step in the workflow
• Nodes are connected by control flows and data flows
• Activity is defined in an activity diagram
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 73
UML Design: Activity View
MedTech
Activity Diagram
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 74
UML Design: Activity View
MedTech
Activity Diagram: Partitions
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 75
UML Design: Activity View
• Partitions are used
to organize the
activities in a model
according to
responsibility
• Activities are
organized into
distinct regions
(partitions or
swimlanes)
separated by lines
MedTech
Activity View: Control Flow
• Activity Diagrams use:
• Actions ( ) : for each major
task performed by a user and/or
the system
• Connectors ( ): link the
actions in sequence
• Decision nodes ( ): indicate a
point where the outcome of a
decision dictates the next step
• Guards ( ): indicate when each
path should be taken
• Merge Nodes ( ): bring
together two or more
alternative flows that branched
at a Decision Node
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 76
UML Design: Activity View
1
2
3
4
5
MedTech
Activity View: Data Flow
• You can describe the data passing in and out of an activity in either of
two ways:
• Use an Object Node. :
• Like a variable in a program.
• Represents something that stores one or more values that are passing from one
action to another.
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 77
UML Design: Activity View
MedTech
Activity View: Data Flow
• You can describe the data passing in and out of an activity in either of
two ways:
• Use an Output Pin and an Input Pin
• Pins are like parameters in a program.
• Pins represent ports where objects can enter and leave an action.
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 78
UML Design: Activity View
MedTech
Activity View: Sub-Activities
• Describe the detailed behavior
of an action using a separate
activity diagram.
• A called behavior is an activity
diagram that is represented on
your main activity diagram by a
Call Behavior Action.
• Also used to describe behavior
that is shared between
different activities so that you
do not have to draw the sub-
activity multiple times.
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 79
UML Design: Activity View
MedTech
Activity View: Concurrent Flows
• You can use the Fork Node ( ) and the Join Node ( ) to describe two or
more threads of activities that can execute at the same time.
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 80
UML Design: Activity View
1 2
MedTech
Activity View: Concurrent Flows
• Send Signal
Action ( ):
indicates that a
signal or
message is sent
to other
activities or
processes.
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 81
UML Design: Activity View
3 4
• Accept Event
Action ( ):
indicates that
this activity
waits for some
external event
or incoming
message.
MedTech
Activity View: Case Study
• Activity is started by a Commuter who needs to buy a ticket.
• Ticket vending machine will request trip information from Commuter.
This information will include number and type of tickets, e.g. whether
it is a monthly pass, one way or round ticket, route number,
destination or zone number, etc.
• Based on the provided trip info ticket vending machine will calculate
payment due and request payment options. Those options include
payment by cash, or by credit or debit card.
• If payment by card was selected by Commuter, another actor, Bank will
participate in the activity by authorizing the payment.
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 82
UML Design: Activity View
MedTech
Activity View: Proposition of a Solution
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 83
UML Design: Activity View
MedTech
UML DESIGN: STATE MACHINE VIEW
Design
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 84
MedTech
State Machine View
• State Machine
• Models the possible life histories of an object of a class
• Contains states connected by transitions
• State
• Models a period of time during the life of an object during which it satisfies
certain conditions
• Transition
• Can be fired when an event occurs
• Takes an object to a new state
• When fired, it can execute an effect (action or activity) attached to it
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 85
UML Design: State Machine View
MedTech
State Machine Diagram
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 86
UML Design: State Machine View
State machine of a ticket to a performance
MedTech
State Machine View : Transition
• Indicates a movement from one state to another
• Each transition has a label that comes in three parts (all optional):
trigger-signature [guard]/activity
• trigger-signature: Usually a single event that triggers a potential change of
state
• guard: Boolean condition that must be true for the transition to be taken
• activity : Behavior executed during the transition
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 87
UML Design: State Machine View
MedTech
State Machine View : Transition
• Example of a seminar enrollment:
trigger-signature [guard]/activity
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 88
UML Design: State Machine View
MedTech
State Machine View : Internal Activities
• States can react to events without transition, using internal activities
• Putting the event, guard and activity inside the state box itself
• Similar to a self-transition: transition that loops back to the same
state
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 89
UML Design: State Machine View
Internal activities for the state « Typing » of a text field
MedTech
State Machine View : Activity States
• In some states, the object can do some ongoing work
• These are called Activity States
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 90
UML Design: State Machine View
MedTech
State Machine View : Superstates
• Several states can share common transitions and internal activities
• Can be represented as substates, with the common behavior moved into a
superstate
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 91
UML Design: State Machine View
MedTech
State Machine View : Case Study
• A student must complete the basic level before entering the advanced
level
• After both levels, the student has to pass five examinations
• An examination can be retaken at most twice
• After the third attempt, the student’s registration is cancelled
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 92
UML Design: State Machine View
MedTech
State Machine View : Proposition of a (~) Solution
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 93
UML Design: State Machine View
MedTech
UML DESIGN: OTHER VIEWS…
Design
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 94
MedTech
Deployment View
• Represents the deployment of runtime artifacts on nodes
• Artifact
• Physical implementation unit (ex. a file)
• Might be executable (.exe, binaries, jar…) or data files, configuration files,
HTML documents...
• Node
• Runtime resource (ex. a computer, device or memory)
• Listing an artifact into a node means that the artifact is deployed to that
node
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 95
UML Design: Other Views
MedTech
Deployment Diagram
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 96
UML Design: Other Views
MedTech
Model Management View
• Models the organization of the model itself
• Comprises a set of packages that hold model elements, such as
classes, state machines and use cases
• Packages may contain other packages
• Model management information is usually shown on package diagrams
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 97
UML Design: Other Views
MedTech
Package Diagram
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 98
UML Design: Other Views
MedTech
References
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 99
• Syed Muhammad Hammad-ud-Din, Software Design,
http://fr.slideshare.net/syedmuhammadhammad/software-design-
13430869
• Analysis and design of entreprise with uml,
http://fr.slideshare.net/zinebencgist/analysis-and-design-of-
entreprise-with-uml
• Microsoft Developer Network, Create UML modeling projects and
diagrams, https://msdn.microsoft.com/en-us/library/dd409445.aspx
• Textbooks
• J. Rumbaugh, I. Jacobson, G. Booch, The Unified Modeling Language
Reference Manual, Second Edition, Addison Wesley, 2004
• M. Fowler, UML Distilled, Third Edition, Addison-Wesley Professional, 2003

Mais conteúdo relacionado

Mais procurados

Software Engineering - chp2- requirements specification
Software Engineering - chp2- requirements specificationSoftware Engineering - chp2- requirements specification
Software Engineering - chp2- requirements specificationLilia Sfaxi
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement SpecificationNiraj Kumar
 
Ch2-Software Engineering 9
Ch2-Software Engineering 9Ch2-Software Engineering 9
Ch2-Software Engineering 9Ian Sommerville
 
Function Oriented Design
Function Oriented DesignFunction Oriented Design
Function Oriented DesignSharath g
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1Mohammed Romi
 
software requirement specification
software requirement specificationsoftware requirement specification
software requirement specificationmaliksiddique1
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)Arun Shukla
 
Planning the development process
Planning the development processPlanning the development process
Planning the development processSiva Priya
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Drusilla918
 
Phased life cycle model
Phased life cycle modelPhased life cycle model
Phased life cycle modelStephennancy
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models Satya P. Joshi
 

Mais procurados (20)

Software Engineering - chp2- requirements specification
Software Engineering - chp2- requirements specificationSoftware Engineering - chp2- requirements specification
Software Engineering - chp2- requirements specification
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
 
Software design
Software designSoftware design
Software design
 
Ch2-Software Engineering 9
Ch2-Software Engineering 9Ch2-Software Engineering 9
Ch2-Software Engineering 9
 
Slides chapter 10
Slides chapter 10Slides chapter 10
Slides chapter 10
 
Function Oriented Design
Function Oriented DesignFunction Oriented Design
Function Oriented Design
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1
 
software requirement specification
software requirement specificationsoftware requirement specification
software requirement specification
 
Functional and non functional
Functional and non functionalFunctional and non functional
Functional and non functional
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
Planning the development process
Planning the development processPlanning the development process
Planning the development process
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
 
Staffing level estimation
Staffing level estimation Staffing level estimation
Staffing level estimation
 
Software requirements
Software requirementsSoftware requirements
Software requirements
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Design techniques
Design techniquesDesign techniques
Design techniques
 
Phased life cycle model
Phased life cycle modelPhased life cycle model
Phased life cycle model
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
 

Destaque

Software Engineering - chp0- introduction
Software Engineering - chp0- introductionSoftware Engineering - chp0- introduction
Software Engineering - chp0- introductionLilia Sfaxi
 
Software Engineering - chp7- tests
Software Engineering - chp7- testsSoftware Engineering - chp7- tests
Software Engineering - chp7- testsLilia Sfaxi
 
Software Engineering - chp8- deployment
Software Engineering - chp8- deploymentSoftware Engineering - chp8- deployment
Software Engineering - chp8- deploymentLilia Sfaxi
 
Software Engineering - chp1- software dev methodologies
Software Engineering - chp1- software dev methodologiesSoftware Engineering - chp1- software dev methodologies
Software Engineering - chp1- software dev methodologiesLilia Sfaxi
 
Software Engineering - chp6- development phase
Software Engineering - chp6- development phaseSoftware Engineering - chp6- development phase
Software Engineering - chp6- development phaseLilia Sfaxi
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patternsLilia Sfaxi
 
Software Engineering - chp5- software architecture
Software Engineering - chp5- software architectureSoftware Engineering - chp5- software architecture
Software Engineering - chp5- software architectureLilia Sfaxi
 

Destaque (7)

Software Engineering - chp0- introduction
Software Engineering - chp0- introductionSoftware Engineering - chp0- introduction
Software Engineering - chp0- introduction
 
Software Engineering - chp7- tests
Software Engineering - chp7- testsSoftware Engineering - chp7- tests
Software Engineering - chp7- tests
 
Software Engineering - chp8- deployment
Software Engineering - chp8- deploymentSoftware Engineering - chp8- deployment
Software Engineering - chp8- deployment
 
Software Engineering - chp1- software dev methodologies
Software Engineering - chp1- software dev methodologiesSoftware Engineering - chp1- software dev methodologies
Software Engineering - chp1- software dev methodologies
 
Software Engineering - chp6- development phase
Software Engineering - chp6- development phaseSoftware Engineering - chp6- development phase
Software Engineering - chp6- development phase
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patterns
 
Software Engineering - chp5- software architecture
Software Engineering - chp5- software architectureSoftware Engineering - chp5- software architecture
Software Engineering - chp5- software architecture
 

Semelhante a MedTech Chapter 3 – Software Design Specificities UML Modeling

software design: design fundamentals.pptx
software design: design fundamentals.pptxsoftware design: design fundamentals.pptx
software design: design fundamentals.pptxDr.Shweta
 
Different approaches to software design
Different approaches to software designDifferent approaches to software design
Different approaches to software designSandeep Kumar Nayak
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptxtaxegap762
 
B19CA4020_SE_Unit3.pptx
B19CA4020_SE_Unit3.pptxB19CA4020_SE_Unit3.pptx
B19CA4020_SE_Unit3.pptxDrPreethiD1
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGPreeti Mishra
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptxJuttG6
 
Introduction Software and Software Engineering
Introduction Software and Software EngineeringIntroduction Software and Software Engineering
Introduction Software and Software Engineeringinfinitetechnology20
 
ConfluentMinds - Auto-creating logic execution hierarchy from source code and...
ConfluentMinds - Auto-creating logic execution hierarchy from source code and...ConfluentMinds - Auto-creating logic execution hierarchy from source code and...
ConfluentMinds - Auto-creating logic execution hierarchy from source code and...Ashok Panigrahi
 
chapter12 - Software engineering.pdf
chapter12 - Software engineering.pdfchapter12 - Software engineering.pdf
chapter12 - Software engineering.pdfsatonaka3
 
Chapter five software Software Design.pptx
Chapter five software  Software Design.pptxChapter five software  Software Design.pptx
Chapter five software Software Design.pptxgadisaAdamu
 
Chapter 5 Software Design of software engineering.pptx
Chapter 5 Software Design of software engineering.pptxChapter 5 Software Design of software engineering.pptx
Chapter 5 Software Design of software engineering.pptxgadisaAdamu
 
Chapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxChapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxHaifaMohd3
 

Semelhante a MedTech Chapter 3 – Software Design Specificities UML Modeling (20)

software design: design fundamentals.pptx
software design: design fundamentals.pptxsoftware design: design fundamentals.pptx
software design: design fundamentals.pptx
 
Chapter 08
Chapter 08Chapter 08
Chapter 08
 
Different approaches to software design
Different approaches to software designDifferent approaches to software design
Different approaches to software design
 
06 fse design
06 fse design06 fse design
06 fse design
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
Unit 3- Software Design.pptx
Unit 3- Software Design.pptxUnit 3- Software Design.pptx
Unit 3- Software Design.pptx
 
B19CA4020_SE_Unit3.pptx
B19CA4020_SE_Unit3.pptxB19CA4020_SE_Unit3.pptx
B19CA4020_SE_Unit3.pptx
 
CHAPTER12.ppt
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptx
 
Developing Digital Twins
Developing Digital TwinsDeveloping Digital Twins
Developing Digital Twins
 
Introduction Software and Software Engineering
Introduction Software and Software EngineeringIntroduction Software and Software Engineering
Introduction Software and Software Engineering
 
ConfluentMinds - Auto-creating logic execution hierarchy from source code and...
ConfluentMinds - Auto-creating logic execution hierarchy from source code and...ConfluentMinds - Auto-creating logic execution hierarchy from source code and...
ConfluentMinds - Auto-creating logic execution hierarchy from source code and...
 
chapter12 - Software engineering.pdf
chapter12 - Software engineering.pdfchapter12 - Software engineering.pdf
chapter12 - Software engineering.pdf
 
Chapter five software Software Design.pptx
Chapter five software  Software Design.pptxChapter five software  Software Design.pptx
Chapter five software Software Design.pptx
 
Chapter 5 Software Design of software engineering.pptx
Chapter 5 Software Design of software engineering.pptxChapter 5 Software Design of software engineering.pptx
Chapter 5 Software Design of software engineering.pptx
 
Chapter1
Chapter1Chapter1
Chapter1
 
Chapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxChapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptx
 
Ch 9-design-engineering
Ch 9-design-engineeringCh 9-design-engineering
Ch 9-design-engineering
 
Design concepts
Design conceptsDesign concepts
Design concepts
 

Mais de Lilia Sfaxi

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfLilia Sfaxi
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfLilia Sfaxi
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-CassandraLilia Sfaxi
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-CorrectionLilia Sfaxi
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-CorrectionLilia Sfaxi
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-CorrectionLilia Sfaxi
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-SéquencesLilia Sfaxi
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-CorrectionLilia Sfaxi
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correctionLilia Sfaxi
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrageLilia Sfaxi
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Lilia Sfaxi
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intentsLilia Sfaxi
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web servicesLilia Sfaxi
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésLilia Sfaxi
 

Mais de Lilia Sfaxi (20)

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdf
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdf
 
Lab3-DB_Neo4j
Lab3-DB_Neo4jLab3-DB_Neo4j
Lab3-DB_Neo4j
 
Lab2-DB-Mongodb
Lab2-DB-MongodbLab2-DB-Mongodb
Lab2-DB-Mongodb
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-Cassandra
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-Correction
 
TD4-UML
TD4-UMLTD4-UML
TD4-UML
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-Séquences
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
TD1 - UML - DCU
TD1 - UML - DCUTD1 - UML - DCU
TD1 - UML - DCU
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancés
 

Último

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 

Último (20)

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 

MedTech Chapter 3 – Software Design Specificities UML Modeling

  • 1. MedTech Chapter 3 – Software Design Specificities of the design step, UML modeling Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 1 MedTech – Mediterranean Institute of Technology Software Engineering MedTech
  • 2. MedTech INTRODUCTION TO SOFTWARE DESIGN Design Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 2
  • 3. MedTech Software Design: Definition • Software design is an iterative process through which requirements are translated into a “blueprint” for constructing the software. • A blueprint is a reproduction of a technical drawing, documenting an architecture or an engineering design • Initially, the blueprint depicts a holistic view of software. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 3 Introduction to Software Design
  • 4. MedTech Process of Design Engineering • During the design process the software specifications are transformed into design models • Models describe the details of the data structures, system architecture, interface, and components. • Each design product is reviewed for quality before moving to the next phase of software development. • At the end of the design process a design model and specification document is produced. • This document is composed of the design models that describe the data, architecture, interfaces and components. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 4 Introduction to Software Design
  • 5. MedTech Design Specification Models Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 5 Introduction to Software Design Entity- Relationship Diagram Data Flow Diagram State-Transition Diagram Data Dictionary Process Specification (PSPEC) Control Specification (CSPEC) Data Object Description Data Design Architectural Design Interface Design Procedural Design THE DESIGN MODELTHE ANALYSIS MODEL
  • 6. MedTech Data Design • Created by transforming the analysis information model (data dictionary and ERD) into data structures required to implement the software. • Part of the data design may occur in conjunction with the design of software architecture. • More detailed data design occurs as each software component is designed. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 6 Introduction to Software Design Data Dictionary
  • 7. MedTech Data Design • Created by transforming the analysis information model (data dictionary and ERD) into data structures required to implement the software. • Part of the data design may occur in conjunction with the design of software architecture. • More detailed data design occurs as each software component is designed. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 7 Introduction to Software Design Entity Relationship Diagram
  • 8. MedTech Architectural Design • Defines : • The relationships among the major structural elements of the software • The “design patterns” than can be used to achieve the requirements that have been defined for the system • The constraints that affect the way in which the architectural patterns can be applied. • It is derived from the system specification, the analysis model, and the subsystem interactions defined in the analysis model (DFD). Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 8 Introduction to Software Design Dataflow Diagram
  • 9. MedTech Architectural Design • Defines : • The relationships among the major structural elements of the software • The “design patterns” than can be used to achieve the requirements that have been defined for the system • The constraints that affect the way in which the architectural patterns can be applied. • It is derived from the system specification, the analysis model, and the subsystem interactions defined in the analysis model (DFD). Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 9 Introduction to Software Design MVP Design Pattern
  • 10. MedTech Interface Design • Describes how the software elements communicate with each other, with other systems and with human users • Much of the necessary information required is provided by the data flow and control flow diagrams Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 10 Introduction to Software Design Control Flow Diagram
  • 11. MedTech Procedural/Component-level Design • Created by transforming the structural elements defined by the software architecture into procedural descriptions of software components • Uses information obtained from : • Process specification (PSPEC) • Use cases, FlowCharts, Activity Diagrams… • Control specification (CSPEC) • State Transition Diagram (STD), Decision tables … Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 11 Introduction to Software Design State Transition Diagram
  • 12. MedTech DESIGN FUNDAMENTAL CONCEPTS Design Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 12
  • 13. MedTech Fundamental Concepts • Abstraction: Data, procedure, control • Architecture: Overall structure of the software • Patterns: Convey the essence of a proven design solution • Modularity: Compartimentalization of data and function • Information Hiding: Controlled interfaces • Functional Independance: Single-minded function and low coupling • Refinement: Elaboration of detail for all abstractions • Refactoring: Reorganization technique that simplifies the design Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 13 Software Design
  • 14. MedTech Fundamental Concepts • Abstraction • Allows designers to focus on solving a problem without being concerned about irrelevant lower level details • Procedural Abstraction: named sequence of events • Data Abstraction: named collection of data objects • Refinement • Process of elaboration where the designer provides successively more details for each design component • Modularity • Degree to which the software can be understood by examining its components independently of one another Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 14 Software Design
  • 15. MedTech Fundamental Concepts: Patterns • A common solution to a common problem in a given context • High level patterns for organizing software: architectural styles • Low level patterns for describing details : • Creational Patterns: Builder, factory, prototype, singleton… • Structural Patterns: Adapter, bridge, composite, façade… • Behavioral Patterns: Command, interpreter, oterator, mediator... • Design Patterns • Enable a designer to determine wheter the pattern: • Is applicable to the current work • Can be reused • Can serve as a guide for developing a similar but functionally or structurally different pattern Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 15 Software Design
  • 16. MedTech Fundamental Concepts: Information Hiding • A good split of modules is when modules communicate with one another with only the information necessary to achieve the software function • Enforces access constraints to • Procedural details with a module • Local data structure used by that module • Benefits • Reduces the likelihood of “side effects” • Limits the global impact of local design decisions • Emphasizes communication through controlled interfaces • Discourages the use of global data • Leads to encapsulation—an attribute of high quality design • Results in higher quality software Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 16 Software Design
  • 17. MedTech Fundamental Concepts: Functional Independence • Cohesion • Degree to which a module performs one and only one function • All elements of component are directed toward performing the same task Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 17 Software Design Functional Sequential Communicational Procedural Temporal Logical Coincidental Low Cohesion High Cohesion
  • 18. MedTech Fundamental Concepts: Functional Independence • Coupling • Degree to which a module is connected to other modules in the system • Two components can be dependant in many ways: • References made from one to another • Amount of data passed from one to another • Amount of control one has over the other • … Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 18 Software Design Content Common External Control Stamp Data Uncoupled Low Cohesion High Cohesion
  • 19. MedTech Fundamental Concepts: Refinement • Refinement is a process of elaboration • It is a top-down design strategy • A program is developed by successfully refining levels of procedural details Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 19 Software Design Open Door walk to door; reach for knob; open door; walk through; close door. repeat until door opens turn knob clockwise; if knob doesn't turn, then take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat
  • 20. MedTech Fundamental Concepts: Refactoring • ”Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure”, M. Fowler • Refactoring a software means examining the existing design for: • Redundancy • Unused design elements • Inefficient or unnecessary algorithms • Poorly constructed or inappropriate data structures • Any other design failure that can be corrected to yield a better design Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 20 Software Design
  • 21. MedTech VISUAL MODELING WITH UML Design Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 21
  • 22. MedTech Visual Modeling • Modeling captures essential parts of the system • Visual modeling is modeling using standard graphical notations • Visual modeling • Captures business process from user’s perspective • Is a communication tool between the business domain and the computer domain • Manages complexity using refinement techniques • Defines software architecture • Promotes reuse Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 22 Visual Modeling with UML
  • 23. MedTech UML • Unified Modeling Language • Standard language for visualizing, specifying, constructing and documenting the artifacts of a software system. • Combines notions from: • Data modeling concepts (entity relationship diagrams) • Business modeling (workflow) • Object modeling • Component modeling • Can be used with all processes, throughout the development lifecycle, and across different implementation technologies Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 23 Visual Modeling with UML
  • 24. MedTech UML Usage • UML may be used to: • Display the boundary of a system and its major functions using use cases and actors • Illustrate use case realizations with interaction diagrams • Represent a static structure of a system using class diagrams • Model the behaviour of objects with state transition diagrams • Reveal the physical implementation architecture with component and deployment diagrams • Extend the basic functionalities with stereotypes • UML is NOT: • A programming language • Highly formal language for theorem proving Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 24 Visual Modeling with UML
  • 25. MedTech Why Unified? • Across historical methods and notations • Combines the commonly accepted concepts from many object-oriented methods • Across the development lifecycle • Seamless from requirements to deployment • Across application domains • Models most application domains, including large, complex, real-time, distributed, data or computation intensive,… • Across implementation languages and platforms • Usable for systems implemented in various languages and platforms • Across development processes • Usable as the modeling language underlying mist existing or new development processes • Supports iterative, incremental, agile,... Models • Across internal concepts • Represents internal relationships in a broad way applicable to many situations Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 25 Visual Modeling with UML
  • 26. MedTech UML Views • View: A subset of UML modeling constructs that represents one aspect of a system • Views are divided into areas • Structural classification • Things in the system and their relationships to other things • Things are modelized using “classifiers” (class, use case, actor, node…) • Dynamic behavior • Behavior of a system or other classifier over time • Can be described as a series of changes to snapshots of the system drawn from the static view • Physical layout • Computational resources in the system and deployment of artifacts on them • Model management • Organization of the models into hierarchical units Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 26 Visual Modeling with UML
  • 27. MedTech UML Views Area View Diagram Structural Static View Class Diagram Design View Internal Structure Collaboration Diagram Component Diagram Use Case View Use Case Diagram Dynamic State Machine View State Machine Diagram Activity View Activity Diagram Interaction View Sequence Diagram Communication Diagram Physical Deployment View Deployment Diagram Model Management Model Management View Package Diagram Profile Package Diagram Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 27 Visual Modeling with UML
  • 28. MedTech UML DESIGN: USE CASE VIEW Design Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 28
  • 29. MedTech Use Case View • Captures the behavior of a system, subsystem, class or coponent, as it appears to an outside user • Partitions the system’s functionality into transactions meaningful to actors, users of the system • Actors can be human, other computer systems or processes • The pieces of interactive functionalities are calles use cases • A use case describes an interaction with actors as a sequence of messages between the system and one or more actors Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 29 UML Design: Use Case View
  • 30. MedTech Actor • Idealization of a role played by an external person, process or thing interacting with a system, subsystem or class • Characterizes th interactions that a class of outside user may have with the system • One physical user may be bound to multiple actors • Different users may be bound to the same actor definition • Each actor participates in one or more use cases by exchanging messages Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 30 UML Design: Use Case View
  • 31. MedTech Use Case • Coherent unit of externally visible functionality provided by a classifier (subject), and expressed by sequences of messages exchanged by the subject and one or more actors of the system unit • Defines a piece of coherent behavior without revealing the internal structure of the subject • The execution of each use case is independent of the others • But its implementation may create implicit dependencies among them due to shared objects • The dynamics of a use case may be specified by • UML interactions: statechart diagrams, sequence diagrams, communication diagrams… • Informal text descriptions Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 31 UML Design: Use Case View
  • 32. MedTech Use Case Diagram Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 32 UML Design: Use Case View
  • 33. MedTech Use Case Relationships • Association • The communication path between an actor and a use case that it participates in • Extension • Relationship from an extension use case to a base use case • Specifies how the behavior defined for the extension use case can be inserted into that of the base use case • Inclusion • Relationship from a base use case to an inclusion use case • Specifies that the behavior defined for the inclusion use case is to be inserted into that of the base use case. • Use case generalization • Relationship between a general use case and a more specific use case that inherits and adds features to it Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 33 UML Design: Use Case View
  • 34. MedTech Use Case Relationships: Example Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 34 UML Design: Use Case View
  • 35. MedTech Use Case Relationships: Example Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 35 UML Design: Use Case View
  • 36. MedTech Use Case Textual Description Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 36 UML Design: Use Case View
  • 37. MedTech Use Case View: Case Study • We want to model a simplified system of the automatic teller machine (ATM), offering the following services: 1. Distribution of money to every holder of a smartcard via a card reader and a cash dispenser 2. Consultation of account balance, cash and cheque deposit facilities for bank customers who hold a smartcard from their bank 3. All transactions are made secure 4. It is sometimes necessary to refill the dispenser Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 37 UML Design: Use Case View
  • 38. MedTech Use Case View: Proposition of Solution Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 38 UML Design: Use Case View
  • 39. MedTech UML DESIGN: STATIC VIEW Design Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 39
  • 40. MedTech Static View • Foundation of UML • Concepts that are meaningful in an application • Describes behaviral declarations, such as operations, without the details of their dynamic behaviour (described by the dynamic views) • Key elements: classifiers and relationships • Classifier • Modeling element that describes things containing values • Describes identity, state, behaviour, relationships and optionally the internal structure of the object • Relationships • Are defined between classifiers to represent associations, dependency, generalization, realization or usage Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 40 UML Design: Static View
  • 41. MedTech Class Diagram • A picture of: • The classes in an OO system • Their fields and methods • Connections between the classes that interact or inherit from one another • It does NOT represent: • Details of how the classes interact with each other • Algorithmic details: how a particular behavior is implemented Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 41 UML Design: Static View
  • 42. MedTech Classifiers • Class: Main classifier in the static view • Discrete concept within the application being modeled, representing things of a particular kind: physical, business, logical, application, computer or behavioral • Defines a set of objects that have state and behavior • State: described by attributes • Behavior: described by operations (methods) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 42 UML Design: Static View
  • 43. MedTech Classifiers • Interface • Description of the behavior of objects without giving their implementation or state • One or more class or component may realize an interface • Each class must implement the operations found in the interface • Data types • A primitive type: description of primitive values that lack identity (independent existence) • Include numbers and strings • Passed by value and immutable entities • Has no attributes, but may have operations, that do not modify the data values, but may return other values Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 43 UML Design: Static View
  • 44. MedTech Class • Class name in top of the box • Write <<interface>> on top of interfaces’ names • Use italics for an abstract class name • Attributes (optional) • Should include all fields of the object • visiblity name : type [count] = defaultVal • Visiblity: • + public • # protected • - private • ~ package (default) • / derived (can be computed from other attributes) • Static attributes are underlined • Example • - balance : double = 0.00 Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 44 UML Design: Static View
  • 45. MedTech Class • Operations / Methods (optional) • May omit trivial (get/set) methods, but never omit methods from an interface • Should not include inherited methods • visiblity name (param1:type, param2:type ): return_type • Visiblity: • + public • # protected • - private • ~ package (default) • Static methods are underlined • Example: • + distance(p1: Point, p2: Point): double Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 45 UML Design: Static View
  • 46. MedTech Relationships • Association • Description of a connection among instances of classes • Dependency • Relationship between two model elements • Generalization • Relationship between a more specific and a more general description • Used for inheritance and polymorphic type declarations • Realization • Relationship between a specification and its implementation • Usage • A situation in which one element requires another for its correct functioning Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 46 UML Design: Static View
  • 48. MedTech Association Class Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 48 UML Design: Static View
  • 49. MedTech Association: Navigability Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 49 UML Design: Static View
  • 50. MedTech Naming an Association Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 50 UML Design: Static View
  • 51. MedTech Aggregation and Composition Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 51 UML Design: Static View • Aggregation: • Association that represents a part-whole relationship • Composition: • A stronger form of association • The composite has the sole responsibility for managing its parts • An object may belong to at most one composition
  • 52. MedTech Generalization Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 52 UML Design: Static View • Taxonomic relationship between a more general description (parent) and a more specific description (child), that builds on it and extends it • Used for all classifiers • For classes, the terms superclass and subclass are used
  • 53. MedTech Realization Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 53 UML Design: Static View • Connects a model elements (for ex. a class) to another model element (for ex. an interface) that supplies its behavioral specification, but not its structure or implementation
  • 54. MedTech Dependency Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 54 UML Design: Static View • Indicates a semantic relationship between two or more model elements • Relates the model elements themselves, and doesn’t require a set of instances for its meaning • Indicates a situation where a change to the supplier element may require a change to the client element • Association and generalization are specific dependencies
  • 55. MedTech Object Diagram Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 55 UML Design: Static View • A diagram of a snapshot, an image of the system at a point in time • Used as an example of the system
  • 56. MedTech Static View: Case Study • We want to model a simplified system of flight reservation for a travel agency • These are the key sentences representing the needs of the business experts 1. Airline companies offer several flights 2. A flight is open to reservation and closed by the company 3. A client can book one or several flights, for different passengers 4. A reservation concerns a single flight and a single passenger 5. A reservation can be canceled or confirmed 6. A flight has a departure airport and an arrival airport 7. A flight has a date and time of departure, and a date and time of arrival 8. A flight can have stopovers in airports 9. A stopover has an arrival time and a departure time 10. Each airport services one or more towns Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 56 UML Design: Static View
  • 57. MedTech Static View: Proposition of a Solution Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 57 UML Design: Static View
  • 58. MedTech UML DESIGN: INTERACTION VIEW Design Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 58
  • 59. MedTech Interaction View • Provides a holistic view of the behavior of an entire system • Describes how groups of objects collaborate in some behavior • Two kinds of diagrams: • Sequence diagram • Displays an interaction as a two-dimentional chart • The vertical dimension is the time axis • The horizontal dimension shows the roles that represent individual objects in the collaboration • Doesn’t show exact time intervals • Communication diagram • Shows interactions organized around the parts of a composite structure or the roles of a collaboration • Explicitly shows the relationships between the elements • Doesn’t show time as a separate dimension, just with sequence numbers Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 59 UML Design: Interaction View
  • 60. MedTech Sequence Diagram vs. Communication Diagram Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 60 UML Design: Interaction View Sequence Diagram Communication Diagram
  • 61. MedTech Sequence Diagram: Key Parts • Participant • Object or entity that acts in the sequence diagram • Can be an instance of a class, or an actor • Message • Communication between participant objects • A sequence diagram can start with an unattached “found message” arrow • Found message: message where the receiving event occurrence is known, but there is no known sending event occurrence Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 61 UML Design: Interaction View
  • 62. MedTech Sequence Diagram: Objects • Objects are represented using squares with object type (class), optionally preceded by object name and a colon • If you want to write only the class name, without the object name, the colon is mandatory • The object’s lifeline is represented by a dashed vertical line Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 62 UML Design: Interaction View
  • 63. MedTech Sequence Diagram: Messages • A message (method call) is indicated by a horizontal arrow to the object • A dashed arrow back indicates a return • There are different arrow heads for normal / asynchronous methods Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 63 UML Design: Interaction View
  • 64. MedTech Sequence Diagram: Messages • The message name and arguments are written above the arrow Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 64 UML Design: Interaction View
  • 65. MedTech Sequence Diagram: Lifetime • Creation • Arrow with new or create on it • An object created after the start of the scenario appears lower than the others • Deletion • An X at the bottom of object’s lifeline • Either deleted explicitely or implicitely (garbage collected) by the system Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 65 UML Design: Interaction View
  • 66. MedTech Sequence Diagram: Activation • Activation • Thick box over object’s lifeline • Drawn when the object’s method is on the stack • Either the method is still running, or waiting for a response • Use nesting to represent recursion Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 66 UML Design: Interaction View
  • 67. MedTech Sequence Diagram: Selections and Loops • Frame: box around part of a sequence diagram to indicate selection or loop • If : (opt) [condition] • If/else: (alt) [condition], separated by horizontal dashed line • Loop: (loop) [condition or items to loop over] Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 67 UML Design: Interaction View
  • 68. MedTech Sequence Diagram: Linking Diagrams • If one sequence diagram is too large or refers to another diagram, indicate it with either: • An unfinished arrow and comment • A ”ref ” frame that names the other diagram Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 68 UML Design: Interaction View
  • 69. MedTech Interaction View: Case Study • We have an order and are going to invoke a command on it to calculate its price. • To do that, the order needs to look at all the line items on the order and determine their prices, which are based on the pricing rules of the order line's products. • Having done that for all the line items, the order then needs to compute an overall discount, which is based on rules tied to the customer. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 69 UML Design: Interaction View
  • 70. MedTech Interaction View: Proposition of a Solution (1) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 70 UML Design: Interaction View
  • 71. MedTech Interaction View: Proposition of a Solution (2) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 71 UML Design: Interaction View
  • 72. MedTech UML DESIGN: ACTIVITY VIEW Design Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 72
  • 73. MedTech Activity View • Activity: Graph of nodes and flows that shows the flow of control and data through the steps of a computation • Steps can be either concurrent or sequential • Can involve synchronization and branching constructs • Activity contains: • Activity nodes: a step in the workflow • Nodes are connected by control flows and data flows • Activity is defined in an activity diagram Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 73 UML Design: Activity View
  • 74. MedTech Activity Diagram Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 74 UML Design: Activity View
  • 75. MedTech Activity Diagram: Partitions Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 75 UML Design: Activity View • Partitions are used to organize the activities in a model according to responsibility • Activities are organized into distinct regions (partitions or swimlanes) separated by lines
  • 76. MedTech Activity View: Control Flow • Activity Diagrams use: • Actions ( ) : for each major task performed by a user and/or the system • Connectors ( ): link the actions in sequence • Decision nodes ( ): indicate a point where the outcome of a decision dictates the next step • Guards ( ): indicate when each path should be taken • Merge Nodes ( ): bring together two or more alternative flows that branched at a Decision Node Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 76 UML Design: Activity View 1 2 3 4 5
  • 77. MedTech Activity View: Data Flow • You can describe the data passing in and out of an activity in either of two ways: • Use an Object Node. : • Like a variable in a program. • Represents something that stores one or more values that are passing from one action to another. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 77 UML Design: Activity View
  • 78. MedTech Activity View: Data Flow • You can describe the data passing in and out of an activity in either of two ways: • Use an Output Pin and an Input Pin • Pins are like parameters in a program. • Pins represent ports where objects can enter and leave an action. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 78 UML Design: Activity View
  • 79. MedTech Activity View: Sub-Activities • Describe the detailed behavior of an action using a separate activity diagram. • A called behavior is an activity diagram that is represented on your main activity diagram by a Call Behavior Action. • Also used to describe behavior that is shared between different activities so that you do not have to draw the sub- activity multiple times. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 79 UML Design: Activity View
  • 80. MedTech Activity View: Concurrent Flows • You can use the Fork Node ( ) and the Join Node ( ) to describe two or more threads of activities that can execute at the same time. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 80 UML Design: Activity View 1 2
  • 81. MedTech Activity View: Concurrent Flows • Send Signal Action ( ): indicates that a signal or message is sent to other activities or processes. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 81 UML Design: Activity View 3 4 • Accept Event Action ( ): indicates that this activity waits for some external event or incoming message.
  • 82. MedTech Activity View: Case Study • Activity is started by a Commuter who needs to buy a ticket. • Ticket vending machine will request trip information from Commuter. This information will include number and type of tickets, e.g. whether it is a monthly pass, one way or round ticket, route number, destination or zone number, etc. • Based on the provided trip info ticket vending machine will calculate payment due and request payment options. Those options include payment by cash, or by credit or debit card. • If payment by card was selected by Commuter, another actor, Bank will participate in the activity by authorizing the payment. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 82 UML Design: Activity View
  • 83. MedTech Activity View: Proposition of a Solution Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 83 UML Design: Activity View
  • 84. MedTech UML DESIGN: STATE MACHINE VIEW Design Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 84
  • 85. MedTech State Machine View • State Machine • Models the possible life histories of an object of a class • Contains states connected by transitions • State • Models a period of time during the life of an object during which it satisfies certain conditions • Transition • Can be fired when an event occurs • Takes an object to a new state • When fired, it can execute an effect (action or activity) attached to it Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 85 UML Design: State Machine View
  • 86. MedTech State Machine Diagram Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 86 UML Design: State Machine View State machine of a ticket to a performance
  • 87. MedTech State Machine View : Transition • Indicates a movement from one state to another • Each transition has a label that comes in three parts (all optional): trigger-signature [guard]/activity • trigger-signature: Usually a single event that triggers a potential change of state • guard: Boolean condition that must be true for the transition to be taken • activity : Behavior executed during the transition Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 87 UML Design: State Machine View
  • 88. MedTech State Machine View : Transition • Example of a seminar enrollment: trigger-signature [guard]/activity Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 88 UML Design: State Machine View
  • 89. MedTech State Machine View : Internal Activities • States can react to events without transition, using internal activities • Putting the event, guard and activity inside the state box itself • Similar to a self-transition: transition that loops back to the same state Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 89 UML Design: State Machine View Internal activities for the state « Typing » of a text field
  • 90. MedTech State Machine View : Activity States • In some states, the object can do some ongoing work • These are called Activity States Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 90 UML Design: State Machine View
  • 91. MedTech State Machine View : Superstates • Several states can share common transitions and internal activities • Can be represented as substates, with the common behavior moved into a superstate Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 91 UML Design: State Machine View
  • 92. MedTech State Machine View : Case Study • A student must complete the basic level before entering the advanced level • After both levels, the student has to pass five examinations • An examination can be retaken at most twice • After the third attempt, the student’s registration is cancelled Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 92 UML Design: State Machine View
  • 93. MedTech State Machine View : Proposition of a (~) Solution Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 93 UML Design: State Machine View
  • 94. MedTech UML DESIGN: OTHER VIEWS… Design Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 94
  • 95. MedTech Deployment View • Represents the deployment of runtime artifacts on nodes • Artifact • Physical implementation unit (ex. a file) • Might be executable (.exe, binaries, jar…) or data files, configuration files, HTML documents... • Node • Runtime resource (ex. a computer, device or memory) • Listing an artifact into a node means that the artifact is deployed to that node Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 95 UML Design: Other Views
  • 96. MedTech Deployment Diagram Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 96 UML Design: Other Views
  • 97. MedTech Model Management View • Models the organization of the model itself • Comprises a set of packages that hold model elements, such as classes, state machines and use cases • Packages may contain other packages • Model management information is usually shown on package diagrams Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 97 UML Design: Other Views
  • 98. MedTech Package Diagram Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 98 UML Design: Other Views
  • 99. MedTech References Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 99 • Syed Muhammad Hammad-ud-Din, Software Design, http://fr.slideshare.net/syedmuhammadhammad/software-design- 13430869 • Analysis and design of entreprise with uml, http://fr.slideshare.net/zinebencgist/analysis-and-design-of- entreprise-with-uml • Microsoft Developer Network, Create UML modeling projects and diagrams, https://msdn.microsoft.com/en-us/library/dd409445.aspx • Textbooks • J. Rumbaugh, I. Jacobson, G. Booch, The Unified Modeling Language Reference Manual, Second Edition, Addison Wesley, 2004 • M. Fowler, UML Distilled, Third Edition, Addison-Wesley Professional, 2003