Software Design Notes
Chapter 1 : Introduction to design patterns
● Design Pattern represents a recurring solution to a particular problem
●
Chapter 2,3 : Creational Design Patterns
● Factory Method
● Abstract Factory
● Singleton
● Builder
● Prototype
Chapter 4,5 : Structural Design Patterns
● Decorator
● Adapter
● Flyweight
● Proxy
Chapter 6 : Behavioral Design Patterns
● Iterator
● Chain of Responsibility
● Intepretor
● Command
● Strategy
● Observer
Chapter 7 : Nature and Role of the Design Process
● Model of the design process
● Designer is to specify the best solution to a problem and produce a
description of how this is to be organized.
●
Chapter 8 : Software Design Process
● Factors that impact software development - Complexity, Conformity,
Changeability, Invisibility
● General model of the software design process
● Major phases of the software design process
● Design Methods
● Transformational model of design activity
Chapter 9 : Communicating a design solution
● Abstraction = features of problems , design objects and the
relationship between the two
● Representation, like design ideas, can be expressed in different
levels of abstraction
● Representation as a viewpoint
● A software design model needs to capture the static (solution
orientated) and dynamic (system orientated) aspects of software
Chapter 10 : Structured System Analysis and Design
● Structured Chart describes the functions of the sub-programs and the
runtime invocations that links them
● From SSA to Structured Design
●
Chapter 11 : Jackson system development (JSD)
● Top Level JSD
● 2 Diagrammatical description - Entity-Structure Diagram and System
Specification Diagram
● For System Specification Diagram, there is 2 basic mechanism for
interposes communication which is
● Data flow stream - Messages are passed asynchronously Using
pipeline mechanism
● State Vector - Describes the local state of a process
●
● JSD can have both data stream and state vector, Inversion can only
be done on data stream
● No real analogue in JSP
● JSD have backtracking - Helps handles unexpected events such as
premature end
Chapter 12 : Architecture and frameworks
● Software architecture is its high level design , which enables software
engineers to gain understanding
● Steps to derive software’s architecture
● Goals for software architecture - Correctness, Sufficiency and
Flexibility
● Standard software architecture - Data Flow, Independent
components, Virtual machine, Repositories, Layered
● Layered Architecture in OO form
● Framework is a collection of software artifacts that is usable by
several different applications
● Goal of framework - Manage persistence, Identify service, Pooling
and Security
● Framework Development - 2 Strategy which is
● Bottom up - start with classes in class model and look for
generalizations
● Topdown - Start with libraries and look for opportunities to use