- 1. 企业软件开发流程
- 2. 课程整体目标了解企业开发流程
能够知道了解一个项目开发的过程经过的步骤
并应用到我们即将开发的项目
- 3. 第一阶段:产生阶段 从软件的生命周期来看
首先是软件的可行性分析。
什么是可行性…
- 4. 第二阶段:初始阶段,需求分析 软件的业务需求调研。
需求分析是构建软件系统的一个重要过程。
- 5. 第二阶段:初始阶段,需求分析 需求分析的类型
1、业务需求(business requirement)
反映了组织机构或客户对系统、产品高层次的目的要求,它们在项目视图与范围文档中予以说明。
- 6. 第二阶段:初始阶段,需求分析 需求分析的类型
2、用户需求(user requirement)
文档描述了用户使用产品(软件)必须要完成的任务,这在使用实例文档或方案脚本说明中予以说明(用户说明书)。
- 7. 第二阶段:初始阶段,需求分析 需求分析的类型
3、功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。
业务需求和用户需求是软件需求分析的基础,也是软件构建的前提。系统分析员通过对业务需求和用户需求的分解,将其转换成统一形式化描述的软件功能需求。开发软件系统最为困难的部分,就是准确说明开发什么。这就需要在开发的过程中不断的与用户进行交流与探讨,使系统更加详尽,准确到位。这就需要确定用户是否需要这样的产品类型以及获取每个用户类的需求。
- 8. 第二阶段:初始阶段,需求分析 需求分析的实际问题
客户也经常是矛盾的。事实上,很少有客户能够明确的知道怎样的一个系统对自己是最有益处的,他们往往在集中方案之间徘徊,于是经常产生需求的变动。生产厂商经常陷入客户自己的矛盾之中。
客户的负面影响可能对于能够在预算内按时完成项目产生很大的影响。尽管客户需要对需求的质量负责任,但是,当一个软件项目因为客户事先没有预料到的情况而导致失败的时候,即使客户不会追究开发方的责任,就软件项目本身而言,也已经是失败的。
- 9. 第二阶段:初始阶段,需求分析 总结:需求分析
良好的需求分析是软件成功的基础。以上是作者对需求分析工作实践的一次小结以及综合性的思考,是对需求分析本身所做的一次分析。在此基础上,作者提出了逆向沟通的设想,即系统分析员主动进行沟通,提出指导性意见。当软件融合了客户和系统分析员双方智慧,其质量将会进一步得以提高。
- 10. 第二阶段:初始阶段,需求分析 需求分析阶段最终的目的 :
系统开发起初要实施内容和用户所需求达成一致。
- 11. 第二阶段:初始阶段,需求分析 初始阶段流程图
- 12. 第三阶段:软件设计 软件设计阶段
首先看软件设计阶段的流程图:
- 13. 第三阶段:软件设计 软件设计阶段步骤:
1.总体设计:
也叫系统设计,开发者需要对软件系统进行概要设计,及系统设计。
概要设计需要对软件系统设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。
- 14. 第三阶段:软件设计 软件设计阶段步骤:
2.详细设计:
在系统概要设计的基础上,开发者需要进行软件系统的详细设计。在系统详细设计中,描述实现具体模块所涉及到的主要算法,数据结构,类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码的测试。应当保证软件的需求完全分配给整个软件。
详细设计阶段应当足够的详细,能根据详细设计报告进行编码。
- 15. 第三阶段:软件设计 软件设计阶段步骤:
3.具体模块功能设计:
和程序员接触最近的一步设计,就是设计软件编码的阶段
开发者根据上一步的详细设计中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各个模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。
- 16. 第三阶段:软件设计 软件设计阶段步骤和需求分析的衔接:
- 17. 第四阶段:软件编码 软件编码实施阶段:
软件编码要遵循以下原则: 1.遵循开发流程,在设计的指导下进行代码编写。 2.代码的编写以实现设计的功能和性能为目标,要求正确完成设计要求的功能,达到设计的性能。 3.程序具有良好的程序结构,提高程序的封装性好,减低程序的耦合程度。 4.程序可读性强,易于理解;方便调试和测试,可测试性好。 5.易于使用和维护;良好的修改性、扩充性;可重用性强/移植性好。 6.占用资源少,以低代价完成任务。 7.在不降低程序的可读性的情况下,尽量提高代码的执行效率
- 18. 第四阶段:软件编码 软件编码实施阶段:
编码完成所设计到的文档
- 19. 第四阶段:软件编码 软件设计阶段步骤:
具体实施所涉及到的人员角色工作内容
1、项目经理:具备项目管理经验,领导才能,协调能力,丰富的技术知识,善于与用户沟通协调,能够承担工作压力
2、系统分析员:具备丰富的行业应用知识,系统分析设计能力,具备丰富的项目开发经验,做过多种软件系统,熟悉系统分析设计规范
3、开发人员:具备专业开发技术,熟练掌握一种开发工具,熟知常见的各种管理系统的开发过程,能够读懂设计文档和需求文档,有很好的编码规范和习惯,善于沟通和交流
- 20. 第四阶段:软件编码 软件设计阶段步骤:
4、测试人员:熟知各种测试技术,熟练掌握一种工具,具备丰富的项目开发经验,熟知测试规范
5、维护培训人员:熟悉操作系统配置管理,具备基本的网络知识,善于编写培训手册,善于讲解,能够很好地与用户沟通,熟知项目开发过程
- 21. 第五阶段:软件测试 软件测试阶段:
1.制定测试计划:
根据项目具体性质和客户的需求重点不同,计划的主要侧重点也随之不同。
测试之前,测试的负责人要根据“产品功能说明书”和“详细设计说明”文档制定测试计划,制定总体的测试计划,详细阐述测试的目的、对象、方法、范围、过程、环境要求、接受标准以及测试人员和测试时间内容,这个制定的测试计划需要更高一级别领导审批后才可实施。
- 22. 第五阶段:软件测试 软件测试阶段:
2.需求审查:
在有了具体的测试方法和内容后,对于具体的目标也同样是非常重要的一个因素。
这里首先在第一阶段的时候,完成软件需求分析后,会提交需求分析文档,而测试人员需要根据需求调研所了解的需求及产品需求说明书等资料,再次审查需求文档,以开始的客户具体需求为测试的主要目的。
- 23. 第五阶段:软件测试 软件测试阶段:
3.单元测试:
又俗称黑盒测试,就是通过编程代码为出发角度测试。首先在设计阶段的软件整体流程设计中,把软件的整个复杂的系统分解为几个相互独立的子系统,正确的划分这些子系统及其逻辑组成部分和相互间的关系,可以降低测试的复杂性,减少重复和遗漏。有效组织测试,将系统分析人员的开发分析文档加工成为测试为角度的功能点分析文档,重要的是描述对系统分解后每个功能点逐一的效验描述,包括何种方法测试、何种数据测试、期望测试结果等。
- 24. 第五阶段:软件测试 软件测试阶段:
4.系统测试:
又俗称白盒测试,就是以用户实现效果为出发点。以第一阶段的用户具体需求为目的。具体步骤:
(1).根据用户需求,定义并完善测试需求,作为测试的标准
(2).明确测试重点对象,重点测试的功能
(3).测试时间的计划,并详细计划具体测试任务和时间
(4).风险说明。
(5).明确测试环境和测试的资源
(6)发布项目的具体时间
(7).资源说明,包括具体测试人员,软硬件需求和培训计划
- 25. 第五阶段:软件测试 软件测试阶段:
5.回归测试:
在测试实施中发现的任何问题bug必要有一个明确的解决方法,一般情况,经过修改后的系统模快肯能依旧包含错误,甚至引入新的错误,因此,对于修改后的程序模块,按照修改的方法和影响的范围,必须重新进行有关测试,另一方面,对于版本更新后的软件也必须进行同样测试过程。
- 26. 第五阶段:软件测试 软件测试阶段:
6.测试评估分析报告:
测试完毕后,要及时进行总结,对测试结果进行分析,由测试负责人提交测试分析报告,具体主要包含:
(1).通过测试的需求功能。
(2).遗留的问题
(3).测试功能效率的评估
(4).评估开发整体质量的报告
- 27. 第五阶段:软件测试 软件测试阶段:
7.产品发布:
测试完毕,整理产品发布文档,交付用户主要文档有:
(1).安装操作手册
(2).产品白皮书(说明书)
(3).管理维护手册
(4).用户操作手册
(5).测试报告。
- 28. 第六阶段:软件二次开发 软件二次开发阶段:
是随着软件的具体用户使用的具体实际应用情况而定。
- 29. 谢谢大家!