SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
Applying 4+1 View Architecture with UML 2
White Paper
Copyright ©2007 FCGSS, all rights reserved.
www.fcgss.com
Introduction
Unified Modeling Language (UML) has been available since 1997, and UML 2 was
released in 2004, building on an already successful UML 1.x standard. UML 2 comes
with 13 basic diagram types to support Model Driven Architecture (MDA) and Model
Driven Development (MDD).
Philippe Kruchten originally presented the 4+1 View Model to describe the architecture of
software-intensive systems. This approach uses multiple views to separate stakeholders’
concerns. The 4+1 View Approach is widely accepted by the software industry to
represent application architecture blueprints. However, the industry has not yet
completely embraced UML 2. IT architects are continuing with UML 1.x artifacts to
represent architecture and are consequently missing out on the powerful benefits of the
improvements made in UML 2.
This article presents the approach for 4+1 View Architecture using UML 2 diagrams. It
enhances the original concept of the approach using the current modeling standards and
techniques, and aims to encourage Application Architects to adapt relevant UML 2
artifacts. This article discusses each of the views and allocates the UML 2 diagrams to
these views. It does not, however, teach semantics and modeling using UML 2 notations.
The audience is expected to have a basic understanding of UML and to be able to refer to
UML 2 for further details.
UML 2 Diagrams
Let us briefly review the diagrams available in UML 2 Specification.
UML 2 Superstructure Specification divides the 13 basic diagram types into two key
categories:
• Part I – Structural Diagrams: These diagrams are used to define static architecture.
They comprise static constructs such as classes, objects, and components, and the
relationships between these elements. There are six structural diagrams: Package
Diagrams, Class Diagrams, Object Diagrams, Composite Structure Diagrams,
Component Diagrams and Deployment Diagrams.
• Part II – Behavioral Diagrams: These diagrams are used to represent dynamic
architecture. They comprise behavioral constructs such as activities, states, timelines
and the messages that run between different objects. These diagrams are used to
represent the interactions among various model elements and instantaneous states over
a time period. There are seven behavioral diagrams: Use Case Diagrams, Activity
Diagrams, State Machine Diagrams, Communication Diagrams, Sequence Diagrams,
Timing Diagrams and Interaction Overview Diagrams.
UML 2 has introduced Composite Structure, Object, Timing and Interaction Overview
diagrams. The remaining diagrams were borrowed from UML 1.x, although some of them
were changed significantly.
4+1 View Architecture
The fundamental organization of a software system can be represented by:
• Structural elements and their interfaces that comprise or form a system
• Behavior represented by collaboration among the structural elements
• Composition of Structural and Behavioral elements into larger subsystems
Such compositions are guided by desired abilities (non-functional requirements) like
usability, resilience, performance, re-use, comprehensibility, economic and technology
constraints and trade-offs etc. Also, there are cross-cutting concerns (like security and
transaction management) that apply across all the functional elements
1
Architecture also means different things to different stakeholders. For example, a
Network Engineer would only be interested in the hardware and network configuration of
the system; a Project Manager in the key components to be developed and their
timelines; a Developer in classes that make up a component; and a Tester in scenarios.
So we need multiple view points for distinct stakeholders’ needs, showing what is relevant
while masking the details that are irrelevant.
The 4+1 View Approach is an ‘architecture style’ to organize an application’s architecture
representations into views to meet individual stakeholder’s needs. Figure 1 shows the
views in the 4+1 View Architecture.
Logical View (Object Oriented Decomposition)
This view focuses on realizing an application’s functionality in terms of structural
elements, key abstractions and mechanisms, separation of concerns and distribution of
responsibilities. Architects use this view for functional analysis.
The logical architecture is represented at different levels of abstraction and progressively
evolves in iterations.
1. Vertical and horizontal divisions
– The application can be vertically divided into significant functional areas (i.e.,
order capture subsystems, order processing subsystems).
– Or, it can be horizontally divided into a layered architecture distributing
responsibilities among these layers (i.e., presentation layers, services layers,
business logic layers, and data access layers).
2. Representation of structural elements as classes or objects and their relationships.
2
”
“Logical View
Process View
Implementation View
Deployment View
Use Case View
Functionality
Configuration
Management
Performance
Scalability
Throughput
CONCEPTUAL PHYSICAL
Scenarios
Figure 1: 4+1 View Model
Software Architecture is the
fundamental organization of
a system, embodied in its
components, their
relationships to each other
and the environment, and
the principles governing its
design and evolution.
— The definition of
Software Architecture as
per IEEE Recommended
Practice for Architectural
Description of Software-
Intensive Systems (IEEE
1471-2000)
UML 2 provides an elaborate set of diagrams to create a Logical View:
1. Class Diagrams or Structural Diagrams: These diagrams define the basic building
blocks of a model. They focus on each individual class, the main operations and
relationships to other classes’ associations, usage, composition, inheritance etc.
2. Object Diagrams: These diagrams show how instances of structural elements are
related. They help understand the class diagrams when the relationships are complex.
The object diagrams were informally used in the UML 1.x world; in UML 2 they are
formal artifacts.
3. Package Diagrams: These diagrams are used to divide the model into logical containers
or ‘packages’. They can be used to represent vertical and horizontal divisions as
packages.
4. Composite Structure Diagrams: These diagrams help in modeling the parts contained
by a class and the relationships between the parts. When parts are related, such
diagrams significantly simplify the relationships between the classes. Ports are used to
represent how a class hooks into the environment. These diagrams support
collaborations that can be used to represent design patterns of cooperating objects.
UML 2 has introduced these diagrams as a major improvement over earlier structural
constructs.
5. State Machine Diagrams: These diagrams are necessary to understand the instant
states of an object defined by a class. These diagrams are optionally used when there
is a need to understand the possible states of a class.
The diagram notations are intentionally kept out of the scope of this document.
Please refer to Sparx Systems’ online tutorial to understand the notations
(http://sparxsystems.com/resources/uml2_tutorial/).
While modeling for the Logical View, start with the Class and Package diagrams and
expand as necessary. Figure 2 shows the modeling approach for the Logical View.
UML also provides profiles for data modeling using Entity Relationship (ER) Diagrams.
ER Diagrams can also be considered as another form of Logical View. Some Architects
prefer to capture ER Diagrams in a separate view called Data View.
3
Class
Diagrams
Composite
Structure
Diagrams
Object
Diagrams
State
Diagrams
Package
Diagrams
MODELING LOGICAL VIEW WITH UML2
1. Start with class diagrams to model the system
2. Use package diagrams to logically group diagrams
Optional use
3. Object diagrams when relationships between
classes need to be explained through instances
4. State Charts when internal states of a specific
class are to be explained
5. Composite Structures when parts of a class and
relationships between parts are to be modeled
Figure 2: Modeling Logical View
Process View (Process Decomposition)
This view considers non-functional aspects such as performance, scalability and
throughput. It addresses the issues of concurrency, distribution and fault tolerance. It
shows the main abstractions from the Logical View executing over a thread as an
operation. A process is a group of tasks that form an executable unit; a software system
is partitioned into sets of tasks. Each task is a thread of control that executes with
collaboration among different structural elements (from the Logical View). Process View
also encompasses re-usable interaction patterns to solve recurring problems and to meet
non-functional service levels.
The process architecture can be represented at various levels of abstraction such as
interactions between systems, subsystems and objects etc. based on the need.
The Process view can be represented by the following UML 2 diagrams:
1. Sequence Diagrams: These diagrams show the sequence of messages passed between
the objects on a vertical timeline. UML 2 has made significant improvements on
Sequence diagram notations to aid Model Driven Development. The fragment types
such as loop, assert, break and alt help in diagramming to the level of detail that keeps
code and models in sync – not just in terms of structure, but also in behavior. Today’s
modeling tools are yet to catch up on utilizing the power of UML 2 Sequence diagrams.
2. Communication Diagrams: These diagrams show communications between objects at
runtime during a collaboration instance. These diagrams are closely related to
Sequence diagrams. While Sequence diagrams are focused on the flow of messages
throughout an interaction over a timeline, the Communication diagrams focus on the
links between the participants; they were previously called Collaboration diagrams. In
addition to changing the name, UML 2 has made improvements relative to Sequence
diagrams.
3. Activity Diagrams: These diagrams are similar to flowcharts and have a wide range of
uses in different view points. In the process view, they can be used to depict the
program flows and complex business logic with actions, decision points, branching,
merging and parallel processing. UML 2 has made several improvements and
standardized the Activity Diagram constructs. Now you can also represent the time
events, external sending and receiving signals in the Activity Diagrams.
4. Timing Diagrams: Timing Diagrams specifically address modeling for performance.
They depict the amount of time allowed for a participant to receive events and switch
between the states, and how long a participant can stay in a specific state. These
diagrams were introduced in UML 2 and can be used for performance design.
5. Interaction Overview Diagrams: These diagrams provide an overview of how several
interactions work together to implement a system concern. They are a fusion of
Activity, Sequence and Timing Diagrams. Each part of an interaction could be
represented by a distinct diagram type. UML 2 introduces these diagrams and they
can be used to aid high-level overviews and understand the overall system behavior.
While modeling for Process View, you can start with either Sequence or Communication
diagrams. Both these diagrams can be created from each other, so it is merely a
personal preference on which one to use. As the scenarios get complex, you can use
other diagrams. Figure 3 shows the order of modeling for Process View with
UML 2 diagrams.
4
Implementation or Development View (Subsystem Decomposition)
This is a view of a system’s architecture that encompasses the components used to
assemble and release a physical system. This view focuses on configuration management
and actual software module organization in the development environment. The software is
actually packaged into components that can be developed and tested by the development
team. While the Logical View is at the conceptual level, the diagrams in this view
represent the physical-level artifacts that are built by the team.
Component Diagrams are used to represent the Implementation View. These diagrams
show different components, the ports available and the dependencies on the environment
in terms of provided and required interfaces. UML 2 has improved the Component
Diagrams specifically with the interfaces and ports. The components can be tied to the
classes and composite structures that realize these components. These diagrams can
now be used to precisely represent the software components built in a system and their
dependencies both in black-box and white-box views.
Deployment or Physical View (Mapping Software to Hardware)
This view encompasses the nodes that form the system’s hardware topology on which the
system executes; it focuses on distribution, communication and provisioning.
The software executes on a network of computers, or processing nodes. The various
elements such as processes, tasks and objects need to be mapped to the nodes on which
they execute. These physical configurations can differ between production, development
and testing environments. The software should be built to be flexible to scale across
these hardware changes. Hence, this view accommodates the non-functional
requirements such as availability, reliability, performance, throughput and scalability.
This view provides all possible hardware configurations, and maps the components from
the Implementation View to these configurations.
5
Sequence
Diagrams
Communicati
on Diagrams
Activity
Diagrams
Scenario
Timing
Diagrams
Interaction
Overview
Diagrams
MODELING PROCESS VIEW WITH UML2
1. Use either Sequence or Communication Diagrams
for modeling simple interactions in use case
realizations
Optional use
2. Add Activity diagrams to realize scenarios where
business logic is a sequence of actions and
involves branching and parallel processing
3. Add timing diagrams when modeling for
performance
4. For complex scenarios, that can be composed
of other scenarios, use Interaction overview
diagrams
Figure 3: Modeling Process View
Deployment Diagrams show the physical disposition of the artifacts in the real-world
setting. UML provides constructs to represent Nodes such as devices, execution
environment and middleware; artifacts such as jar files and connections; and
dependencies between these devices. The nodes can be embedded, for example,
representing the application server running within the physical device. UML uses very
simple notation for nodes and artifacts. However, the current modeling tools allow you to
import external images to depict these nodes.
Use Case View or Scenarios (putting all together)
In addition to the four views discussed above, this is the central view for capturing
scenarios. The Use Case View encompasses the use cases that describe the behavior of
the system as seen by its end users and other stakeholders. Although traditionally
discussed as the last view, this is the first view created in the system development
lifecycle.
This view represents the scenarios that tie the four views together, and forms the reason
why all the other views exist. With all other views in place, this view seems redundant
(hence +1). However it represents the architecturally significant requirements in the form
of scenarios. It also aids to verify that all the required scenarios are met.
UML 2 provides the Use Case Diagrams to represent this view. These diagrams are
comprised of use cases and actors. They are closely tied to detailed scenario
descriptions in text. As an architecture view, we are only interested in significant use
cases that need to be modeled.
Activity Diagrams can also be used to represent scenarios and business processes.
The current UML tools are well geared to generate the business process automation
code from activity diagrams. So the activity diagrams can be used to both represent the
requirements in the Use Case View and executable processes in the Process View.
Figure 4 shows the UML diagrams allocated to the views on the 4+1 View Model.
6
CONCEPTUAL PHYSICAL
Figure 4: 4+1 View Model with UML2
Logical View
Process View
Implementation View
Deployment View
Use Case View
Class, Object, Package,
Composite Structure,
State Machine
Component
Sequence,
Communication,
Activity, Timing,
Interaction Overview
Deployment
Use Case, Activity
Relationships between Views
The Logical View and the Process View are at a conceptual level and are used from
analysis to design. The Implementation View and the Deployment View are at the physical
level and represent the actual application components built and deployed.
The Logical View and the Implementation View are tied closer to functionality. They depict
how functionality is modeled and implemented. The Process View and Deployment View
realizes the non-functional aspects using behavioral and physical modeling.
Use Case View leads to structural elements being analyzed in the Logical View and
implemented in the Development View. The scenarios in the Use Case View are realized
in the Process View and deployed in the Physical View.
Conclusion
UML 2 has made significant improvements in its constructs that affect the
representations in Logical and Process Views. Architects today have additional diagrams
to model the functional and non-functional aspects and communicate them to the teams.
Typically, the views in the 4+1 View approach are sufficient to model the Application
Architecture. Additional views such as Security View and Data View could be added
based on the specific application’s requirements. It should also be noted that the 4+1
View Approach is best suited to represent the Application Architecture. More complex
view points are necessary if you need to depict the Enterprise Architecture for an entire
organization.
References and Further Reading
1. Philippe Kruchten’s original publication on 4+1 View Approach,
www.win.tue.nl/~mchaudro/sa2004/Kruchten4+1.pdf
2. UML 2 Superstructure Specification from OMG,
http://www.omg.org/technology/documents/modeling_spec_catalog.htm
3. Grady Booch’s presentation on Software Architecture,
www.booch.com/architecture/blog/artifacts/Software%20Architecture.ppt
4. Learning UML 2.0 (O'Reilly), Russ Miles & Kim Hamilton
5. UML 2.0 in a Nutshell (O'Reilly), Dan Pilone and Neil Pitman
6. UML 2 Tutorials from Sparx Systems,
(http://sparxsystems.com/resources/uml2_tutorial/)
Acknowledgements
My acknowledgements to Martin Israelsen, Director of Technology and Architecture, FCG
Software Services, for his technical review and invaluable inputs on this article. Special
thanks to Suzanne Cain, Marketing Specialist, FCG Software Services, for editing this
document and Papia Roy, First Consulting Group, for designing and finalizing it.
About the Author
Veer Muchandi is a Senior Technical Architect with FCG Software Services. He has been
providing IT Solutions for over 14 years. His areas of expertise include requirements,
business modeling and solution architecture. He is a Sun Certified Enterprise Architect
and OMG Certified UML Professional. Veer lives in Atlanta, Georgia.
7
About FCG Software Services
FCG Software Services (FCGSS), a division of First Consulting Group, is a
U.S. software development company that has provided on-site/offshore
software development and other IT-enabled services for over ten years.
Assessed at CMMI Level 5, FCGSS has offshore development centers
located in Bangalore, India, and Ho Chi Minh City, Vietnam. FCGSS’
experienced personnel work on-site with organizations to define
requirements, design software solutions and coordinate the activities of the
offshore development teams. Through a combination of qualified resources,
a sound development methodology and a wide domain of technical expertise,
FCGSS delivers high quality products at significantly reduced rates.
About the Publisher
Sparx Systems is a software development company specializing in high
performance, and highly productive and scalable visual tools for the planning,
design and construction of software-intensive systems. With customers in
industries ranging from aerospace and automotive engineering to finance,
defense, government, entertainment and telecommunications, Sparx
Systems is a leading vendor of innovative solutions based on the Unified
Modeling Language (UML) and its related specifications. A Contributing
Member of the Object Management Group (OMG), Sparx Systems is
committed to realizing the potential of model-driven development based on
open standards. The company’s flagship product, Enterprise Architect, has
received numerous accolades since its commercial release in August, 2000.
Now at version 6.5, Enterprise Architect is the design tool of choice for
over 100,000 registered users in more than 60 countries worldwide.
11675 Great Oaks Way, Suite 144
Alpharetta, GA 30022
www.fcgss.com
678-229-1100
©2007 FCGSS_US_WP_Applying 4+1 w_UML2

Más contenido relacionado

La actualidad más candente

Round - Trip Software Engineering using UML: From Architecture to Design and...
Round - Trip Software Engineering using UML:  From Architecture to Design and...Round - Trip Software Engineering using UML:  From Architecture to Design and...
Round - Trip Software Engineering using UML: From Architecture to Design and...Aman Mishra
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3SIMONTHOMAS S
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patternsHimanshu
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 
Architectural Design
Architectural DesignArchitectural Design
Architectural DesignJay Thakkar
 
Arch06 1
Arch06 1Arch06 1
Arch06 1nazn
 
Documenting software architecture
Documenting software architectureDocumenting software architecture
Documenting software architectureHimanshu
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software designCliftone Mullah
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and ModularityDanyal Ahmad
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesnimmik4u
 
System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)Animesh Chaturvedi
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 

La actualidad más candente (20)

Round - Trip Software Engineering using UML: From Architecture to Design and...
Round - Trip Software Engineering using UML:  From Architecture to Design and...Round - Trip Software Engineering using UML:  From Architecture to Design and...
Round - Trip Software Engineering using UML: From Architecture to Design and...
 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
 
Sda 7
Sda   7Sda   7
Sda 7
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Architectural Design
Architectural DesignArchitectural Design
Architectural Design
 
SMD Unit i
SMD Unit iSMD Unit i
SMD Unit i
 
Object oriented analysis and design unit- ii
Object oriented analysis and design unit- iiObject oriented analysis and design unit- ii
Object oriented analysis and design unit- ii
 
SMD Unit ii
SMD Unit iiSMD Unit ii
SMD Unit ii
 
Object oriented analysis and design unit- v
Object oriented analysis and design unit- vObject oriented analysis and design unit- v
Object oriented analysis and design unit- v
 
Arch06 1
Arch06 1Arch06 1
Arch06 1
 
Documenting software architecture
Documenting software architectureDocumenting software architecture
Documenting software architecture
 
Chapter02
Chapter02Chapter02
Chapter02
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software design
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and Modularity
 
Object oriented analysis and design unit- iii
Object oriented analysis and design unit- iiiObject oriented analysis and design unit- iii
Object oriented analysis and design unit- iii
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniques
 
System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)
 
Sda 2
Sda   2Sda   2
Sda 2
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 

Destacado

Sig A&D - Documentation And Communication
Sig A&D - Documentation And CommunicationSig A&D - Documentation And Communication
Sig A&D - Documentation And CommunicationDavid Meijers
 
PhD defense: David Ameller
PhD defense: David AmellerPhD defense: David Ameller
PhD defense: David AmellerDavid Ameller
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Mozaic Works
 
Software Architectural And Detailed Design Description Template
Software Architectural And Detailed Design Description TemplateSoftware Architectural And Detailed Design Description Template
Software Architectural And Detailed Design Description TemplateArash Sharif
 
Software Architecture Document Final
Software Architecture Document FinalSoftware Architecture Document Final
Software Architecture Document FinalAli Ahmed
 
Technical Architecture
Technical ArchitectureTechnical Architecture
Technical Architecturescmiyer
 
Structured Approach to Solution Architecture
Structured Approach to Solution ArchitectureStructured Approach to Solution Architecture
Structured Approach to Solution ArchitectureAlan McSweeney
 

Destacado (9)

Sig A&D - Documentation And Communication
Sig A&D - Documentation And CommunicationSig A&D - Documentation And Communication
Sig A&D - Documentation And Communication
 
PhD defense: David Ameller
PhD defense: David AmellerPhD defense: David Ameller
PhD defense: David Ameller
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
 
Software Architectural And Detailed Design Description Template
Software Architectural And Detailed Design Description TemplateSoftware Architectural And Detailed Design Description Template
Software Architectural And Detailed Design Description Template
 
Software Architecture Document Final
Software Architecture Document FinalSoftware Architecture Document Final
Software Architecture Document Final
 
Documenting Software Architectures
Documenting Software ArchitecturesDocumenting Software Architectures
Documenting Software Architectures
 
Technical Architecture
Technical ArchitectureTechnical Architecture
Technical Architecture
 
Architecture Document Template
Architecture Document TemplateArchitecture Document Template
Architecture Document Template
 
Structured Approach to Solution Architecture
Structured Approach to Solution ArchitectureStructured Approach to Solution Architecture
Structured Approach to Solution Architecture
 

Similar a 4+1

R1x g02 enterprise architecture i
R1x g02 enterprise architecture iR1x g02 enterprise architecture i
R1x g02 enterprise architecture icairo university
 
Lect-4: UML diagrams - Unified Modeling Language - SPM
Lect-4: UML diagrams - Unified Modeling Language - SPMLect-4: UML diagrams - Unified Modeling Language - SPM
Lect-4: UML diagrams - Unified Modeling Language - SPMMubashir Ali
 
Introduction.pptx
Introduction.pptxIntroduction.pptx
Introduction.pptxSENTHILR44
 
Introduction to Unified Modeling Language
Introduction to Unified Modeling LanguageIntroduction to Unified Modeling Language
Introduction to Unified Modeling LanguageAMITJain879
 
What are the diagrams defined in the UML Standard. Give a one or two.pdf
What are the diagrams defined in the UML Standard. Give a one or two.pdfWhat are the diagrams defined in the UML Standard. Give a one or two.pdf
What are the diagrams defined in the UML Standard. Give a one or two.pdffedosys
 
Unified modeling language diagrams
Unified modeling language diagramsUnified modeling language diagrams
Unified modeling language diagramsAlaa Ahmed
 
UML Diagrams.ppt
UML Diagrams.pptUML Diagrams.ppt
UML Diagrams.pptjeyasrig
 
Class diagrams are a type of UML (Unified Modeling Language) diagram used in ...
Class diagrams are a type of UML (Unified Modeling Language) diagram used in ...Class diagrams are a type of UML (Unified Modeling Language) diagram used in ...
Class diagrams are a type of UML (Unified Modeling Language) diagram used in ...NALESVPMEngg
 
Software Engineering Tools and Practices.pdf
Software Engineering Tools and Practices.pdfSoftware Engineering Tools and Practices.pdf
Software Engineering Tools and Practices.pdfMeagGhn
 

Similar a 4+1 (20)

Uml.pptx
Uml.pptxUml.pptx
Uml.pptx
 
R1x g02 enterprise architecture i
R1x g02 enterprise architecture iR1x g02 enterprise architecture i
R1x g02 enterprise architecture i
 
Uml
UmlUml
Uml
 
0136061257
01360612570136061257
0136061257
 
Lect-4: UML diagrams - Unified Modeling Language - SPM
Lect-4: UML diagrams - Unified Modeling Language - SPMLect-4: UML diagrams - Unified Modeling Language - SPM
Lect-4: UML diagrams - Unified Modeling Language - SPM
 
Introduction.pptx
Introduction.pptxIntroduction.pptx
Introduction.pptx
 
Case Study Uml
Case Study UmlCase Study Uml
Case Study Uml
 
Case stydy cs701
Case stydy cs701 Case stydy cs701
Case stydy cs701
 
Introduction to Unified Modeling Language
Introduction to Unified Modeling LanguageIntroduction to Unified Modeling Language
Introduction to Unified Modeling Language
 
Object oriented analysis and design unit- iv
Object oriented analysis and design unit- ivObject oriented analysis and design unit- iv
Object oriented analysis and design unit- iv
 
UML Diagrams.ppt
UML Diagrams.pptUML Diagrams.ppt
UML Diagrams.ppt
 
What are the diagrams defined in the UML Standard. Give a one or two.pdf
What are the diagrams defined in the UML Standard. Give a one or two.pdfWhat are the diagrams defined in the UML Standard. Give a one or two.pdf
What are the diagrams defined in the UML Standard. Give a one or two.pdf
 
Unified modeling language diagrams
Unified modeling language diagramsUnified modeling language diagrams
Unified modeling language diagrams
 
UML Diagrams_UNIT III.ppt
UML Diagrams_UNIT III.pptUML Diagrams_UNIT III.ppt
UML Diagrams_UNIT III.ppt
 
UML Diagrams.ppt
UML Diagrams.pptUML Diagrams.ppt
UML Diagrams.ppt
 
Class diagrams are a type of UML (Unified Modeling Language) diagram used in ...
Class diagrams are a type of UML (Unified Modeling Language) diagram used in ...Class diagrams are a type of UML (Unified Modeling Language) diagram used in ...
Class diagrams are a type of UML (Unified Modeling Language) diagram used in ...
 
Uml Diagrams
Uml DiagramsUml Diagrams
Uml Diagrams
 
Lecture 3
Lecture 3Lecture 3
Lecture 3
 
Capturing System Behaviour
Capturing System BehaviourCapturing System Behaviour
Capturing System Behaviour
 
Software Engineering Tools and Practices.pdf
Software Engineering Tools and Practices.pdfSoftware Engineering Tools and Practices.pdf
Software Engineering Tools and Practices.pdf
 

Último

VIP High Profile Call Girls Jamshedpur Aarushi 8250192130 Independent Escort ...
VIP High Profile Call Girls Jamshedpur Aarushi 8250192130 Independent Escort ...VIP High Profile Call Girls Jamshedpur Aarushi 8250192130 Independent Escort ...
VIP High Profile Call Girls Jamshedpur Aarushi 8250192130 Independent Escort ...Suhani Kapoor
 
OSU毕业证留学文凭,制做办理
OSU毕业证留学文凭,制做办理OSU毕业证留学文凭,制做办理
OSU毕业证留学文凭,制做办理cowagem
 
Delhi Call Girls Greater Noida 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Greater Noida 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Greater Noida 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Greater Noida 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
VIP Call Girl Cuttack Aashi 8250192130 Independent Escort Service Cuttack
VIP Call Girl Cuttack Aashi 8250192130 Independent Escort Service CuttackVIP Call Girl Cuttack Aashi 8250192130 Independent Escort Service Cuttack
VIP Call Girl Cuttack Aashi 8250192130 Independent Escort Service CuttackSuhani Kapoor
 
Final Completion Certificate of Marketing Management Internship
Final Completion Certificate of Marketing Management InternshipFinal Completion Certificate of Marketing Management Internship
Final Completion Certificate of Marketing Management InternshipSoham Mondal
 
CFO_SB_Career History_Multi Sector Experience
CFO_SB_Career History_Multi Sector ExperienceCFO_SB_Career History_Multi Sector Experience
CFO_SB_Career History_Multi Sector ExperienceSanjay Bokadia
 
Production Day 1.pptxjvjbvbcbcb bj bvcbj
Production Day 1.pptxjvjbvbcbcb bj bvcbjProduction Day 1.pptxjvjbvbcbcb bj bvcbj
Production Day 1.pptxjvjbvbcbcb bj bvcbjLewisJB
 
Low Rate Call Girls Cuttack Anika 8250192130 Independent Escort Service Cuttack
Low Rate Call Girls Cuttack Anika 8250192130 Independent Escort Service CuttackLow Rate Call Girls Cuttack Anika 8250192130 Independent Escort Service Cuttack
Low Rate Call Girls Cuttack Anika 8250192130 Independent Escort Service CuttackSuhani Kapoor
 
VIP Call Girls Service Jamshedpur Aishwarya 8250192130 Independent Escort Ser...
VIP Call Girls Service Jamshedpur Aishwarya 8250192130 Independent Escort Ser...VIP Call Girls Service Jamshedpur Aishwarya 8250192130 Independent Escort Ser...
VIP Call Girls Service Jamshedpur Aishwarya 8250192130 Independent Escort Ser...Suhani Kapoor
 
VIP Call Girls Service Saharanpur Aishwarya 8250192130 Independent Escort Ser...
VIP Call Girls Service Saharanpur Aishwarya 8250192130 Independent Escort Ser...VIP Call Girls Service Saharanpur Aishwarya 8250192130 Independent Escort Ser...
VIP Call Girls Service Saharanpur Aishwarya 8250192130 Independent Escort Ser...Suhani Kapoor
 
Experience Certificate - Marketing Analyst-Soham Mondal.pdf
Experience Certificate - Marketing Analyst-Soham Mondal.pdfExperience Certificate - Marketing Analyst-Soham Mondal.pdf
Experience Certificate - Marketing Analyst-Soham Mondal.pdfSoham Mondal
 
Sonam +91-9537192988-Mind-blowing skills and techniques of Ahmedabad Call Girls
Sonam +91-9537192988-Mind-blowing skills and techniques of Ahmedabad Call GirlsSonam +91-9537192988-Mind-blowing skills and techniques of Ahmedabad Call Girls
Sonam +91-9537192988-Mind-blowing skills and techniques of Ahmedabad Call GirlsNiya Khan
 
女王大学硕士毕业证成绩单(加急办理)认证海外毕业证
女王大学硕士毕业证成绩单(加急办理)认证海外毕业证女王大学硕士毕业证成绩单(加急办理)认证海外毕业证
女王大学硕士毕业证成绩单(加急办理)认证海外毕业证obuhobo
 
Dubai Call Girls Demons O525547819 Call Girls IN DUbai Natural Big Boody
Dubai Call Girls Demons O525547819 Call Girls IN DUbai Natural Big BoodyDubai Call Girls Demons O525547819 Call Girls IN DUbai Natural Big Boody
Dubai Call Girls Demons O525547819 Call Girls IN DUbai Natural Big Boodykojalkojal131
 
Delhi Call Girls In Atta Market 9711199012 Book Your One night Stand Call Girls
Delhi Call Girls In Atta Market 9711199012 Book Your One night Stand Call GirlsDelhi Call Girls In Atta Market 9711199012 Book Your One night Stand Call Girls
Delhi Call Girls In Atta Market 9711199012 Book Your One night Stand Call Girlsshivangimorya083
 
VIP Call Girls in Cuttack Aarohi 8250192130 Independent Escort Service Cuttack
VIP Call Girls in Cuttack Aarohi 8250192130 Independent Escort Service CuttackVIP Call Girls in Cuttack Aarohi 8250192130 Independent Escort Service Cuttack
VIP Call Girls in Cuttack Aarohi 8250192130 Independent Escort Service CuttackSuhani Kapoor
 
Call Girl in Low Price Delhi Punjabi Bagh 9711199012
Call Girl in Low Price Delhi Punjabi Bagh  9711199012Call Girl in Low Price Delhi Punjabi Bagh  9711199012
Call Girl in Low Price Delhi Punjabi Bagh 9711199012sapnasaifi408
 
Low Rate Call Girls Gorakhpur Anika 8250192130 Independent Escort Service Gor...
Low Rate Call Girls Gorakhpur Anika 8250192130 Independent Escort Service Gor...Low Rate Call Girls Gorakhpur Anika 8250192130 Independent Escort Service Gor...
Low Rate Call Girls Gorakhpur Anika 8250192130 Independent Escort Service Gor...Suhani Kapoor
 
Dubai Call Girls Naija O525547819 Call Girls In Dubai Home Made
Dubai Call Girls Naija O525547819 Call Girls In Dubai Home MadeDubai Call Girls Naija O525547819 Call Girls In Dubai Home Made
Dubai Call Girls Naija O525547819 Call Girls In Dubai Home Madekojalkojal131
 
Delhi Call Girls South Ex 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls South Ex 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls South Ex 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls South Ex 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 

Último (20)

VIP High Profile Call Girls Jamshedpur Aarushi 8250192130 Independent Escort ...
VIP High Profile Call Girls Jamshedpur Aarushi 8250192130 Independent Escort ...VIP High Profile Call Girls Jamshedpur Aarushi 8250192130 Independent Escort ...
VIP High Profile Call Girls Jamshedpur Aarushi 8250192130 Independent Escort ...
 
OSU毕业证留学文凭,制做办理
OSU毕业证留学文凭,制做办理OSU毕业证留学文凭,制做办理
OSU毕业证留学文凭,制做办理
 
Delhi Call Girls Greater Noida 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Greater Noida 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Greater Noida 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Greater Noida 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
VIP Call Girl Cuttack Aashi 8250192130 Independent Escort Service Cuttack
VIP Call Girl Cuttack Aashi 8250192130 Independent Escort Service CuttackVIP Call Girl Cuttack Aashi 8250192130 Independent Escort Service Cuttack
VIP Call Girl Cuttack Aashi 8250192130 Independent Escort Service Cuttack
 
Final Completion Certificate of Marketing Management Internship
Final Completion Certificate of Marketing Management InternshipFinal Completion Certificate of Marketing Management Internship
Final Completion Certificate of Marketing Management Internship
 
CFO_SB_Career History_Multi Sector Experience
CFO_SB_Career History_Multi Sector ExperienceCFO_SB_Career History_Multi Sector Experience
CFO_SB_Career History_Multi Sector Experience
 
Production Day 1.pptxjvjbvbcbcb bj bvcbj
Production Day 1.pptxjvjbvbcbcb bj bvcbjProduction Day 1.pptxjvjbvbcbcb bj bvcbj
Production Day 1.pptxjvjbvbcbcb bj bvcbj
 
Low Rate Call Girls Cuttack Anika 8250192130 Independent Escort Service Cuttack
Low Rate Call Girls Cuttack Anika 8250192130 Independent Escort Service CuttackLow Rate Call Girls Cuttack Anika 8250192130 Independent Escort Service Cuttack
Low Rate Call Girls Cuttack Anika 8250192130 Independent Escort Service Cuttack
 
VIP Call Girls Service Jamshedpur Aishwarya 8250192130 Independent Escort Ser...
VIP Call Girls Service Jamshedpur Aishwarya 8250192130 Independent Escort Ser...VIP Call Girls Service Jamshedpur Aishwarya 8250192130 Independent Escort Ser...
VIP Call Girls Service Jamshedpur Aishwarya 8250192130 Independent Escort Ser...
 
VIP Call Girls Service Saharanpur Aishwarya 8250192130 Independent Escort Ser...
VIP Call Girls Service Saharanpur Aishwarya 8250192130 Independent Escort Ser...VIP Call Girls Service Saharanpur Aishwarya 8250192130 Independent Escort Ser...
VIP Call Girls Service Saharanpur Aishwarya 8250192130 Independent Escort Ser...
 
Experience Certificate - Marketing Analyst-Soham Mondal.pdf
Experience Certificate - Marketing Analyst-Soham Mondal.pdfExperience Certificate - Marketing Analyst-Soham Mondal.pdf
Experience Certificate - Marketing Analyst-Soham Mondal.pdf
 
Sonam +91-9537192988-Mind-blowing skills and techniques of Ahmedabad Call Girls
Sonam +91-9537192988-Mind-blowing skills and techniques of Ahmedabad Call GirlsSonam +91-9537192988-Mind-blowing skills and techniques of Ahmedabad Call Girls
Sonam +91-9537192988-Mind-blowing skills and techniques of Ahmedabad Call Girls
 
女王大学硕士毕业证成绩单(加急办理)认证海外毕业证
女王大学硕士毕业证成绩单(加急办理)认证海外毕业证女王大学硕士毕业证成绩单(加急办理)认证海外毕业证
女王大学硕士毕业证成绩单(加急办理)认证海外毕业证
 
Dubai Call Girls Demons O525547819 Call Girls IN DUbai Natural Big Boody
Dubai Call Girls Demons O525547819 Call Girls IN DUbai Natural Big BoodyDubai Call Girls Demons O525547819 Call Girls IN DUbai Natural Big Boody
Dubai Call Girls Demons O525547819 Call Girls IN DUbai Natural Big Boody
 
Delhi Call Girls In Atta Market 9711199012 Book Your One night Stand Call Girls
Delhi Call Girls In Atta Market 9711199012 Book Your One night Stand Call GirlsDelhi Call Girls In Atta Market 9711199012 Book Your One night Stand Call Girls
Delhi Call Girls In Atta Market 9711199012 Book Your One night Stand Call Girls
 
VIP Call Girls in Cuttack Aarohi 8250192130 Independent Escort Service Cuttack
VIP Call Girls in Cuttack Aarohi 8250192130 Independent Escort Service CuttackVIP Call Girls in Cuttack Aarohi 8250192130 Independent Escort Service Cuttack
VIP Call Girls in Cuttack Aarohi 8250192130 Independent Escort Service Cuttack
 
Call Girl in Low Price Delhi Punjabi Bagh 9711199012
Call Girl in Low Price Delhi Punjabi Bagh  9711199012Call Girl in Low Price Delhi Punjabi Bagh  9711199012
Call Girl in Low Price Delhi Punjabi Bagh 9711199012
 
Low Rate Call Girls Gorakhpur Anika 8250192130 Independent Escort Service Gor...
Low Rate Call Girls Gorakhpur Anika 8250192130 Independent Escort Service Gor...Low Rate Call Girls Gorakhpur Anika 8250192130 Independent Escort Service Gor...
Low Rate Call Girls Gorakhpur Anika 8250192130 Independent Escort Service Gor...
 
Dubai Call Girls Naija O525547819 Call Girls In Dubai Home Made
Dubai Call Girls Naija O525547819 Call Girls In Dubai Home MadeDubai Call Girls Naija O525547819 Call Girls In Dubai Home Made
Dubai Call Girls Naija O525547819 Call Girls In Dubai Home Made
 
Delhi Call Girls South Ex 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls South Ex 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls South Ex 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls South Ex 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 

4+1

  • 1. Applying 4+1 View Architecture with UML 2 White Paper
  • 2. Copyright ©2007 FCGSS, all rights reserved. www.fcgss.com
  • 3. Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was released in 2004, building on an already successful UML 1.x standard. UML 2 comes with 13 basic diagram types to support Model Driven Architecture (MDA) and Model Driven Development (MDD). Philippe Kruchten originally presented the 4+1 View Model to describe the architecture of software-intensive systems. This approach uses multiple views to separate stakeholders’ concerns. The 4+1 View Approach is widely accepted by the software industry to represent application architecture blueprints. However, the industry has not yet completely embraced UML 2. IT architects are continuing with UML 1.x artifacts to represent architecture and are consequently missing out on the powerful benefits of the improvements made in UML 2. This article presents the approach for 4+1 View Architecture using UML 2 diagrams. It enhances the original concept of the approach using the current modeling standards and techniques, and aims to encourage Application Architects to adapt relevant UML 2 artifacts. This article discusses each of the views and allocates the UML 2 diagrams to these views. It does not, however, teach semantics and modeling using UML 2 notations. The audience is expected to have a basic understanding of UML and to be able to refer to UML 2 for further details. UML 2 Diagrams Let us briefly review the diagrams available in UML 2 Specification. UML 2 Superstructure Specification divides the 13 basic diagram types into two key categories: • Part I – Structural Diagrams: These diagrams are used to define static architecture. They comprise static constructs such as classes, objects, and components, and the relationships between these elements. There are six structural diagrams: Package Diagrams, Class Diagrams, Object Diagrams, Composite Structure Diagrams, Component Diagrams and Deployment Diagrams. • Part II – Behavioral Diagrams: These diagrams are used to represent dynamic architecture. They comprise behavioral constructs such as activities, states, timelines and the messages that run between different objects. These diagrams are used to represent the interactions among various model elements and instantaneous states over a time period. There are seven behavioral diagrams: Use Case Diagrams, Activity Diagrams, State Machine Diagrams, Communication Diagrams, Sequence Diagrams, Timing Diagrams and Interaction Overview Diagrams. UML 2 has introduced Composite Structure, Object, Timing and Interaction Overview diagrams. The remaining diagrams were borrowed from UML 1.x, although some of them were changed significantly. 4+1 View Architecture The fundamental organization of a software system can be represented by: • Structural elements and their interfaces that comprise or form a system • Behavior represented by collaboration among the structural elements • Composition of Structural and Behavioral elements into larger subsystems Such compositions are guided by desired abilities (non-functional requirements) like usability, resilience, performance, re-use, comprehensibility, economic and technology constraints and trade-offs etc. Also, there are cross-cutting concerns (like security and transaction management) that apply across all the functional elements 1
  • 4. Architecture also means different things to different stakeholders. For example, a Network Engineer would only be interested in the hardware and network configuration of the system; a Project Manager in the key components to be developed and their timelines; a Developer in classes that make up a component; and a Tester in scenarios. So we need multiple view points for distinct stakeholders’ needs, showing what is relevant while masking the details that are irrelevant. The 4+1 View Approach is an ‘architecture style’ to organize an application’s architecture representations into views to meet individual stakeholder’s needs. Figure 1 shows the views in the 4+1 View Architecture. Logical View (Object Oriented Decomposition) This view focuses on realizing an application’s functionality in terms of structural elements, key abstractions and mechanisms, separation of concerns and distribution of responsibilities. Architects use this view for functional analysis. The logical architecture is represented at different levels of abstraction and progressively evolves in iterations. 1. Vertical and horizontal divisions – The application can be vertically divided into significant functional areas (i.e., order capture subsystems, order processing subsystems). – Or, it can be horizontally divided into a layered architecture distributing responsibilities among these layers (i.e., presentation layers, services layers, business logic layers, and data access layers). 2. Representation of structural elements as classes or objects and their relationships. 2 ” “Logical View Process View Implementation View Deployment View Use Case View Functionality Configuration Management Performance Scalability Throughput CONCEPTUAL PHYSICAL Scenarios Figure 1: 4+1 View Model Software Architecture is the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution. — The definition of Software Architecture as per IEEE Recommended Practice for Architectural Description of Software- Intensive Systems (IEEE 1471-2000)
  • 5. UML 2 provides an elaborate set of diagrams to create a Logical View: 1. Class Diagrams or Structural Diagrams: These diagrams define the basic building blocks of a model. They focus on each individual class, the main operations and relationships to other classes’ associations, usage, composition, inheritance etc. 2. Object Diagrams: These diagrams show how instances of structural elements are related. They help understand the class diagrams when the relationships are complex. The object diagrams were informally used in the UML 1.x world; in UML 2 they are formal artifacts. 3. Package Diagrams: These diagrams are used to divide the model into logical containers or ‘packages’. They can be used to represent vertical and horizontal divisions as packages. 4. Composite Structure Diagrams: These diagrams help in modeling the parts contained by a class and the relationships between the parts. When parts are related, such diagrams significantly simplify the relationships between the classes. Ports are used to represent how a class hooks into the environment. These diagrams support collaborations that can be used to represent design patterns of cooperating objects. UML 2 has introduced these diagrams as a major improvement over earlier structural constructs. 5. State Machine Diagrams: These diagrams are necessary to understand the instant states of an object defined by a class. These diagrams are optionally used when there is a need to understand the possible states of a class. The diagram notations are intentionally kept out of the scope of this document. Please refer to Sparx Systems’ online tutorial to understand the notations (http://sparxsystems.com/resources/uml2_tutorial/). While modeling for the Logical View, start with the Class and Package diagrams and expand as necessary. Figure 2 shows the modeling approach for the Logical View. UML also provides profiles for data modeling using Entity Relationship (ER) Diagrams. ER Diagrams can also be considered as another form of Logical View. Some Architects prefer to capture ER Diagrams in a separate view called Data View. 3 Class Diagrams Composite Structure Diagrams Object Diagrams State Diagrams Package Diagrams MODELING LOGICAL VIEW WITH UML2 1. Start with class diagrams to model the system 2. Use package diagrams to logically group diagrams Optional use 3. Object diagrams when relationships between classes need to be explained through instances 4. State Charts when internal states of a specific class are to be explained 5. Composite Structures when parts of a class and relationships between parts are to be modeled Figure 2: Modeling Logical View
  • 6. Process View (Process Decomposition) This view considers non-functional aspects such as performance, scalability and throughput. It addresses the issues of concurrency, distribution and fault tolerance. It shows the main abstractions from the Logical View executing over a thread as an operation. A process is a group of tasks that form an executable unit; a software system is partitioned into sets of tasks. Each task is a thread of control that executes with collaboration among different structural elements (from the Logical View). Process View also encompasses re-usable interaction patterns to solve recurring problems and to meet non-functional service levels. The process architecture can be represented at various levels of abstraction such as interactions between systems, subsystems and objects etc. based on the need. The Process view can be represented by the following UML 2 diagrams: 1. Sequence Diagrams: These diagrams show the sequence of messages passed between the objects on a vertical timeline. UML 2 has made significant improvements on Sequence diagram notations to aid Model Driven Development. The fragment types such as loop, assert, break and alt help in diagramming to the level of detail that keeps code and models in sync – not just in terms of structure, but also in behavior. Today’s modeling tools are yet to catch up on utilizing the power of UML 2 Sequence diagrams. 2. Communication Diagrams: These diagrams show communications between objects at runtime during a collaboration instance. These diagrams are closely related to Sequence diagrams. While Sequence diagrams are focused on the flow of messages throughout an interaction over a timeline, the Communication diagrams focus on the links between the participants; they were previously called Collaboration diagrams. In addition to changing the name, UML 2 has made improvements relative to Sequence diagrams. 3. Activity Diagrams: These diagrams are similar to flowcharts and have a wide range of uses in different view points. In the process view, they can be used to depict the program flows and complex business logic with actions, decision points, branching, merging and parallel processing. UML 2 has made several improvements and standardized the Activity Diagram constructs. Now you can also represent the time events, external sending and receiving signals in the Activity Diagrams. 4. Timing Diagrams: Timing Diagrams specifically address modeling for performance. They depict the amount of time allowed for a participant to receive events and switch between the states, and how long a participant can stay in a specific state. These diagrams were introduced in UML 2 and can be used for performance design. 5. Interaction Overview Diagrams: These diagrams provide an overview of how several interactions work together to implement a system concern. They are a fusion of Activity, Sequence and Timing Diagrams. Each part of an interaction could be represented by a distinct diagram type. UML 2 introduces these diagrams and they can be used to aid high-level overviews and understand the overall system behavior. While modeling for Process View, you can start with either Sequence or Communication diagrams. Both these diagrams can be created from each other, so it is merely a personal preference on which one to use. As the scenarios get complex, you can use other diagrams. Figure 3 shows the order of modeling for Process View with UML 2 diagrams. 4
  • 7. Implementation or Development View (Subsystem Decomposition) This is a view of a system’s architecture that encompasses the components used to assemble and release a physical system. This view focuses on configuration management and actual software module organization in the development environment. The software is actually packaged into components that can be developed and tested by the development team. While the Logical View is at the conceptual level, the diagrams in this view represent the physical-level artifacts that are built by the team. Component Diagrams are used to represent the Implementation View. These diagrams show different components, the ports available and the dependencies on the environment in terms of provided and required interfaces. UML 2 has improved the Component Diagrams specifically with the interfaces and ports. The components can be tied to the classes and composite structures that realize these components. These diagrams can now be used to precisely represent the software components built in a system and their dependencies both in black-box and white-box views. Deployment or Physical View (Mapping Software to Hardware) This view encompasses the nodes that form the system’s hardware topology on which the system executes; it focuses on distribution, communication and provisioning. The software executes on a network of computers, or processing nodes. The various elements such as processes, tasks and objects need to be mapped to the nodes on which they execute. These physical configurations can differ between production, development and testing environments. The software should be built to be flexible to scale across these hardware changes. Hence, this view accommodates the non-functional requirements such as availability, reliability, performance, throughput and scalability. This view provides all possible hardware configurations, and maps the components from the Implementation View to these configurations. 5 Sequence Diagrams Communicati on Diagrams Activity Diagrams Scenario Timing Diagrams Interaction Overview Diagrams MODELING PROCESS VIEW WITH UML2 1. Use either Sequence or Communication Diagrams for modeling simple interactions in use case realizations Optional use 2. Add Activity diagrams to realize scenarios where business logic is a sequence of actions and involves branching and parallel processing 3. Add timing diagrams when modeling for performance 4. For complex scenarios, that can be composed of other scenarios, use Interaction overview diagrams Figure 3: Modeling Process View
  • 8. Deployment Diagrams show the physical disposition of the artifacts in the real-world setting. UML provides constructs to represent Nodes such as devices, execution environment and middleware; artifacts such as jar files and connections; and dependencies between these devices. The nodes can be embedded, for example, representing the application server running within the physical device. UML uses very simple notation for nodes and artifacts. However, the current modeling tools allow you to import external images to depict these nodes. Use Case View or Scenarios (putting all together) In addition to the four views discussed above, this is the central view for capturing scenarios. The Use Case View encompasses the use cases that describe the behavior of the system as seen by its end users and other stakeholders. Although traditionally discussed as the last view, this is the first view created in the system development lifecycle. This view represents the scenarios that tie the four views together, and forms the reason why all the other views exist. With all other views in place, this view seems redundant (hence +1). However it represents the architecturally significant requirements in the form of scenarios. It also aids to verify that all the required scenarios are met. UML 2 provides the Use Case Diagrams to represent this view. These diagrams are comprised of use cases and actors. They are closely tied to detailed scenario descriptions in text. As an architecture view, we are only interested in significant use cases that need to be modeled. Activity Diagrams can also be used to represent scenarios and business processes. The current UML tools are well geared to generate the business process automation code from activity diagrams. So the activity diagrams can be used to both represent the requirements in the Use Case View and executable processes in the Process View. Figure 4 shows the UML diagrams allocated to the views on the 4+1 View Model. 6 CONCEPTUAL PHYSICAL Figure 4: 4+1 View Model with UML2 Logical View Process View Implementation View Deployment View Use Case View Class, Object, Package, Composite Structure, State Machine Component Sequence, Communication, Activity, Timing, Interaction Overview Deployment Use Case, Activity
  • 9. Relationships between Views The Logical View and the Process View are at a conceptual level and are used from analysis to design. The Implementation View and the Deployment View are at the physical level and represent the actual application components built and deployed. The Logical View and the Implementation View are tied closer to functionality. They depict how functionality is modeled and implemented. The Process View and Deployment View realizes the non-functional aspects using behavioral and physical modeling. Use Case View leads to structural elements being analyzed in the Logical View and implemented in the Development View. The scenarios in the Use Case View are realized in the Process View and deployed in the Physical View. Conclusion UML 2 has made significant improvements in its constructs that affect the representations in Logical and Process Views. Architects today have additional diagrams to model the functional and non-functional aspects and communicate them to the teams. Typically, the views in the 4+1 View approach are sufficient to model the Application Architecture. Additional views such as Security View and Data View could be added based on the specific application’s requirements. It should also be noted that the 4+1 View Approach is best suited to represent the Application Architecture. More complex view points are necessary if you need to depict the Enterprise Architecture for an entire organization. References and Further Reading 1. Philippe Kruchten’s original publication on 4+1 View Approach, www.win.tue.nl/~mchaudro/sa2004/Kruchten4+1.pdf 2. UML 2 Superstructure Specification from OMG, http://www.omg.org/technology/documents/modeling_spec_catalog.htm 3. Grady Booch’s presentation on Software Architecture, www.booch.com/architecture/blog/artifacts/Software%20Architecture.ppt 4. Learning UML 2.0 (O'Reilly), Russ Miles & Kim Hamilton 5. UML 2.0 in a Nutshell (O'Reilly), Dan Pilone and Neil Pitman 6. UML 2 Tutorials from Sparx Systems, (http://sparxsystems.com/resources/uml2_tutorial/) Acknowledgements My acknowledgements to Martin Israelsen, Director of Technology and Architecture, FCG Software Services, for his technical review and invaluable inputs on this article. Special thanks to Suzanne Cain, Marketing Specialist, FCG Software Services, for editing this document and Papia Roy, First Consulting Group, for designing and finalizing it. About the Author Veer Muchandi is a Senior Technical Architect with FCG Software Services. He has been providing IT Solutions for over 14 years. His areas of expertise include requirements, business modeling and solution architecture. He is a Sun Certified Enterprise Architect and OMG Certified UML Professional. Veer lives in Atlanta, Georgia. 7
  • 10. About FCG Software Services FCG Software Services (FCGSS), a division of First Consulting Group, is a U.S. software development company that has provided on-site/offshore software development and other IT-enabled services for over ten years. Assessed at CMMI Level 5, FCGSS has offshore development centers located in Bangalore, India, and Ho Chi Minh City, Vietnam. FCGSS’ experienced personnel work on-site with organizations to define requirements, design software solutions and coordinate the activities of the offshore development teams. Through a combination of qualified resources, a sound development methodology and a wide domain of technical expertise, FCGSS delivers high quality products at significantly reduced rates. About the Publisher Sparx Systems is a software development company specializing in high performance, and highly productive and scalable visual tools for the planning, design and construction of software-intensive systems. With customers in industries ranging from aerospace and automotive engineering to finance, defense, government, entertainment and telecommunications, Sparx Systems is a leading vendor of innovative solutions based on the Unified Modeling Language (UML) and its related specifications. A Contributing Member of the Object Management Group (OMG), Sparx Systems is committed to realizing the potential of model-driven development based on open standards. The company’s flagship product, Enterprise Architect, has received numerous accolades since its commercial release in August, 2000. Now at version 6.5, Enterprise Architect is the design tool of choice for over 100,000 registered users in more than 60 countries worldwide.
  • 11. 11675 Great Oaks Way, Suite 144 Alpharetta, GA 30022 www.fcgss.com 678-229-1100 ©2007 FCGSS_US_WP_Applying 4+1 w_UML2