Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.

Share this Page URL

Chapter 13: The Philosophy of Software A... > CONCLUSION AND FUTURE OUTLOOK - Pg. 159

The Philosophy of Software Architecture used rarely in industry practice, except a few niche areas. There is nothing called perfect architectural design. The practice of software architecture involves managing situations and information which are extremely ambiguous and sometimes even contradictory. This becomes evident when we study the literature on software engineering from industry as well as academia. The definition of art is difficult and has been controversial (Adajian, 2007; Tolstoy & Tolstoy, 2009). A common aspect of art is "originality" of expression by the artist. In practice however, even the best architects assemble the new software from the borrowed proven working solutions, such as design patterns and frameworks. They may improve or reconfigure the reused part before assembling in. Engineering is defined as the profession of ap- plying scientific knowledge to create economical (cost-effective) solutions for the benefit of human- ity. The focus in engineering is on building and optimizing the parts which could be integrated after their production. Thus the engineering has various streams associated with it such as electri- cal, structural, mechanical etc. Architecture on the other hand has a broad focus on the whole and on the integration of products. The focus of architect is in optimizing and striking a balance between quality, usability, composition and appearance in the end product. Thus the scope of application architect (software architect) is in architecting an end product which utilizes the work of J2EE engineer, database engineer, and others. business which is captured using requirements engineering and execution is builder's implemen- tation of architectural blueprint which is realized in IT systems and software code. There are various terms related with software architecture, a definition for each of these was given in section 2 with a visual map in Figure 4. The rationale behind doing software architecture is to gain benefit from holistic system wide per- spective leading to system wide optimizations. We discussed the identity of software architect as defined by skills required, although this topic in itself requires detailed empirical investigation and has been continuously under research. We proposed from our experience that a concise ar- chitect competency model given by Bredemeyer and Malan is easy to use as compared to other complicated models such as the one arising from a review of job advertisements of architects or the one from TOGAF. The metaphor of software architecture is contrasted with science, art and engineering and reader is left with a provocation to further explore this area. Software Architecture has been studied and researched for over 18 years now since its first definition appeared in print by Perry and Wolf (1992). In future, we see the focus broadly on following areas: · Software Architecture Representation: The main focus in this area has been on de- fining Architecture Modeling Languages such as UML (Booch et al., 2005; Medvidovic et al., 2002), SysML, Abstract Architecture Definition/Description Languages (Clements, 1996; Medvidovic & Taylor, 1997; Medvidovic & Taylor, 2000; Mishra & Dutt, 2006) such as AADL (Feiler et al., 2006), ACME (Garlan et al., 1997), Architecture Documentation and Tools to support them. There are also at- tempts to formalize the software architec- ture representation so as to use them for CONCLUSION AND FUTURE OUTLOOK Our thoughts on philosophy of software architec- ture could be summarized by saying that software architecture is inherently strategic in nature and it enables the achievement of business strategy. The software architecture lies between strategy and execution. The strategy is owner's vision of 159