VII System Architecture Ron Heft Nissan Technical Center North America.
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
-
date post
19-Dec-2015 -
Category
Documents
-
view
214 -
download
0
Transcript of Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
Architecture is More Than Architecture is More Than Just Meeting RequirementsJust Meeting Requirements
Ron OlaskiRon Olaski
SE510SE510
Fall 2003Fall 2003
ArchitectureArchitecture
The result of technical, business, and social The result of technical, business, and social influences and it is a crucial part of the system influences and it is a crucial part of the system design processdesign process
The realization of early design decisions made The realization of early design decisions made with respect to the various parts of a systemwith respect to the various parts of a system
Serves as an important communication, Serves as an important communication, reasoning, analysis, and growth tool for systemsreasoning, analysis, and growth tool for systems
The Architecture Business The Architecture Business Cycle (ABC)Cycle (ABC)
The relationship among the technical, business The relationship among the technical, business and social environments that subsequently and social environments that subsequently influence future architectureinfluence future architecture
Influencing factors include organizational goals, Influencing factors include organizational goals, business and technical requirements and business and technical requirements and processes that bring about new organizational processes that bring about new organizational capabilitiescapabilities
Software ArchitectureSoftware Architecture
Concerns the structure of large software systemsConcerns the structure of large software systems
Architectural view is an abstraction that distills Architectural view is an abstraction that distills away details of implementation, algorithm and away details of implementation, algorithm and data representation and concentrates on the data representation and concentrates on the behavior and interaction of “black-box” behavior and interaction of “black-box” componentscomponents
Developed as the initial step toward designing a Developed as the initial step toward designing a system that has a collection of desired propertiessystem that has a collection of desired properties
Software Architecture (cont’d)Software Architecture (cont’d)
Consists of software components, the externally Consists of software components, the externally visible properties of those components and the visible properties of those components and the relationships between them relationships between them
The earliest artifact that enables the priorities The earliest artifact that enables the priorities among competing concerns to be analyzedamong competing concerns to be analyzed
Feedback mechanismsFeedback mechanisms
The architecture can affect the business goals of the The architecture can affect the business goals of the developing organization.developing organization.
The architecture can affect the customer requirements The architecture can affect the customer requirements for the ensuing system by presenting the customer for the ensuing system by presenting the customer with an opportunity to receive an upgraded system in a with an opportunity to receive an upgraded system in a more reliable, timely and economical manner. more reliable, timely and economical manner.
The system building process will affect the architect’s The system building process will affect the architect’s experience by adding to the corporate experience experience by adding to the corporate experience base. base.
Feedback mechanisms (cont’d) Feedback mechanisms (cont’d)
A few systems will influence and actually change A few systems will influence and actually change the software engineering culture and technical the software engineering culture and technical environment.environment.
Activities involved in creating Activities involved in creating a software architecturea software architecture
Creating the business case for the systemCreating the business case for the system Understanding the requirementsUnderstanding the requirements Creating or selecting the architectureCreating or selecting the architecture Representing and communicating the Representing and communicating the
architecturearchitecture Analyzing or evaluating the architectureAnalyzing or evaluating the architecture Implementing the system based on the Implementing the system based on the
architecturearchitecture Ensuring that the implementation conforms to the Ensuring that the implementation conforms to the
architecturearchitecture
Process RecommendationsProcess Recommendations The architecture should be the product of a single The architecture should be the product of a single
architect or a small group with an identified leader.architect or a small group with an identified leader.
The architect (or team) should have the technical The architect (or team) should have the technical requirements for the system and an articulated, requirements for the system and an articulated, prioritized list of qualitative properties that the prioritized list of qualitative properties that the architecture is expected to satisfy.architecture is expected to satisfy.
The architecture should be well documented using an The architecture should be well documented using an agreed on notation that all stakeholders can agreed on notation that all stakeholders can understand.understand.
Process Recommendations Process Recommendations (cont’d)(cont’d)
The architecture should be circulated to the system’s The architecture should be circulated to the system’s stakeholders, who should be actively involved in its stakeholders, who should be actively involved in its review.review.
The architecture should be analyzed for applicable The architecture should be analyzed for applicable quantitative measures and formally reviewed for quantitative measures and formally reviewed for qualitative properties before it is too late to make qualitative properties before it is too late to make changes to it.changes to it.
The architecture should lend itself to implementation The architecture should lend itself to implementation via the creation of a “skeletal” system in which the via the creation of a “skeletal” system in which the communication paths are exercised but which at first communication paths are exercised but which at first has minimal functionality.has minimal functionality.
Process Recommendations Process Recommendations (cont’d)(cont’d)
The architecture should result in a specific and The architecture should result in a specific and small set of resource contention areas, the small set of resource contention areas, the resolution of which are clearly specified, resolution of which are clearly specified, circulated, and maintained.circulated, and maintained.
Structural RecommendationsStructural Recommendations The architecture should feature well-defined modules The architecture should feature well-defined modules
whose functional responsibilities are allocated on the whose functional responsibilities are allocated on the principles of information hiding and separation of principles of information hiding and separation of concerns.concerns.
The modules should allow development teams to work The modules should allow development teams to work largely independently of each other.largely independently of each other.
The information-hiding modules should include those The information-hiding modules should include those that encapsulate idiosyncrasies of the computing that encapsulate idiosyncrasies of the computing infrastructure, thus insulating the software from infrastructure, thus insulating the software from platform changes.platform changes.
Structural Recommendations Structural Recommendations (cont’d)(cont’d)
The architecture should never depend upon a The architecture should never depend upon a particular version of a commercial product or tool.particular version of a commercial product or tool.
Modules that produce data should be separate Modules that produce data should be separate from modules that consume data to increase from modules that consume data to increase modifiability.modifiability.
Every task or process should be written so that its Every task or process should be written so that its assignment to a specific processor can be easily assignment to a specific processor can be easily changed even at run time.changed even at run time.
ConclusionConclusion