码迷,mamicode.com
首页 > 其他好文 > 详细

软件需求分、架构设计与建模最佳实践

时间:2020-02-23 11:22:03      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:处理   开发   动作   领域   聚合   角色   需求   软件需求   责任   

软件需求分、架构设计与建模最佳实践

  • cxx 2019-04-13
一、为什么要详细设计,价值?
  1. 在多人团队环境中,详细设计驱动开发可实现明确交付的目标和标准
  2. 可复用的设计成果
  3. 提高代码的可维护性
  4. 可对交付进行工作量和质量的评估
  5. 实现知识传承,提高软件生命周期
二、控制软件复杂性的基本方法
  1. 分解法
  2. 抽象法
三、UML有哪些元素
  • 结构
  • 行为
四、基于用户目标的需求组织形式
  • 交互式需求

  • 清晰的责任

  • 场景化

    文档的五大功效

  • 有助于编写使用手册

  • 测试用例转化:帮助开发人员设计测试用例

  • 需求用例

  • 利于详细设计时序图的设计

  • 组件设计:功能复用

五、分析要点。。。
  1. 定性
  2. 定量
  3. 场景
  4. 约束需求
    • 并发
    • 数据量
    • 带宽
六、用户体验的指令
  1. 功能性体验
  2. 易用性体验
  3. 性能体验
  4. 可靠性体验
七、设计用例
  • 识别执行者(*)

? 确定系统边界,避免需求膨胀

? Actor:人,系统,时间,温度、阈值

? 系统外:必须和它交互:主Actor(需求行为的发起者),辅助Actor(需求行为的参与者)【边界、接口】

? 直接交互

? 有意义的交互

? 任何事物

  • 识别执行者 (宁多不少)

    谁使用系统主要功能--潜在会员、会员

    谁改变--会员、货管员、经理

    谁获得信息--潜在会员、会员、货管员、经理

    谁需要系统的支持完成日常工作

    谁负责维护、管理

    系统需要应付那些硬件设备

    系统需要和那些外部系统交互

    谁对系统产生结果感兴趣

    有没有自动发生事件--检查账户

下午:

识别用例:

  • 选择执行者
  1. 用例的直接交互者
  2. 角色可以抽象泛化
  3. 主执行需要辅助执行者
  • 基本定义
  1. RUP:用例实例:系统中执行的一系列动作(步骤),这些动作将生成特定执行者可见的价值结果(价值)。
  2. 执行者通过该系统所要达成的目标。
书写用例文档--用例模板

前置条件、后置条件

用例交互四部曲
  1. Actor发起请求
  2. 系统验证请求
  3. 系统处理请求
  4. 系统响应请求

编一个用例

用例名称:申购单笔基金

模板:

第二天、架构设计及详细设计、设计原则、模式

日期:2019-04-14

1、架构设计
  • 标识领域范围

    从需求规格说明书入手

    通过遗留的软件增强认识

  • 输出模块组件接口

    模块分解系统

    组件实现复用

    接口解决耦合

  • 模块划分方法

    1. 业务领域

      同种类型行为

    2. 基于角色

      相同的角色

    3. 组织架构

    4. 组织架构+领域(ERP)

      生产管理,客户关系、人力资源

? 系统->子系统->模块

  • 组件

    复用型、服务型、展显型

  • 接口

    用组件图来画

    类型 图形
    模块 包图
    组件 组件图
    接口 组件图
2、OOAD建模

UC开发迭代

v1->80%

V2->90%

V3->100%

边做设计,便进行coding

敏捷:TDD

MDA:Model-Driven Architecture

PIM: Platform Independent Model,作为分析阶段的产物--平台独立的

3、UML建模流程

ICONIX

Use Case Model->Domain -> Sequence Diagram

  • 技术责:文档、代码、测试用例

  • 注释先行,思维进入设计状态
  • dofige

类图

? 以功能进行组织类,数量10~20之间

识别类熟悉

? 基于用例进行分析

? 先在白纸上进行绘图

下午

closeDoor()

class Door{}

class People{}

class Wind{}

基本原则:函数放在那个类中,函数操作属性主要由那个类提供

类和类之间关系:关联、泛化、组合、聚合

Actor和Actor之间关系:泛化

Use Case和Use Case之间关系:泛化、包含、扩展

顺序图-时序图

需要用例文档、类图

开源代码去重工具:SonarQube---代码质量管理平台

右键-高级-转换为实例

高内聚、低耦合

高内聚:

? 描述模块内各元素的紧密结合程度

? 开源工具sourcemoitor扫描代码复杂度

? 函数》80-100行 类》1000-1500行

顺序图---重要

活动图:

? partition,inition,final,activity,分支decision,send,receive

练习:

? 160页,活动图练习1

状态图:

? 分析》》》Excel

无预订 部分预订 预订完 预订关闭
无预订
部分预订
预订完
预订关闭

时间序列图:timing,定时图

软件需求分、架构设计与建模最佳实践

标签:处理   开发   动作   领域   聚合   角色   需求   软件需求   责任   

原文地址:https://www.cnblogs.com/windlog/p/12348621.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!