从需求到设计(记自已的一次开发经历)
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.
从上面的动态图就可以知道各类的方法(职责)是有哪些了。
通过动态图和早期构建的领域模型,就可以确定静态类图,从而构建出软件的基本架构。
这里省略了如何设计这些架构的基本思路,也就是设计模式,比如高内聚,低耦合,等等。
过程是:分析->设计 迭代开发。
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.
从上面的动态图就可以知道各类的方法(职责)是有哪些了。
通过动态图和早期构建的领域模型,就可以确定静态类图,从而构建出软件的基本架构。
这里省略了如何设计这些架构的基本思路,也就是设计模式,比如高内聚,低耦合,等等。
相关文章推荐
- 一步一步跟我学易语言之第二个易程序菜单设计
- 基于逻辑运算的简单权限系统(原理,设计,实现) VBS 版
- C#中设计、使用Fluent API
- 基于逻辑运算的简单权限系统(原理,设计,实现) VBS 版
- JavaScript设计模式初探
- JavaScript 组件之旅(一)分析和设计
- C# 事件的设计与使用深入理解
- 大型网站设计注意事项大全
- Android中的脑残设计总结
- 大型JavaScript应用程序架构设计模式
- 常用的Javascript设计模式小结
- Android项目开发之UI设计器
- 用户权限管理设计[图文说明]
- PHP常用设计模式之委托设计模式
- HBase RowKey设计的那些事
- HTML&CSS构建网站链接
- iOS 应用2.0版怎么做(转)
- 报表开发小技巧:报表的设计与配色技巧
- 也谈淘点点60s短信订单的架构设计
- 性别字段存储时应该使用的字符串,还是数字?