0% found this document useful (0 votes)
170 views20 pages

Software Design and Architecture: BY: Shahab Ul Islam

The document discusses software architecture and design. It defines software architecture as describing major system components, relationships, and interactions. Software design provides a plan for system elements, how they fit together, and work to fulfill requirements. The document outlines goals of architecture like identifying requirements and reducing risks. It also discusses limitations, the role of a software architect, quality attributes, and quality scenarios.
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)
170 views20 pages

Software Design and Architecture: BY: Shahab Ul Islam

The document discusses software architecture and design. It defines software architecture as describing major system components, relationships, and interactions. Software design provides a plan for system elements, how they fit together, and work to fulfill requirements. The document outlines goals of architecture like identifying requirements and reducing risks. It also discusses limitations, the role of a software architect, quality attributes, and quality scenarios.
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/ 20

Software Design and

Architecture

BY:
Shahab Ul Islam
Lecture-01 Agenda

 Course Information
 Software Architecture
 Software Design
 Goals of Architecture
 Limitations of Architecture
 Role of Software Architect
 Quality Attributes
 Quality Scenarios
Course Information
Course Name: Software Design and
architecture
Pre-Requisites
Software Engineering I and II
And Object Oriented Programming
Software Architecture & Design
The architecture of a system describes its major
components, their relationships (structures), and how
they interact with each other. Software architecture and
design is a process that includes several contributory
factors such as Business strategy, quality attributes,
human dynamics, design, and IT environment.
Software Architecture & Design
Software Architecture & Design
We can segregate Software Architecture and
Design into two distinct phases:

1) Software Architecture
2) Software Design.
Software Architecture
• Software Architecture typically refers to the bigger
structures of a software system and it deals with how
multiple software processes cooperate to carry out their
tasks.
• Architecture serves as a blueprint for a system.
• Defines Structure solutions (performance and security) .
• It involves a set of significant decisions about the
organization related to software development, and each
of these decision have a considerable effect on the
overall success of product such as quality, maintainability,
performance.
Software Design
• Software design is the process of defining
software methods, functions, objects, and the
overall structure and interaction of your code so
that the resulting functionality will satisfy your
users requirements.
• Software design provides a design plan that
describes the elements of a system, how they fit,
and work together to fulfill the requirement of
the system.
Objectives of Software Design

The objectives of having a design plan are as follows:


1) To negotiate system requirements
2) Act as a blueprint during the development process.
3) Guide the implementation tasks, including detailed
design, coding, integration, and testing.
4) It comes before the detailed design, coding,
integration, and testing and after the domain analysis,
requirements analysis, and risk analysis.
Goals of Architecture
The main goals of architecture are as follows:
• The primary goal of the architecture is to identify
requirements that affect the structure of the
application.
• A well-laid architecture reduces the business
risks associated with building a technical
solution and builds a bridge between business
and technical requirements.
• Improve quality and functionality offered by the
system.
Limitations of Architecture
Software architecture is still an emerging discipline within
software engineering. It has the following limitations:
1) Lack of tools and standardized ways to represent architecture.
2) Lack of analysis methods to predict whether architecture will
result in an implementation that meets the requirements.
3) Lack of awareness of the importance of architectural design
to software development.
4) Lack of understanding of the design process, design
experience and evaluation of design
Role of Software Architect
A Software Architect provides a solution that the
technical team can create and design for the
entire application.
A software architect should have expertise in the
following areas:
1) Design Expertise
Expert in software design, including diverse
methods and approaches such as object-oriented
design etc.
Cont….
2) Domain Expertise
Expert on the system being developed and plan
for software evolution.
3) Technology Expertise
Expert on software development
methodologies that may be adopted during
SDLC (Software Development Life Cycle).
Hidden Role of Software Architect
• Facilitates the technical work among team
members and reinforcing the trust relationship
in the team.
• Information specialist who shares knowledge
and has vast experience.
• Protect the team members from external
forces(competition, technological changes etc) that
would distract them and bring less value to the
project.
Quality Attributes

• Quality is a measure of excellence or the state of


being free from deficiencies or defects.
• Implementing quality attributes makes it is
easier to differentiate a good system from a bad
one. Attributes are overall factors that affect
runtime behavior, system design, and user
experience.
They can be classified as follows:
Static Quality Attributes
Static Quality Attributes reflects the structure of
system and organization, directly related to
architecture, design, source code.
They are invisible to end-user, but affect the
development and maintenance cost, e.g.:
modularity, testability, maintainability, etc.
Dynamic Quality Attributes
Dynamic Quality Attributes reflects the behavior
of the system during its execution. They are
directly related to system’s architecture, design,
source code and also the configuration,
deployment parameters, environment, and
platform.
They are visible to the end-user and exist at
runtime, e.g. scalability, throughput etc.
Quality Scenarios

• Quality scenarios specify how to prevent a fault


from becoming a failure.
• They can be divided into six parts based on their
attribute specifications:
1) Source
An internal or external entity such as people,
hardware, software, or physical infrastructure
that generates the stimulus.
Cont…
2) Stimulus
A condition that needs to be considered when it
arrives on a system (fault).
3) Environment
The stimulus occurs within certain conditions
(Normal Operation or Degrade Mode).
4) Artifact
A whole system or some part of it such as
processors, communication Channel, persistent
Storage etc.
Cont…
5) Response
An activity undertaken after the arrival of
stimulus such as detect faults, recover from
fault, disable event source etc.
6) Response measure
Should measure the occurred responses so that
the requirements can be tested (time when the
system must be available, repair time).

You might also like