Download presentation
Presentation is loading. Please wait.
Published byVivian King Modified over 8 years ago
1
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University
2
Outline Introduction of the Course Architecture Business Cycle 1. Where Do Architectures Come From? 2. Software Processes & the Architecture Business Cycle 3. What Makes a Good Architecture? 4. Summary 2
3
Introduction of the Course Advanced Software Architecture (CS5213) 3
4
Architecture Business Cycle Lecture: 1 4
5
Software Architecture For decades, software designers have been taught to build systems based exclusively on the technical requirements Software architecture encompasses the structures of large software systems: abstract view eliminates details of implementation, algorithm, & data representation concentrates on the behavior & interaction of “black box” elements 5
6
Software Architecture (Continue…) Definition; The software architecture of a program is the structure or structures of the system, which comprise software elements, the externally visible properties of these elements, and the relationships among them 6
7
Software Architecture (Continue…) Quick Exercise What is the relationship of a system’s software architecture to the environment in which the system will be constructed and exist? 7
8
Software Architecture (Continue…) Answer Software architecture is a result of technical, business, and social influences In turn, it affects each of these environments 8
9
Where Do Architectures Come From An architecture is the result of a set of business and technical decisions There are many influences and their realization will change depending upon the environment of system Architect will chose among design elements differently in different scenarios The requirements make explicit some—but only some—of the desired properties of final system Not all requirements are concerned directly with those properties 9
10
10
11
Factors Influencing Architecture Architectures are influenced by system stakeholders What are stakeholders? Stakeholders have different concerns An acceptable system can posses properties like; Performance, Security, Availability, Modifiability etc. The requirements specification document may not have complete requirements Often an architect has to fill in the blanks and mitigate the conflicts 11
12
Factors Influencing Architecture (Continue…) Architectures are influenced by the development organization Staff skills, development schedule and budget Three classes of developing organization that can influence the architecture; 1. Immediate business 2. Long-term business 3. Organization structure 12
13
Factors Influencing Architecture (Continue…) Architectures are influenced by the background and experience of the architect Architects will try to use a particular architectural approach to new development effort if it has given them good results in past Architectural choices may come from an architect’s education or training Architect may also attempt to use a technique he learns from a book or an article 13
14
Factors Influencing Architecture (Continue…) Architectures are influenced by the technical environment A special case of the architect’s background and experience is reflected by technical environment It might include standard industry practices or software engineering techniques 14
15
Ramification of Influences Almost never are the properties required by the business & organizational goals consciously understood, let alone fully articulated Architects need to know & understand the nature, source, and priority of constraints on the project as early as possible Architects must identify & actively engage the stakeholders to solicit their needs & expectations Use architecture reviews & iterative prototyping 15
16
Architecture Influencing the Factors Architecture affects the structure of the developing organization; Architecture prescribes units of the software that must be implemented Teams are formed for individual software units in order to take place development activities If a company becomes adept at building a families of similar systems, it invests on teams for their nourishment Teams become embedded in the organization’s structure 16
17
Architecture Influencing the Factors (Continue…) Architecture can affect the goals of developing organization A successful project can help a company establishing foothold in a particular market area Efficient production of similar systems Organization may adjust its goals to take advantage of its newfound expertise 17
18
Architecture Influencing the Factors (Continue…) Architecture can affect the customer requirements for next system If a client wants to invest in a new system based on an architecture of an existing system then he may change requirements The customer may be willing to relax some requirements in order to get a system in more reliable, timely and economical manner. 18
19
Architecture Influencing the Factors (Continue…) Architecture can change the software engineering culture An architect will also go with the tool bus or approach that produces a successful system A few systems will influence the software engineering culture i.e. the technical environment in which they operate 19
20
20 Architecture Business Cycle Stakeholders Dev. Organization Requirements Technical Environment Architect’s Experience Architecture System Architect’s Influences
21
Software Processes & the Architecture Business Cycle Software process is the organization, ritualization, and management of software development activities What activities are involved in creating a software architecture? Creating the business case for the system Understanding the requirements Creating or selecting the architecture Documenting and communicating the architecture Analyzing or evaluating the architecture Implementing the system based on the architecture Ensuring that implementation conforms to the architecture 21
22
Software Processes & the Architecture Business Cycle (Continue…) Creating the Business Case for the System Broader than just assessing the market need Host much should the product cost? What is the target market? What is targeted time to market? Architect must be consulted in order to create business case 22
23
Software Processes & the Architecture Business Cycle (Continue…) Understanding the Requirements Variety of techniques to elicit the requirements Object oriented paradigm uses ‘scenarios’ or use cases State machines used for safety critical systems Formal methods, prototypes and so on. Besides requirements, quality attributes give shape to the architecture 23
24
Software Processes & the Architecture Business Cycle (Continue…) Creating or Selecting the Architecture Devising the architecture Selecting in case of a similar product built some time ago 24
25
Software Processes & the Architecture Business Cycle (Continue…) Communicating the Architecture Must be communicated clearly and unambiguously to all stakeholders Architectural documentation should be clear and unambiguous Must be understandable by various stakeholders 25
26
Software Processes & the Architecture Business Cycle (Continue…) Analyzing or Evaluating the Architecture Choosing the most appropriate architecture is challenging Architecture must satisfy stakeholder needs Architecture Tradeoff Analysis Method (ATAM) Cost Benefit Analysis Method (CBAM) 26
27
Software Processes & the Architecture Business Cycle (Continue…) Implementing Based on the Architecture Developers should implement what is designed by architect Keep them faithful to the structure and communication protocols 27
28
Software Processes & the Architecture Business Cycle (Continue…) Ensuring Conformance to the Architecture Once architecture completes, it enters in maintenance phase Architecture must be faithful to its representation 28
29
What Makes a Good Architecture? No such thing as an inherently good or bad architecture Architectures are more or less fit for some stated purpose Architectures can be evaluated - one of the great benefits of paying attention to them - but only in the context of specific goals Rules of Thumb: process & product (structural) recommendations 29
30
What Makes a Good Architecture Process Recommendations Architecture be built by single architect or small group lead by a single person Prioritized list of qualities Well documented Circulated to stakeholders Should be analyzed Should support incremental implementation 30
31
What Makes a Good Architecture (Continue…) Product Recommendations Architecture should feature well-defined modules, focusing Information Hiding and separation of concerns Well-defined interface for each module Quality tactics should be planned Should not depend on a particular tool Data producers & consumer modules separation 31
32
32 Summary Any Questions?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.