Software Analysis and Design Process

undefined
 
Chapter 
Chapter 
2
2
Introduction
Introduction
 
Software Analysis and Design
0721322
 
 
Requirements 
Requirements 
Analysis
Analysis
 
The 
purpose
 of 
requirements analysis 
is to 
produce
 an 
analysis
 or 
a logical
model 
of the desired 
system
.
 
The 
analysis model
 can be seen as a 
bridge
 
between
 the 
requirements model
and the 
design model
.
Analysis modeling
 represents the user's requirements by depicting the software in three
different domains: information domain, functional domain, and behavioral domain.
 A 
model
 
developed
 to 
learn
 
all aspects of a problem domain
 to 
determine
 the best way to
solve a specific set of user needs. Ex. Descriptive, diagnostic, predictive., prescriptive.
Requirements modeling 
is the process used in software development projects where
requirements and solutions constantly evolve through collaborative efforts and
teamwork.
A 
design model 
in software engineering is an object-based picture or pictures that
represent the use cases for a system. Or to put it another way, it's 
the 
means
 to 
describe
 a
system's implementation and source code in a diagrammatic fashion
.
 
 
Requirements 
Requirements 
Analysis
Analysis
 vs 
 vs 
Design
Design
 
Software 
design
 is the process of envisioning and defining software
solutions to one or more sets of problems.
 
During Requirements a 
Use-Case Model
 is 
developed
 to 
capture
 the
requirements of the system
.
 
Requirements 
analysis
 
focuses
 on 
understanding
 the 
requirements
 of the
desired 
system
 to 
produce a high-level specification 
that 
describes
 
what
 
the
system should do.
 
During 
Design
, we should specify clearly 
how
 
the system 
should be
constructed
 
to 
satisfy
 the 
requirements
.
 
 
Transition
Transition
 from 
 from 
Requirements
Requirements
 to 
 to 
Design
Design
 
Use-case
 Realization
  From 
Use-cases
 to 
Analysis model
  
Analysis model 
includes
 a “
Conceptual
” Class diagram, in addition to other UML
diagrams.
A 
conceptual model 
is the model of an application that the designers want users to understand
 
Transition from Requirements to Design
Transition from Requirements to Design
 
Object-oriented analysis and design using UML, 4
th
 edition
Simon Bennett, Steve McRobb and Ray Farmer
 
Design
Design
 
We 
cannot
 
move
 
directly
 from 
requirements
 (high level) to 
implementation
 (low
level)
 
The 
purpose
 of 
design phase 
is to 
produce
 
a 
detailed
 specification of the desired
system
 that 
satisfies
 the 
requirements
.
 
Programmers
 
translate
 the 
design document 
into a 
programming language
 to
build
 the desired 
system
.
 
Design
Design
 
Architectural Design  (called system design)
Interface Design
Database Design
Algorithm Design
Application Design
o
  Refining the Analysis model
 
Design 
Design 
Levels
Levels
 
Architectural Design  (sometimes called System Design)
High-Level Design
Low-Level Design (sometimes called Detailed Design)
 
 
 
Software design typically involves 2 levels of design – namely architectural and detailed design.
 
 
The 
Architectural design
 specifies the basic components of the software system such as user
interface, database, reporting module, etc. often using tools such as 
Data Flow Diagrams
 (DFD)
and 
Entity-Relation Diagrams
 (ERD).
 
 
Detailed design elaborates on each of these components in terms of tables and fields in the
database, layout and data to be displayed on the graphical user interface, and often pseudo-
code for any data analysis modules
 
Software Design Principles
Software Design Principles
 
Correctness
 
Software design must satisfy the requirements
.
Many correct designs may exist
 
How to know that a design is correct?
Formal approaches
Informal approaches
 
Software Design Principles
Software Design Principles
 
Correctness
 
Informal approaches require that the design must be:
Readable (to enhance understanding)
Modular (to deal with complexity)
 
 
Software Design Principles
Software Design Principles
 
Robustness
 
The degree to which a system or component can function correctly in the presence of
invalid inputs or stressful environmental conditions (IEEE).
 
Invalid inputs 
could come from users, data communication or function calls.
Some errors might be caused by development team ( for example in design,
implementation, etc.)
 
 
Software Design Principles
Software Design Principles
 
Robustness
 
How to ensure robustness?
Verifying inputs 
( type checking, preconditions )
Initializing variables or objects 
instead
 of relying on 
default values
 in programming
languages.
Exceptions handling
.
 
 
 
