Skip to Content
Our misssion: to make the life easier for the researcher of free ebooks.

Purposes of Software Architecture Design

Why do we need software architectures and methods to design them? To answer this question we need to understand just how dependent we are on the software around us. During the months before the Y2K switch the world virtually trembled with fear of what could happen if the Y2K bug manifested itself (Evelyn J. Barry et. al. 2003). We need software, and the software need to be maintained and updated in order to stay up-to-date with a changing world (consider a new Y2K bug). A key issue in keeping software maintainable is of course to plan and design it. Software architecture design (SAD) is, as a technical discipline, rather young. Perhaps due to its relative youth, SAD has had problems to describe its fundamental hows and whys (Kruchten 2000).

Should, for example, design originate from functional requirements; identifying core functional abstractions of the system (Bosch 2000, Bachmann & Bass 2001), or is it more important to separate data and functionality first? And is it more important that the SAD method is adaptable to the other development activities or that it supports and encourages a particular form of development? In either way, even though its relative youth, SAD has had many opportunities to learn from previous mistakes, using the incredible speed by which information can be shared in the modern world and the relative short life-span of software generations (Hofmeister et. al. 1999). It has become necessary to define the role of software architecture design in the general software development (and maintenance) process (Hofmeister et. al. 1999, Kruchten 2000).

The remainder of this chapter is structured accordingly: Following this section is the problem description section (1.2). It covers the purpose and justification for this project, what influences has led forward to this research and what scope was set to define the research objectives and practices. Succeeding problem description, the methodology section (1.3) explains what steps where taken to solve the problems. In particular it focuses on the literature survey practice and industrial survey analysis. Finishing this chapter we make an effort to find a definition for software architecture (1.4) before actually starting the analysis of its purposes. Finally, the thesis is outlined in section 1.5 at the end of this chapter.

Chapter Overview
Chapter I - Introduction

    1.1 Introduction
    1.2 Problem Description
    1.3 Methodology
    1.4 Definition of Software Architecture Design
    1.5 Thesis Outline

Chapter II - Literature Review

    2.1 Introduction
    2.2 Distributed Development Architecture Design Methods
      2.2.1 Distributed Integrated Process Services Framework
      2.2.2 Dynamic PARSE Architecture Design Method
      2.2.3 Purposes and Properties Discussion – Distributed Parallel System Methods

    2.3 Domain Engineering Software Architecture Design Methods

      2.3.1 The DAGAR Method
      2.3.2 The Catalysis Method
      2.3.3 Purposes and Properties Discussion – Domain Engineering Methods

    2.4 General Software Architecture Design Methods

      2.4.1 Attribute Driven Design Method
      2.4.2 Two Methods by Bernad I. Witt, F. Terry Baker and Everett W. Merrit
      2.4.3 Quality Attribute-oriented Software Architecture Design Method
      2.4.4 Rational's Architecture Design Method
      2.4.5 Goal-Directed Design Method
      2.4.6 Purposes and Properties Discussion – General Methods

    2.5 Real-time systems

      2.5.1 Hierarchical Object Oriented Design Method
      2.5.2 Properties and Purposes Discussion – Real-time systems

2.6 Summary
Chapter III – Industrial Survey Analysis

    3.1 Introduction
    3.2 The Survey Methodology
    3.3 Analysing Industrial Purposes
      3.3.1 Method Purposes
      3.3.2 Artefact Purposes

    3.4 Summary

Chapter IV – Literature and Industrial Purpose Analysis

    4.1 Introduction
    4.2 Structuring the Purposes
    4.3 Comparing Literature and Industrial Purposes
      4.3.1 Matching Industrial Method Purposes
      4.3.2 Matching Industrial Artefact Purposes

Chapter V – Discussion

    5.1 Introduction
    5.2 Discussing the Information Gathering Activity
    5.3 Discussing the Information Processing Activity
    5.4 Discussing the Result Presentation Activity
    5.5 Summary

Chapter VI – Conclusions and Further Studies

    6.1 Further Studies

Chapter VII – References
Appendix A
A.1 Questionnaire

Purposes of Software Architecture Design