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

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).

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QTOAfLet-1596026130594)(C:\Users\xie\AppData\Roaming\Typora\typora-user-images\image-20200729171121898.png)]

  • 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

    在这里插入图片描述

  • 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.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VSGRshYW-1596026130597)(C:\Users\xie\AppData\Roaming\Typora\typora-user-images\image-20200729193221936.png)]

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
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值