Software Design Principles
Software Design Principles
 
Flexibility
 
Adding more functionalities ( adding a function, a class , etc.)
Changing functionalities
 
 
 
 
Software Design Principles
Software Design Principles
 
Reusability
 
 
Could be done on different levels:
 
 
F
unctions, classes, components, design patterns, frameworks, etc.
 
 
 
Software Design Principles
Software Design Principles
 
Reusability
 
 
 
Software Design Principles
Software Design Principles
 
Efficiency
 
I
n time (algorithms complexity)
In space
 
 
 
Slide Note
Embed
Share

Software analysis and design involve a systematic approach to understanding user requirements, creating logical models, and transitioning to detailed design specifications. Requirements analysis focuses on capturing system requirements, while design translates these requirements into implementation plans. The process involves modeling in information, functional, and behavioral domains, as well as transitioning from use cases to design realization through UML diagrams. Object-oriented analysis and design using UML play a crucial role in this process.

  • Software analysis
  • Design process
  • Requirements analysis
  • Object-oriented analysis
  • UML diagrams

Uploaded on Apr 03, 2024 | 8 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Chapter 2 Introduction Software Analysis and Design 0721322

  2. Requirements Analysis The purpose of requirements analysis is to produce an analysis or a logical model of the desired system. The analysis model can be seen as a bridge between the requirements model and the design model. Analysis modeling represents the user's requirements by depicting the software in three different domains: information domain, functional domain, and behavioral domain. A model developed to learn all aspects of a problem domain to determine the best way to solve a specific set of user needs. Ex. Descriptive, diagnostic, predictive., prescriptive. Requirements modeling is the process used in software development projects where requirements and solutions constantly evolve through collaborative efforts and teamwork. A design model in software engineering is an object-based picture or pictures that represent the use cases for a system. Or to put it another way, it's the means to describea system's implementation and source code in a diagrammatic fashion.

  3. Requirements Analysis vs Design Software design is the process of envisioning and defining software solutions to one or more sets of problems. During Requirements a Use-Case Model is developed to capture the requirements of the system. Requirements analysis focuses on understanding the requirements of the desired system to produce a high-level specification that describes whatthe system should do. During Design, we should specify clearly how the system should be constructedto satisfy the requirements.

  4. Transition from Requirements to Design Use-case Realization From Use-cases to Analysis model Analysis model includes a Conceptual Class diagram, in addition to other UML diagrams. A conceptual model is the model of an application that the designers want users to understand

  5. Transition from Requirements to Design Object-oriented analysis and design using UML, 4th edition Simon Bennett, Steve McRobb and Ray Farmer

  6. Design We cannot move directly from requirements (high level) to implementation (low level) The purpose of design phase is to produce a detailed specification of the desired system that satisfies the requirements. Programmers translate the design document into a programming language to build the desired system.

  7. Design Architectural Design (called system design) Interface Design Database Design Algorithm Design Application Design o Refining the Analysis model

  8. Design Levels Architectural Design (sometimes called System Design) High-Level Design Low-Level Design (sometimes called Detailed Design) Software design typically involves 2 levels of design namely architectural and detailed design. The Architectural design specifies the basic components of the software system such as user interface, database, reporting module, etc. often using tools such as Data Flow Diagrams (DFD) and Entity-Relation Diagrams (ERD). Detailed design elaborates on each of these components in terms of tables and fields in the database, layout and data to be displayed on the graphical user interface, and often pseudo- code for any data analysis modules

  9. Software Design Principles Correctness Software design must satisfy the requirements. Many correct designs may exist How to know that a design is correct? Formal approaches Informal approaches

  10. Software Design Principles Correctness Informal approaches require that the design must be: Readable (to enhance understanding) Modular (to deal with complexity)

  11. Software Design Principles Robustness The degree to which a system or component can function correctly in the presence of invalid inputs or stressful environmental conditions (IEEE). Invalid inputs could come from users, data communication or function calls. Some errors might be caused by development team ( for example in design, implementation, etc.)

  12. Software Design Principles Robustness How to ensure robustness? Verifying inputs ( type checking, preconditions ) Initializing variables or objects instead of relying on default values in programming languages. Exceptions handling.

  13. Software Design Principles Flexibility Adding more functionalities ( adding a function, a class , etc.) Changing functionalities

  14. Software Design Principles Reusability Could be done on different levels: Functions, classes, components, design patterns, frameworks, etc.

  15. Software Design Principles Reusability

  16. Software Design Principles Efficiency In time (algorithms complexity) In space

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#