zoukankan      html  css  js  c++  java
  • OOAD与UML

    1.OOAD(Object Oriented Analysis and Design)面向对象分析和设计

    --OOA 分析阶段,主要解决以下问题:

      --建立对业务问题域的清晰视图

      --列出必须要完成的核心业务

      --针对问题域建立公共词汇表

      --列出针对此问题域的最佳解决方案

      --要解决的核心问题:What to do

    --OOD 设计阶段,主要解决以下问题:

      --如何解决具体的业务问题

      --引入系统工作所需的支持元素

      --定义系统的实现策略

      --要解决的核心问题:How to do

    域模型:

      域模型是面向对象的,在OO中,域模型也称设计模型,主要有以下内容组成:

        --具有状态和行为的域对象

        --域对象之间的关系(关联Association、依赖Dependency、聚集Aggregation、一般化(泛化)Generalization)

    关联关系:

      一对一:从Person到IDCard的一对一的单向关联,Person中持有IDCard的标志,如id

      多对一:从Order到Customer的多对一的单向关联,Order中持有Customer的标志,如id

      一对多:从Customer到Order的一对多的单向关联,Customer持有Order的标志集合,如id的List

      多对多:Customer和Order间的双一对多向关联,互相持有彼此的标志集合,如id的List

      

    依赖关系:

      一个类A中访问另一个类B中的方法,并构造B类的实例,称A依赖B

      

    聚集关系:

      聚集指整体和部分间的关系,在实体域对象间很常见

      

    一般化关系:

      一般化关系指类之间的继承关系

       

    内聚域耦合:

      内聚:度量一个类独立完成某项工作的能力

      耦合:度量系统内或系统之间依赖关系的复杂度

      设计原则:增加内聚,减少耦合

    软件开发过程:

      传统开发过程

        --瀑布模型,不适应多变的需求

      统一软件开发过程(USDP)

     OOAD的开发过程

      --大的项目分解为一些子项目

      --使用UML工具

      --统一开发过程是一个迭代的、递增的开发过程,每一次迭代是生命周期中的一个步骤

      --每一个迭代的阶段,应做的工作:

        ---选择并分析相关用例

        ---根据所选的架构进行设计

        ---在组件层次实现设计

        ---验证组件满足用例的需要---每次设计前要预先设计好用例

      --每一次迭代完成目标后,开发将进入下一个迭代周

      迭代的好处:一定程度适应用户变化、每一次迭代周期只是完成既定的特定功能,迭代周期开始后不再加入新的内容,新的功能需求可以在下一个周期加入,每一个周期完成后可以给用户展示获取用户反馈,以方便把握用户需求。

    软件迭代过程

      -初始化阶段

        --项目启动

        --建立业务模型

        --定义业务问题域

        --找出主要的风险因素

        --定义项目需求的外延

        --创建业务问题域的相关说明文档

      -细化阶段

        --高层分析与设计

        --建立项目的继承框架

        --监督主要的风险因素

        --质地昂达成项目目标的创建计划

      -构建阶段

        --完成代码及功能的实现

      -交付阶段

        --向用户发布产品

        --beta测试

        --性能调优、用户培训和接收测试,注意,一个项目开始时不应过于考虑性能,任务重点应该防止功能实现上,否则会耽误项目的进度。性能调优往往需要经过大量的测试进行的。

    每一个迭代阶段所含工作流:

      -需求-分析-设计-实现-测试-,如此周而复始

      

      2 UML中9种基本图形

      UML(Unified Modeling Language),是一种图形化的语言,可以OOAD过程中标识元素、构建模块、分析过程、并可以通过文档说明系统中的重要细节

    UML图分类

      -静态模型(static model)

        --创建并记录一个系统的静态特征

        --反映一个软件系统基础、固定的框架结构

        --创建相关问题域的主要元素的视图

        --静态建模包括:

          ---用例图(use case diagrams)

          ---类图(class diagrams)

          ---对象图(object diagrams)

          ---组件图(component diagrams)

          ---部署图(deployment diagrams)

      -动态模型(dynamic model)

        --动态建模用以展示系统的行为

        --动态建模包括:

          ---时序图(sequence diagrams)

          ---协作图(collaboration diagrams)

          ---状态图(state chart diagrams)

          ---活动图(activity diagrams)

     用例图

      -展示系统核心功能及与其交互的用户,用户被成为活动者(Actor),用例使用椭圆表示,为了简化建模过程,用例可以标注优先级

      

      上图表示的意思:不同用户可以进行不同的操作

    类图

      -表示类的特征,描述了多个类、接口的特征、以及对象直接的协作与交互,由一个或多个矩形区域构成,内容包括类型(类名)、属性(可选)、操作(可选)

      

    对象图:

      对象图用于展现对象的特征和对象间的交互关系

      

    组件图:

      表示组件直接的关系

      

    部署图:

      表现用于部署软件应用的物理设备信息

      

  • 相关阅读:
    Ubuntu 安装.net core 设置源仓储地址
    ASP.NET Core开发-MVC 使用dotnet 命令创建Controller和View
    ubuntu安装postman
    redis相关操作
    C# StringValues 类型
    MySQL时间戳与日期格式的相互转换
    C# 生成时间戳以及时间戳转换为时间
    关于vscode 使用nuget插件相关说明
    ubuntu一些命令
    使用HBuilderX新建Uniapp项目并在不同平台上运行调试
  • 原文地址:https://www.cnblogs.com/ShouWangYiXin/p/10575898.html
Copyright © 2011-2022 走看看