SlideShare a Scribd company logo
Generalizable
Element
Namespace
Model
Element
name
visibility
isSpecification
Classifier
isRoot
Constraint
Body
Coming up: Unified Modeling
Language
Introduction to the
Unified Modeling Language
CS/SWE 421
Introduction to Software Engineering
Dan Fleck
(Slides adapted from Dr. Stephen Clyde with permission)
Coming up: A Brief Timeline for OO and UML
Unified Modeling Language
 UML is an object-oriented modeling language (or
more precisely, a collection of modeling
languages) that is
– expressive
– semi-formal (UML 2.0 added much more formality)
– capable of supporting incremental development
• Elements can be hidden
• Certain elements can be left incomplete
• Inconsistencies can exist
– process independent
• UML can be used with a variety software development
process models
– Customizable and extensible
Coming up: A Brief Timeline for OO and UML
A Brief Timeline for OO and
UML
 60’s
– Birth of initial OO ideas
 70’s
– Nurturing of OO ideas
– Introduction of a few more OO
Programming Languages (OOPLs)
 80’s
– Maturing of fundamental OO concepts
– Emergence of more OOPL’s
– OOPL’s gain widespread use
Coming up: UML Building Blocks
A Brief Timeline for OO and
UML
 90’s
– The Method Wars
– Efforts to unify concepts
– Introduction and standardization of UML
– Emergence of next-generation ideas, like
Patterns
 Current
– Widespread use of UML
– Widespread use Full-Life-Cycle
development tools
Booch, Jacobson, Rumbaugh
Coming up: Modeling Elements
UML Building Blocks
 Modeling
Elements
– Structural
– Behavioral
– Organizational
– Annotational
 Diagrams that
communicate
ideas using the
modeling
elements
 Views
Student
major: String
gpa: Real
standing: String
add(Course)
drop(Course)
*
*
Graduate
Course
Registered
Student
-- Handle a registration in
courses
Course
See Fig. 2 for
more details
Contacts
Coming up: Modeling Elements and Diagrams
Modeling Elements
 Definition and Scope
– Use Cases
– Automation Boundaries
 Structural
– Objects
– Classes
– Relations
– Interfaces
– Components
– Nodes
 Extension
– Templates
– Stereotypes
 Behavioral Things
– Messages
– States
– Transitions
– Events
 Organizational Things
– Packages
– Views
 Annotation
– Comments
– Specifications
Modeling Elements are building blocks for
constructing conceptual descriptions of systems
*Note that this is not a complete list
Coming up: UML Diagrams
Modeling Elements and Diagrams
 Diagrams represent chunks of information
that need to be communicated as part of a
conceptual description.
– It usually requires many diagrams to
describe a system
– Each diagram should focus on a single
thought or a small set of tightly related
thoughts
 Diagrams are like paragraphs in a section
of well-structured text
Coming up: Three Software-Engineering Modeling
UML Diagrams
 Use Case Diagrams
 Class Diagrams
 Object Diagrams
 Interaction Diagrams
– Sequence Diagrams
– Communication Diagrams
 State Charts (enhanced State Machines)
 Component Diagrams
 Deployment Diagrams
Coming up: Three Software-Engineering Modeling
UML Diagrams – we’ll use in class
 Use Case Diagrams
 Class Diagrams
 Object Diagrams
 Interaction Diagrams
– Sequence Diagrams
– Communication Diagrams
 State Charts (enhanced State Machines)
 Component Diagrams
 Deployment Diagrams
Coming up: Analysis Perspective
Three Software-Engineering
Modeling Perspectives
 Analysis – for understanding
– The objects represented in the models are real-world objects
– Models focus on problem-domains concepts
– They describe systems as they are
 Specification – for scoping and planning
– The models include both real-world and software objects
– The models show automation boundaries
– The models describe what the system is to become
 Implementation – for designing / building
– The objects in the models are mostly software objects
– The models focus on solution-oriented concepts
– The models describe what the software system is or will be
Coming up: Specification Perspective
Analysis Perspective
 Classes are sets of objects
 Classes may include attributes
and operations, but more
importantly their intents are
defined by responsibilities
 Relationships are set of links
between objects
 Components relate to the problem
domain
Student
name
major
GPA
standing
interests
*
*
Registered
Student
-- The set of students
known to the
registration system
Course
name
-- The set of possible
courses
Coming up: Implementation Perspective
Specification Perspective
 Classes define
