Chapter two. Software Architecture: Basic Training

This chapter on basic training for software architects presents the fundamental tools you require in order to be effective. In the military, basic training is used to challenge and motivate cadets and to demonstrate both the demands and rewards of a military career. Similarly, software architects must be motivated individuals who have the desire to confront the challenges of technical leadership in a software development effort. However, motivation is not enough. A software architect must be equipped with the intellectual tools to concretely realize in software an architectural vision.

This manual takes a hands-on approach that not only presents the best architectural practices in the industry but also provides concrete real-world examples and exercises for applying the presented material to circumstances common throughout the software industry. Basic training will cover the fundamental concepts of software technology, which provide a foundation for software architecture. Software technology has evolved through many trends and alternatives for software development. Currently, mainstream software practice has evolved from procedural software to object orientation (Figure 2.1). With the increasing adoption of enterprise Java and Microsoft COM, component-orientation is the next major paradigm. In corporate development, most new-start projects are adopting object orientation because it is supported by the majority of commercial development environments. As we will discuss, object orientation has a very weak notion of software architecture, which leads to serious shortcomings. The emerging trend of component orientation is replacing old approaches with strong elements of architectural design.

Figure 2.1. (a) Procedural Paradigm and (b) Object-Oriented Paradigm


Software architects must be able to articulate these development paradigms clearly, along with appropriate uses of enabling technologies. In any given project, an eclectic mixture of development paradigms (including relational database management) can be useful to achieve the best results. Each paradigm has something useful to offer, including mature development tools. An interesting discussion of multiparadigm programming is presented in [Coplien 99].

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.158.106