Software architecture business cycle




















The architecture can provide opportunities for the efficient. This is feedback from the system to the developing organization and the systems it builds. The architecture can affect customer requirements for the next system by giving the customer the opportunity to receive a system based on the same architecture in a more reliable, timely, and economical manner than if the subsequent system were to be built from scratch. The customer may be willing to relax some requirements to gain these economies.

Shrink-wrapped software has clearly affected people's requirements by providing solutions that are not tailored to their precise needs but are instead inexpensive and in the best of all possible worlds of high quality. Product lines have the same effect on customers who cannot be so flexible with their requirements.

A Case Study in Product Line Development will show how a product line architecture caused customers to happily compromise their requirements because they could get high-quality software that fit their basic needs quickly, reliably, and at lower cost.

The process of system building will affect the architect's experience with subsequent systems by adding to the corporate experience base. A system that was successfully built around a tool bus or. NET or encapsulated finite-state machines will engender similar systems built the same way in the future. On the other hand, architectures that fail are less likely to be chosen for future projects. A few systems will influence and actually change the software engineering culture, that is, the technical environment in which system builders operate and learn.

The first relational databases, compiler generators, and table-driven operating systems had this effect in the s and early s; the first spreadsheets and windowing systems, in the s. The World Wide Web is the example for the s. J2EE may be the example for the first decade of the twenty-first century. When such pathfinder systems are constructed, subsequent systems are affected by their legacy.

These and other feedback mechanisms form what we call the ABC, illustrated in Figure , which depicts the influences of the culture and business of the development organization on the software architecture. That architecture is, in turn, a primary determinant of the properties of the developed system or systems. But the ABC is also based on a recognition that shrewd organizations can take advantage of the organizational and experiential effects of developing an architecture and can use those effects to position their business strategically for future projects.

Building the ABC:. Building the ABC is done by identifying the influences to and from architectures as follows:. Many people and organizations are interested in the construction of a software system.

Stakeholders have different concerns that they wish the system to guarantee or optimize, including things as diverse as providing a certain behavior at runtime, performing well on a particular piece of hardware, being easy to customize, achieving short time to market or low cost of development, gainfully employing programmers who have a particular specialty, or providing a broad range of functions.

Figure shows the architect receiving helpful stakeholder " suggestions. Having an acceptable system involves properties such as performance, reliability, availability, platform compatibility, memory utilization, network usage, security, modifiability, usability, and interoperability with other systems as well as behavior. Indeed, we will see that these properties determine the overall design of the architecture.

All of them, and others, affect how the delivered system is viewed by its eventual recipients, and so they find a voice in one or more of the system's stakeholders. The underlying problem, of course, is that each stakeholder has different concerns and goals, some of which may be contradictory. Properties can be listed and discussed, of course, in an artifact such as a requirements document. But it is a rare requirements document that does a good job of capturing all of a system's quality requirements in testable detail.

The reality is that the architect often has to fill in the blanks and mediate the conflicts. In addition to the organizational goals expressed through requirements, an architecture is influenced by the structure or nature of the development organization. For example, if the organization has an abundance of idle programmers skilled in client-server communications, then a client-server architecture might be the approach supported by management.

If not, it may well be rejected. It is not until the architecture is created that some tradeoffs among requirements become apparent and force a decision on requirement priorities. In the landmark book The Mythical Man-Month , Fred Brooks argues forcefully and eloquently that conceptual integrity is the key to sound system design and that conceptual integrity can only be had by a small number of minds coming together to design the system's architecture. Chapters 5 Achieving Qualities and 7 Designing the Architecture show how to create an architecture to achieve its behavioral and quality requirements.

For the architecture to be effective as the backbone of the project's design, it must be communicated clearly and unambiguously to all of the stakeholders. Developers must understand the work assignments it requires of them, testers must understand the task structure it imposes on them, management must understand the scheduling implications it suggests, and so forth.

Toward this end, the architecture's documentation should be informative, unambiguous, and readable by many people with varied backgrounds. We discuss the documentation of architectures in Chapter 9 Documenting Software Architectures.

In any design process there will be multiple candidate designs considered. Some will be rejected immediately. Others will contend for primacy. Choosing among these competing designs in a rational way is one of the architect's greatest challenges. The chapters in Part Three Analyzing an Architecture describe methods for making such choices. Evaluating an architecture for the qualities that it supports is essential to ensuring that the system constructed from that architecture satisfies its stakeholders' needs.

Becoming more widespread are analysis techniques to evaluate the quality attributes that an architecture imparts to a system. Scenario-based techniques provide one of the most general and effective approaches for evaluating an architecture. This activity is concerned with keeping the developers faithful to the structures and interaction protocols constrained by the architecture.

Having an explicit and well-communicated architecture is the first step toward ensuring architectural conformance. Having an environment or infrastructure that actively assists developers in creating and maintaining the architecture as opposed to just the code is better. Bestsellers Editors' Picks All audiobooks.

Explore Magazines. Editors' Picks All magazines. Explore Podcasts All podcasts. Difficulty Beginner Intermediate Advanced. Explore Documents. Software Architecture Business Cycle. Uploaded by Mahesh Mahi. Document Information click to expand document information Description: this is about architecture business cycle. Did you find this document useful?

Is this content inappropriate? Report this Document. Description: this is about architecture business cycle. Flag for inappropriate content.

Download now. Related titles. Carousel Previous Carousel Next. The employee survey benefits problems in practice HRM. Jump to Page. Search inside document. Where Do Architectures Come From? Architectures Affect the Factors that Influence Them The architecture affects the structure of the developing organization. Software Architecture Activities Creating the business case for the system.

The architecture should be the product of a single architect or small group of architects. Contd The architecture should be analyzed for applicable quantitative measures e. The architecture should feature well-defined modules based on the principles of information hiding and separation of concerns.

Contd Modules that produce data should be separate from modules that consume data. Shamanth Gowda. Johari Jamalluddin. Shiey Gutierrez. Ahmad Abrishami. Aleksandar Popic. Zeinm Khen. Marius Cseke.



0コメント

  • 1000 / 1000