abstraction boundaries
and encapsulations for
software objects
StudentS
name: String
major: String
GPA: real
standing: Scode
add(Course)
drop(Course)
-- Software representation of students;
support registration in courses
StudentR
name
major
GPA
standing
interests
-- The set of students known to the
registration system
Coming up: Implementation Perspective
Implementation Perspective
Student
major: String
GPA: Real
standing: String
add(Course)
drop(Course)
-- Handle a registration in
courses
StudentDialogBox
create()
doDataExchange()
onDelete()
onInsert()
onOK()
-- Interact with user to add
drop courses
Course
callNumber: Integer
department
number
section
title
CourseList
-- Display a dynamic list
courses
1
0..1
Coming up: In the analysis perspective will I need a loop
Implementation Perspective
StudentDialogBox
-- Interact with user to add
drop courses
Dialog
Window
Frame
Object
CourseList
-- Display a dynamic list
courses
ListBox
 Classes can represent
software components in
frameworks, libraries, or
external systems
0..1 1
In the analysis perspective will I
need a loop counter?
 A. Yes if you have a loop
 B. No
 C. It depends (be able to say on what if you
choose this  )
Coming up: More UML Modeling Questions
Some Interesting UML Modeling
Questions
 How do we discover objects or classes?
 When should we focus on problem-domain
objects, solution-domain objects, or environment
objects?
 How can we keep the different perspectives
straight?
 Should each perspective be captured by a
different model or can they all be managed in one
model?
 How much detail should you put in a diagram, a
view, or a model?
Coming up: More UML Modeling Questions
More UML Modeling Questions
 How should you distribute responsibilities
among classes?
– What happens when classes get too big, i.e.
inadequate distribution?
– What happens when classes are too small,
i.e. too fine of grain distribution?
– What happens when there are a lot of
dependency relationships between classes,
i.e., inappropriate or ad hoc distribution?

More Related Content

Similar to IntroductionToUML.ppt

l1_introuml.pdf
l1_introuml.pdfl1_introuml.pdf
l1_introuml.pdf
KalsoomTahir2
 
Introduction To Uml
Introduction To UmlIntroduction To Uml
Introduction To Uml
guest514814
 
Ooad lab manual
Ooad  lab manualOoad  lab manual
Ooad lab manual
Praseela R
 
UML (Hemant rajak)
UML (Hemant rajak)UML (Hemant rajak)
UML (Hemant rajak)
hrajak5
 
Cs8592 ooad unit 1
Cs8592 ooad unit 1Cs8592 ooad unit 1
Cs8592 ooad unit 1
VADUGANATHAND1
 
Cs8592 ooad unit 1
Cs8592 ooad unit 1Cs8592 ooad unit 1
Cs8592 ooad unit 1
MAYILVELKUMARPONNUSA
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
Anirban Majumdar
 
Chapter1
Chapter1Chapter1
Chapter1
Dang Tuan
 
Uml Presentation
Uml PresentationUml Presentation
Uml Presentation
anasz3z3
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
Debajyoti Biswas
 
Object Oriented Analysis and Design with UML2 part1
Object Oriented Analysis and Design with UML2 part1Object Oriented Analysis and Design with UML2 part1
Object Oriented Analysis and Design with UML2 part1
Haitham Raik
 
fdocuments.in_unit-2-ooad.ppt
fdocuments.in_unit-2-ooad.pptfdocuments.in_unit-2-ooad.ppt
fdocuments.in_unit-2-ooad.ppt
RAJESH S
 
11 si(systems analysis and design )
11 si(systems analysis and design )11 si(systems analysis and design )
11 si(systems analysis and design )
Nurdin Al-Azies
 
unit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdf
unit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdfunit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdf
unit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdf
RojaPogul1
 
Uml1 concepts
Uml1 conceptsUml1 concepts
Uml1 concepts
Nolan Neustaeter
 
M02 Uml Overview
M02 Uml OverviewM02 Uml Overview
M02 Uml Overview
Dang Tuan
 
ASPECT ORIENTED PROGRAMING(aop)
ASPECT ORIENTED PROGRAMING(aop)ASPECT ORIENTED PROGRAMING(aop)
ASPECT ORIENTED PROGRAMING(aop)
kvsrteja
 
Phase 2 - Task 1Task TypeDiscussion BoardDeliverable Length.docx
Phase 2 - Task 1Task TypeDiscussion BoardDeliverable Length.docxPhase 2 - Task 1Task TypeDiscussion BoardDeliverable Length.docx
Phase 2 - Task 1Task TypeDiscussion BoardDeliverable Length.docx
randymartin91030
 
Sw Software Design
Sw Software DesignSw Software Design
Sw Software Design
jonathan077070
 
02 uml
02 uml02 uml
02 uml
Baskarkncet
 

Similar to IntroductionToUML.ppt (20)

l1_introuml.pdf
l1_introuml.pdfl1_introuml.pdf
l1_introuml.pdf
 
