Understanding Software Analysis and Design Process

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.


Uploaded on Apr 03, 2024 | 7 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

Related


More Related Content