Manish Kumar,MSRITSoftware Architecture1 Architecture.
-
date post
22-Dec-2015 -
Category
Documents
-
view
230 -
download
3
Transcript of Manish Kumar,MSRITSoftware Architecture1 Architecture.
Manish Kumar,MSRIT Software Architecture 1
Architecture
Manish Kumar,MSRIT Software Architecture 2
Agenda
Why Software Architecture? What’s Software Architecture? Architecture types ? Levels ??? Introduction to Architecture Documentation
Manish Kumar,MSRIT Software Architecture 3
Discussion
What’s Software Architecture
Manish Kumar,MSRIT Software Architecture 4
Can be built by one personRequires
Minimal modelingSimple processSimple tools
Architecting a dog house
Kruchten
Manish Kumar,MSRIT Software Architecture 5
Architecting a house
Built most efficiently and timely by a teamRequires
ModelingWell-defined processPower tools
Kruchten
Manish Kumar,MSRIT Software Architecture 6
Architecting a high rise
Kruchten
Manish Kumar,MSRIT Software Architecture 7
Differences
Scale Process Cost Schedule Skills and development teams Materials and technologies Stakeholders Risks
Manish Kumar,MSRIT Software Architecture 8
Agenda
Why Software Architecture? What’s Software Architecture? Architecture types ? Levels ??? Introduction to Architecture Documentation
Manish Kumar,MSRIT Software Architecture 9
Architecture defined
Software architecture is what software architects do
Beck
Manish Kumar,MSRIT Software Architecture 10
Architecture definedFormal Definition IEEE 1471-2000
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
IEEE 1471-2000
Manish Kumar,MSRIT Software Architecture 11
Software architecture encompasses the set of significant decisions about the organization of a software system Selection of the structural elements and their interfaces
by which a system is composed Behavior as specified in collaborations among those
elements Composition of these structural and behavioral
elements into larger subsystems Architectural style that guides this organization
Booch, Kruchten, Reitman, Bittner, and Shaw
Architecture definedAnother Go
Manish Kumar,MSRIT Software Architecture 12
Perry and Wolf, 1992 A set of architectural (or design) elements that have a particular form
Boehm et al., 1995 A software system architecture comprises
A collection of software and system components, connections, and constraints A collection of system stakeholders' need statements A rationale which demonstrates that the components, connections, and constraints define a system
that, if implemented, would satisfy the collection of system stakeholders' need statements
Clements et al., 1997 The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them
http://www.sei.edu/architecture/definitions.html
Architecture definedFew More
Manish Kumar,MSRIT Software Architecture 13
Common elements 1/2
Architecture defines major components Architecture defines component relationships
(structures) and interactions Architecture omits content information about
components that does not pertain to their interactions
Behavior of components is a part of architecture insofar as it can be discerned from the point of view of another component
Manish Kumar,MSRIT Software Architecture 14
Common elements 2/2
Every system has an architecture (even a system composed of one component)
Architecture defines the rationale behind the components and the structure
Architecture definitions do not define what a component is
Architecture is not a single structure -- no single structure is the architecture
Manish Kumar,MSRIT Software Architecture 15
Architecture is Early
Architecture represents the set of earliest design decisions Hardest to change Most critical to get right
Architecture is the first design artifact where a system’s quality attributes are addressed
Manish Kumar,MSRIT Software Architecture 16
Architecture Drives
Architecture serves as the blueprint for the system but also the project: Team structure Documentation organization Work breakdown structure Scheduling, planning, budgeting Unit testing, integration
Architecture establishes the communication and coordination mechanisms among components
Manish Kumar,MSRIT Software Architecture 17
Architecture vs. Design
non-functional requirements
(“ilities”)
functional requirements
(domains)
Important : this is a general guideline – sometimes the borders are Important : this is a general guideline – sometimes the borders are blurred blurred
Architecture:Architecture: where non-functional decisions are cast, where non-functional decisions are cast, and functional requirements are partitionedand functional requirements are partitionedDesign:Design: where functional requirements are where functional requirements are accomplishedaccomplished
architecturearchitecture
designdesign
Manish Kumar,MSRIT Software Architecture 18
System Quality Attribute
Performance Availability Usability Security
Maintainability Portability Reusability Testability
End User’s view
Developer’s view
Time To Market Cost and Benefits Projected life time Targeted Market Integration with
Legacy System Roll back Schedule
BusinessCommunityview
A list of quality attributes exists inA list of quality attributes exists inISO/IEC 9126-2001 Information Technology – Software Product Quality ISO/IEC 9126-2001 Information Technology – Software Product Quality
Manish Kumar,MSRIT Software Architecture 19
Agenda
Why Software Architecture? What’s Software Architecture? Software Architecture types ? Levels ??? Introduction to Architecture Documentation
Manish Kumar,MSRIT Software Architecture 20
Business Architecture
Concerned with the business model as it relates to an automated solution. E-business is a good candidate Structural part of requirements analysis. Domain Specific
Manish Kumar,MSRIT Software Architecture 21
Technical Architecture
Specific to technology and the use of this technology to structure the technical points (Technology Mapping) of an architecture .NET J2EE Hardware architects
Manish Kumar,MSRIT Software Architecture 22
Solutions Architecture
Specific to a particular business area (or project) but still reliant on being a technical focal point for communications between the domain architect, business interests and development.
Manish Kumar,MSRIT Software Architecture 23
Enterprise Architecture
The organizing logic for a firm’s core business processes and IT capabilities captured in a set of principles, policies and technical choices to achieve the business standardization and integration requirements of the firm’s operating model.
Concerned with cross project/solution architecture and communication between different practices in architecture.
Manish Kumar,MSRIT Software Architecture 24
Product Line Architecture
Common Architecture for a set of products or systems developed by an organization
Manish Kumar,MSRIT Software Architecture 25
Product Line - Initiation
Evolutionary Product line architecture and components evolve
with the requirements posed by new product line members.
Revolutionary Product line architecture and components developed
to match requirements of all expected product-line members
Manish Kumar,MSRIT Software Architecture 26
Agenda
Why Software Architecture? What’s Software Architecture? Architecture types ? Levels ??? Introduction to Architecture Documentation
Manish Kumar,MSRIT Software Architecture 27
IEEE 1471 - Recap
Recommended Practice for Architectural Description of Architectural Description of Software-Intensive Systems Define the Relations between
Stakeholders Concerns Views Viewpoint Models Architectural Description
Manish Kumar,MSRIT Software Architecture 28
Documentation Conceptual Model
IEEE 1471-2000
Manish Kumar,MSRIT Software Architecture 29
Stakeholders & their concerns
Ease of IntegrationEase of Integration
Ease of UseEase of Use
FunctionalityFunctionality
PricePrice
Dev CostsDev Costs
On Time DeliveryOn Time Delivery
PerformancePerformance
Stability & MaintainabilityStability & Maintainability
Ease of DebuggingEase of Debugging
ModifiabilityModifiability
Testability & TraceabilityTestability & Traceability
Structure & dependency between componentStructure & dependency between component
Ease of InstallationEase of Installation
End UserEnd User
Sales Sales
Dev ManagerDev Manager
DeveloperDeveloper
Sys AdminSys Admin
MaintainerMaintainer
CustomerCustomer
Manish Kumar,MSRIT Software Architecture 30
Documentation Conceptual Model
IEEE 1471-2000
Manish Kumar,MSRIT Software Architecture 31
Discussion
What views do you know / use
Manish Kumar,MSRIT Software Architecture 32
Views, Views and more Views RUP – 4 + 1 RM-ODP – 5 DODAF – 3 (top level) Zachman – 36(!)
MS – Well…
Manish Kumar,MSRIT Software Architecture 33
RUP – 4+1
Manish Kumar,MSRIT Software Architecture 34
RM-ODP Viewpoints (2001)
Enterprise
Information
Engineering Technology
Computational
Manager
Database Modeler
Operating Sys. Engineer
Designers
Developer
Business model
Logical, data modeling Logical view of services
Servers, Comm, Physical view of data and services (IDL, WSDL)
Manish Kumar,MSRIT Software Architecture 35
DODAF (3 Main Views)
Manish Kumar,MSRIT Software Architecture 36
DoDAF Products 1/2
Manish Kumar,MSRIT Software Architecture 37
DoDAF Products 2/2
Manish Kumar,MSRIT Software Architecture 38
Zachman Framework
Scope (Ballpark) viewScope (Ballpark) view
Owners View (Enterprise Model) Owners View (Enterprise Model)
Designers View (System Model) Designers View (System Model)
Builder’s View (Technology Model) Builder’s View (Technology Model)
Out of Context View (Detailed Model) Out of Context View (Detailed Model)
Operational View (Functioning) Operational View (Functioning)
DataData(What)(What)
FunctionFunction(How)(How)
NetworkNetwork(Where)(Where)
PeoplePeople(Who)(Who)
TimeTime(When)(When)
MotivationMotivation(Why)(Why)
Manish Kumar,MSRIT Software Architecture 39
Manish Kumar,MSRIT Software Architecture 40
Old Model MSF 3.0 + Views
ContextualContextual
ConceptualConceptual
LogicalLogical
PhysicalPhysical
Aimed at business executives
Aimed at business process owners
Aimed at architects and designers
Aimed at designers and developers
Manish Kumar,MSRIT Software Architecture 41
Business strategies & processes
Applications to facilitate business process
Information needed to manage business
Technology to support business & application needs
ContextualContextual
ConceptualConceptual
LogicalLogical
PhysicalPhysical
Bu
sin
ess
Vie
w
Ap
pli
cati
on
s V
iew
Info
rmat
ion
Vie
w
Tec
hn
olo
gy
Vie
w
Old Model MSF 3.0 + Views
Manish Kumar,MSRIT Software Architecture 42
New Modelset of views and artifacts -
Business Business CapabilitiesCapabilities
Business Business CapabilitiesCapabilities
Manual Manual ProceduresProcedures
Manual Manual ProceduresProcedures
TechnologyTechnologyArchitectureArchitecture
TechnologyTechnologyArchitectureArchitecture
ConstraintsConstraints
ReconciliationReconciliation
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
Logical Logical Data CenterData Center
Logical Logical Data CenterData Center
Physical servers Physical servers & segments& segments
DeploymentDeploymentUnitsUnits
DeploymentDeploymentUnitsUnits
Abstraction/Abstraction/RefinementRefinement
ConstraintsConstraints
packaged intopackaged into deployed ondeployed on
Business Processes Business Processes and Entitiesand Entities
Business Processes Business Processes and Entitiesand Entities
ReconciliationReconciliation
Abstraction/Abstraction/RefinementRefinement
Manish Kumar,MSRIT Software Architecture 43
Can be mapped…
ContextualContextual
ConceptualConceptual
LogicalLogical
PhysicalPhysical
BusinessBusiness ApplicationsApplications InformationInformation TechnologyTechnology
Business Business CapabilitiesCapabilities
Business Business CapabilitiesCapabilities
Manual Manual ProceduresProcedures
Manual Manual ProceduresProcedures
TechnologyTechnologyArchitectureArchitecture
TechnologyTechnologyArchitectureArchitecture
ConstraintsConstraints
ReconciliationReconciliation
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
Logical Logical Data CenterData Center
Logical Logical Data CenterData Center
Physical servers Physical servers & segments& segments
DeploymentDeploymentUnitsUnits
DeploymentDeploymentUnitsUnits
Abstraction/Abstraction/RefinementRefinement
ConstraintsConstraints
packaged intopackaged into deployed ondeployed on
Business Processes Business Processes and Entitiesand Entities
Business Processes Business Processes and Entitiesand Entities
ReconciliationReconciliation
Abstraction/Abstraction/RefinementRefinement
Manish Kumar,MSRIT Software Architecture 44
Documentation Conceptual Model
IEEE 1471-2000
Manish Kumar,MSRIT Software Architecture 45
Models
Non-standard Models ADL UML DSL
Manish Kumar,MSRIT Software Architecture 46
“Non Standard” - Block Diagrams
EAI
Human Workflow
ECM DW OLTPE-Publish
DALService Agents
Business RulesActivity
Workflow
Au
thor
izat
ion M
onitoring
Service Interface
Controls
Log &
Trace
Exception
Man
agement
Configuration
Au
then
tica
tion
Sign
ing
Rich UI Web UI
Manish Kumar,MSRIT Software Architecture 47
An ADL Example (in ACME)System simple_cs = {System simple_cs = {
Component client = {Port send-request}Component client = {Port send-request}Component server = {Port receive-request}Component server = {Port receive-request}Connector rpc = {Roles {caller, callee}}Connector rpc = {Roles {caller, callee}}Attachments : {client.send-request to rpc.caller;Attachments : {client.send-request to rpc.caller; server.receive-request to rpc.callee}server.receive-request to rpc.callee}
}}
System simple_cs = {System simple_cs = {Component client = {Port send-request}Component client = {Port send-request}Component server = {Port receive-request}Component server = {Port receive-request}Connector rpc = {Roles {caller, callee}}Connector rpc = {Roles {caller, callee}}Attachments : {client.send-request to rpc.caller;Attachments : {client.send-request to rpc.caller; server.receive-request to rpc.callee}server.receive-request to rpc.callee}
}}
client
send-request
server
receive-requestcaller callee
rpc
Manish Kumar,MSRIT Software Architecture 48
ADL - Pros
ADLs represent a formal way of representing architecture
ADLs are intended to be both human and machine readable
ADLs support describing a system at a higher level than previously possible
ADLs permit analysis of architectures – completeness, consistency, ambiguity, and performance
ADLs can support automatic generation of simulations / software systems
Manish Kumar,MSRIT Software Architecture 49
ADL - Cons
There is not universal agreement on what ADLs should represent, particularly as regards the behavior of the architecture
Representations currently in use are relatively difficult to parse and are not supported by commercial tools
Most ADLs tend to be very vertically optimized toward a particular kind of analysis
Most ADL work today has been undertaken with academic rather than commercial goals in mind
Manish Kumar,MSRIT Software Architecture 50
UML 2.0
13 diagram types
Manish Kumar,MSRIT Software Architecture 51
UML
Manish Kumar,MSRIT Software Architecture 52
DSL
Business Business CapabilitiesCapabilities
Business Business CapabilitiesCapabilities
Manual Manual ProceduresProcedures
Manual Manual ProceduresProcedures
TechnologyTechnologyArchitectureArchitecture
TechnologyTechnologyArchitectureArchitecture
ConstraintsConstraints
ReconciliationReconciliation
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
Services, Messages, Services, Messages, Applications, EndpointsApplications, Endpoints
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
XML, Projects, XML, Projects, DBs, Classes, CodeDBs, Classes, Code
Logical Logical Data CenterData Center
Logical Logical Data CenterData Center
Physical servers Physical servers & segments& segments
DeploymentDeploymentUnitsUnits
DeploymentDeploymentUnitsUnits
Abstraction/Abstraction/RefinementRefinement
ConstraintsConstraints
packaged intopackaged into deployed ondeployed on
Business Processes Business Processes and Entitiesand Entities
Business Processes Business Processes and Entitiesand Entities
ReconciliationReconciliation
Abstraction/Abstraction/RefinementRefinement
Manish Kumar,MSRIT Software Architecture 53
ADL - revisited
ADLs are essentially a DSL for architecture The Architecture DSLs in VSTS – can be
considered as an ADL The difference – VSTS has a set of languages
instead of one trying to encompass all views
Manish Kumar,MSRIT Software Architecture 54
Discussion
What’s the “best” modeling techniques
Manish Kumar,MSRIT Software Architecture 55
Documentation Conceptual Model
IEEE 1471-2000
Manish Kumar,MSRIT Software Architecture 56
Discussion
How much documentation
Manish Kumar,MSRIT Software Architecture 57
Famous Last Words…
“It is a very humbling experience to make a multimillion-dollar mistake, but it is also very memorable….” (Fred Brooks - “Mythical Man-Month” p.47)
Manish Kumar,MSRIT Software Architecture 58
The Need of ArchitectureThe Winchester “Mystery” House
38 years of construction – 147 builders 0 architects 160 rooms – 40 bedrooms, 6 kitchens, 2 basements, 950 doors 65 doors to blank walls, 13 staircases abandoned, 24 skylights in
floors No architectural blueprint exists
Any Question ???Any Question ???
Thank you !!!Thank you !!!