Software Analysis and Design: Requirements to Design Transition

Slide Note
Embed
Share

Requirements analysis is crucial to understand the desired system's needs, while design focuses on specifying how to meet those requirements. Transitioning from requirements to design involves developing use-case models and detailed specifications before implementation.


Uploaded on May 12, 2024 | 0 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 Enas Naffar, 2020

  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. Enas Naffar, 2020

  3. Requirements Analysis vs Design 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. Enas Naffar, 2020

  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. Enas Naffar, 2020

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

  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. Enas Naffar, 2020

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

  8. Design Levels Architectural Design (sometimes called System Design) High-Level Design Low-Level Design (sometimes called Detailed Design) Enas Naffar, 2020

  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 Enas Naffar, 2020

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

  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.) Enas Naffar, 2020

  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. Enas Naffar, 2020

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

  14. Software Design Principles Flexibility Enas Naffar, 2020

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

  16. Software Design Principles Reusability Enas Naffar, 2020

  17. Software Design Principles Efficiency In time (algorithms complexity) In space Enas Naffar, 2020

Related


More Related Content