软件开发过程
软件生命周期:
1、问题定义:用户需要解决什么问题?
2、可行性分析:用户需要解决的问题是否可行(技术可行性、市场可行性)?
3、需求分析:将用户提出的问题进行细化;
4、系统设计:确定细化问题的实现方法:
5、编码:依据需求和设计稳定进行开发,解决问题;
6、测试:验证是否已经解决用户提出的问题(单元测试:开发的过程中由开发人员进行、集成测试:测试整体流程、功能用例测试:对每个细化的功能进行测试、性能测试:使用专业工具进行压力和稳定性测试);
7、维护:
开发模型:
1、瀑布模型:开发的每个阶段是顺序执行,每个阶段都会产生循环反馈,如果某个阶段出现问题,需要上一个阶段或者更早的阶段去排查解决问题。适用需求明确解决方案明确的项目中,常在一些小型项目中使用。
2、原型模型:逐步求精,开发阶段围绕着原型进行实施。适用于前期需求不明确,采用原型方法方便搜集需求。
3、增量模型:融合了瀑布模型的基本成分和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每个线性序列产生软件的一个可发布的"增量"。适用于大型项目。
需求分析:
1、需求调研:目标是挖掘用户需求。首先确定目标用户,然后确定问题领域,并定义一个描述问题的系统,用户在这个问题领域和系统下提出需求,需求包括:功能需求;质量需求、用户体验需求等。最终得到一个"需求调研报告"。
2、需求描述:通过需求调研对收集到的资料进行分析、鉴别、综合和建模,清除用户需求的模糊性、歧义性和不一致性,分析系统的数据要求,为原始问题及目标软件建立逻辑模型。最终得到一个"软件需求规格说明书"并与用户确认。软件开发人员需要根据"软件需求规格说明书"进行设计和编码。软件需求规格说明书包括:系统概述、运行环境、功能模块图、功能用例、性能需求、接口需求、其他需求等。
3、需求评审:参与者主要是架构师、技术经理、需求分析人员、设计人员、开发人员。主要审核内容为:需求规格说明书是否符合规范、需求描述是否清晰详细、
设计:
1、概要设计:根据软件需求说明,建立目标系统的总体结构和模块间的关系(技术架构、功能架构);系统网络部署结构;核心业务流程;定义系统的外部接口、模块间的接口;编写概要设计文档;概要设计审查;
2、详细设计:详细设计的主要任务是设计每个模块的类接口(参数、接口功能)、局部数据结构、物理数据模型、页面原型等。