Introduction To Uml
Introduction To UmlIntroduction To Uml
Introduction To Uml
 
Ooad lab manual
Ooad  lab manualOoad  lab manual
Ooad lab manual
 
UML (Hemant rajak)
UML (Hemant rajak)UML (Hemant rajak)
UML (Hemant rajak)
 
Cs8592 ooad unit 1
Cs8592 ooad unit 1Cs8592 ooad unit 1
Cs8592 ooad unit 1
 
Cs8592 ooad unit 1
Cs8592 ooad unit 1Cs8592 ooad unit 1
Cs8592 ooad unit 1
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Chapter1
Chapter1Chapter1
Chapter1
 
Uml Presentation
Uml PresentationUml Presentation
Uml Presentation
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
Object Oriented Analysis and Design with UML2 part1
Object Oriented Analysis and Design with UML2 part1Object Oriented Analysis and Design with UML2 part1
Object Oriented Analysis and Design with UML2 part1
 
fdocuments.in_unit-2-ooad.ppt
fdocuments.in_unit-2-ooad.pptfdocuments.in_unit-2-ooad.ppt
fdocuments.in_unit-2-ooad.ppt
 
11 si(systems analysis and design )
11 si(systems analysis and design )11 si(systems analysis and design )
11 si(systems analysis and design )
 
unit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdf
unit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdfunit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdf
unit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdf
 
Uml1 concepts
Uml1 conceptsUml1 concepts
Uml1 concepts
 
M02 Uml Overview
M02 Uml OverviewM02 Uml Overview
M02 Uml Overview
 
ASPECT ORIENTED PROGRAMING(aop)
ASPECT ORIENTED PROGRAMING(aop)ASPECT ORIENTED PROGRAMING(aop)
ASPECT ORIENTED PROGRAMING(aop)
 
Phase 2 - Task 1Task TypeDiscussion BoardDeliverable Length.docx
Phase 2 - Task 1Task TypeDiscussion BoardDeliverable Length.docxPhase 2 - Task 1Task TypeDiscussion BoardDeliverable Length.docx
Phase 2 - Task 1Task TypeDiscussion BoardDeliverable Length.docx
 
Sw Software Design
Sw Software DesignSw Software Design
Sw Software Design
 
02 uml
02 uml02 uml
02 uml
 

Recently uploaded

A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
Peter Windle
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
amberjdewit93
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
Israel Genealogy Research Association
 
Top five deadliest dog breeds in America
Top five deadliest dog breeds in AmericaTop five deadliest dog breeds in America
Top five deadliest dog breeds in America
Bisnar Chase Personal Injury Attorneys
 
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama UniversityNatural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Akanksha trivedi rama nursing college kanpur.
 
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
IreneSebastianRueco1
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
Nguyen Thanh Tu Collection
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
Dr. Mulla Adam Ali
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
Jean Carlos Nunes Paixão
 
How to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP ModuleHow to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP Module
Celine George
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
David Douglas School District
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
Celine George
 
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
RitikBhardwaj56
 
A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
thanhdowork
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
Colégio Santa Teresinha
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
AyyanKhan40
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
mulvey2
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
tarandeep35
 
How to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold MethodHow to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold Method
Celine George
 

Recently uploaded (20)

A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
 
Top five deadliest dog breeds in America
Top five deadliest dog breeds in AmericaTop five deadliest dog breeds in America
Top five deadliest dog breeds in America
 
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama UniversityNatural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
 
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
 
How to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP ModuleHow to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP Module
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
 
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
 
A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
 
How to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold MethodHow to Build a Module in Odoo 17 Using the Scaffold Method
How to Build a Module in Odoo 17 Using the Scaffold Method
 

