slide1 l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
View Based Documentation of Software Architectures from “views and beyond “ by Clements and lots of people PowerPoint Presentation
Download Presentation
View Based Documentation of Software Architectures from “views and beyond “ by Clements and lots of people

Loading in 2 Seconds...

play fullscreen
1 / 100

View Based Documentation of Software Architectures from “views and beyond “ by Clements and lots of people - PowerPoint PPT Presentation


  • 210 Views
  • Uploaded on

View Based Documentation of Software Architectures from “views and beyond “ by Clements and lots of people. Uses of Documentation. As a means of education – introducing people to the system As a primary vehicle for communication amongst stakeholders As a basis for system analysis. Component 1.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'View Based Documentation of Software Architectures from “views and beyond “ by Clements and lots of people' - Ava


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

View Based Documentation of Software Architecturesfrom“views and beyond “byClements and lots of people

uses of documentation
Uses of Documentation
  • As a means of education – introducing people to the system
  • As a primary vehicle for communication amongst stakeholders
  • As a basis for system analysis
what does the arrow mean

Component 1

Connector P

Component 2

What does the arrow mean?
  • C1 calls C2
    • C1 passes data to C2 via its parameters
    • C1 obtains a result from C2
    • C1 causes C2 to come into existence
    • C1 cannot execute till C2 terminates
  • Data flows both ways: two arrows, double headed arrow
view types
View types
  • Architects need to look at software in three ways
    • How it is structured as a set of implementation units
    • How it is structured as a set of elements that have runtime behavior and interaction
    • How it relates to non-software structures and its environment
viewtypes
Viewtypes
  • The module viewtype
    • Document a system’s principals units of implementations
  • The componentandconnector viewtype
    • Document the system’s units of execution
  • The allocation viewtype
    • Document the relationship between a system’s software and its development and execution environment
styles
Styles
  • In each view type there are a set of commonly occurring forms and variations – styles
  • Layered style, client-server, ..
seven rules for sound documentation
Write documentation from the Readers’s Point of view

Avoid unnecessary repetition

Avoid ambiguity

Use a standard of Organisation

Record Rationale

Keep documentation current but not too current

Review Documentation for fitness of purpose

Seven rules for sound Documentation
module viewtype
Module Viewtype
  • A code unit that implements a set of responsibilities
  • Can be a class, a collection of classes, a layer or any decomposition of the code unit
  • Has some properties: responsibility, visibility, author..
module viewtype styles
Module Viewtype styles
  • Decomposition style
  • Uses style
  • Generalization style
  • Layered style
component and connector viewtype
Component and connector Viewtype
  • Express runtime behavior
  • Described in terms of connectors and components
  • Objects, processes, collection of objects are components
  • Pipes, repositories, sockets are connectors
  • Middleware is a connector
c c viewtype styles
C&C Viewtype Styles
  • Pipe-and-filter
  • Shared-data
  • Publish-subscribe
  • Client-server
  • Peer-to-peer
  • Communicating processes
allocation viewtype
Allocation Viewtype
  • Maps software units to elements of the environment(hardware, development team..)
  • Deployment style
  • Implementation style
  • Work assignment style
style guide
Overview

Elements, relations and properties

What it’s for and not for

Notations

Relation to other views

Examples

Style Guide
linux architecture

LINUX ARCHITECTURE

Different Views

basic definitions
Basic Definitions
  • Linux subsystems
    • Process Scheduler (PS) – responsible for supporting multitasking by deciding which user process executes.
    • Memory Manager (MM) – provides a separate memory space for each user process.
    • File System (FS)– provides access to hardware devices
    • Network Interface (NI)– encapsulates access to network devices
slide17
Linux subsystems
    • Inter Process Communication (IPC)– allows user processes to communicate with other processes on the same computer
    • Initialization (Init)– responsible for initializing the rest of the linux kernel with appropriate usr configured settings
    • Library (Lib)– the kernel core which stores the routines that are used by other subsystems for their running.
module view
Module View

Linux

MM

Init

PS

FS

NI

IPC

Lib

file system broken down
File System Broken Down

File System

System

Call

Interface

Executable

Formats

Virtual

File

System

File

Quota

Buffer

Cache

Device

Drivers

Logical

File

System

cnc view
CnC View
  • 1st level of abstraction – This level only gives the corresponding relations between the 7 basic modules that construct the Linux architecture
  • Relations used – If x y then x depends on y for its running, i.e. for x depends on certain components present inside y for its own running.
cnc view23
CnC view

