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

Software Design Concepts

Uploaded by

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

Software Design Concepts

Uploaded by

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

Software design

concepts

JEREMIAH O. BANDELE
PhD Electrical/Electronic Engineering
University of Noingham
Learning objectives

At the end of the lesson, you should be able to:


● Describe software architecture and why we need
software architecture to solve problems.
● Outline various types of software paerns.
● Discuss dierent forms of software design
approaches.
Software architecture

Software architecture refers to the structure of the system, which contains various components
of a program/system, the aributes (properties) of those components and the relationship
between them. The software architecture enables the software engineers to analyze the software
design eiciently.
Software architecture: why
A software architecture:
• Enables eicient communication between all the interested stakeholders.
• Highlights early design decisions that aects activities such as coding and testing.
• Creates intellectual models of how the system is organized into components and how these
components interact with each other.
Software pattern
This provides a description of the solution to a recurring design problem of some specific domain
in such a way that the solution can be used again and again.
Software pattern
The objective of each paern is to provide an insight to a designer who can determine the
following:
• Whether the paern can be reused.
• Whether the paern is applicable to the current project.
• Whether the paern can be used to develop a similar but functionally or structurally dierent
design paern.
Software pattern: architectural
High-level strategies that refer to the overall structure and organization of a software system.
They define the elements of a software system such as subsystems, components, classes, etc.
They also indicate the relationship between the elements along with the rules and guidelines for
specifying these relationships.
Note that architectural paerns are often considered equivalent to software architecture.
Software pattern: design
Medium-level strategies that are used to solve design problems.
They provide a means for the refinement of the elements (as defined by architectural paern) of a
software system or the relationship among them.

Specific design elements such as relationship


among components or mechanisms that aect
component-to-component interaction are
addressed by design paerns.
Note that design paerns are often considered
equivalent to software components.
Software pattern: idiom

Low-level paerns, which are programming-language specific.


They describe the implementation of a software component, the method used for interaction
among software components, etc., in a specific programming language.
Note that idioms are often termed as coding paerns.
Software design approaches
There are two generic approaches to software design:
• Top-down design
• Boom-up design
Top-down and boom-up approaches are not individually practicable. Instead, a good
combination of both is used.
Software design approaches: top-down
Top-down design takes the whole software system as one entity and then decomposes it to
achieve more than one sub-system or component based on some characteristics.
Each sub-system or component is then treated as a system and decomposed further.
This process keeps on running until the lowest level of system in the top-down hierarchy is
achieved.
Software design approaches: top-down
Top-down design starts with a generalized model of system and keeps on defining the more
specific part of it.
When all components are composed the whole system comes into existence.
Top-down design is more suitable when the software solution needs to be designed from scratch
and specific details are unknown.
Software design approaches: bottom-up
The boom up design model starts with most specific and basic components.
It proceeds with composing higher level of components by using basic or lower level components.
It keeps creating higher level components until the desired system is evolved as one single
component.
Software design approaches: bottom-up

With each higher level, the amount of abstraction is increased.


Boom-up strategy is more suitable when a system needs to be created from some existing
system, where the basic primitives can be used in the newer system.
summary

● Software architecture refers to the structure of the system, which contains various
components of a program/system.
● There are two generic approaches to software design:Top-down design , Boom-up
design
FURTHER READING RESOURCES

● Jalote, P. (1997). An Integrated Approach to Software


Engineering. Germany: Springer.
● Buschmann, F. (1996). Paern-Oriented Software Architecture, A System of
Paerns. Singapore: Wiley.
Thank
You

You might also like