IntroductionToUML.ppt

  • 1. Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Coming up: Unified Modeling Language Introduction to the Unified Modeling Language CS/SWE 421 Introduction to Software Engineering Dan Fleck (Slides adapted from Dr. Stephen Clyde with permission)
  • 2. Coming up: A Brief Timeline for OO and UML Unified Modeling Language  UML is an object-oriented modeling language (or more precisely, a collection of modeling languages) that is – expressive – semi-formal (UML 2.0 added much more formality) – capable of supporting incremental development • Elements can be hidden • Certain elements can be left incomplete • Inconsistencies can exist – process independent • UML can be used with a variety software development process models – Customizable and extensible
  • 3. Coming up: A Brief Timeline for OO and UML A Brief Timeline for OO and UML  60’s – Birth of initial OO ideas  70’s – Nurturing of OO ideas – Introduction of a few more OO Programming Languages (OOPLs)  80’s – Maturing of fundamental OO concepts – Emergence of more OOPL’s – OOPL’s gain widespread use
  • 4. Coming up: UML Building Blocks A Brief Timeline for OO and UML  90’s – The Method Wars – Efforts to unify concepts – Introduction and standardization of UML – Emergence of next-generation ideas, like Patterns  Current – Widespread use of UML – Widespread use Full-Life-Cycle development tools Booch, Jacobson, Rumbaugh
  • 5. Coming up: Modeling Elements UML Building Blocks  Modeling Elements – Structural – Behavioral – Organizational – Annotational  Diagrams that communicate ideas using the modeling elements  Views Student major: String gpa: Real standing: String add(Course) drop(Course) * * Graduate Course Registered Student -- Handle a registration in courses Course See Fig. 2 for more details Contacts
  • 6. Coming up: Modeling Elements and Diagrams Modeling Elements  Definition and Scope – Use Cases – Automation Boundaries  Structural – Objects – Classes – Relations – Interfaces – Components – Nodes  Extension – Templates – Stereotypes  Behavioral Things – Messages – States – Transitions – Events  Organizational Things – Packages – Views  Annotation – Comments – Specifications Modeling Elements are building blocks for constructing conceptual descriptions of systems *Note that this is not a complete list
  • 7. Coming up: UML Diagrams Modeling Elements and Diagrams  Diagrams represent chunks of information that need to be communicated as part of a conceptual description. – It usually requires many diagrams to describe a system – Each diagram should focus on a single thought or a small set of tightly related thoughts  Diagrams are like paragraphs in a section of well-structured text
  • 8. Coming up: Three Software-Engineering Modeling UML Diagrams  Use Case Diagrams  Class Diagrams  Object Diagrams  Interaction Diagrams – Sequence Diagrams – Communication Diagrams  State Charts (enhanced State Machines)  Component Diagrams  Deployment Diagrams
  • 9. Coming up: Three Software-Engineering Modeling UML Diagrams – we’ll use in class  Use Case Diagrams  Class Diagrams  Object Diagrams  Interaction Diagrams – Sequence Diagrams – Communication Diagrams  State Charts (enhanced State Machines)  Component Diagrams  Deployment Diagrams
  • 10. Coming up: Analysis Perspective Three Software-Engineering Modeling Perspectives  Analysis – for understanding – The objects represented in the models are real-world objects – Models focus on problem-domains concepts – They describe systems as they are  Specification – for scoping and planning – The models include both real-world and software objects – The models show automation boundaries – The models describe what the system is to become  Implementation – for designing / building – The objects in the models are mostly software objects – The models focus on solution-oriented concepts – The models describe what the software system is or will be
  • 11. Coming up: Specification Perspective Analysis Perspective  Classes are sets of objects  Classes may include attributes and operations, but more importantly their intents are defined by responsibilities  Relationships are set of links between objects  Components relate to the problem domain Student name major GPA standing interests * * Registered Student -- The set of students known to the registration system Course name -- The set of possible courses
  • 12. Coming up: Implementation Perspective Specification Perspective  Classes define abstraction boundaries and encapsulations for software objects StudentS name: String major: String GPA: real standing: Scode add(Course) drop(Course) -- Software representation of students; support registration in courses StudentR name major GPA standing interests -- The set of students known to the registration system
  • 13. Coming up: Implementation Perspective Implementation Perspective Student major: String GPA: Real standing: String add(Course) drop(Course) -- Handle a registration in courses StudentDialogBox create() doDataExchange() onDelete() onInsert() onOK() -- Interact with user to add drop courses Course callNumber: Integer department number section title CourseList -- Display a dynamic list courses 1 0..1
  • 14. Coming up: In the analysis perspective will I need a loop Implementation Perspective StudentDialogBox -- Interact with user to add drop courses Dialog Window Frame Object CourseList -- Display a dynamic list courses ListBox  Classes can represent software components in frameworks, libraries, or external systems 0..1 1
  • 15. In the analysis perspective will I need a loop counter?  A. Yes if you have a loop  B. No  C. It depends (be able to say on what if you choose this  )
  • 16. Coming up: More UML Modeling Questions Some Interesting UML Modeling Questions  How do we discover objects or classes?  When should we focus on problem-domain objects, solution-domain objects, or environment objects?  How can we keep the different perspectives straight?  Should each perspective be captured by a different model or can they all be managed in one model?  How much detail should you put in a diagram, a view, or a model?
  • 17. Coming up: More UML Modeling Questions More UML Modeling Questions  How should you distribute responsibilities among classes? – What happens when classes get too big, i.e. inadequate distribution? – What happens when classes are too small, i.e. too fine of grain distribution? – What happens when there are a lot of dependency relationships between classes, i.e., inappropriate or ad hoc distribution?