Software Design Methodology: From Principles to Architectural Styles

Software Design Methodology: From Principles to Architectural Styles

by Hong Zhu

NOOK Book(eBook)

$62.99 $73.95 Save 15% Current price is $62.99, Original price is $73.95. You Save 15%.

Available on Compatible NOOK Devices and the free NOOK Apps.
WANT A NOOK?  Explore Now

Overview

Software design methodology has come a long way since the 1960s and 1970s when programmers were limited to Pascal/C and SA/SD to create systems. When creating information systems for today's world, many factors must be taken into consideration including globalization, the software lifecycle, modeling, coding, testing, and maintenance.

* In depth coverage of large scale software systems and the handling of their design problems
* Many worked examples, exercises and case studies to reinforce theory and practice
* Gain an understanding of the general theory of design methodology

Product Details

ISBN-13: 9780080454962
Publisher: Elsevier Science
Publication date: 05/20/2005
Sold by: Barnes & Noble
Format: NOOK Book
Pages: 368
File size: 7 MB

Read an Excerpt

Software Design Methodology


By Hong Zhu

BUTTERWORTH-HEINEMANN

Copyright © 2005 Hong Zhu
All right reserved.

ISBN: 978-0-08-045496-2


Chapter One

Basic Concepts of Design

Design methodology emerged in the 1960s as an independent scientific discipline. This chapter looks to the theory of design methodology as a source of inspiration to understand the basic concept of design in the most general context. The objectives of the chapter are:

• To understand the basic characteristics of design processes;

• To understand the elements of designs;

• To understand the factors that affect design processes and outcomes.

The chapter is organised as follows. Section 1.1 gives a brief introduction to the notion of design. Section 1.2 examines the main characteristics of design activities in the creative processes of design. Section 1.3 considers designs as plans to produce man-made artefacts, and identifies the essential elements of all designs. Finally, section 1.4 presents Mayall's axioms of design to outline the basic relationships between various issues involved in every design.

1.1 INTRODUCTION

The word 'design' as defined in the Longman Dictionary of Contemporary English (1987) has the following meanings. As a noun, it means:

1. A drawing or pattern showing how something is to be made;

2. The art of making such drawings or patterns;

3. The arrangement of parts in any man-made product, such as a machine or work of art, as this influences the product's practical usefulness;

4. A decorative pattern, esp. one that is not repeated;

5. A plan in the mind.

The word design is also used as a verb with the following meanings.

6. To make a drawing or pattern of (something that will be made or built); develop and draw the plans for;

7. To plan or develop for a certain purpose or use.

As Christopher Jones pointed out in the book Design Methods: Seeds of Human Futures, design methodologists have been moving away from 'drawings and patterns' in the notion of design, although it is perhaps still a common action of designers of all kinds. The literature on design methods began to appear in the 1950s and 60s. Since then, design methodology has become an independent discipline of scientific study. The Design Research Society publishes a quarterly journal Design Studies in London by Elsevier Science, which provides an insight into design issues affecting a wide range of fields of applications for design techniques. Researchers in the general theory of design have tried to answer two interrelated fundamental questions about design. The first question is:

What are the essential characteristics of design?

This question relates to understanding when an activity is designing and when it is not.

The second question is:

What processes are used by designers?

It can be asked in a number of different ways with emphasis on various aspects of design processes. For example,

Is one process better than another, constituting 'right' and 'wrong' ways to design?

Why are some processes favourable over others?

Do different processes lead to different qualities of results?

The last few decades have seen a significant amount of research devoted to developing design theories with the ultimate aims at clarifying the human ability of designing in a scientific way, and at the same time, producing the practical knowledge about design methodology. Such knowledge is believed to be useful and essential to construct computer aided design systems.

As one of the most complex man-made artefacts, computer software is very difficult to design. There are many factors that affect designs and many stakeholders, i.e. people who participate in the design process, play various different roles in the design processes and influence the design of software. The questions that researchers in the area of design theory have been searching for answers to are also questions that computer scientists are looking for answers to in the context of software development. In fact, software design shares many characteristics with designs in other fields. As McPhee pointed out, much can be learned from the philosophical and methodological studies of design in general. This chapter is only a brief review of the basic concepts of design theory.

1.2 CHARACTERISTICS OF DESIGN ACTIVITIES

Let's first have a look at how design theory characterises design activities in the most general sense.

1.2.1 The input and start point of designs

Many design researchers believe in the aphorism 'necessity is the mother of invention'. It is considered as one of the basic characteristics of design that design can only be undertaken intentionally. Lawson and Dasgupta pointed out that a real or perceived need forms the basis for the definition of design projects. A need acts as the initial motivational force that provides the basis for starting design work. Willem explicitly expressed that the universal feature of design is simply the intentional devising of a plan or prototype for something new. The need or intention forms the first basic elements of all designs, i.e. the problem to be solved. In software design, the need or intention is usually explicitly or implicitly specified as users' requirements. Without users' requirements, there will be no software design.

1.2.2 The outcome and results of designs

Many designers believe that the output or product of a design is a symbolic representation of an artefact for implementation. For example, Booker (1964) regards design as simulating what we want to make (or do) before we make (or do) it as many times as may be necessary to feel confident in the final result. Dasgupta expressed that design is essentially 'the formation of a prescription or model for an unfinished work in advance of its embodiment'. Design representation serves as the basis to conceptualise and compare various design decisions. This is very true in software design. Computer scientists and software engineers learned this lesson mostly from practical experiences that neglected design stage can only cause problems at later stages of implementation and so on.

