UML(0)

UML

Unified Modeling Language——统一建模语言

UML is the standardized language that enables you to create the structure and design of an object-oriented system


SDLC

Software Development Life Cycle——软件生命周期

有6个阶段:

名称 产物 备注
Feasibility analysis 可行性分析 a feasibility report -
Requirement analysis and specification 需求分析和规范 SRS(Software Requirement Specification) document -
Design 软件设计 a design document translate the requirements into a logical structure
Coding 程序编码 source code -
Testing 软件测试 a test report containing errors -
Maintenance 软件维护 - 持续时间最长

Software Development Approaches

方法 特点 适用场景
Waterfall 瀑布型 linear sequential flow;
cannot handle changes in requirements
In case requirements are stable and frozen across the project plan
Prototyping 原型 evolutionary;
types: Throwaway prototypes and Evolutionary prototypes
Used in the requirements gathering and analysis phase to capture the exact requirements of the proposed system
Spiral 螺旋型 iterative and linear Ideal for developing software that are released in various versions
Win-win spiral 双赢螺旋型 the development team and the customer hold discussions and negotiate on the requirements Generally used when you have time-bound releases
Incremental 增量型 * software are broken into various function units which contain similar tasks Applicable only to large applications

Object-Oriented Concepts

  • Classes and objects
  • Inheritance
  • Abstraction
  • Encapsulation 封装性
  • Polymorphism 多态性

Types of UML Diagrams

  • Use case diagrams 用例图
  • Class diagrams 类图
  • Object diagrams 对象图
  • Communication diagrams 通信图
  • Sequence diagrams 序列图
  • State Machine diagrams 状态机图
  • Activity diagrams 活动图
  • Package Diagrams 包图
  • Component diagrams 构件图
  • Deployment diagrams 部署图
  • Timing Diagrams 时序图
  • Composite Structure Diagrams 复合结构图
  • Interaction Overview Diagrams 交互概览图

Interactive diagrams

Include:

  • Sequence diagram
  • Communication diagram
  • Timing diagram
  • Interactive overview diagram

UML Modeling Techniques

  • Requirements modeling: Involves depicting the requirements using use case diagrams
  • Static modeling: Involves depicting the static constituents of the software system using the class, object, and composite structure diagrams
  • Dynamic modeling: Involves depicting the behavior of static constituents using the following diagrams:
    • Activity diagrams
    • State machine diagrams
    • Communication diagrams
    • Sequence diagrams
    • Interaction overview diagrams
    • Timing diagrams
  • Architectural modeling: Involves depicting the architecture of the software system into multiple tiers, such as presentation, business, and resource by using the following diagrams:
    • Package diagram
    • Component diagram
    • Deployment diagram