软件开发中前期准备的重要性

来源:互联网 发布:ubuntu 16.04 64 wine 编辑:程序博客网 时间:2024/04/29 20:52

Importance of Prerequisites

准备工作的中心就是降低风险,目前软件开发中最常见的项目风险是糟糕的需求分析和项目计划,要做好一款优秀的软件,充分的前期准备必不可少。

 

软件隐喻
重要的研发成果常常产自类比。通过把你不太理解的东西和你较为理解、十分类似的东西进行比较,你可以对这些不太理解的东西产生更深刻的理解。这种使用隐喻的方法叫做“建模”。好的隐喻可以让我们思考更多的问题,并走上正确的道路。软件隐喻不会告诉你到哪里去找答案,仅告诉你该如何找到答案。隐喻的作用更像启示,而不是算法。应当使用对你最有益处的某种隐喻组合。

 

食物链VS软件开发
健康的生态环境中,海鸥吃新鲜的鲑鱼,鲑鱼吃新鲜的青鱼,青鱼吃新鲜的水蝽,这是一条健康的食物链。 如果环境被污染了,水蝽在污染的水域游泳,那么海鸥,食物链的最后一环吃下的不仅仅是是不健康的鲑鱼体内的垃圾,还有青鱼,水蝽体内的污染物。软件开发中,架构师吃掉需求(需求->架构师->架构),设计师吃掉架构(架构->设计师->设计),程序员,软件食物链的最后一环,消化掉设计(设计->程序员->软件)。如果一开始就被污染了,我们就不要指望程序员快乐了。整个软件都会具有放射性,周身都是缺陷,绝对导致程序员脾气暴躁、营养失调。在我们规模不大的团队里,一个人身兼数职,伤害更大。所以,项目一开始就决定了它能否成功。所以从软件开发的第一环就要尽量做到发现错误的时间要尽可能接近引入该错误的时间。因为缺陷在软件食物链里呆的时间越长,它对食物链最后级造成的损害就越严重。

软件构建活动

开发计算机软件是一个复杂的过程。在过去25年间,研究者已经认识到在软件开发过程中的各种不同的活动(activity):

定义问题(problem definition

 需求分析(requirements development

规划构建(construction planning

软件架构(software architecture),或高层设计(high-level design

详细设计(detailed design

编码与调试(coding and debugging

单元测试(unit testing

集成测试(integration testing

集成(integration

系统测试(system testing

保障维护(corrective maintenance

研究者们称之为“构建活动“(Construction  Activity)。在比较正式的项目中,这就意味着很多的红头文件。在不是很正式的项目中,我们可能就只是把它们合称为“编程”(Programming)。在每个构建活动中都有定义相应的具体任务。

软件构建活动大部分主要集中在一个项目的前半程,把主要精力集中于构建活动,可以大大提高程序员的生产效率,前半程构建活动的完美与否决定了一个产品的好与坏。

 

 

原创粉丝点击