However, the true output of design is more than just a plan or symbolic representation. MacLean et al. pointed out that, the final output of a design also include what they call 'design space', which is a body of knowledge about the artefact, its environment, its intended use, and the decisions that went into creating the design. Designers must consider the representations of this kind of metaknowledge about how they arrived at a particular design. Recently such metaknowledge about software designs has been collected and studied systematically. Two forms of systematic studies of such knowledge emerged in the literature of software design. One is about software architecture and the other is design patterns of object oriented systems. These types of knowledge form the main contents of this book.

1.2.3 Transformation of data

A basic feature of design that almost all design researchers accept implicitly or explicitly is the transformational nature of design. For example, Dasgupta noted that need acts as a seed that design transforms into a form that is eventually used to guide the implementation of an artefact, plan or process. Simon wrote that design is the restructuring of a current situation to achieve some preferred situation. Willem preferred to use the term 'development' to describe the transformation that occurs during design. Page regarded design as an 'imaginative jump from present facts to future possibilities'.

1.2.4 Generation of new ideas

The requisite of the generation of new ideas during design processes is another commonly cited characteristic of design. Reswick defined design as a creative activity – it involves bringing in something new and useful that has not existed previously. However, creativity remains an elusive subject of design researches and still beyond science's firm grasp. The precise manner in which new ideas are generated still cannot be codified. Some researchers, such as Freeman, have postulated that idea generation is not entirely a haphazard activity. He believed that two styles of idea generation exist: abstraction and elaboration. Abstraction is used to make generalisations while elaboration attempts to develop into great detail the specifics of a design. In fact, these two styles of idea generation play a significant role in software design methodology.

1.2.5 Problem solving and decision making

Design methodologists tend to characterise design as a type of problem solving or decision making activity. For example, Asimow defined design as decision making, in the face of uncertainty, with high penalties for error. For many scientists and engineers, design invariably involves the application of some sort of logical analysis on the problem. Others, including Willem, believe that various design problem solutions are not necessarily connected through logic to their initial problem state. Design problems are often described as 'ill-structured' problems because of their complexity and the difficulties in determining their associated constraints and requirements. Freeman preferred to use a decision-making analogy to view design problem solving. He characterised design as a series of decisions between various design alternatives. Each alternative is determined by the current state of abstractions, elaborations, operational statements and other known and unknown factors. Both design-as-problem-solving and design-asdecision-making views characterise design as goal directed activity and design process as navigation in a design configuration space.

1.2.6 Satisfying and discovering constraints

An initial need not only determines the problem to be solved, but also imposes the most basic constraints on the solution. In general, more constraints are often discovered during the design work itself. Many researchers agree that a major part of designing involves discovery and satisfaction of constraints on the eventual form of the design. Such constraints apply both to the designed artefacts and to the processes and participants involved in the design activity. For example, Mostow regarded design as an activity with the goal of creating an artefact description that satisfies constraints derived from functional and performance specifications of the artefact, limitations of the medium and process by which the artefact is rendered or produced, and aesthetic criteria on the form of the artefact. For Alexander, design is 'finding the right physical components of a physical structure'. In the context of architectural design, Lawson presents design problems as the assembling of constraints.

1.2.7 Evolution and optimisation in a solution space of diversity

As consequences of the complexity of design problems, diversity presents in almost all design solutions. Diversity often leads to uncertainty, because the knowledge that there are many other solutions to the same design problem causes designers to question the optimality of their initial solution. Thus, they test, evaluate and modify their design. Designers compensate for weaknesses exposed during testing and evaluation. They redesign as necessary until they are satisfied with their design. Therefore, design processes often demonstrate an evolution process. The evolution of a design is often closely related to the consolidation of the constraints and requirements applied in a particular design situation. Design requirements are often imprecise and incomplete. The consequences of a design decision often cannot be forecast with complete accuracy. Hence, design solutions evolve in tandem with known problem constraints and requirements. Eventually, a successful design process includes a convergence of requirements, constraints, and knowledge about the design and its effects on the implementation environment.

1.3 ESSENTIAL ELEMENTS OF DESIGNS

Having studied the characteristics of design processes, now let's examine the plan facet of design and identify the basic elements of designs. We will look to the designs made by a mastermind of designs, Thomas Edison, as our examples. Figure 1.1 is the one of Edison's USA patents of electric lights.

(Continues...)



Excerpted from Software Design Methodology by Hong Zhu Copyright © 2005 by Hong Zhu. Excerpted by permission of BUTTERWORTH-HEINEMANN. All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.

Table of Contents

Basic Concepts of Design; Software Design Quality; Design Strategies and Processes; Design Methodologies; Software Architecture; Description of Software Architectures; Software Architectural Styles; Design in Different Styles; Case Study 1 Extraction of keyword vector from text; Design Spaces; Case Study 2 Design space for user interface architecture; Design by Applying Design Patterns; Case Study 3 Document editor; Analysis and Evaluation of Architectural Designs; Case Study 4 - Analysis of designs of extraction of keyword vector; Appendix A - Coursework; Part 1 - Architectural design for text wrapping problem; Part 2 - Evaluation of the designs for text wrapping problem; Appendix B - Sample solutions to the coursework; Appendix C - Selected answers to the exercises; Glossary; Index

Customer Reviews