Applying 4 1 View Architecture With UML 2

2y ago
54 Views
2 Downloads
210.84 KB
11 Pages
Last View : 3d ago
Last Download : 3m ago
Upload by : Carlos Cepeda
Transcription

Applying 4 1 View Architecture with UML 2White Paper

Copyright 2007 FCGSS, all rights reserved.www.fcgss.com

IntroductionUnified Modeling Language (UML) has been available since 1997, and UML 2 wasreleased in 2004, building on an already successful UML 1.x standard. UML 2 comeswith 13 basic diagram types to support Model Driven Architecture (MDA) and ModelDriven Development (MDD).Philippe Kruchten originally presented the 4 1 View Model to describe the architecture ofsoftware-intensive systems. This approach uses multiple views to separate stakeholders’concerns. The 4 1 View Approach is widely accepted by the software industry torepresent application architecture blueprints. However, the industry has not yetcompletely embraced UML 2. IT architects are continuing with UML 1.x artifacts torepresent architecture and are consequently missing out on the powerful benefits of theimprovements made in UML 2.This article presents the approach for 4 1 View Architecture using UML 2 diagrams. Itenhances the original concept of the approach using the current modeling standards andtechniques, and aims to encourage Application Architects to adapt relevant UML 2artifacts. This article discusses each of the views and allocates the UML 2 diagrams tothese 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 toUML 2 for further details.UML 2 DiagramsLet us briefly review the diagrams available in UML 2 Specification.UML 2 Superstructure Specification divides the 13 basic diagram types into two keycategories: Part I – Structural Diagrams: These diagrams are used to define static architecture.They comprise static constructs such as classes, objects, and components, and therelationships between these elements. There are six structural diagrams: PackageDiagrams, Class Diagrams, Object Diagrams, Composite Structure Diagrams,Component Diagrams and Deployment Diagrams. Part II – Behavioral Diagrams: These diagrams are used to represent dynamicarchitecture. They comprise behavioral constructs such as activities, states, timelinesand the messages that run between different objects. These diagrams are used torepresent the interactions among various model elements and instantaneous states overa time period. There are seven behavioral diagrams: Use Case Diagrams, ActivityDiagrams, State Machine Diagrams, Communication Diagrams, Sequence Diagrams,Timing Diagrams and Interaction Overview Diagrams.UML 2 has introduced Composite Structure, Object, Timing and Interaction Overviewdiagrams. The remaining diagrams were borrowed from UML 1.x, although some of themwere changed significantly.4 1 View ArchitectureThe 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 subsystemsSuch compositions are guided by desired abilities (non-functional requirements) likeusability, resilience, performance, re-use, comprehensibility, economic and technologyconstraints and trade-offs etc. Also, there are cross-cutting concerns (like security andtransaction management) that apply across all the functional elements1

Architecture also means different things to different stakeholders. For example, aNetwork Engineer would only be interested in the hardware and network configuration ofthe system; a Project Manager in the key components to be developed and theirtimelines; 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 relevantwhile masking the details that are irrelevant.The 4 1 View Approach is an ‘architecture style’ to organize an application’s architecturerepresentations into views to meet individual stakeholder’s needs. Figure 1 shows theviews in the 4 1 View Architecture.CONCEPTUALPHYSICALLogical ViewImplementation ViewConfigurationManagementFunctionalityUse Case ViewScenariosProcess ViewDeployment ViewPerformanceScalabilityThroughputFigure 1: 4 1 View ModelLogical View (Object Oriented Decomposition)This view focuses on realizing an application’s functionality in terms of structuralelements, key abstractions and mechanisms, separation of concerns and distribution ofresponsibilities. Architects use this view for functional analysis.“Software Architecture is thefundamental organization ofa system, embodied in itscomponents, theirrelationships to each otherand the environment, andthe principles governing itsdesign and evolution.— The definition ofSoftware Architecture asper IEEE RecommendedPractice for ArchitecturalDescription of SoftwareIntensive Systems (IEEE1471-2000)”The logical architecture is represented at different levels of abstraction and progressivelyevolves 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 distributingresponsibilities 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

