软件工程过程
- 格式:ppt
- 大小:389.50 KB
- 文档页数:70


第二章:软件过程
目标:
软件工程和软件过程模型的概念;
了解3个一般的软件过程模型及何时使用它们;
了解软件需求工程,软件开发,测试和进化中所涉及的基本过程活动;
理解为什么软件过程要有效地组织以应对软件需求和设计上的变更;
了解Rational统一过程是如何集成好的软件过程实践来产生一个可适应的软件过程。
所有的软件过程都必须具有4种对软件工程来说是基本的活动。它们是:
1.软件描述:必须定义软件的功能以及软件操作上的约束。
2.软件设计和实现:必须生产符合描述的软件。
3.软件有效性验证:软件必须得到有效性验证,即确保软件是客户所想要的。
4.软件进化:软件必须进化以满足不断变化的客户需要。
2.1软件过程模型
一 软件过程模型一般有
1.瀑布模型:该模型将基本的过程活动,描述,开发,有效性验证和进化,看成是一些界限分明的独立的过程阶段,例如,需求描述阶段,软件设计阶段,实现阶段,测试阶段,等等。
2.增量式开发:该方法使得描述活动,开发活动和有效性验证活动交织在一起。系统的开发是建立一系列的版本(增量),每个版本添加部分功能到先前的版本中。
3.面向复用的软件工程:该方法使得描述活动,开发活动和有效性验证活动交织在一起。系统开发过程着重于集成这些组件到新系统中,而非从头开发。
2.1.1瀑布模型
一 瀑布模型中的主要阶段直接映射基本的开发活动:
1.需求分析和定义
2.系统和软件设计
3.实现和单元测试
4.集成和系统测试
5.运行和维护
二 适合采用瀑布模型的时候
瀑布模型是与其他工程过程模型相一致的,在它的每个阶段都要生成文档。这使得过程是可见的,项目经理能够根据项目计划监控项目的过程。它的主要问题在于它将项目生硬地分解成这些清晰的阶段。关于需求的责任和义务一定要在过程的早期阶段清晰界定,而这又意味它对用户需求变更的响应较困难。
所以只有在对需求了解的好,而且在系统开发过程中不太可能发生重大改变的时候,适合采用瀑布模型。
软件工程过程及常见模型
软件工程过程是指将软件开发过程分解为多个阶段,并通过一系列活动和任务进行管理和控制的方法。常见的软件工程过程模型包括:
1. 瀑布模型(Waterfall Model):各个开发阶段按照线性顺序依次进行,前一阶段的输出作为后一阶段的输入。适用于需求稳定、风险较低的项目。
2. 原型模型(Prototype Model):通过创建原型来逐步完善需求,在需求不确定的情况下更加灵活和迭代式。适用于用户需求不明确或变化频繁的项目。
3. 增量模型(Incremental Model):将软件开发分为多个小的模块,每个模块的开发和测试都是独立的,逐步完成整个系统的开发。适用于需求变化较频繁的项目。
4. 螺旋模型(Spiral Model):以风险管理为核心,通过迭代的方式进行软件开发,每个迭代阶段都包括计划、风险评估、工程开发和客户评估。适用于复杂、大型项目。
5. 敏捷模型(Agile Model):强调快速反馈和持续交付,在灵活性和适应性方面更为突出。采用迭代和增量的方式进行软件开发,如Scrum、XP等。适用于需求频繁变化的项目。
不同的模型适用于不同类型的项目和开发需求,选择合适的软件工程过程模型对于项目的成功实施非常重要。
软件开发过程
程序文件
文件控制 受控不受控
文档编号 版本号 V1.0
分册名称 第册/共册
总页数 正文 附录
编制 审批 生效日期
XXXX有限公司
文件类型
XXXX有限公司 -2- 修改变更记录:
更改条款及内容 更改人 审批人 更改日期
文件类型
XXXX有限公司 -1- 目录
目的
本文件规定了公司在软件产品开发过程中所遵守的步骤和相关的技术文档规范,由此达到对软件产品开发过程控制和质量保证的目的。
范围
本文件适用公司产品服务部软件产品开发和合同项目开发的全过程。
职责
技术部经理负责软件开发任务的下达和最后产品的确认以及整个开发过程的协调工作。
项目经理负责项目的综合管理以及项目组任务调配等。
架构设计师负责软件产品的总体架构。
系统分析/设计员负责需求的分析和设计文档的编写。
程序员负责编码和技术文档编写。
测试员负责进行项目产品的测试工作。
配置管理员负责项目产品开发软硬件环境的开发。
评审小组负责各环节的评审工作。
软件质量保证负责人负责产品的验证工作。
客户参与需求分析和产品确认。
档案管理员负责开发档案的归档
程序
软件开发流程图
文件类型
XXXX有限公司 -2-
软件开发流程图项目裁减报告项目任务分解报告项目开发计划软件开发起始需求分析系统设计编码实现测试版本发行总结产品确认需求调查表需求跟踪矩阵需求分析报告概要设计说明书详细设计说明书数据库设计说明书源代码系统设计说明书测试计划测试(结果)分析报告项目总结报告单元测试集成测试系统测试安装程序用户手册...模块开发卷宗注:红色部分表示需要评审部分档案归档
文件类型
XXXX有限公司 -3- 需求分析
系统分析员与用户进行充分沟通,获取用户需求和分析潜在需求,根据用户需求填写《需求调查表》,管理《需求跟踪矩阵》,并保持与用户联系,统一双方意见,在此基础上编写需求分析报告。
1, 什么是软件?
软件是用户与硬件之间的接口界面。用户主要是通过软件与计算机进行交流。软件是计算机系统设计的重要依据。为了方便用户,为了使计算机系统具有较高的总体效用,在设计计算机系统时,必须全局考虑软件与硬件的结合,以及用户的要求和软件的要求。 1.运行时,能够提供所要求功能和性能的指令或计算机程序集合。 2.程序能够满意地处理信息的数据结构。 3.描述程序功能需求以及程序如何操作和使用所要求的文档。 以开发语言作为描述语言,可以认为: 软件=数据结构+算法
2, 软件的阶段
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科,软件工程主要包括开发过程、运作过程、维护过程几个阶段,它们覆盖了需求、设计、实现、确认以及维护等活动
1、问题的定义及规划
此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
2、需求分析
在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。"唯一不变的是变化本身。",同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。
3、软件设计
此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。
4、程序编码
此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。
5、软件测试
在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。