0% found this document useful (0 votes)
203 views

Software Design Notes

The document outlines chapters from a book on software design patterns and processes. It discusses design patterns for different categories like creational, structural and behavioral. It also covers topics like the software design process, communicating design solutions, structured analysis and design methods, architecture frameworks. Key phases in the software design process include understanding requirements, producing design, implementing and testing.

Uploaded by

Faizal Azman
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
203 views

Software Design Notes

The document outlines chapters from a book on software design patterns and processes. It discusses design patterns for different categories like creational, structural and behavioral. It also covers topics like the software design process, communicating design solutions, structured analysis and design methods, architecture frameworks. Key phases in the software design process include understanding requirements, producing design, implementing and testing.

Uploaded by

Faizal Azman
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 17

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

You might also like