UML Overview [1/2] Young-Min Baek 1 and Doo-Hwan Bae 2 1,2 Korea Advanced Institute of Science and Technology (KAIST) Daejeon, Republic of Korea 1 [email protected]2 [email protected]2017 Spring CS350 Introduction to Software Engineering Software Engineering Lab (SELab), KAIST
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
UML Overview [1/2]Young-Min Baek1 and Doo-Hwan Bae2
1,2Korea Advanced Institute of Science and Technology (KAIST)Daejeon, Republic of Korea
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
Project goalBusiness goal
Analysis
Design Implementation
Maintenance
TestRequirement Analysis Technique
Software Architecture/Design Technique
Programming Technique
TestingTechnique
Maintenance related Technique
Telelogic Tau TTCN Suite
Telelogic Tau SDL Suite,IBM Rational Rose RT
Telelogic Tau Logiscope,Doxygen, etc.
Designer
Programmer
Tester
Analyst
Telelogic TauIBM Rational Rose
“While process is often described as a leg of the process-people-technology triad, it may also be considered the “glue” that unifies the other aspects.”
Process
Process
Technology
People
TechnologyPeople
Process
8/53
Here, We Focus on...
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
Code
Maintenance Test
Programming Technique
Eclipse, Jbuilder etc.
Programmer
SW Development
Process
Process
Technology
People
Conceptualization
Software Configuration
Management
Software Requirement
Management
TelelogicDOORS
Requirement Elicitation Technique
AnalystDesignAnalysis
Requirement Analysis Technique
Analyst
Software Architecture/Design Technique
Telelogic Tau G2 DesignerWe needanalysis capabilities
We needdesign skills
9/53
For Analysis and Design of Software,
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
We use a ‘MODEL’
to analyze requirements,to design/illustrate software architectures,
to represent software behaviors,and so on.
10/53
What is a model? A model is a simplification of reality
Model
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
Reality ModelModeling
Implementation
Softwaresystem
Requirementsmodels
Analysis/designmodels
11/53
What is a model? A model is an intended simplification of reality
Models (i.e. specifications) describe structures and behaviors of a system they intend to model.
Model
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
Modeling is a proven and well-accepted engineering technique(e.g., Architectural model of houses and buildings, Mathematical models)
Reality ModelModeling
Implementation
Softwaresystem
Requirementsmodels
Analysis/designmodels
12/53
What is a model? A model is a simplification of reality A model is the abstracted representation of requirements
Model (in Detail)
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
Reality ModelModeling
Implementation
Softwaresystem
Requirementsmodels
Analysis/designmodels
Requirements
If the software system is not yet developed...
We have to start here.
13/53
Examples*
Example Models in Real World
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
Design system/software models• To adequately represent/specify stakeholders’ and
system requirements• To systematically implement a software based on
the developed models
19/53
We model something To specify target-language-independent designs To provide structure for problem solving To provide mechanisms (abstractions, views, filtering, structure) to
manage complexity To be able to easily experiment to explore multiple solutions
To reveal key design decisionsTo uncover problems and figure out what questions to ask
The exercise of modeling is more important than the model itself. Time spent perfecting the models might be time wasted…
Why Do We Use a Model?
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
20/53
Correct Every statement is one that the software shall meet
Unambiguous It has only one interpretation
Complete It includes all the requirements
Consistent No subset has conflict
Typical Properties of Good Models
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
Unambiguity is the fundamental property of models
21/53
Definition A modeling language is any language with which a model can be
described.An ML can be anything that helps you describe your system
(e.g., pseudo-code, actual code, pictures, diagrams, or description)An ML contains two elements:
Notation is the elements that make up a modeling language
Semantics are the descriptions of what the notation means
Modeling Language (ML)
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
22/53
Visual notation like UML can be a solution!
What Can Be an Effective ML?
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
UML 2.0 leverages the industry’s investment in UML 1.x and makes UML comprehensive, scalable and mature UML 2.0 designed to solve the key UML 1.x issues Major improvements in UML 2.0 include:
New internal structure diagrams support precise definition of architecture, interfaces and components
Improved scalability in state machine and sequence diagramsBetter semantic foundation enables advanced model verification and
full code generation
UML 2.0
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
30/53
UML is used to describe software-intensive system in terms of object-oriented paradigm
Use of UML
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
Types of Systems Common characteristics
Informationsystems
store, retrieve, transform, and present information to user
Technicalsystems
handle and control technical equipment such as telecommunications, military systems, or industrial processoften real-time system
Embeddedsystems
execute on simple hardware embedded in some other equipment such as mobile phone, car, household appliance
Distributedsystems
distributed on a number of machinesoften built on object mechanism such as CORBA, DCOM, Java Beans/RMI
31/53
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
Each diagram is just a view of part of the system
Together, all diagrams provides a complete picture
Diagram/View Paradigm
Underlying System Model
32/53
(Recap) The UML is a visual modeling language used to describe the model of software system Structure: What are software’s features? Behavior: What constitutes the software and how do they interact?
Describe a Software System with UML
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
33/53
UML Diagrams
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
Class Diagram
ComponentDiagram
CommunicationDiagram
Interaction OverviewDiagram
Sequence Diagram
TimingDiagram
Use CaseDiagram
State MachineDiagram
ActivityDiagram
PackageDiagramComposite
StructureDiagram
ObjectDiagram
DeploymentDiagram
Interaction Diagram
BehavioralDiagram
StructuralDiagram
Each diagram is just a view of part of the system
34/53
UML Diagrams
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
Shows instance specifications of classes and interfaces (objects), slots with value specifications, and links(i.e., a class diagram with objects and no classes)
Instance specification, object, slot, link
Packagediagram
Shows packages and relationships between the packagesPackage, element, dependency, element/ package import & merge
Componentdiagram
Shows components and dependencies between them.- Used for Component-Based Development (CBD)- Used to describe systems with Service-Oriented
Modeling a Software System UML: Unified Modeling Language Design Activities with UML
Diagram Description Elements
Use-case diagram
Describe a set of actions (use cases) that some system or systems should or can perform in collaboration with one or more external users of the systems (actors) to provide some observable and valuable results to the actors or other stakeholders of the system
Use case, actor, subject, extend, include, association
State machine diagram
Used for modeling discrete behavior through finite state transitions and expressing the behavior of a part of the system
State, transition, pseudostate
Activity diagramShows sequence and conditions for coordinating lower-level behaviors, rather than which classifiers own those behaviors(e.g., control flow and object flow models)