FS

NI

MM

IPC

PS

Init

Lib

breakdown of fs
Breakdown of FS

MM

NI

  • FS

Sys Call

Interface

Virtual

FS

Init

IPC

Executable

File

Format

Logical

FS

Device

Driver

Buffer

Cache

File

Quota

PS

Lib

viewtypes27
Viewtypes
  • The module viewtype
    • Document a system’s principals units of implementations
  • The componentandconnector viewtype
    • Document the system’s units of execution
  • The allocation viewtype
    • Document the relationship between a system’s software and its development and execution environment
module viewtype28
Module Viewtype
  • A code unit that implements a set of responsibilities
  • Can be a class, a collection of classes, a layer or any decomposition of the code unit
  • Has some properties: responsibility, visibility, author..
module viewtype styles29
Module Viewtype styles
  • Decomposition style
  • Uses style
  • Generalization style
  • Layered style
overview
Overview
  • What is a module? – software units with well defined interfaces providing a set of services
  • Module vs. component
    • Both are about decomposition
    • Module has a design time connotation and component a runtime connotation
  • 4 common styles
    • The decomposition style – containment relationship among modules
    • The uses style – functional dependency relationships among modules
    • Generalization style – specialization relationships among modules
    • Layered style – allowed-to-use relation in a restricted fashion among modules
what is it for
What is it for?
  • Construction –
    • blueprint for the source code
    • Modules and physical structures (source code files) will have close mapping
  • Analysis
    • Requirements traceability
    • Impact analysis
  • Communication – useful for explaining the systems functionality
what is it not for
What is it not for?
  • Cannot make inferences about runtime behavior
  • Hence not used for analysis of performance, reliability and other runtime qualities; we use c-and-c and allocation views are used
relation to other viewtypes
Relation to other viewtypes
  • Module views commonly mapped to c-and-c viewtypes
  • Sometimes one-to-one or one-to-many but could also be fragments to fragment
module viewtype styles34
Module Viewtype styles
  • Decomposition Style
  • Uses
  • Generalization
  • Layered
decomposition overview
Decomposition - overview
  • Focus on the is-part-of relationship between elements and their properties
  • How system responsibilities are partitioned across how these modules are decomposed into sub modules
  • All architectures begin with module decomposition style – divide and conquer
  • Useful for communicating the broad picture to new comers
  • Since functionality is allocated, modifiability is immediately addressed
criteria for decomposition
Criteria for decomposition
  • Achievement of certain quality attributes
    • Modifiability
    • Performance
  • Build-versus-buy decisions
  • Product line implementations
slide38
What is it for?
    • Learning
    • New comers
    • Work assignment
  • What is it not for?
  • Notations
    • Named boxes within boxes
    • Textual notation
  • Examples of decomposition style
relation to other styles
Relation to other styles
  • Module decomposition view can be mapped into component-and-connector view; either one-to-one or one-to-many or fragment to fragment
  • Closely related to work assignment style of allocation viewtype
module viewtype styles41
Module Viewtype styles
  • Decomposition Style
  • Uses style
  • Generalization
  • Layered
uses overview
Uses - overview
  • What other modules should exist in order to do their part of the work properly
uses style contd
Uses style contd.
  • Can be documented as a two column table
  • Or any graphical notation
  • P1 uses P2, if P1’s correctness depend on the correctness of P2
  • Two kinds of usage
    • CALLS but not USES
      • Exception handling – just pass on the name of caller
    • CALLS and USES
    • No CALL yet USES
      • Expect P2 to leave a variable in a certain state
where is it useful
Where is it useful?
  • Incremental development
    • Implement part of the total functionality
  • Sub-setting, debugging, testing, impact analysis
decomposition styles
Decomposition Styles
  • Decomposition Style
  • Uses
  • Generalization
  • Layered
overview48
Overview
  • Is-a relation is specialized to generalization
  • Parent is a more general version of the child
    • In decomposition the parent consists of the child
  • Useful for extension and evolution of architectures and individual elements
  • Inheritance of interface and implementation
gen where is it useful
Gen: where is it useful?
  • Object-oriented designs
  • Extension and evolution
  • Local change or variation
  • Reuse
decomposition styles52
Decomposition - Styles
  • Decomposition Style
  • Uses style
  • Generalization
  • Layered
layered overview
Layered - overview
  • Each layer represents a virtual machine
  • Completely partitions the software
  • Strict ordering
  • Layer bridging