UML 2 provides an elaborate set of diagrams to create a Logical View:1. Class Diagrams or Structural Diagrams: These diagrams define the basic buildingblocks of a model. They focus on each individual class, the main operations andrelationships to other classes’ associations, usage, composition, inheritance etc.2. Object Diagrams: These diagrams show how instances of structural elements arerelated. 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 areformal artifacts.3. Package Diagrams: These diagrams are used to divide the model into logical containersor ‘packages’. They can be used to represent vertical and horizontal divisions aspackages.4. Composite Structure Diagrams: These diagrams help in modeling the parts containedby a class and the relationships between the parts. When parts are related, suchdiagrams significantly simplify the relationships between the classes. Ports are used torepresent how a class hooks into the environment. These diagrams supportcollaborations that can be used to represent design patterns of cooperating objects.UML 2 has introduced these diagrams as a major improvement over earlier structuralconstructs.5. State Machine Diagrams: These diagrams are necessary to understand the instantstates of an object defined by a class. These diagrams are optionally used when thereis 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 andexpand 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 Architectsprefer to capture ER Diagrams in a separate view called Data View.MODELING LOGICAL VIEW WITH DiagramsObjectDiagramsStateDiagrams1. Start with class diagrams to model the system2. Use package diagrams to logically group diagramsOptional use3. Object diagrams when relationships betweenclasses need to be explained through instances4. State Charts when internal states of a specificclass are to be explained5. Composite Structures when parts of a class andrelationships between parts are to be modeledFigure 2: Modeling Logical View3

Process View (Process Decomposition)This view considers non-functional aspects such as performance, scalability andthroughput. It addresses the issues of concurrency, distribution and fault tolerance. Itshows the main abstractions from the Logical View executing over a thread as anoperation. A process is a group of tasks that form an executable unit; a software systemis partitioned into sets of tasks. Each task is a thread of control that executes withcollaboration among different structural elements (from the Logical View). Process Viewalso encompasses re-usable interaction patterns to solve recurring problems and to meetnon-functional service levels.The process architecture can be represented at various levels of abstraction such asinteractions 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 betweenthe objects on a vertical timeline. UML 2 has made significant improvements onSequence diagram notations to aid Model Driven Development. The fragment typessuch as loop, assert, break and alt help in diagramming to the level of detail that keepscode and models in sync – not just in terms of structure, but also in behavior. Today’smodeling tools are yet to catch up on utilizing the power of UML 2 Sequence diagrams.2. Communication Diagrams: These diagrams show communications between objects atruntime during a collaboration instance. These diagrams are closely related toSequence diagrams. While Sequence diagrams are focused on the flow of messagesthroughout an interaction over a timeline, the Communication diagrams focus on thelinks between the participants; they were previously called Collaboration diagrams. Inaddition to changing the name, UML 2 has made improvements relative to Sequencediagrams.3. Activity Diagrams: These diagrams are similar to flowcharts and have a wide range ofuses in different view points. In the process view, they can be used to depict theprogram flows and complex business logic with actions, decision points, branching,merging and parallel processing. UML 2 has made several improvements andstandardized the Activity Diagram constructs. Now you can also represent the timeevents, 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 switchbetween the states, and how long a participant can stay in a specific state. Thesediagrams were introduced in UML 2 and can be used for performance design.5. Interaction Overview Diagrams: These diagrams provide an overview of how severalinteractions work together to implement a system concern. They are a fusion ofActivity, Sequence and Timing Diagrams. Each part of an interaction could berepresented by a distinct diagram type. UML 2 introduces these diagrams and theycan 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 Communicationdiagrams. Both these diagrams can be created from each other, so it is merely apersonal preference on which one to use. As the scenarios get complex, you can useother diagrams. Figure 3 shows the order of modeling for Process View withUML 2 diagrams.4

