[go: up one dir, main page]

0% found this document useful (0 votes)
62 views27 pages

Software Design for Students

The document discusses software design and architecture. It defines key terms like model, software architecture, and Unified Modeling Language (UML). A model abstracts and simplifies reality while a software architecture defines a system's main components and their relationships. UML is a standard for modeling object-oriented software and includes diagrams like use case diagrams, class diagrams, sequence diagrams, state chart diagrams, and activity diagrams. The document also discusses cascading style sheets and concludes with inviting questions.

Uploaded by

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

Software Design for Students

The document discusses software design and architecture. It defines key terms like model, software architecture, and Unified Modeling Language (UML). A model abstracts and simplifies reality while a software architecture defines a system's main components and their relationships. UML is a standard for modeling object-oriented software and includes diagrams like use case diagrams, class diagrams, sequence diagrams, state chart diagrams, and activity diagrams. The document also discusses cascading style sheets and concludes with inviting questions.

Uploaded by

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

Software Design and Architecture

Engr Saiqa Anjum


Lecturer SE
Faculty of NUML
Software Design and Architecture

Lecture 1
Goals of Software Design and
Architecture
 To apply a wide variety of design patterns, frameworks,
and architectures in designing a wide variety of software.
 To design and implement software project using several
different middleware technologies.
 To use sound quality metrics as objectives for designs,
and then measure and assess designs to ensure the
objectives have been met.
 To modify designs using sound change control
approaches.
 To use reverse engineering techniques to recapture the
design of software.
Software Design and Architecture

Requirements specification was about the


WHAT the system will do

Design is about the HOW the system will


perform its functions
Software Design and Architecture
BASIC TERMS
 Model: “In software development, model means the
simplified and closed abstraction of reality, especially the
problem to be solved”.
 First, model is the simplification of reality, which means
that model only expresses part of reality' s mechanism or
behaviors. Obviously, it is impossible to concern all the
aspects of a system together because too much
information interweaved together will incur chaos.
 A well-defined model will focus on the elements which
have important influence and omit those which have
little relationships with the specified abstraction level.
Software Design and Architecture
BASIC TERMS
 Model:
 Second, model is a closed abstraction, which means
that model has independency and use the
vocabulary and constraints prominently different
from their models.
 Models serve as blueprints of a project and help in
exploration of strong and weak points
Software Design and Architecture
BASIC TERMS
 Model:
 There are three main categories of modeling

 Informal
 Semi-Formal
 Formal
Software Design and Architecture
BASIC TERMS
 Model:
 The purpose of formal modeling is to enable the
strict calculus and formal check with mathematic
theories, such as state machine, to provide a
foundation upon which automatic evaluation are
made possible.
 Industry adopt semi-formal or informal architecture
Software Design and Architecture
BASIC TERMS
 A model is an abstraction describing a subset of a
system
 A view depicts selected aspects of a model
 A notation is a set of graphical or textual rules for
depicting views
 Views and models of a single system may overlap
each other
Software Design and Architecture
BASIC TERMS
 Software Architecture:
 Garlan (1993) defines the architecture as

SA = {Components, Connectors, Constraints}

 Software architecture concerns only interactions among the


components in a system.
 Connectors defined the communication protocols and
strategies.
 And constraints define the rules which the system must
conform to
Software Design and Architecture
BASIC TERMS

 Software Architecture:
 Softwarearchitecture can be considered as the
decomposition of several related and constrained
components.
Software Design and Architecture
BASIC TERMS

 Software Architecture:
 Is that enough to describe a software architecture?

“Obviously No”

 In the model the components concentrate on runtime


structure of a system only, ignoring the static
relationships among building blocks, which are also
crucial to system's constructing.
Software Design and Architecture
BASIC TERMS

 Software Architecture:
 Bosch (2000) defines software architecture as:
“The architecture of a software system is concerned
with the top-level decomposition of the system into its
main components.
Software Design and Architecture
BASIC TERMS

 Software Architecture Example:


 Word Counter reads a textual file and output "word-
frequency" pair for each appeared word in frequency
order

Component and connector SA model of WordCounter


Software Design and Architecture
BASIC TERMS

 Software Architecture Example:

Decomposition SA model of WordCounter


Software Design and Architecture
BASIC TERMS

 Software Architecture:
 The first Software Architecture tells us how the
program's components cooperate by regulating the
communication mechanisms.
 The second Software Architecture tells us how
programmers cooperate by dividing the whole work
into relative independent pieces.
Software Design and Architecture
BASIC TERMS

 Software Architecture:
 Gacek (1995) defines software architecture as:
SA = {Components, Connections, Constraints, Stakeholder Needs, Rationale}

 In this definition,
requirements of functionality and
other qualities are taken into account
Software Design and Architecture
BASIC TERMS

 Four Key Principles of Software Architecture:


1. Every system has its own architecture, but they are not
identical.
2. Software architecture and its description are different.
In this recommended practice, software architecture is defined as:
 The fundamental organization of a system embodied in its
components, their relationships to each other, and to the
environment, and the principles guiding its design and evolution.
While architectural description is expressed as:
 A collection of products to document an architecture.
Software Design and Architecture
BASIC TERMS

 Software Architecture:
 Software Architecture definitions show that software
architecture is always invisible.
 But those you cannot see can help you, if and only if
it is visualized, that is, documented.
 We can use any documenting techniques, including
the combinations of several diagrams in UML
Software Design and Architecture
BASIC TERMS

 Software Architecture:
3. Software architecture, architectural description and
development process are separated, both in research and
in application.
 In general, software architecture is what a system's
structures look like; architectural description is how these
structures are shown, with what notations, formats and
organizations;
 and development processes are a series of activities
which might use architectural description.
Software Design and Architecture
BASIC TERMS

 Software Architecture:
 But it is worthwhile to highlight that the suitability of
architectural description for a specific development
process model. For example, UML is the best
companion with Rational Unified Process (RUP),
which calls for 4 + 1 views, fitting for unleashing of
UML’s diagrams’ capability.
Software Design and Architecture
BASIC TERMS

 Software Architecture:

4. Space should be leaven facilitating the customization


of detailed architectural models for researches and
practices.
Software Design and Architecture
UNIFIED MODELING LANGUAGE (UML)

 An emerging standard for modeling object-oriented


software.
 Resulted from the convergence of notations from three
leading object-oriented methods:
 Object-Modeling Technique (OMT)
 OOSE
Software Design and Architecture
UNIFIED MODELING LANGUAGE (UML)

Use case Diagrams


 Describe the functional behavior of the system as seen by the user.
Class diagrams
 Describe the static structure of the system: Objects, Attributes,
Associations
Sequence diagrams
 Describe the dynamic behavior between actors and the system and
between objects of the system
State chart diagrams
 Describe the dynamic behavior of an individual object (essentially a
finite state automaton)
Activity Diagrams
 Model the dynamic behavior of a system, in particular the workflow
(essentially a flowchart)
Software Design and Architecture
CASCADING STYLE SHEETS (CSS)
HAVE A NICE DAY

Q/A

You might also like