layers what is it for
Layers - What is it for ?
  • Modifiability
  • Portability
  • Principle of information hiding(VM)
  • Run time overhead is more?
    • How to reduce it?
relation to other styles56
Relation to other styles
  • Layers are not modules
    • A layer may be module
    • But modules can be decomposed to other modules; layers are not decomposed to other smaller layers
    • segmenting a layer gives rise to modules; modules can span layers
  • Tiers are not layers
    • Tiers are hybrid view combining cnc and allocation view types
overview60
Overview
  • Defines models consisting of
    • elements having some runtime presence – processes, objects, clients, servers, datastores
    • Pathways of interaction – communication links, protocols, information flows, access to shares storage
runtime entities and their interactions
Runtime entities and their interactions
  • May contain many instances of the same component type
  • Similar to object(collaboration) diagrams as against class diagrams(which define types of elements)
what is c c for
What is C&C for?
  • To reason about runtime system quality attributes – performance, reliability, availability
  • What are the systems principal executing components and how do they interact
  • What are the major shared data resources
  • Which parts of the system are replicated and how many times
  • How does data progress through a system as it executes
  • What protocols of interaction are used by communicating entities
  • What parts of the system run in parallel
  • How can the system’s structure change as it executes
what is c c not for
What is C&C not for?
  • Can not represent design elements which do not have a runtime presence
  • Example – interface of an element - usability
c c viewtype styles65
C&C Viewtype Styles
  • Pipe-and-filter
  • Shared-data
  • Publish-subscribe
  • Client-server
  • Peer-to-peer
  • Communicating processes
pipes and filters
Pipes and Filters
  • A filter transforms data that it receives from one or more pipes and transmits through one or more pipes
  • A pipe is a connector that conveys streams of data from output port of one filter to input port of another
  • Pipes buffer data
  • Filters act asynchronously, concurrently
  • The overall function is a composition of filter functions
what for
What for ..
  • Very useful in data transformation
    • Signal processing
    • compilers
  • To reason about system performance, stream latency, pipe buffer requirements, schedulability
relationship with other styles
Relationship with other styles
  • Different from data flow projections/views
  • In pipes-and-filters lines have specific meaning – transmit streams of data
  • In dataflow relationships implies data communication – could be implemented as a procedure call, publish-subscribe, via a pipe..
shared data style
Shared data style
  • Useful in exchange of persistent data, which has multiple accessors
  • How does the consumer know data is available?
    • Store informs the consumer – blackboard
    • Consumer is responsible - repository
what for75
What for..
  • Used when there are multiple accessors and persistence
  • Decouple producer from consumer
  • Data store performance, security, privacy, compatibility with other stores…
similarity to others
Similarity to others
  • Client-server style
  • Publish-subscribe is similar without persistence
publish subscribe styles
Publish-subscribe styles
  • Components interact via announced events
  • Components subscribe to a set of events
  • P-S runtime ensures that each published event is delivered to all subscribers
  • The connector is an event bus
  • Used in message production/consumption
where to use
Where to use ..
  • To send events and messages to recipients
  • Set of recipients are unknown – can be added dynamically
relationship with other styles81
Relationship with other styles
  • When used to distribute messages – similar to shared-data blackboard without persistence
  • When components have independent thread of control P-S is refinement of communicating processes style
tibco smart sockets
TIBCO Smart Sockets
  • Fast and flexible development
  • Publish-subscribe for intelligent, streamlined one-to-many communications
  • Adaptive multicast for most efficient network utilization
  • Multithreaded, multiprocessor architecture for full system exploitation
  • Online security safeguards vitalcommunications
  • Real-time monitoring of network applications
  • Performance optimization for maximum throughput
  • Robust, enterprise-quality fault tolerant GMD for reliable message delivery
client server
Client-Server
  • Components interact by requesting services of other components
  • Communication is initiated by a client
what for88
What for..
  • Assignment of functionality is clear
  • Can be independently assigned to tiers
  • Can be used to argue about performance
  • Example - WWW
peer to peer
Peer-to-peer
  • Components interact with each other exchanging services
  • No asymmetry as in client-server
  • Connectors are bidirectional
communicating processor style
Communicating-Processor Style
  • Interaction of concurrently executing components though various connector mechanisms
  • Typically used at design stage
allocation viewtype styles
Allocation viewtype styles
  • Deployment style
  • Implementation style
  • Work assignment style
deployment style
Deployment style
  • Elements of the C&C styles are allocated to execution platforms
viewpacket
Viewpacket
  • Small, digestible part of a view