MODELING PROCESS VIEW WITH DiagramsInteractionOverviewDiagramsCommunication Diagrams1. Use either Sequence or Communication Diagramsfor modeling simple interactions in use caserealizationsOptional use2. Add Activity diagrams to realize scenarios wherebusiness logic is a sequence of actions andinvolves branching and parallel processing3. Add timing diagrams when modeling forperformance4. For complex scenarios, that can be composedof other scenarios, use Interaction overviewdiagramsFigure 3: Modeling Process ViewImplementation or Development View (Subsystem Decomposition)This is a view of a system’s architecture that encompasses the components used toassemble and release a physical system. This view focuses on configuration managementand actual software module organization in the development environment. The software isactually packaged into components that can be developed and tested by the developmentteam. While the Logical View is at the conceptual level, the diagrams in this viewrepresent the physical-level artifacts that are built by the team.Component Diagrams are used to represent the Implementation View. These diagramsshow different components, the ports available and the dependencies on the environmentin terms of provided and required interfaces. UML 2 has improved the ComponentDiagrams specifically with the interfaces and ports. The components can be tied to theclasses and composite structures that realize these components. These diagrams cannow be used to precisely represent the software components built in a system and theirdependencies 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 thesystem executes; it focuses on distribution, communication and provisioning.The software executes on a network of computers, or processing nodes. The variouselements such as processes, tasks and objects need to be mapped to the nodes on whichthey execute. These physical configurations can differ between production, developmentand testing environments. The software should be built to be flexible to scale acrossthese hardware changes. Hence, this view accommodates the non-functionalrequirements such as availability, reliability, performance, throughput and scalability.This view provides all possible hardware configurations, and maps the components fromthe Implementation View to these configurations.5

Deployment Diagrams show the physical disposition of the artifacts in the real-worldsetting. UML provides constructs to represent Nodes such as devices, executionenvironment and middleware; artifacts such as jar files and connections; anddependencies between these devices. The nodes can be embedded, for example,representing the application server running within the physical device. UML uses verysimple notation for nodes and artifacts. However, the current modeling tools allow you toimport 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 capturingscenarios. The Use Case View encompasses the use cases that describe the behavior ofthe system as seen by its end users and other stakeholders. Although traditionallydiscussed as the last view, this is the first view created in the system developmentlifecycle.This view represents the scenarios that tie the four views together, and forms the reasonwhy 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 formof 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 arecomprised of use cases and actors. They are closely tied to detailed scenariodescriptions in text. As an architecture view, we are only interested in significant usecases 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 automationcode from activity diagrams. So the activity diagrams can be used to both represent therequirements 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.CONCEPTUALPHYSICALLogical ViewClass, Object, Package,Composite Structure,State MachineImplementation ViewComponentUse Case ViewUse Case, ActivityProcess ViewSequence,Communication,Activity , Timing,Interaction OverviewDeployment ViewDeploymentFigure 4: 4 1 View Model with UML26

