1 / 66

The Architecture Business Cycle: Influences and Factors in Software Architecture

Explore the Architecture Business Cycle and its impact on software architecture, including influences from system stakeholders, the developing organization, background and experience of architects, and the technical environment.

upham
Télécharger la présentation

The Architecture Business Cycle: Influences and Factors in Software Architecture

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Unit-1 INTRODUCTION Presented by SushmaNarasimhan Asst. Professor, Computer Science Department Engineered for Tomorrow

  2. Unit- I • Architecture Business Cycle • What is Software Architecture?

  3. The Architecture Business Cycle • Introduction • Where Do Architectures Come From? • Software Processes and the Architecture Business Cycle  • What Makes a "Good" Architecture?

  4. Introduction • A software architecture is developed as the first step toward designing a system. • The software architecture of a program is the structure of the system, which includes: • the software elements, • the externally visible properties of those elements, • the relationships among the elements.

  5. Que: What happens when two different architects working in two different organizations, are given the same requirement specification for a system? Ans: They will produce different architecture. WHY???

  6. Relationship b/w Software Architecture & its environment An architecture is the result of a set of business and technical decisions.

  7. Contd.. • Software architecture is a result of technical, business, and socialinfluences. • The Software architecture existence affects the technical, business, and social environments that subsequently influence future architectures. • We call this cycle of influences, from the environment to the architecture and back to the environment, the Architecture Business Cycle (ABC).

  8. The Architecture Business Cycle • Introduction • Where Do Architectures Come From?  • Software Processes and the Architecture • Business Cycle  • What Makes a "Good" Architecture?

  9. Contd.. Factors influencing Software Architecture 1) System stakeholders 2) Developing organization 3) Background & Experience of the Architect 4) Technical Environment

  10. 1) ARCHITECTURES ARE INFLUENCED BY THE SYSTEM STAKEHOLDERS Customer Marketing Development organization’s management Maintenance organization End User Low Cost, Keeping people employed, leveraging existing corporate assets ! Neat features, short time to market, low cost, parity with competing products ! Behavior, performance, security, reliability ! Modifiability Low cost, timely delivery, not changed very often !

  11. Contd.. Who are System Stakeholders? • Customers • End users • Developers • Project manager • Maintenance • personnel • Marketing • personnel

  12. Contd.. • Each stakeholder has different concerns and goals, some of which may be contradictory, such as: • an optimized system • certain runtime behaviour • good performance on specific hardware • easy customization • low development cost & shorter marketing time • provide broad range of functionality • The architect often has to fill in the blanks and mediate the conflicts.

  13. 2) ARCHITECTURES ARE INFLUENCED BY THE DEVELOPING ORGANIZATION • Architecture of the proposed system is influenced by the structure or nature of the development organization. • 3 classes of influence from developing organization are: • Immediate business – proposed system is next in a sequence of similar systems, with a high degree of re-use. • Long-term business – organisation likes to make long-term investment in an infrastructure to pursue strategic goals. • Organizational structure – functionality in the architecture is divided to facilitate development of sub-systems, by contracts to specialized experts.

  14. 3) ARCHITECTURES ARE INFLUENCED BY background & experience of the Architects Factors influencing the choice of architecture: • Architect’s education & training • Previous exposure to successful architectural patterns • Previous exposure to systems that have worked extremely poor or extremely well

  15. 4) ARCHITECTURES ARE INFLUENCED BY THETECHNICAL ENVIRONMENT • The environment where an architecture is designed will influence that architecture. • The environment might include standard industry practices or software engineering techniques common in the architect's professional community

  16. Ramifications of influences on an architecture • Architects must identify & actively engage the stakeholders to solicit their needs and expectations. • This allows the architects to understand constraints, manage expectations, negotiate priorities & make trade-offs. • Architecture reviews and iterative prototyping are two means for achieving it. • Apart from technical skills, an effective architect, diplomacy, negotiation, and communication skills are essential.

  17. Fig: Ramification of influences on an architecture

  18. Contd… • Software Architecture is influenced by several factors such as system stakeholders, goals & structure of developing organization, technical environment of the proposed system, experience & background of the architect. • At the same time, these factors are influenced by the software architecture and the system built from it, forming feedback loops. • This cycle of influences, from the environment to the architecture and back to the environment, the Architecture Business Cycle (ABC).

  19. Contd.. Architect Architect’s Influences Customers and End User Requirements (Qualities) Architecture Developing Organization System Technical Environment Architect’s Experience Fig: Architecture Business Cycle

  20. How ABC Works ? • Architecture affects the structure of the developing organization. • Architecture affects the goals of the developing organisation. • Architecture affects the customer requirements for the next system. • Process of system building will affect the architect’s experience with subsequent systems. • Few systems influence and change the technical environment in which system builders operate & learn.

  21. The Architecture Business Cycle • Introduction • Where Do Architectures Come From?  • Software Processes and the Architecture • Business Cycle  • What Makes a "Good" Architecture?

  22. Software Processes and the Architecture Business Cycle • Software process – used to describe organization, ritualization, and management of software development activities • Activities in the software process include: • Creating business case for system • Understanding requirements • Creating or selecting architecture • Documenting & communicating architecture • Analyzing or evaluating architecture • Implementing system based on architecture • Ensuring implementation conforms to architecture

  23. Contd.. Architecture activities in ABC • Creating business case for system • Understanding requirements • Creating or selecting architecture • Documenting & communicating architecture • Analyzing or evaluating architecture • Implementing system based on architecture • Ensuring implementation conforms to architecture

  24. The Architecture Business Cycle • Introduction • Where Do Architectures Come From?    • Software Processes and the Architecture • Business Cycle  • What Makes a "Good" Architecture?

  25. What Makes “Good” Architecture? • No inherently good or bad Architecture • Architectures are either more or less fit for some stated purpose. • Rules of thumb or guidelines should be followed while designing an architecture. • Process guidelines or recommendations • Product(structural) guidelines or recommendations

  26. Process Guidelines • Single architect or small group with identified leader. • Must have system technical requirements and articulated, prioritized qualitative properties. • Architecture must be well-documented using an agreed-on notation that all can understand. • Architecture should be actively reviewed by all stakeholders.

  27. Process Guidelines (Cont.) • Analyze architecture for applicable quantity measures and formally evaluate for quality attributes. • Architecture should allow creation of a skeletal system on which functionality can incrementally grow. • Architecture should result in specific set of resource contention areas. Ex: If network utilization is area of concern, architect should design an architecture which results in minimum network traffic.

  28. Product (Structural) Guidelines • Should have well-defined modules whose functional responsibilities are achieved using information hiding and separation of concerns. • Each module should have a well-defined interface that encapsulates implementation strategies and data structure choices from other software which uses their facilities. • Quality attributes should be achieved using well-known architectural tactics specific to each attribute.

  29. Product (Structural) Guidelines (Cont.) • Never depend on a particular version of a commercial product or tool; make change straightforward and inexpensive. • Modules which produce data should be separate from modules which consume data, hence increasing the modifiability.. • For parallel processing, well-defined processes and tasks that may not mirror module decomposition structure.

  30. Product (Structural) Guidelines (Cont.) • Every process or task should be written such that processor allocation can be easily changed, even at run-time. • Consistently use a small number of simple interaction patterns, so that the system performs same things in same manner all the time.

  31. Unit- I • Architecture Business Cycle • What is Software Architecture?

  32. What is Software Architecture? • What software architecture is & what isn’t? • Other points of view • Architectural patterns, Reference models, Reference architectures • Why is software architecture important? • Architectural structures & views

  33. Definition • The software architecture of a program is the structure of the system, which include: • the software elements, • the externally visible properties of those elements, • the relationships among the elements. • Externally-visible properties of elements are assumptions that one elements can make about another: • provided services, required services, performance characteristics, fault handling, resource usage

  34. Contd.. Implications of this Definition 1) Architecture defines software elements. • Architecture is an abstraction of a system, which describes interaction between these software elements. • Private details such as their internal implementation are not included. 2) Systems comprise of more than one structure. • A structure by itself cannot be termed as architecture. • An architecture comprises of several kinds of structures, several kinds of elements and several kinds of interactions among elements.

  35. Contd… 3) Every computing system with software has a software architecture. • An architecture can exist independently of its description or specification. 4) Behavior of each element is part of the architecture. • How an element’s behavior influences another element and the acceptability of the system as a whole is captured in the architecture.

  36. Contd.. 5) The definition does not explain whether the architecture for a system is good or bad. • This gives rise to the need for architecture evaluation and design.

  37. What is Software Architecture? • What software architecture is & what isn’t? • Other points of view • Architectural patterns, Reference models, Reference architectures • Why is software architecture important? • Architectural structures & views

  38. Other Points of view • Architecture is high-level design. • Architecture is the overall structure of the system. • Architecture is the structure of the components, their inter-relationships & guidelines for their design & evolution. • Architecture is nothing but a cluster of components and connectors. • Connectors are run-time mechanisms for transferring control & data around a system.

  39. What is Software Architecture? • What software architecture is & what isn’t? • Other points of view • Architectural patterns, Reference models, Reference architectures • Why is software architecture important? • Architectural structures & views

  40. Architectural patterns, Reference models, Reference architectures Architectural Patterns - Definition • An architectural pattern is a description of • Software elements and their relation types • Set of constraints on the element types & their interaction pattern • A widely used pattern in modern distributed systems is the three-tiered system pattern • Science • Banking • E-commerce • Reservation systems

  41. Front Tier Contains the user interface functionality to access the system’s services Middle Tier Contains the application’s major functionality Back Tier Contains the application’s data access and storage functionality Contd.. Example - Three-Tiered Pattern

  42. Contd.. Reference pattern-Definition • A reference model is a standard decomposition of a known problem into parts that cooperatively solve the problem. • Can you name the standard parts of a compiler or a database management system? • Can you explain in broad terms how the parts work together to accomplish their collective purpose? • If so, it is because you have been taught a reference model of these application.

  43. Contd.. Reference Architecture-Definition • A reference architecture is a reference model mapped onto software. • Whereas a reference model divides the functionality, a reference architecture is the mapping of that functionality onto a system decomposition. • A reference architecture can be thought of as a resource that documents the learning experiences gained through past projects. • By using a reference architecture, a project team can potentially save time and avoid mistakes by learning from past experiences. 

  44. Contd.. Reference Model Fig: Relationship between reference models, architectural patterns and reference architecture • Reference models, architectural patterns and reference architectures are themselves not architecture but capture the elements of architecture. ReferenceArchitecture Software Architecture ArchitecturalPattern

  45. What is Software Architecture? • What software architecture is & what isn’t? • Other points of view • Architectural patterns, Reference models, Reference architectures • Why is software architecture important? • Architectural structures & views

  46. Why is software architecture important? • Three fundamental reasons for software architecture’s importance: • Communication among stakeholders • a basis for mutual understanding, negotiation, & consensus • Early design decisions • earliest point at which decisions can be analyzed • Transferable abstraction of a system • can promote large-scale reuse

  47. Contd.. • i) Architecture is vehicle for stakeholder communication • 1. Architecture provides a common language in which different concerns can be expressed, negotiated and resolved among the stakeholders. • 2. Makes it easier to understand large systems sufficiently in order to make earlier decisions that influence both quality & usefulness of the system

  48. Contd.. • Architecture manifests the earliest set of design decisions 1. Architecture defines constraints on implementation. 2. Architecture dictates organizational structure. 3. Architecture inhibits or enables a system’s quality attributes. 4. System’s qualities can be predicted by studying the architecture. 5. Architecture makes it easier to reason about and manage change. 6. Architecture helps in evolutionary prototyping 7. Architecture enables more accurate cost & schedule estimate.

  49. Contd.. • Architecture as a transferable re-usable model 1. Software product lines share a common architecture. 2. Systems can be built using large, externally developed elements. 3. Less is more: It pays to restrict the vocabulary of design alternatives. 4. Architecture permits template-based development. 5. An architecture can be the basis for training.

  50. What is Software Architecture? • What software architecture is & what isn’t? • Other points of view • Architectural patterns, Reference models, Reference architectures • Why is software architecture important? • Architectural structures & views

More Related