08.09.2013 Views

Microsoft .NET: Architecting Applications for the Enterprise ... - BattleIT

Microsoft .NET: Architecting Applications for the Enterprise ... - BattleIT

Microsoft .NET: Architecting Applications for the Enterprise ... - BattleIT

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 1 Architects and Architecture Today 5<br />

We think that software professionals should agree on a more detailed explanation that<br />

breaks down that defi nition into smaller pieces and puts <strong>the</strong>m into context.<br />

Defi ning <strong>the</strong> Architecture from a Standard Viewpoint<br />

Many seem to <strong>for</strong>get that a standard defi nition <strong>for</strong> software architecture exists. More<br />

precisely, it is in ANSI/IEEE standard 1471, “Recommended Practice <strong>for</strong> Architectural<br />

Description of Software-intensive Systems.” The document was originally developed by<br />

IEEE and approved as a recommended practice in September 2000.<br />

The document focuses on practices to describe <strong>the</strong> architecture of software-intensive<br />

systems. Using <strong>the</strong> defi nition in <strong>the</strong> standard, a software-intensive system is any system in<br />

which software is essential to implementation and deployment.<br />

Stakeholders are defi ned as all parties interested or concerned about <strong>the</strong> building of <strong>the</strong><br />

system. The list includes <strong>the</strong> builders of <strong>the</strong> system (architects, developers, testers) as well as<br />

<strong>the</strong> acquirer, end users, analysts, auditors, and chief in<strong>for</strong>mation offi cers (CIOs).<br />

In 2007, <strong>the</strong> ANSI/IEEE document was also recognized as a standard through ISO/IEC document<br />

42010. Those interested in reading <strong>the</strong> full standard can navigate <strong>the</strong>ir browser to <strong>the</strong> following<br />

URL: http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=45991.<br />

Examining Key Architecture-Related Points in ANSI/IEEE 1471<br />

The key takeaway from <strong>the</strong> ANSI/IEEE standard <strong>for</strong> software architecture is that a software<br />

system exists to meet <strong>the</strong> expectations of its stakeholders. Expectations are expressed as<br />

functional and nonfunctional requirements. Processed by <strong>the</strong> architect, requirements are<br />

<strong>the</strong>n communicated to <strong>the</strong> development team and fi nally implemented. All <strong>the</strong> steps occur<br />

and exist to ensure <strong>the</strong> quality of <strong>the</strong> software. Skipping any step introduces <strong>the</strong> possibility<br />

<strong>for</strong> less software quality and <strong>the</strong> potential to not meet <strong>the</strong> stakeholders’ expectations.<br />

To design a software system that achieves its goals, you need to devise it using an<br />

architectural metaphor. Accepting an architectural metaphor means that you recognize <strong>the</strong><br />

principle that some important decisions regarding <strong>the</strong> system might be made quite early<br />

in <strong>the</strong> development process; just like key decisions are made very early in <strong>the</strong> development<br />

of civil architecture projects. For example, you wouldn’t build a skyscraper when a bridge<br />

was required. Similarly, requirements might steer you to a Web-oriented architecture<br />

ra<strong>the</strong>r than a desktop application. Decisions this major must be made very early.<br />

A software architecture, <strong>the</strong>re<strong>for</strong>e, is concerned with <strong>the</strong> organization of a system and lays<br />

out <strong>the</strong> foundations of <strong>the</strong> system. The system, <strong>the</strong>n, has to be designed—which entails<br />

making some hard decisions up front—and described—which entails providing multiple<br />

views of <strong>the</strong> system, with each view covering a given set of system responsibilities.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!