虽然说我是软件工程专业的,不过我确实不知道软件工程是什么。
想起来之前有人问了我软件工程的开发流程,我当时就震惊了。
所以现在我还是不知道什么是软件工程,不过我可以梳理一下软件工程开发流程的一些概念、书上所谓的步骤。
大学学这个专业呢,主要是编程方面的练习强化,但是要谈论到开发流程,它却不单单是编程这个过程。或许想的多一点,那就是需求调查啊、写文档啊什么的。其实编程写文档也是其中比较重要的一个环节,那么在这两个步骤前后加入几个步骤,就是所谓的完整的开发流程了(实际的开发流程中呢,因为不同项目适用的流程是不同的 )
一般来说,软件工程的开发流程分为那么几个步骤:
- 可行性分析
字面理解就是该项目是否具有可行性,或者从长远来看有什么不足与优势。
该阶段生成的文档是可行性分析报告。 - 需求分析
这个应该不陌生,工作就是分解项目的需求,到底要做些什么,要实现什么功能,就是功能的范围和功能的细节,主要还是业务方面的梳理。这个阶段的文档成果是:需求分析说明书等。 - 概要设计
这个阶段应该是业务建模,形成业务用例,进一步形成业务用例。这个阶段是分解需求,可以使用数据库建模工具,或者是UML建模工具来辅助一下。这个阶段的文档成果是:概要设计说明书、业务用例文档等。 - 详细设计
有了概要设计,有了模型,可以定义出数据库模型,甚至是可以定义数据库的字段,然后可以让高级程序员来辅助架构师进行架构设计,普通程序员先写实现的技术用例。或者让他们先看看业务用例,熟悉一下业务流程和项目的目标。这个阶段的文档成果是:概要设计说明书、技术用例文档等。 - 具体开发
这个阶段就是具体的代码编写了。 - 单元测试
单元测试其实是在具体编码当中的,写出容易维护的程序块之后,肯定穿插着测试。生成单元测试文档。 - 集成测试
这个阶段的关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求。通常需要用户参与到测试中来。生成集成测试文档。 - 软件维护
维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。
从中可以看出,编码只是其中的一部分,而文档是贯穿整个开发流程的。