优化方案,提出最后的设计方案
8)综合结论:程序考虑了诸多功能,通用编辑器是众多功能的集合体,内部详细规划了各种类型数据的操作、显示和排版分析。
经过一系列的方案定义,将问题逐步减少,最后获得一个规模较大的系统设计早期方案。我们可以较早地进入系统设计,并且提前进入程序代码级开发工作,同时逐步实现各项内容。
此方法分析需求,有助于我们尽早实现想法,同时较好地控制住程序开发方向和基本功能完成的进度。但遗憾的是提高开发速度的代价是降低程序的可靠性、扩展性和重用性。过去,我们往往觉得所作的程序基本上不能再次使用,原因就在于没有抽象问题,寻找问题的根本解决方案。就问题实现问题的方法,忽略了深入分析问题的过程。对于针对开发某专业的应用软件采用此方法分析需求比较合适,但对系统性强的软件,最好采用树状遍历式寻找问题的方法。
二、分析问题和需求
在没有分析清楚问题和需求的来由就匆匆下定论是非常危险的。忽略问题和需求就可能埋下了潜在的程序或系统设计问题。我们也常常犯这样的错误:由于没有分析清楚问题和需求,结果到头来更改系统设计。能够提出的问题和需求,就一定要扎扎实实分析它,否则后果难料。
分析问题和需求的能力大小与思路和经验有关。好的思路来源于严谨、逻辑和跳跃的思考习惯。严谨要求不要放过任何一个小问题,逻辑要求思考的过程应该是一种符合规则的推导过程,跳跃思维要求思考的路子不是一走到底而是多条路子并行着走。经验来自于编写调试大量程序和善于总结,要求程序员不断地开发新程序和创造新思路,并且敢于尝试和接受失败,当然还有一条重要的方面:跟踪最新技术。
如何正确分析问题,有以下几个要素值得注意:
1.所有问题和需求都有发生的根源。
问题和需求的表面现象总是与开发者思路切入点相关,如果切入点是狭隘的,那么围绕着问题和需求的分析往往局限于自身的思路范围,问题和需求产生的原因就很难发觉。所以当不能理解分析问题和需求时,不妨先找一找为什么存在这样的问题和需求,它的存在是否合理,然后再分析理解它就不难了。思路一定要跳出惯例。
2.交替反复分析多个问题和需求,寻找问题间的共性和特性
看似问题和需求间没有联系,而且分析不清各自意义,那么建议交替反复分析考虑这些问题。勤能补拙,不要担心它将花费开发者多少时间,只有开发者仔细分析问题需求,以后的工作越来越简单明了。
3.复杂化问题
问题复杂化,是一个抽象问题或需求的逆过程,提出问题需求的许多可能的假设,丰富了问题需求的形式。能够复杂化问题,本身就体现了分析问题和需求的能力。比如:做一个加法程序,两个数相加,返回结果。简单的问题,但,我们一般都按两整数加法,有时考虑了浮点加法。为什么不是两个复数相加,或者是两个字符串相加等。这是一个使用操作符重载或类模板解决的简单例子,在这里我的意图是许多问题应该从更多的方面去验证问题是否同样存在。
4.问一问自己:问题是否能够抽象化,继而简化问题。
众多的问题和需求变成程序代码的过程,就是公式化问题和需求。如果象上例加法一样,不管三七二十一,什么样的数据就写一段什么的代码,不同类型数据间的加法同样又要写一段代码,这样下去就写不完了。抽象问题,简化问题,类模板就是一个抽象问题很好的例子。在分析问题和需求的过程中,同样采用面向对象的思维方式去求解,会获得一个非常满意的需求报告。
5.问题和需求分类分主次考虑
1)软件产品的性能指标:可靠、功能全、速度、易扩展。
易扩展:一种是产品升级换代快、系列化产品丰富。另一种是用户的二次开发扩展产品的再生功能。
速度:表示软件执行速度不仅要快,同时操作中的速度要均衡。
&nbs
项目经理胜任力免费测评PMQ上线啦!快来测测你排多少名吧~
http://www.leadge.com/pmqhd/index.html