Introduction to the Software Architect

Definition

The definition of software architecture varies because if its various responsibilities within methodologies. Most agree, however, that software architecture involves compromise. The software architect can be a function of a software designer or a titled role. What is also agreed upon is that the software architect is responsible for coordinating many of the efforts of creating the system artifacts and insuring that the design remains within the constraints established by the system, the business, the industry and many other factors.

One definition states that an architecture "describes the overall organization and structure of the system in terms of it's major constituents and their interactions"(1).

Role of the Software Architect

The role of the software architect, as mentioned previously mentioned, wears many hats and has many responsibilities. They must have an understanding of the industry, the business and the technology in order to understand the constrains that must exist for the system. For instance, when putting together a system for insurance organizations, specific care must be paid to securing member healthcare data AND any payment data. The architect must be knowledgeable about HIPAA regulations and PCI Compliance issues.

Skills Needed

The skills needed as a software architect includes, of course, techical skills like knowledge of methodologies like Agile, RUP and possibly waterfall, knowledge of technologies like J2EE and .Net and soft skills like effective communication, leadership, problem domain knowledge and the ability to motivate.

Responsibilities of the Software Architect

The responsibilities that fall under the perview of the architect encompasses many of the responsibiliities that are also that of software designers. In Agile, for instance, there is no true architect role as the architecture is being built as the system evolves. In RUP, on the contrary, the architect role is defined though it is seen as an orchestrating or coordinating role. In my experience architects have functioned as designers, designing classes, refining the analysis and tightening the software architecture documents.

Some architecture responsibilities are broken down to the following:

I.T. Architect-Focused on Hardware

Enterprise Architects-Responsible for larger system integrations touching all aspects of the organization

Business Architects-Focused on the constrains required by the business/industry

References and Resources:

(1) "Fundementals of Software Engineering", Second Edition, Ghezzi, Jazayeri, Mandrioli, Prentice-Hall

Mastering Object-Oriented Analysis and Design with UML 2.0, IBM Press

Ymcdonald

You are viewing the text version of this site.

To view the full version please install the Adobe Flash Player and ensure your web browser has JavaScript enabled.

Need help? check the requirements page.

Get Flash Player