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

软件设计

时间:2015-04-02 07:57:47      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

所谓的优秀设计没有固定的标准。

如果硬是要来一个优秀设计的标准呢?

我会这样说:就是做高性价比的设计!

一个优秀的设计应该具备以下特点:

1)优秀的设计都是需求驱动的,不熟悉需求就做出来的设计是不靠谱的;

2)优秀的设计应该是当前团队能理解能实现的,太超前的设计项目团队做不出来,这个设计只能是摆设;

3)优秀的设计应充分考虑当前各种限制条件,适当做出平衡,能保证达成项目的目标:

4)优秀的设计能尽量降低项目的整体工作量,让整个项目更加可控。

优秀设计从分析需求开始

1)什么人会使用这个系统?
2)不同的人将会使用这个系统的什么功能?
3)还有哪些不确定或不具体的需求点?
4)哪些需求对技术提出了怎样的要求?
5)系统的大致架构应该如何考虑?

a)你需要更加深入思考需求,考虑到各种不同的业务场景和特殊情况,例如:领导不在公司时如何审批请假?
b)你需要思考需求的细节,例如:报表的具体形式?
c)你需要思考各种技术方案,例如:打卡数据的同步方案,财务软件是否要对接等等?
d)你要做出平衡,用合适的方案和尽量少的工作量来满足需求。

 

1)优秀的设计是需要从分析需求开始的。
2)需求的质量可能有问题,那么我们需要从业务的角度重新审视一次。
3)从设计的角度审视需求,我们会提出很多需求细化及设计方案的问题。
4)架构设计是全面考虑各种需求、项目的工期限制预算限制,还有项目组人员水平后综合做出来的一种平衡。

软件常见的工作模式

此图说明了以下问题:

1)需求并不是由一个个孤立的“用户故事"组成的,业务概念、业务流程其实是贯穿多个用户故事的,软件设计应该多从业务概念、业务流程的角度来思考;

2)表面上看上去一个用户故事对应一组界面,其实界面之间是很可能有重用和共享部分的;

3)业务逻辑层中的一些类很难将其分拆开来与用户故事、界面组一一对应,存在交叉、共享和重用的可能;

4)数据操作层的代码,有可能是用工具自动生成的、通用的;

5)数据层中的某张表,通常会支撑多个用户故事而不是一个用户故事。

设计数据库时主要是根据业务概念来设计的,规划界面时主要根据软件需要满足的功能点,还有业务流程来设计。

自顶向下+自底向上+中间上下 设计思路

我们觉得软件项目至少需要四方面的设计,就是:架构设计、数据库设计、模块设计和用户体验设计。

考勤系统的业务建模及数据库设计,也说明了这样的最佳实践:
1)业务结构建模和行为建模是很有必要的,业务建模这一步可以多深入一些,不要因为项目进度紧而压缩你的时间,这里的时间投入所带来的回报是超值的;
2)业务建模让我们对需求的理解更深,让我们的数据库设计及软件设计”进可攻退可守“;
3)遇到进度压力及各种限制条件时,你不一定非要照这个业务模型来设计你的数据库和代码,你可以退一步,用一个”老土“的数据库设计及程序设计来解决问题;
4)你也可以采取更加进取的设计策略,这点下一小节为你分享。

软件设计

标签:

原文地址:http://www.cnblogs.com/tiantiannaonao/p/4385827.html

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