文章作者 100test 发表时间 2007:10:10 13:00:21
来源 100Test.Com百考试题网
如何组织软件开发过程中的每一个步骤,就是软件开发周期模型要解决的问题。
其实开发软件,就像是解决一个逻辑问题。想想自己平时是怎样写程序的。首先是要有一个想法,即我写的这个程序是要干什么的;然后就是对要实现的核心功能大概构思一种或多种实现方法,并从中选出一种自认为是较好的;接下来就是将涉及的各种主要或次要功能分成各个模块;最后就是分模块来编码和DEBUG.在我看来,除了第一步外,其余的步骤应该是一个循环的过程。在编码的过程中,你总是需要不断地回过头来修改原先的模块设计,甚至最初选定的实现算法。例如,最简单的情况是,你通常都会突然发现在两个成员函数中有相同的代码,这时,程序员的直觉告诉你,你应该为你的类再添加一个private成员函数并将公共的代码放于其中;又或者是,你突然发现一个模块中的某个功能具有很高的通用性,完全可以提取出来作为一个独立的功能组件,而你也确实应该这样做;要是倒霉一点的话,你很有可能会在最后调试的时候突然发现,你的程序跑得太慢了,连你自己都无法忍受。于是你找呀找,终于找到了80/20中的那段可恶的20,原来是用了一个O(N)的算法,这时你就得老老实实地换一个更好的算法。
总之,除非你是先知,否则,对于一个具有一定规模和复杂度的软件来说,在“设计—编码”这个过程中,实在有太多的不可预知性和变化性,你根本不可能全盘地把握住每一个细节。当然,这是建立在我现时的水平之上的观点。我不知道是否成为高手以后会有所不同,因为我身边没有那样的人。
既然软件开发是一个具有不可预知性和变化性的动态的过程,那么,对其每一个步骤的组织,即周期模型,就必须包容它的这种性质。
现在来看一下最古老,最经典,同时也是最倍受批评的瀑布模型。
整个过程,光想一下就觉得冒冷汗!
瀑布模型完全忽视了软件开发过程的动态变化。恐怕只有那些已经发展得非常成熟,且规模不大的系统,例如:用Access做后台,用VB画前端的数据库应用程序,才有瀑布模型一展拳脚的地方。
软件开发过程的实现
至于文档怎样写,教科书上大多都是一条一条列得满满的,就像一些地方政府的规章制度一样,其实大可不必,只要能满足需要就行。如果是在公司,则每个公司大多都有一套自己内部的文档模板,个人没有选择的余地。而对于像我这种业余的,写个程序除了练练手艺,无非就是供自己和亲朋好友玩玩,则根本没必要搞得过于复杂。以下就是我自己的一份文档模板的概要,麻雀虽小,但五脏俱全。
可行性分析 就是关于当前项目能不能干的分析结果。主要考虑的方面包括:是否能把这个项目开发出来;假如可以的话,预计需要多少时间,能否满足客人的时间要求;需要多少人力和资金的投入;最重要的是,这个项目能否赚钱,能赚多少。还要对可能存在的风险进行评估,例如,万一项目主管被车撞了要怎么办。当然,这对于我来说毫无意义,我在这里写上只是为了保持完整而已。
项目描述 这是在决定立项以后,对当前项目的一份扼要说明。必须包括以下几个方面:(1)项目的名称或编号;(2)对客户方的描述;(3)对开发人员的描述;(4)工程任务的描述;(5)工程的输入和输出;(6)开发环境;(7)其他的附加条件。在这里,对工程任务的描述是从整体的角度来说的,例如:能对当前的象棋棋局进行分析并作出最优决策的人工智能系统。而工程的输入输出则可以这样
相关文章
公共英语PETS三级阅读训练指导(一)
项目管理案例分析:老板不信任咋办?
项目管理案例分析:项目管理师群案例讨论
项目综合管理:人防工程设计阶段的监理与实施
学习体会:高教自考软件工程课程概说总结
项目综合管理:量化项目管理的几点思考
项目综合管理:浅谈企业项目管理体系建设
项目综合管理:浅析单项目管理技术如何在多项目管理组织中的运用
4月自考成绩出来话得失
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