软件设计分析与建模复习笔记

文章目录

      • Introduction
        • Chapter1 Object-Oriented Anaysis and Design
          • 1. Analysis vs Design vs Implement
          • 2. Object-Oriented Analysis and Design
          • 3. A few steps in analysis and design
          • 4. What is the UML?
        • Chapter2. Iterative, Evolutionary, and Agile
          • 1. Software development process
          • 2. UP
          • 3. Waterfall lifecycle
          • 4. Iterative and Evolutionary Development
          • 5. Agile Methods
          • 6. Agile UP
          • 7. Other related concept

Introduction

Chapter1 Object-Oriented Anaysis and Design

1. Analysis vs Design vs Implement
  • Analysis emphasizes and investigation of the problem and requirements, rather than a solution. (Do the right thing)
  • Design emphasizes a conceptual solution (in software and hardware) that fulfills the requirements, rather than its implementation. (Do the thing right)
  • Implement implements the design solution using programming language.
2. Object-Oriented Analysis and Design
  • During object-oriented analysis there is an emphasis on finding and describing the objects or concepts (not software object or class) in the problem domain.
  • During object-oriented analysis there is an emphasis on defining software objects and how they collaborate to fulfill the requirements.
3. A few steps in analysis and design
  • Define use cases. (Requirements analysis may include stories or scenarios of how people use the application; these can be written as use cases.)
  • Define a domain model. (Note that a domain model is not a description of software objects; it is a visualization of the the concepts or mental models of a real-world domain. Thus, it has also been called a conceptual object model.)
  • Assign object responsibilities and draw interaction diagrams.
  • Define design class diagrams.
4. What is the UML?
  • The Unified Modeling Language is a visual language for specifying, constructing and documenting the artifacts of systems.
  • Model software systems in a number of diagrams (graphical notations to express the OOA/D of software).

软件设计分析与建模复习笔记_第1张图片

  • Three ways to apply UML:
    • UML as sketch
    • UML as blueprint
    • UML as programming language

Chapter2. Iterative, Evolutionary, and Agile

1. Software development process
  • Definition: describes an approach to building, deploying, and possibly maintaining software.
  • Software process is software that is executed by a human-made virtual machine.
2. UP
  • popular iterative software development process for building object-oriented systems.

  • Sample structure to apply OOA/D and UML

  • central idea of UP

    • short time-boxed iterative, evolutionary, and adaptive development
  • UP Phases

    • Inception: approximate vision, business cases, scope, vague estimates
    • Elaboration: refined vision, iterative implementation of the core architecture, resolution of hign risks, identification of most requirements and scope, more realistic estimates
    • Construction: iterative implemention of the remaining lower risk and easier elements, and preparation for deployment
    • Transition: beta tests, deployment

    软件设计分析与建模复习笔记_第2张图片

  • UP Disciplines

    • Disciplines, a set of activities (and related artifacts) in one subject area, such as the activities within requirements analysis.
    • including - nine
      • Business modeling
      • Requirement
      • Design
      • Implement
      • Test
      • Deployment
      • Configure and change management
      • Project management
      • Evironment
3. Waterfall lifecycle
  • Waterfall is a linear approach to software development.
  • attempt to define (in detail) all or most of the requirements before programming.
4. Iterative and Evolutionary Development
  • development is organized into a series of short, fixed-length (for example, three-week) mini-projects called iterations.
  • successive enlargement and refinement of a system through multiple iterations.

软件设计分析与建模复习笔记_第3张图片

5. Agile Methods
  • not possible to exactly define agile methods
  • short timeboxed iterations with evolutionary refinement of plans, requirements, and design is a basic practice the methods.
  • The Agile Manifesto
    • Individuals and interactions over processed and tools
    • Working software over comprehensive documentation
    • Customer collaboration over contract negotiation
    • Responding to change over following a plan
  • The Agile Principles
    • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
    • Welcome changing requirements, even late in development
    • Deliver working software frequently
    • Business people and developers must work together daily throughout the project
    • The most efficient and effective method is face-to-face conversation.
    • Working software is the primary measure of progress
    • Continuous attention to technical excellence and good design
    • Simplicity — the art of maximizing the amount of work not done is essential
    • The best architectures, requirements, and designs emerge from self-organizing teams
6. Agile UP
  • adopted and applied in the spirit of agile
    • Prefer a small set of UP activities and artifacts
    • Requirements and designs are not completed before implementation. They adaptively emerge through a series of iterations
    • No detailed plan for the entire project
    • TDD
    • Apply the UML with agile modeling practices
7. Other related concept
  • Risk-Driven and Client-Driven
    • early iterations are chosen to identify and drive down the highest risks, and build visible features that client cares most about
    • early iterations docus on building, testing, and stabilizing the core architecture
  • Test drive development (TDD)
    • Key idea of agile method
    • Write test code first, then functional code

你可能感兴趣的:(软件设计分析与建模复习笔记)