0% found this document useful (0 votes)
74 views33 pages

Cse 303 - Software Design and Architecture

The document discusses software design and architecture. It covers the design phase in the software development lifecycle, factors that affect design like requirements, resources and time. It also discusses software quality models like McCall's hierarchical model and Perry's relational model that define relationships between quality attributes.

Uploaded by

Sajal Siddiqui
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)
74 views33 pages

Cse 303 - Software Design and Architecture

The document discusses software design and architecture. It covers the design phase in the software development lifecycle, factors that affect design like requirements, resources and time. It also discusses software quality models like McCall's hierarchical model and Perry's relational model that define relationships between quality attributes.

Uploaded by

Sajal Siddiqui
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/ 33

CSE 303 – SOFTWARE

DESIGN AND
ARCHITECTURE
Revision
 Introduction to design
 Importance of design
Outline
 Design phase in SDLC – architecture
and detailed design
 Factors that affect design
 Quality Models
Software Development Activities

 Requirements Elicitation
 Requirements Analysis (e.g., Structured
Analysis, OO Analysis)
– analyzing requirements and working towards a
conceptual model without taking the target
implementation technology into account
 Design
coming up with solution models taking the target
implementation technology into account
 Implementation
 Testing
Software Design in SDLC
 In SDLC (Software Development Life
Cycle), Design phase is one of the most
important phases.
 In the software engineering context,
design focuses on four major areas of
concern: data, architecture, interfaces
and components.
Design Process Activities
 Architectural design
Modules, inter-relationships etc
 Abstract specification
Services of each sub-system, constraints
etc
 Interface design
Interface to other sub-system or outside
environment
 Component design
Services allocated to components and their
interfaces designed
 Data structure design
 Algorithm design
The Software Design Process
Requirements
specification

Design activities

Architectural Interface Component Data Algorithm


Abstract
design design design structure design
specification
design

Software Data
System Interface Component Algorithm
specification structure
architecture specification specification specification
specification

Design products
Levels of Software Design
 Architectural design (high-level design)
architecture - the overall structure, main modules
and their connections
addresses the main non-functional requirements
(e.g., reliability, performance)
hard to change

 Detailed design (low-level design)


the inner structure of the main modules
detailed enough to be implemented in the
programming language
Design vs. Architecture
 Architecture is concerned with the selection of
architectural elements, their interaction, and the
constraints on those elements and their interactions

 Design is concerned with the modularization and


detailed interfaces of the design elements, their
algorithms and procedures, and the data types
needed to support the architecture and to satisfy
the requirements.

 Architecture…is specifically not about…details of


implementations (e.g., algorithms and data
structures.)
Factors that affect Design
THE FACTORS THAT AFFECT DESIGNS

 There is a set of general laws of design


that characterize the nature of design:
FACTORS THAT AFFECT DESIGNS

 The Principle of Totality:


 All design requirements are always
interrelated and must always be treated as
such throughout a design task

○ Requirement conflicts
○ Requirement prioritization
○ Design decisions
FACTORS THAT AFFECT DESIGNS

 The Principle of Time:


The features and characteristics of all
products change as time passes.

○ User friendliness
○ Resource intensive
FACTORS THAT AFFECT DESIGNS

 The Principle of Value:


The characteristics of all products have
different relative values depending upon the
different circumstances and times in which
they may be used.

Changes with time


Changes with circumstances
Adaptability for a wide range of user types
should be considered.
FACTORS THAT AFFECT DESIGNS

 The Principle of Resources:


The design, manufacture and life of all
products and systems depend upon the
materials, tools and skills upon which we can
call.

○ development tools,
○ run time support systems,
○ human resource
○ application domain-specific tools and equipment,
FACTORS THAT AFFECT DESIGNS

 The Principle of Synthesis:


All features of a product must combine to
satisfy all the characteristics we expect it to
possess with an acceptable relative
importance for as long as we wish, bearing
in mind the resources available to make and
use it.

○ trade-offs between desirable features and


functions
FACTORS THAT AFFECT DESIGNS

 The Principle of Iteration:


Design requires processes of evaluation that
begin with the first intentions to explore the
need for a product or system.

designs have to be changed to correct


errors and to improve quality.
FACTORS THAT AFFECT DESIGNS

 The Principle of Change:


Design is a process of change, an activity
undertaken not only to meet changing
circumstance, but also to bring about changes to
those circumstances by the nature of the
product it creates.

The design of a software system must take into


consideration how it changes the way that we
will work and live as the consequence of using
the system.
FACTORS THAT AFFECT DESIGNS

 The Principle of Relationships:


Design work cannot be undertaken
effectively without established working
relationships with all stakeholders

Customers, Users, System administrator,


Project managers, Developers,
Requirements analysts, Designers,
Programmers, Testers:
FACTORS THAT AFFECT DESIGNS

 The Principle of Competence:


Design competence is the ability to create a
synthesis of features that achieves all
desired characteristics in terms of their
required life and relative value, using
available effective information

competence of the designer.


FACTORS THAT AFFECT DESIGNS

 The Principle of Service:


Design must satisfy everybody, and not just
those for whom its products are directly
intended.

it must be easy to maintain,


easy to reuse,
easy to transport to other operation
environments and to
be inter-operable to other software systems, etc.
Software Quality Models
SOFTWARE QUALITY
MODELS
 Quality is the excellence of the product or service.

From a user’s point of view, quality is ‘fitness for purpose’.

The value-based view of quality is concerned with the ability to


provide what the customer requires at a price that they can
afford.

From the manufacturing point of view, the quality of a product is


the conformance to specification.

the product view sees the quality of a product as tied to inherent


characteristics of the product.
Hierarchical models
 McCall divided software quality attributes into 3
groups

 Each group represents the quality with respect


to one aspect of the software system while the
attributes in the group contribute to that aspect.

 Each quality attribute is defined by a question


so that the quality of the software system can
be assessed by answering the question.
Relational models
 Perry’s model contains three types of
relationship between the quality
attributes.
The direct relationship
The inverse relationship
The neutral relationship
Summary
 Design phase in SDLC – architecture
and detailed design
 Factors that affect design
 Quality Models
 Integrity vs. efficiency (inverse): The
control of data access will need additional
 code, leading to a longer runtime and
more storage requirement.
 • Usability vs. efficiency (inverse):
Improvement of HCI will need more code
 and data, hence the system will be less
efficient.
 Maintainability and testability vs. efficiency (inverse): Compact and optimised
 code is not easy to maintain and test, and well-commented code is less
 efficient.
 • Flexibility, reusability vs. integrity (inverse): Flexible data structures required
 for flexible and reusable software increase the data security problem.
 • Flexibility and reusability vs. maintainability (direct): Maintainable code arises
 from the code that is well structured; meantime, well-structured maintainable
 code is easy to reuse in other programs.
 • Portability vs. reusability (direct): Portable code is likely to be easily used in
 other environments. The code is likely well-structured and easier to be reused.
 • Correctness vs. efficiency (neutral): The correctness of code has no relation
 with its efficiency. Correct code may be efficient or inefficient in operation.

You might also like