如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
软件开发设计规范书的撰写大家好!下午的课讲关于软件开发设计规范书的撰写,一些设计撰写的提纲、解释,在微软我开发了几个产品,具体规范书包括什么内容给大家看一下。首先讲定义,作为我们开发管理人员,程序经理,开发管理企业的领导等等,到底是应该写什么样的内容,怎么样用它作为指导,帮助我们写软件。写作计划,到底是在撰写开发计划书开发过程中间,到底要做什么样的工作。撰写的提纲,大家也知道,做任何事情提纲就好象一份参照表似的,有这样的参照表写作的时候相对来说容易的多,让所有的员工写的时候都按照规范来写。然后讲一下自己写的实例,最后做一些问答,做一个双向的讨论。整个软件开发过程是一个相当复杂的流程,并不是简单的靠几个设计工程师自己在那边写软件就完,而是要有从头到尾,包括很多人,不同专家,不同的专业,不同的知识放在一起,最后才造成一个完善的软件产品。从决定开始,到计划、设计,最后到写程序、执行,然后还有测试、纠错、保证稳定、发行、部署、调试,整个过程是一个相当长的过程,并不是一个简单的程序。要为了保证软件的质量,能够达到客户满足和满足市场的要求,很要紧的工作,早期工作做的越是完善、仔细,避免后面的工作,由于前面不完善造成的返工,造成的浪费,起到关键性的作用。大家可能在网上读到在美国软件项目管理的权威,写过很多关于软件管理方面的书,很有名一个理论就是说他做过很多研究和调查,发现早期的工作要是没有做好,而造成后面工作的返工,带来的浪费是巨大的。有类似这样的图表,他做出的结论,如果在设计阶段出现了问题,在设计阶段如果你没有及时找到和纠正的话,到执行阶段才发现,你会看到三条不同的曲线,越是早期的错没有发现,最后由于要返工而造成的代价费用越来越高,如果前面没有问题,到最后只是发现半个纠错,花费的代价相当低,因为你是纠错,然后重新测试就完了。可是如果执行的时候,程序编程编错了,后来重新编,重新测试,这个费用相对来说就要高。如果是设计的时候出现错误,由于对需求管理没有管理好,客户和市场的要求都错了,开发出来的东西完全到后面重新执行、重新纠错的话,会看到这个曲线,几乎是几何形上升的,成倍的费用的增加。能够保证控制产品开发过程中间的费用增加,早期工作完善,做设计的时候,越早做的越完善,对控制后面的消耗起的作用是非常大的。从这个方面讲,我早上举的例子造房子一样,造房子的蓝图,对盖一个房子的重要性,对早期设计的完善作用也是一样的。什么是设计规范书。大家听过很多不同的名称,叫法也不一样,到底是什么东西。首先它是总结一个软件功能和性能、使用方案的总结书,是描述一个产品,到底该为客户提供什么服务,起到什么样的作用,到底可以完成什么任务,从这个角度对软件产品做一个总结,是提供软件功能和性能以及使用方案的总结。也就是说,他应该包括的内容是向开发人员很详细的描写清楚,这个软件到底应该怎么工作,他使用方案的总结,他的功能性的总结,而不应该包括产品具体的设计的构架,到底怎么执行,怎么设计,这方面内容其实是有不的文档或者文件去总结的。早上也提到,作为开发团队人员,当设计经理、项目经理把软件功能定完以后,真正产品怎么开发,是应该由设计团队人员去做。在微软有的比较大型的团队,我们有所谓的设计师,具体开发也开发团队的领队和开发人员,他们每个人根据功能的描写总结出来具体设计的执行方案,这个其实是不应该写在设计规范书里的,所以要理解清楚,设计规范书是描写产品对客户怎么用,而不是描写这个产品具体开发逻辑怎么执行,这个是和开发有关系的。作为设计规范书是项目经理的工作,就是要把这个产品的功能描写清楚。它该包含的内容和不该包含的内容不要搞混乱。影响设计规范书的因素很多,首先最重要的是功能需求,客户对使用软件有它一定的要求,这个软件应该提供什么样的服务,该完成什么样的任务,这方面就叫做功能需求。其实是有不同的好几个因素来影响整个功能需求的,对市场竞争的分析,我们竞争的对手他的产品有什么样的功能,从而得出我们产品应该也有什么样的功能,甚至功能比他更好,这是对功能需求的起影响因素的。还有客户之间的回馈,他说我这个产品为我的行业做工作,这个和明显是客户具体的要求。还有就是用户解决问题的要求,比如说他说我不在乎你这个产品怎么开发,不管你以前的产品,或者你开发的产品以前有什么功能,由于要解决新的问题,必须加进这样的功能。还有用户所谓的使用方案,他真正解决问题,使用的方案流程是怎样的,由于他商业之间运行有直接关系,如果客户商业流程决定是这样的运作的顺序,你软件设备也应该要配合客户使用方案设计。所有这些是最关键的因素影响功能需求,功能需求也是第一个最要紧的影响到设计规范书该描述清楚的,解决的什么样的问题。除此之外是性能需求,光描写说我这个软件按一个键可以写一个数字还不够,如果是客户要求我按一个数字,在0