Relationships between ViewsThe Logical View and the Process View are at a conceptual level and are used fromanalysis to design. The Implementation View and the Deployment View are at the physicallevel and represent the actual application components built and deployed.The Logical View and the Implementation View are tied closer to functionality. They depicthow functionality is modeled and implemented. The Process View and Deployment Viewrealizes the non-functional aspects using behavioral and physical modeling.Use Case View leads to structural elements being analyzed in the Logical View andimplemented in the Development View. The scenarios in the Use Case View are realizedin the Process View and deployed in the Physical View.ConclusionUML 2 has made significant improvements in its constructs that affect therepresentations in Logical and Process Views. Architects today have additional diagramsto 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 ApplicationArchitecture. Additional views such as Security View and Data View could be addedbased on the specific application’s requirements. It should also be noted that the 4 1View Approach is best suited to represent the Application Architecture. More complexview points are necessary if you need to depict the Enterprise Architecture for an entireorganization.References and Further Reading1. Philippe Kruchten’s original publication on 4 1 View Approach,www.win.tue.nl/ mchaudro/sa2004/Kruchten4 1.pdf2. UML 2 Superstructure Specification from ng spec catalog.htm3. Grady Booch’s presentation on Software acts/Software%20Architecture.ppt4. Learning UML 2.0 (O'Reilly), Russ Miles & Kim Hamilton5. UML 2.0 in a Nutshell (O'Reilly), Dan Pilone and Neil Pitman6. UML 2 Tutorials from Sparx Systems,(http://sparxsystems.com/resources/uml2 tutorial/)AcknowledgementsMy acknowledgements to Martin Israelsen, Director of Technology and Architecture, FCGSoftware Services, for his technical review and invaluable inputs on this article. Specialthanks to Suzanne Cain, Marketing Specialist, FCG Software Services, for editing thisdocument and Papia Roy, First Consulting Group, for designing and finalizing it.About the AuthorVeer Muchandi is a Senior Technical Architect with FCG Software Services. He has beenproviding IT Solutions for over 14 years. His areas of expertise include requirements,business modeling and solution architecture. He is a Sun Certified Enterprise Architectand OMG Certified UML Professional. Veer lives in Atlanta, Georgia.7

About FCG Software ServicesFCG Software Services (FCGSS), a division of First Consulting Group, is aU.S. software development company that has provided on-site/offshoresoftware development and other IT-enabled services for over ten years.Assessed at CMMI Level 5, FCGSS has offshore development centerslocated in Bangalore, India, and Ho Chi Minh City, Vietnam. FCGSS’experienced personnel work on-site with organizations to definerequirements, design software solutions and coordinate the activities of theoffshore 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 PublisherSparx Systems is a software development company specializing in highperformance, and highly productive and scalable visual tools for the planning,design and construction of software-intensive systems. With customers inindustries ranging from aerospace and automotive engineering to finance,defense, government, entertainment and telecommunications, SparxSystems is a leading vendor of innovative solutions based on the UnifiedModeling Language (UML) and its related specifications. A ContributingMember of the Object Management Group (OMG), Sparx Systems iscommitted to realizing the potential of model-driven development based onopen standards. The company’s flagship product, Enterprise Architect, hasreceived numerous accolades since its commercial release in August, 2000.Now at version 6.5, Enterprise Architect is the design tool of choice forover 100,000 registered users in more than 60 countries worldwide.

11675 Great Oaks Way, Suite 144Alpharetta, GA 30022www.fcgss.com678-229-1100 2007 FCGSS US WP Applying 4 1 w UML2

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.

Related Documents:

grid orthographic drawing 3rd angle top view left view front view left view front view top view top view top view front view right view front view right view top view front view right view front view right view a compilation of drawings for developing the skill to draw in orthographic

What is Computer Architecture? “Computer Architecture is the science and art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals.” - WWW Computer Architecture Page An analogy to architecture of File Size: 1MBPage Count: 12Explore further(PDF) Lecture Notes on Computer Architecturewww.researchgate.netComputer Architecture - an overview ScienceDirect Topicswww.sciencedirect.comWhat is Computer Architecture? - Definition from Techopediawww.techopedia.com1. An Introduction to Computer Architecture - Designing .www.oreilly.comWhat is Computer Architecture? - University of Washingtoncourses.cs.washington.eduRecommended to you b

the so-called IBP inter-view prediction order, where left-side view (I view) is coded independently of other views, the right-side view (P view) may utilize inter-view predic-tion from the I view, and center view (B view) may be pre-dicted from both the I and P views. As can be seen the view order index values of the respective views (left, center,

support VMware Each VMware and virtual servers that can provide support, security and controllers for each VMware View Pod. The View Managem that supports up to 8 View Architecture Block (VVMB) and VMware View VDI Pod (VVVP) approach View Block in the reference architecture is defined as a group of hat support between 1 to 10 VMware View Pods. Each

The Sun News View Release San Jose Mercury News View Release The Miami Herald View Release. Star Tribune View Release CEO World News View Release AZ Central . Poteau Daily News View Release The Evening Leader View Release Wapakoneta Daily News View Release Observer News Enterprise. View Release Valley City Times-Record

block. A three-view drawing will most clearly show the appearance as well as the exact size and other details of construction of an object. The three-view drawing of the concrete block shown in Fig. 2-2 is a drawing with the Top View posi- tioned directly above the Front View and the Right- Side or Left-Side View positioned directly to the right

VMware View 3 Pricing and Packaging View Enterprise View Enterprise add-on View Premier View Premier Add-on View Premier Upgrade VI3 Enterprise Virtual Center View Manager View Composer Offline Desktop* ThinApp Pricing ( per concurrent user) 150 50 250 150 100 New set of SKUs 9 9 9 9 9 9 9 9 9 9

In Architecture Methodology, we discuss our choice for an architecture methodol-ogy, the Domain Specific Software Architecture (DSSA), and the DSSA approach to developing a system architecture. The next section, ASAC EA Domain Model (Architecture), includes the devel-opment process and the ASAC EA system architecture description. This section