软件开发人员

总结 | 八类软件开发方法!

在上个世纪60年代中期爆发了众所周知的软件危机。为了克服这一危机,在1968、1969年连续召开的两次著名的NATO会议上提出了软件工程这一术语,并在以后不断发展、完善。与此同时,软件研究人员也在不断探索新的软件开发方法。至今已形成了八类软件开发方法。

Parnas方法

最早的软件开发方法是由D.Parnas在1972年提出的。由于当时软件在可维护性和可靠性方面存在着严重问题,因此Parnas提出的方法是针对这两个问题的。首先,Parnas提出了信息隐蔽原则:在概要设计时列出将来可能发生变化的因素,并在模块划分时将这些因素放到个别模块的内部。这样,在将来由于这些因素变化而需修改软件时,只需修改这些个别的模块,其它模块不受影响。信息隐蔽技术不仅提高了软件的可维护性,而且也避免了错误的蔓延,改善了软件的可靠性。现在信息隐蔽原则已成为软件工程学中的一条重要原则。

Parnas提出的第二条原则是在软件设计时应对可能发生的种种意外故障采取措施。软件是很脆弱的,很可能因为一个微小的错误而引发严重的事故,所以必须加强防范。如在分配使用设备前,应该取设备状态字,检查设备是否正常。

软件开发流程:软件开发需要的十三类文档

在软件项目开发过程中,应该按软件开发要求撰写十三类文档,文档编制要求具有针对性、精确性、清晰性、完整性、灵活性、可追溯性!

1、可行性分析报告

说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理由。

2、项目开发计划

为软件项目实施方案制订出具体计划,应该包括各部分工作的负责人员、开发的进度、开发经费的预算、所需的硬件及软件资源等。

3、软件需求说明书(软件规格说明书)

对所开发软件的功能、性能、用户界面及运行环境等作出详细的说明。它是在用户与开发人员双方对软件需求取得共同理解并达成协议的条件下编写的,也是实施开发工作的基础。该说明书应给出数据逻辑和数据采集的各项要求,为生成和维护系统数据文件做好准备。

4、概要设计说明书

软件开发文档介绍

软件开发文档是软件开发使用和维护过程中的必备资料。它能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导、帮助、解惑的作用,尤其在维护工作中,文档是不可或缺的资料。

软件开发文档可以分为开发文档和产品文档两大类。

开发文档包括:《功能要求》、《投标方案》、《需求分析》、《技术分析》、《系统分析》、《数据库文档》、《功能函数文档》、《界面文档》、《编译手册》、《 QA 文档》、《项目总结》等。

产品文档包括:《产品简介》、《产品演示》、《疑问解答》、《功能介绍》、 《技术白皮书》、《评测报告》。用户文档《安装手册》、《使用手册》、《维护手册》、 《用户报告》、《销售培训》等。

开发文档

  •   《功能要求》 -- 来源于客户要求和市场调查,是软件开发中最早期的一个环节。客户提出一个模糊的功能概念,或者要求解决一个实际问题,或者参照同类软件的一个功能。有软件经验的客户还会提供比较详细的技术规范书,把他们的要求全部列表书写在文档中,必要时加以图表解说。这份文档是需求分析的基础。

十一种软件开发模式简介

1. 边做边改模型(Build-and-Fix Model)

好吧,其实现在许多产品实际都是使用的“边做边改”模型来开发的,特别是很多小公司产品周期压缩的太短。在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改。

在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。在提供给用户使用后,如果程序出现错误,或者用户提出新的要求,开发人员重新修改代码,直到用户和测试等等满意为止。

这是一种类似作坊的开发方式,边做边改模型的优点毫无疑问就是前期出成效快。

对编写逻辑不需要太严谨的小程序来说还可以对付得过去,但这种方法对任何规模的开发来说都是不能令人满意的,其主要问题在于:

1) 缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无法继续修改;
2) 忽略需求环节,给软件开发带来很大的风险;
3) 没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难。

2. 瀑布模型(Waterfall Model)

是时候给糟糕的技术面试来场革命了

传统的技术面试对所有人来说都很糟糕,既不利于公司评估应聘者,也不利于应聘者评估公司,不仅浪费时间,还对双方产生了压力。几乎所有面试过的人都同意这些。可他们依旧继续这样面试。

我在此谨建议那些有颇多选择的工程师们干脆地拒绝这些面试。

不要紧张,下面我要介绍更好的面试方法。

上个月,丹尼·克莱顿(Danny Crichton)写了 几篇 关于技术面试的文章。这几篇文章 写得很不错 ,我推荐大家读一读,在这里我只摘取文章中的一些要点:

没有什么行业像软件工程一样如此公开地敌视其从业者……我们让应聘者在压力很大的面试环境下在白板上现场编程,只因为这是我们这行的惯例……我们实在不该在工程师紧缺的时候错失如此多的人才。

他受到了 Thomas Ptacek 的文章的启发:

现在这种软件开发人员的面试行不通。公司不应该再用这种方法招人。聪明的团队将通过设计新的招聘方案战胜竞争对手。

的确如此。而且,在我的印象中,情况终于开始改变了。更多的公司开始让应聘者做测试项目,而不是只做白板面试。其他公司也不那么热衷于在面试阶段剔除那些看起来合适的应聘者(而是在几个月后更加无情地开除他们)。这些改变产生了效果,谷歌的人力资源主管几年前也 承认 :“脑筋急转弯纯粹是浪费时间”以及“测试分数没有任何价值”。

同步内容
--电子创新网--
粤ICP备12070055号