1.项目启动会
项目启动会的目标是明确该产品开发项目的目标。目标不是孤立存在的,目标与计划相辅相成,目标指导计划,计划的有效性影响着目标的达成。
2.用户需求
软件开始开发前需要确定代价和所获得价值的对比,也一旦确定需要创建,就需要安排一系列的资源来支撑这个软件的生存。这是需求的最原始描述。为什么既要有用户需求,也要有产品需求?因为两者是有差异的,用户需求由用户提出,对技术一般不描述,只描述产品目标。产品需求是根据用户需求转化而来的技术实现需求,需要针对用户提出的产品目标进行细分,总结出具体的每一个功能点,再针对每一个功能点细分为各种不同的操作流程,对每一个操作流程进行技术化定义。
3.产品需求
我们需要弄清楚产品经理或项目需求提出者为什么要做这个项目?这是最本质的业务需求。需求分析确定的业务需求,都是从业务需求推导出来的,都必须为业务需求服务。
产品需求写完后,需要进行评审。技术方案评审通过后,确认工作量和交付时间,反馈给产品。
4.总体设计
设计阶段的目标主要是对待开发系统的构架进行分析和设计,并建立系统构架的基线,以便为之后的实施工作提供一个稳定的基础。设计阶段包括了系统架构的输出,一个好的系统架构设计可以帮助人类梳理业务逻辑且抓住核心需求,设计稳定可扩展的业务系统,评估业务开发周期和开发成本,有效的规避风险。
概要设计的目的是描述系统的每个模块的内部设计,对总体设计和详细设计承担承上启下的作用。概要设计按照结构化设计方法进行设计。结构化设计方法的基本思路是:按照问题域,将软件逐级细化,分解为不必再分解的的模块,每个模块完成一定的功能,为一个或多个父模块服务,也接受一个或多个子模块的服务。模块的概念,和编程语言中的子程序或函数是对应的。
详细设计阶段就是依据概要设计阶段的分解,设计每个模块内的算法、流程,为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。
详细设计这个阶段,各个模块可以分给不同的人去并行设计。设计者的工作对象是一个模块,根据概要设计赋予的局部任务和对外接口,设计并表达出模块的算法、流程、状态转换等内容。这里要注意,如果发现有结构调整(如分解出子模块等)的必要,必须返回到概要设计阶段,将调整反应到概要设计文档中,而不 能就地解决,不打招呼。详细设计文档最重要的部分是模块的流程图、状态图、局部变量及相应的文字说明等。一个模块对应一篇详细设计文档。
5.编写代码
编写代码可以遵循以下几点原则:
(1)先做核心模块的压测
(2)确保过程可控:代码执行时一定要保持中间的输出
(3)简单易懂的逻辑:千万不要把自己绕进去了,时间一长,谁都看不明白你的逻辑。如果逻辑真的很难在一个函数内完成,尝试切分。
(4)不要沉迷于框架:框架最大的问题是什么?是过于繁冗的嵌套。
(5)使用熟悉、成熟的技术:使用新技术前,建议全面了解该技术的特征,适用范围,以及不适用的范围。
6.代码审核
众所周知,在团队中进行代码审查可以提升代码质量,分享项目知识、明确责任,最终达到构建更好的软件、更好的团队。
7.单元测试
单元测试是一种白盒测试,就是必须要对单元的代码细节很清楚才能做的测试。所以,单元测试的编写和执行都是由软件工程师来做的。相对于单元测试,还有集成测试。集成测试基本都是黑盒测试,主要是由测试人员根据软件的功能手册来进行测试,需要有专门的测试环境配合。集成测试又分功能测试、回归测试等。
8.集成测试
集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。一些局部反映不出来的问题,在全局上很可能暴露出来。
9.系统测试
系统测试阶段包括系统测试方案及用例编写、功能性测试、性能测试、稳定性测试。
为了验证需求分析确定的功能是否齐全并被正确实现,同时还要对安装、部署、适应性、安全性、界面等非功能性需求进行测试。系统测试也有测试人员负责,应该在需求分析完成后进行设计,在集成测试完成后进行实施。
10.稳定性测试(亦可称可靠性测试)通过给系统加载一定的业务压力,让系统持续运行一段时间(一般为 7x24 小时),检测系统是否能够稳定运行。
11.产品发布
产品发布是系统测试结束后的最后一步,通常在软件产品开发过程中不需要产品试制环节,可以直接上线,只需要系统测试员输出系统测试报告并批准产品发布就可以了。
你如果想做软件产品的话也可以找我们,专业团队给你最省心的服务!https://www.qinxinxinan.com/