Search
 
     
   
   
   
 
By
Dr. R. Srinivasan,
CTO, iCMG, Bangalore
   
  Software Architects: Greater responsibilities and responsiveness
 
 

 

Software Architects are responsible for a much wider and more interesting range Of issues that include technical, intuitive and human factors, than Project Managers, writes Dr R Srinivasan

If we take a look at the life Cycle Methodology of software development, the different segments are - software Concept, Requirement Analysis, Architecture Design, Detailed Design (including high level and low level design), Coding and Debugging, and Software Testing, In any engineering design of product, It is Absolutely Essential to decide the architecture first before going to the detailed design because a product not based on a good architecture will be brittle and fail soon. Software engineering is no exception to this. In their book on, 'Software Architecture, Organisational principles and patterns,' David Dikel et al say that Software Architecture true is a speciality distinct from software engineering, Programming, and Project man agement. An architect balances and resolves design forces from many perspectives including system stakeholders and system developers. Software Architects are responsible for a much wider and more interesting range of issues that include technical, intuitive and human factors than are associated with the Project Manager.

In today's world driven systems pervade all walks of life. Some typical examples are -remote operation of household appliances, entertainment gadgets, automatic elevators, intelligent automobiles, mobile phones and more. These are in addition to sophisticated real time systems like industrial process control, satellite control, weather information systems, etc. This has brought us to the situation that a software product developed by a team in an organization has many end users. The conceptual integrity and reliability of each one of these products, as perceived by the end user, is the most important factor in ease of use. Frederick Brooks explains in his book, "The Mythical Man Month' that a clean and elegant programming product must present to each of its users a coherent model mental of the application, and of the user interface tactics to be used in specifying actions and parameters. It is the software architect who is responsible for the conceptual integrity of all aspects of the product perceivable by the user, which includes the detailed specification of all its function and the means for involving and controlling it. If the software project is big, comprising many sub systems, the structure should be such that the project will have a Chief Architect, having the over-all perspective, under whom there will be architects of the subsystems. Only in small projects the project manager can take the role of a software architect. So the point to be taken care of is: there should be architecture design before taking up a detailed design in a software project.

Many-a-times a customer who downloads software development looks at the capability of the organisation in software architecture because software development has almost always involved in fitting together products and organisations as will as developing codes. Software architecture is an important activity for both. To quote David Dikel again, "In practice, software architecture and the organisation from a sensitive and highly volatile matrix. Done right, the organisation and architecture can deliver great value; failure can melt the core of the enterprise". What was once an innovative client/server architecture is almost tending towards a dreaded legacy system, now paving the why for development of products to work under internet and Web-enabled applications, i.e. we are moving from the conventional 2-tier architecture to the 3-tire architecture, bringing in the concept of "middleware", Under this context software architecture becomes all the more important. It is therefore imperative to have a common architecture across the Internet-based software product line which will result in bringing out cost effective products with easy interconnectivity with each other.

It will streamline production documentation, training and also marketing. However, in real life situation, it is pointed out by Dr Thomas Mowbray and Raphael Malveau in 'software architecture Boot Camp', that software technology is critically important to the world's business and human society, however software engineering remains a chaotic, immature discipline unable to systematically deliver successful systems. What is missing is software architecture. If this happens, a software house will end up in developing "stovepipe" systems, where subsystems are integrated in an ad hoc manner without any acceptable strategic and having point-to-point connectivity. Such a system will inhibit any change, extensibility or scalability in future. Moreover architecture being ad hoc, the system will also inhibit interoperability and reuse of some already developed components, thereby increasing the cost of development.

Consequently, architecture driven software development is the most effective approach in building reliable and scalable systems. This is what has to be ensured in the development of large enterprise systems like e-Governance, where each ministry is a subsystem of the government and if the application of one should interact seamlessly with the other, there should be a common architecture to which all the applications will be developed.


(The author is Chief Technology Officer, Internet Component Management Group, Bangalore and can be contacted at: r.srinivasan@iCMGworld.com)


 
     
Copyright © 2006 iCMG. All rights reserved.
Site Index | Contact Us | Legal & Privacy Policy