您的位置:首页 > 移动开发

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

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

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

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.

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

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

这里省略了如何设计这些架构的基本思路,也就是设计模式,比如高内聚,低耦合,等等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息