从需求到设计(记自已的一次开发经历)

闲来无聊,针对自己之前开发的一个项目中的一个案例,详细的说明一下从分析到设计再到最终完成的一个过程。希望对自己对正在寻求转变的人提供一点帮助。

过程是:分析->设计 迭代开发。


1 需求分析(案例):

  这里以这个项目中的一个需求"为用户提供电视观看的功能"。这里我起名为"看电视"(watchTv)

  案例:看电视

  Actor: 用户

  前置条件:系统的电视服务工作正常。

  后置条件:用户看到自己所选信源的电视播放画面。

  基本流程:

  1 用户想要电视,进入Launcher电视页面。

  2 电视获取上一次用户选择过的电视输入源

  3 获取电视信号

  3 电视播放TV预览画面

  扩展:

  1 用户不想看当前信源的视频

     a 用户切换电视信源。

     b 电视播放当前所选信源画面。

   2 用户对当前信源的节目很感兴趣,想要获取更好的视觉体验。

     a 退出launcher tv页面。

     b 进入TV应用

  3 如果当前电视没有信号输入或异常。

    a 获取电视信号状态。

    b 通知用户当前TV工作状态。

2 构建领域模型:

   1 寻找概念类:

    用户(User),电视(Tv),输入源(InputSource), TV应用(TvApp),电视信号(TvSignal), TV窗口(TvWindow)。

   注意:添加"Tv窗口"这个需求中没有提到的东西,主要是因为preview和进入tv需要设置TV窗口大小。属于协助类所以这里用于替代TvPreivew来表示。

 

从上面图是一个简单的领域模型,从图上可以很清楚知道这些类之间的关系。

3 动态图:

   动态图的主要是用来寻找“职责”(方法的抽象,通俗的理解就是类中的方法)

   我们来看主成功场景的“时序图”

  

注意:这里面并没有包含通知UI的逻辑,由于播放tv是一个耗时操作,所以使用异步方式。避免阻塞UI.

          从上面的动态图就可以知道各类的方法(职责)是有哪些了。

通过动态图和早期构建的领域模型,就可以确定静态类图,从而构建出软件的基本架构。

这里省略了如何设计这些架构的基本思路,也就是设计模式,比如高内聚,低耦合,等等。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值