软件开发过程及规范复习资料
一、外包的类型:
1、 ITO(信息技术外包) ,强调技术领域的外包。
2、 BPO(业务流程外包) ,强调业务流程,解决业务效果和运营效益的问题。
3、 KPO(知识流程外包) ,注重高端的研发活动外包。
二、发展服务外包的优点:
1、 提升产业结构
2、 有利于转变对外贸易的增长方式,形成新的出口支撑点
3、 有利于提高利用外资水平,优化外商投资结构
4、 有利于提高大学生的就业率
三、主要的外包市场日本:文化相近、长期合作、地理位置等优势,欧美出于防范风险、降低成本和开拓中国市场的需要,有意分流订单到中国
四、软件外包项目全过程管理(8个阶段):
外包决策→选择接包方→签订合同→项目计划→软件开发→软件验收交货→项目收尾→软件维护
五、软件工程过程(5个阶段):需求分析、设计、实现、测试、维护
六、软件过程模型
1、瀑布模型优缺点:
2、螺旋模型优缺点:
3、增量模型优缺点:
七、软件开发规范(综合性题目、选择题)
八、软件开发文档:
1、 软件文档的分类:
a) 用户文档(产品文档):用户手册、操作手册、数据要求说明书
b) 工程过程类文档(开发文档):可行性研究报告、软件需求规格说明书、概要设计说明书、数据库设计说明书、详细设计说明书、模块开发卷宗
c) 管理过程类文档(管理文档):项目开发计划、测试计划测试分析报告、开发进度月报、项目开发总结报告
2、 软件文档规范的重要性:
a) 编码规范能够提高程序的可读性和可理解性
b) 编码规范能够是代码更加容易维护
c) 编码规范可以提高编码效率
d) 将个人编码的个性融入团队的过程
e) 编码规范是进行代码评审的基础
总之,程序编码规范可以直接提高软件修改时的质量因素,包括可理解性、可维护性和可测试性;也可以直接提高产品运行时的部分质量因素,如正确性;可以见解提高
软件的其他质量属性。
3、 软件质量保证:是建立评审和审核软件项目所用的计划、标准和规程
质量保证是一种有计划的、贯穿于整个软件生命周期的质量管理办法,质量保证活动的开发过程活动的关系课本P86 图3-11所示:
a) 制定质量保证计划:输出《项目质量保证计划》
b) 执行质量保证计划:输入《项目质量保证计划》、输出《项目质量保证报告》 c) 质量问题跟踪:输入《项目质量保证报告》、输出《项目质量问题跟踪表》
九、沟通管理:项目沟通管理包括为确保项目信息及时而且且当地生成、收集、发布、存储、调用并最终处置的各个过程。
沟通管理的主要活动过程包括:1、规划沟通;2、发布信息;3、报告绩效;4、管理利害关系人。
1、 规划沟通:项目经理参与,输入(立项管理产生的相关数据、组织过程资产) ,输出《项
目沟通管理计划》,《项目利害关系人登记表》,《项目利害关系人管理策略表》
2、 发布信息:由项目经理,项目组成员,项目利害关系人参与,输入《项目沟通管理计划》、
《项目利害关系人登记表》、《项目利害关系人登记策略表》
3、 报告绩效:由项目经理参与,输入《项目沟通管理计划》
4、 管理利害关系人:由项目经理参与,输入《项目沟通管理计划》、《项目利害关系人登记
表》、《项目利害关系人管理策略表》
沟通管理的主要工作成果:《项目利害关系人登记表》、《项目利害关系人管理策略表》、
《项目沟通管理计划》和《问题管理表》等,这些工作成果都无须特别的文档模板。
十、风险管理:风险管理师项目管理的重要活动,及时发现和应对风险可以降低项目延迟、预算超支或者是项目失败的可能性。风险管理是一个持续的过程。风险管理包括制定风险管理计划、识别风险、分析风险、处理风险、跟踪风险和总结风险6个过程。风险管理活动流程如课本P127 图4-6 所示:
风险管理的主要工作成果有:《项目风险管理计划》和《风险管理表》
十一、简答题:传统软件工程的优缺点
1、 传统软件工程的优点:
a) 在编写第一行代码之前充分强调了需求和设计,避免了时间的浪费,同时还可以尽
可能地保证实现客户的预期需求。
b) 提取需求和设计提高了产品质量
c) 当团队成员分散在不同地点的时候,瀑布模型可以帮助实现有效的知识传递
2、 传统软件过程的缺点:
a) 软件需求分析:客户并不是一开始就知道他们需要的是什么,而是在整个项目金成
中通过双向交互不断明确的;传统软件过程正是强调捕获需求和设计,在这种情况下,现实世界的反复无常就显得传统软件过程有些不切实际。
b) 即使给定了客户需求,根据这些需求在一定的精确性范围内估算时间和成本也是非
常困难的。
c) 通常,看上去合理可行的设计方案在现实中往往代价高昂或者异常艰难,从而需要
重新设计,这样就破坏了传统软件过程清晰的阶段界限。
d) 传统软件过程将软件开发进行清晰的分工,将参与开发的人员分为设计师、程序员
和测试员,但是在现实中这样的分工对于软件组织而言,既不现实也没有效率。
十二、软件需求分析阶段的成果:根据软件需求分析阶段工作的主要步骤可以知道,软件需求分析阶段的主要成果有:
1、 《用户需求说明书》
2、 《软件需求规格说明书》
3、 《用户接口设计说明书》
4、 《系统测试说明书》
十三、软件设计阶段的成果:
1、 《系统概要设计说明书》
2、 《数据库设计说明书》
3、 《系统详细设计说明书》
4、 《集成测试说明书》
5、 《单元测试说明书》
十四、详细设计的原则:
1、 模块的逻辑描述要清晰易读、准确可靠
2、 采用结构化或面向对象设计方法,改善控制结构,降低程序的复杂程度,从而提高程序
的可读性、可测试性和可维护性
详细设计的目标任务:
1、 为每一个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细
过程性描述。
2、 确定每一个模块使用的数据结构
3、 确定模块接口的细节
4、 为每一个模块设计出一组测试用例,以便在编码阶段对模块代码进行预订的测试。
十五、单元测试的认识误区和实施原则:
1、 认识误区:
a) 单元测试效率低,浪费时间太多
b) 单元测试必须由测试人员进行
c) 设计和编码质量高,不需要进行单元测试
2、 单元测试原则:
a) 单元测试一般在代码编译之后实施,但在实施单元测试之前应该对代码进行静态分
析和代码的评审,可以排除一些代码的逻辑表达错误,提高单元测试的效率。
b) 单元测试应该使用白盒测试和黑盒测试相结合的灰盒测试方法。
c) 在上下边界以及可操作范围内运行所有的循环。
d) 单元测试应该选择足够的测试用例
十六、统一过程:是软件工程的过程。它提供了在开发组织中分派任务和责任的纪律化方法。它的目标是在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品。统一过程模型是一种“用例驱动,以体系结构为核心,迭代及增量”的软件过程框架,由UML 方法和工具支持。
十七、UML 标准
UML 是一个允许开发人员清晰地交流软件需求、软件架构和设计的工业标准语言。 扩展:
软件需求分析的主要工作:
1、 客户需求分析:(项目经理、项目组成员、客户)输入与软件项目需求相关的业务资料,
输出《用户需求说明书》
2、 功能需求分析:(项目经理、项目组成员)输入《用户需求说明书》、与软件项目需求相
关的业务资料;输出《软件需求规格说明书》
3、 用户接口设计:(项目经理、项目组成员)输入《软件需求规格说明书》;输出《用户接
口设计说明书》
需求分析的主要成果:《用户需求说明书》、《软件需求规格说明书》、《用户接口设计说明书》、《系统测试说明书》
软件设计的主要工作:
1、 系统结构设计(概要设计):(项目经理、项目组成员),输入《软件需求规格说明书》、
《用户接口设计说明书》;输出《系统概要设计说明书》、《数据库设计说明书》、《集成测试说明书》
2、 程序结构设计(详细设计):(项目经理、项目组成员),输入《软件需求雇一个说明书》、
《用户接口设计说明书》、《系统概要设计说明书》;输出《系统详细设计说明书》、《单元测试说明书》
软件设计阶段的成果:《系统概要设计说明书》、《数据库设计说明书》、《系统详细设计说明书》、《集成测试说明书》、《单元测试说明书》
软件开发过程及规范复习资料
一、外包的类型:
1、 ITO(信息技术外包) ,强调技术领域的外包。
2、 BPO(业务流程外包) ,强调业务流程,解决业务效果和运营效益的问题。
3、 KPO(知识流程外包) ,注重高端的研发活动外包。
二、发展服务外包的优点:
1、 提升产业结构
2、 有利于转变对外贸易的增长方式,形成新的出口支撑点
3、 有利于提高利用外资水平,优化外商投资结构
4、 有利于提高大学生的就业率
三、主要的外包市场日本:文化相近、长期合作、地理位置等优势,欧美出于防范风险、降低成本和开拓中国市场的需要,有意分流订单到中国
四、软件外包项目全过程管理(8个阶段):
外包决策→选择接包方→签订合同→项目计划→软件开发→软件验收交货→项目收尾→软件维护
五、软件工程过程(5个阶段):需求分析、设计、实现、测试、维护
六、软件过程模型
1、瀑布模型优缺点:
2、螺旋模型优缺点:
3、增量模型优缺点:
七、软件开发规范(综合性题目、选择题)
八、软件开发文档:
1、 软件文档的分类:
a) 用户文档(产品文档):用户手册、操作手册、数据要求说明书
b) 工程过程类文档(开发文档):可行性研究报告、软件需求规格说明书、概要设计说明书、数据库设计说明书、详细设计说明书、模块开发卷宗
c) 管理过程类文档(管理文档):项目开发计划、测试计划测试分析报告、开发进度月报、项目开发总结报告
2、 软件文档规范的重要性:
a) 编码规范能够提高程序的可读性和可理解性
b) 编码规范能够是代码更加容易维护
c) 编码规范可以提高编码效率
d) 将个人编码的个性融入团队的过程
e) 编码规范是进行代码评审的基础
总之,程序编码规范可以直接提高软件修改时的质量因素,包括可理解性、可维护性和可测试性;也可以直接提高产品运行时的部分质量因素,如正确性;可以见解提高
软件的其他质量属性。
3、 软件质量保证:是建立评审和审核软件项目所用的计划、标准和规程
质量保证是一种有计划的、贯穿于整个软件生命周期的质量管理办法,质量保证活动的开发过程活动的关系课本P86 图3-11所示:
a) 制定质量保证计划:输出《项目质量保证计划》
b) 执行质量保证计划:输入《项目质量保证计划》、输出《项目质量保证报告》 c) 质量问题跟踪:输入《项目质量保证报告》、输出《项目质量问题跟踪表》
九、沟通管理:项目沟通管理包括为确保项目信息及时而且且当地生成、收集、发布、存储、调用并最终处置的各个过程。
沟通管理的主要活动过程包括:1、规划沟通;2、发布信息;3、报告绩效;4、管理利害关系人。
1、 规划沟通:项目经理参与,输入(立项管理产生的相关数据、组织过程资产) ,输出《项
目沟通管理计划》,《项目利害关系人登记表》,《项目利害关系人管理策略表》
2、 发布信息:由项目经理,项目组成员,项目利害关系人参与,输入《项目沟通管理计划》、
《项目利害关系人登记表》、《项目利害关系人登记策略表》
3、 报告绩效:由项目经理参与,输入《项目沟通管理计划》
4、 管理利害关系人:由项目经理参与,输入《项目沟通管理计划》、《项目利害关系人登记
表》、《项目利害关系人管理策略表》
沟通管理的主要工作成果:《项目利害关系人登记表》、《项目利害关系人管理策略表》、
《项目沟通管理计划》和《问题管理表》等,这些工作成果都无须特别的文档模板。
十、风险管理:风险管理师项目管理的重要活动,及时发现和应对风险可以降低项目延迟、预算超支或者是项目失败的可能性。风险管理是一个持续的过程。风险管理包括制定风险管理计划、识别风险、分析风险、处理风险、跟踪风险和总结风险6个过程。风险管理活动流程如课本P127 图4-6 所示:
风险管理的主要工作成果有:《项目风险管理计划》和《风险管理表》
十一、简答题:传统软件工程的优缺点
1、 传统软件工程的优点:
a) 在编写第一行代码之前充分强调了需求和设计,避免了时间的浪费,同时还可以尽
可能地保证实现客户的预期需求。
b) 提取需求和设计提高了产品质量
c) 当团队成员分散在不同地点的时候,瀑布模型可以帮助实现有效的知识传递
2、 传统软件过程的缺点:
a) 软件需求分析:客户并不是一开始就知道他们需要的是什么,而是在整个项目金成
中通过双向交互不断明确的;传统软件过程正是强调捕获需求和设计,在这种情况下,现实世界的反复无常就显得传统软件过程有些不切实际。
b) 即使给定了客户需求,根据这些需求在一定的精确性范围内估算时间和成本也是非
常困难的。
c) 通常,看上去合理可行的设计方案在现实中往往代价高昂或者异常艰难,从而需要
重新设计,这样就破坏了传统软件过程清晰的阶段界限。
d) 传统软件过程将软件开发进行清晰的分工,将参与开发的人员分为设计师、程序员
和测试员,但是在现实中这样的分工对于软件组织而言,既不现实也没有效率。
十二、软件需求分析阶段的成果:根据软件需求分析阶段工作的主要步骤可以知道,软件需求分析阶段的主要成果有:
1、 《用户需求说明书》
2、 《软件需求规格说明书》
3、 《用户接口设计说明书》
4、 《系统测试说明书》
十三、软件设计阶段的成果:
1、 《系统概要设计说明书》
2、 《数据库设计说明书》
3、 《系统详细设计说明书》
4、 《集成测试说明书》
5、 《单元测试说明书》
十四、详细设计的原则:
1、 模块的逻辑描述要清晰易读、准确可靠
2、 采用结构化或面向对象设计方法,改善控制结构,降低程序的复杂程度,从而提高程序
的可读性、可测试性和可维护性
详细设计的目标任务:
1、 为每一个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细
过程性描述。
2、 确定每一个模块使用的数据结构
3、 确定模块接口的细节
4、 为每一个模块设计出一组测试用例,以便在编码阶段对模块代码进行预订的测试。
十五、单元测试的认识误区和实施原则:
1、 认识误区:
a) 单元测试效率低,浪费时间太多
b) 单元测试必须由测试人员进行
c) 设计和编码质量高,不需要进行单元测试
2、 单元测试原则:
a) 单元测试一般在代码编译之后实施,但在实施单元测试之前应该对代码进行静态分
析和代码的评审,可以排除一些代码的逻辑表达错误,提高单元测试的效率。
b) 单元测试应该使用白盒测试和黑盒测试相结合的灰盒测试方法。
c) 在上下边界以及可操作范围内运行所有的循环。
d) 单元测试应该选择足够的测试用例
十六、统一过程:是软件工程的过程。它提供了在开发组织中分派任务和责任的纪律化方法。它的目标是在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品。统一过程模型是一种“用例驱动,以体系结构为核心,迭代及增量”的软件过程框架,由UML 方法和工具支持。
十七、UML 标准
UML 是一个允许开发人员清晰地交流软件需求、软件架构和设计的工业标准语言。 扩展:
软件需求分析的主要工作:
1、 客户需求分析:(项目经理、项目组成员、客户)输入与软件项目需求相关的业务资料,
输出《用户需求说明书》
2、 功能需求分析:(项目经理、项目组成员)输入《用户需求说明书》、与软件项目需求相
关的业务资料;输出《软件需求规格说明书》
3、 用户接口设计:(项目经理、项目组成员)输入《软件需求规格说明书》;输出《用户接
口设计说明书》
需求分析的主要成果:《用户需求说明书》、《软件需求规格说明书》、《用户接口设计说明书》、《系统测试说明书》
软件设计的主要工作:
1、 系统结构设计(概要设计):(项目经理、项目组成员),输入《软件需求规格说明书》、
《用户接口设计说明书》;输出《系统概要设计说明书》、《数据库设计说明书》、《集成测试说明书》
2、 程序结构设计(详细设计):(项目经理、项目组成员),输入《软件需求雇一个说明书》、
《用户接口设计说明书》、《系统概要设计说明书》;输出《系统详细设计说明书》、《单元测试说明书》
软件设计阶段的成果:《系统概要设计说明书》、《数据库设计说明书》、《系统详细设计说明书》、《集成测试说明书》、《单元测试说明书》