软件开发流程(基础)

软件开发流程

跨行招工作的渣渣!暴风哭泣。。。。

小米(智能硬件部)一面,二面都让我详细说一下软件开发流程

定义

软件开发流程:

  • wiki:软件开发过程(software development process)是软件开发的生命周期(software development life cycle),各个阶段实现了软件的需求定义分析、设计、实现、测试、交付和维护。软件开发过程是在开发和构建系统时应遵循的步骤,是软件开发的路线图

常见的过程模型:

敏捷开发-瀑布模型

requirements->design->implementation->verification->maintenance

流程

需求分析->概要设计->详细设计->编写代码->程序测试->软件交付->客户验收->代码维护->项目重构

1.需求分析

建立需求,根据需求可以建立一个功能描述

明确大概的事件流:逻辑模型,分类系统功能模块,包图

指定各功能模块实现的操作者

简单的演示程序(demo):在招标中的作用至关重要

2.概要设计

面向过程的主框架- 事件流,关注细节
面向对象的主框架- 对象的过程

需要哪些模块,哪些接口

3.详细设计

  • 1.根据对象抽象类,形成类图

  • 2.对类分配责任,主要成员函数。细节问题,函数行为

  • 3.通过时序图验证类的成员函数能否实现事件流

  • 4.对类设计成员变量,成员变量来自前置条件,后置条件,方法中的临时变量。

  • 5.对类分析设计成员函数的返回值、参数、函数名、访控属性(公有私有保护)

  • 6.设计成员函数的过程:流程(活动图/状态图),异常

活动图状态图

  • 7.其他细节:构造函数,析构函数,拷贝构造函数,操作符重载

  • 8.通过继承和多态引入抽象。优化。降低模块之间的耦合。

  • 9.套用设计模式。不要为了设计模式而用设计模式。很容易弄巧成拙。

最终形成一份详细的设计文档

接口,控制器,调用

功能性详细描述、类型、函数、各种条件、流程设计、关键算法、关键库的接口

4.编写代码

按照设计文档进行编写代码

编写代码是进行基本的测试验证

  • 1.基本测试,每个main函数来测试类及函数定义

  • 2.单元测试, 模块级别

  • 3.集成测试, 模块都完成后,做集成测试

5.测试验证

黑盒测试

白盒测试

功能测试、性能测试、压力测试、健壮性测试,稳定性测试

6.产品发布

安装手册,用户使用指南

7.客户验收

8.代码维护

软件和根据不同功能进行更改

9.项目重构

有新的技术出现,软件对功能需求没有变,用新的技术将原来的功能重新实现一边

猜你喜欢

转载自www.cnblogs.com/GeekDanny/p/11703335.html