SENG 22582


Status : Core Pre-requisite : SENG 21533 Co-requisite : None


On completion of this course, the student should be able to:

  • Identify essential elements in software design
  • Describe quality attributes and basic rules of software design
  • Evaluate the effect of design on software quality
  • Demonstrate ability to use software design principles in software development
  • Design a software architecture to satisfy the system requirement
  • Design high quality, cost effective software systems.

The input and start point of designs, the outcome and results of designs, transformation of data, generation of new ideas, problem solving and decision making, satisfying and discovering constraints, evolution and optimization in a solution space of diversity, statement of design problem and objectives, constraints, description of product, rationale, plan of production, description of usage, the factors that affect designs.

The effect of design on software quality: efficiency, correctness and reliability, portability, maintainability, reusability, interoperability, quality attributes of software design: Witt, Baker and Merritt’s design objectives, Parnas and Weiss’s requirements of good design, quality of design process.

Basic rules of software design, design processes, structure of software design methods, the notion of software architecture, software architectural styles, description of software architectures, typical architectural styles, using styles in design, design suitable software architecture for a given system Design patterns.

N-Tier and SOA architectures.

Lectures and practical sessions.

End of course unit theory and practical examinations, group assignments.

  1. Zhu, H (2005).Software design methodology: From principles to architectural styles. Elsevier
  2. Braude, E J (2004). Software Design: From programming to architecture. John Wiley & Sons
  3. Sommerville, I (2011).Software Engineering. Pearson Education.