系统集成项目管理工程师2文档格式.docx
《系统集成项目管理工程师2文档格式.docx》由会员分享,可在线阅读,更多相关《系统集成项目管理工程师2文档格式.docx(63页珍藏版)》请在冰豆网上搜索。
计算机网络系统集成(ComputerNetworkSystemIntegration)指利用综合布线和计算机网络技术,将分散在不同地点的电脑设备及功能的集成。
安防系统集成(SecuritySystemIntegration)指搭建机构或组织内部的安全防范管理系统。
门襟系统、楼宇对讲系统、防盗监控报警系统、停车管理系统、远程会议系统等。
6
信息系统集成技术?
信息系统技术与软件工程从信息系统集成的分类可以看出,信息系统集成所涉及的专业技术非常广泛,除了包括多种学科的专业技术之外,还包括管理学科的技术和方法。
从信息系统集成的开发过程来看,主要涉及技术是软件工程和网络技术。
7
3.1.2软件工程方法和技术
1.基本概念2.软件过程管理3.软件需求分析概述4.软件设计概述5.软件测试6.软件维护7.软件质量保证及评价体系
8
1.基本概念软件工程的定义?
软件工程方法和技术是计算机学科的重要部分。
按照IEEE93对软件工程定义:
第一,软件工程是将系统的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。
第二,软件工程是在一中所述方法的研究。
9
软件工程定义中给出的4个要点?
软件工程的性质是系统的、严格约束的、可量化的方法?
软件工程作用的范围是用于软件的开发、运行和维护的全过程?
软件工程的目标是工程化应用于软件?
软件工程的趋势是软件工程方法的不断发展和研究
10
软件工程的内容包括:
工程部分:
包括软件项目的招标、投标、合同、实施、监督、验收、推广,等方面来研究,以经济管理科学的理论为依据,研究软件工程的规划策略和经济收益等工程问题。
技术部分:
软件项目的分析、设计、编码、测试、维护等技术方法。
依据软件技术理论,以高效、健壮、可复用、可维护的软件为目标。
研究软件体系结构、组成成分,以及构造方式,等。
管理部分:
软件项目开发的人员组织、过程控制、进度风险分析和质量保证体系等方面,以科学性、合理性、高效可行、及可测量性为目标,来研究工程项目管理。
11
软件开发生命周期(SystemsDevelopmentLifeCycle)是软件的产生直到报废的存活期。
与人类相同,任何软件都会经历同样的生命周期。
12
软件过程软件过程(SoftwareProcedure)是指软件生存周期所涉及的一系列相关过程。
过程是活动的集合;
活动中包括完成软件项目的各项任务的;
每个任务都要运用软件开发方法和技术实施软件系统。
活动的执行按照基本的规律,在一定的条件下,可以是顺序的、重复的、并行的、嵌套的等不同的形式,这些形式属于过程模型(本章过面论述)。
13
2.软件过程管理
研究的热点主要包括:
1)软件过程模型的分析和建立,包括:
软件过程的合理性、可实施性,以及形式描述和可验证。
2)软件过程管理的体系,包括:
软件过程定义的概念、内容、策略、方法等,主要的软件过程管理体系:
RUP(RationalUnifiedProcess)统一过程?
PSP(PersonalSoftwareProcess)个体软件过程3)软件过程改进和评估体系?
CMM(CapabilityMaturityModelforSoftware,SW-CMM)软件能力成熟度模型体系?
CMMI(CapabilityMaturityModelIntegration)能力成熟度模型集成体系,?
CMMI/SPCA双模认证(软件能力成熟度与软件过程能力)评估体系。
14
RUP(RationalUnifiedProcess)Rational公司提出的软件按开发过程模型。
是一个面向对象软件工程的通用业务流程。
RUP的目标:
为确保在可预计的时间安排和预算内开发出满足最终用户需求的高品质的软件。
RUP过程模型:
横轴是时间轴,分为反复迭代的四个阶段:
初始阶段、细化阶段、构造阶段和发布阶段纵轴是工作流轴,包括六个核心工作流程和三个核心支撑工作流程
15
RUP核心工作流包括:
①业务建模工作流②需求工作流③分析设计工作流④实现工作流⑤测试工作流⑥发布工作流RUP核心支撑工作流包括:
①环境工作流②项目管理工作流③配置与变更管理工作流
16
RUP的6项经验①迭代式开发。
允许在过程中,不断适应需求的变化,通过不断细化来加深对问题的理解。
②管理需求。
提供如何提取系统功能和约束条件,并将其文档化。
③基于构件的体系结构。
使系统成为可构造、可复用,系统应该尽量采用构件式结构。
④可视化建模。
采用UML对软件系统建模,提供软件文档控制及管理能力。
⑤验证软件质量。
软件质量评估是事先进行的并贯穿在整个过程所有活动中的必需任务,要统一组织和管理⑥控制软件变更。
给出了如何控制、跟踪及监控对系统过程中的修改工作,以确迭代过程进行。
17
PSP个体软件过程?
PSP(PersonalSoftwareProcess)个体软件过程,是由美国CarnegieMellon大学软件工程研究所开发的,是用于软件开发中,控制和管理个人工作方式的一种软件过程体系。
PSP给出了个体软件过程的原则,并可应用到任何软件工程任务之中。
PSP提供了度量和分析工具,帮助软件开发者做出准确的计划;
确定为改善产品质量所采取的步骤;
建立度量个体软件过程改善的基准;
确定过程的改变对软件开发者能力的影响。
18
PSP过程体系框架1)个体度量过程?
PSP0中规定了建立个体过程基线,包括在计划、开发以及后置处理三个阶段中,制定开发时间、选定缺陷类型标准、度量缺陷限值、排除缺陷限值等。
PSP0.1增加了编码标准、程序规模度量和过程改善建议三个关键过程域。
2)个体规划过程?
PSP1是个体计划方法,用自己的历史数据预测程序的大小和需要的开发时间,并使用线性回归方法计算估计参数,确定置信区间以评价预测的可信程度。
PSP1.1增加了对任务和进度的规划。
19
3)个体质量管理过程?
PSP2是个体质量管理,建立程序缺陷的检测表,按照检测表进行设计复查和代码复查(也称“代码走查”),便于尽早发现软件缺陷,减小修复代价。
PSP2.1给出设计过程和设计模板,介绍设计方法。
44)个体循环过程PSP3PSP3?
PSP3是延伸个体过程达到大规模的生产过程的方法,采用螺旋式上升过程,即迭代增量式开发方式,分解大型系统的程序,对每个分解模块按照PSP2.1所描述的过程开发,并逐步集成完整软件产品。
20
软件过程改进和评估体系?
CMM(CapabilityMaturityModelforSoftware,SW-CMM,简称CMM)软件能力成熟度模型,是由美国CarnegieMellon大学的软件工程研究所(简称SEI)受美国国防部委托,于1991年研究制定的。
初始的目的是为了评价美国国防部的软件合同承包组织的能力,因为在软件企业应用进取得了较大的成功,所以在全世界范围内被广泛使用。
CMM的核心CMM的是这对软件开发全过程管理和控制,使其更加科学化、标准化。
作为一种评价软件承包能力,并且,帮助其改善软件质量的方法。
CMM的核心是软件开发过程的管理工程能力的提高与评估。
21
CMM的体系的主要内容:
能力等级第一级基本级第二级可重复级特点关键过程域关键过程域KPA软件过程混乱而无序,几乎没有过程定软件过程混乱而无序几乎没有过程定义,完全依靠的个人的才能和经验来实完全依靠的个人的才能和经验来实施系统,反应式的管理方式反应式的管理方式。
施系统反应式的管理方式。
需求管理,项目计划项目计划,项目建立了基本的项目管理机制,建立了基本的项目管理机制,对项目需求管理项目计划项目进度和费用有必要的跟踪,能够利用以跟踪和监督,软件子合同管进度和费用有必要的跟踪能够利用以跟踪和监督软件子合同管前类似的项目经验,重复开发过程。
软件配置管理,软件质前类似的项目经验,重复开发过程。
理,软件配置管理软件质软件配置管理量保障过程定义,过程焦点培训,过程焦点,培训制定了软件工程化标准化和文档标准过程定义过程焦点培训并在软件开发过程中得以实施。
集成管理,软件产品工程软件产品工程,化,并在软件开发过程中得以实施。
并在软件开发过程中得以实施集成管理软件产品工程组间协调,专家审评组间协调专家审评收集软件过程和产品质量的详细度量,收集软件过程和产品质量的详细度量定量的软件过程管理和产对软件过程和产品质量有定量的理解品质量管理和控制。
和控制。
缺陷预防,过程变更管理和软件过程的量化反馈和新的思想和技缺陷预防过程变更管理和术促进过程的不断改进。
术促进过程的不断改进。
技术变更管理
22
第三级定义级第四级管理级第五级优化级
软件配置管理软件配置项(SCISoftwareConfigurationItem):
分类环境类定义类设计类编码类测试类维护类特性软件开发或维护环境需求分析与定义阶段得到的工作产品设计阶段得到的产品编码及单元测试后产品系统测试后得到的产品进入维护后所得到的产品举例编辑器、编译器、文档工具等需求规格说明书、开发计划、设计和测试标准、验收计划设计规格说明、程序规格说明、用户界面设计标准、用户手册源代码、目标代码、单元测试数据及结果系统测试数据、测试结果、操作手册、安装手册以上任何需要变更的配置项
23
CMM关键过程域和考核标准?
KPA是CMM实现每级目标的关键过程域(KeyProcessArea)?
KPA统一考核标准:
①确定目标:
给出准确的目标,若满足了某个级别的所有KPA要求,则表明达到了该级别的能力。
②实施保证:
必须采取的活动,包括制定企业范围的政策和高层管理的责任。
③实施能力:
前提条件,包括资源保证、人员培训等。
必须采取措施满足这些条件后,才有可能执行KPA的活动。
④执行活动:
执行KPA的角色和步骤。
包括计划、执行、及执行跟踪等。
⑤度量分析:
对过程度量和度量分析,确定执行活动的状态,以及执行活动的有效性。
⑥实施验证:
验证执行活动是否与所建立的过程一致。
组织评审、审计及质量保证活动。
24
CMMI(CapabilityMaturityModelIntegration)能力成熟度模型集成,是SEI在2000年发布的CMM的新版本。
在CMM基础上,整合了SoftwareCMM、SystemsEng-CMM、PeopleCMM和AcquisitionCMM,建立起除软件开发外,软件系统工程中诸多因素处理能力的标准和评价体系。
CMMI主要内容软件能力成熟度模型CMM2.0草案、系统工程能力成熟度模型、软件采购能力成熟度模型、集成产品和过程开发等。
CMMI的KPA增加至25个,目标105个,关键实践485条。
CMMI的基本目标①解决大型软件项目过程改进难度增大问题②可实施软件过程的并行化与多学科组合③提高过程改进的效益
25
CMM评估?
评估机构及人员要求:
–必须由SEI授权的合作机构,由SEI授权的主任评估师进行评估。
遵守SEI发布的评估需求和评估方法;
–若进行双模式SPCA(软件过程能力和软件能力成熟度)评估,必须得到信息产业部和国家认证认可委员会的批准,评估过程遵守国家发布的SPCA评估方法。
申请评估企业的一般条件–要求企业的项目或产品活动应能覆盖所申请CMM/CMMI等级的要求;
–SPCA评估,要求企业成立5年以上,软件开发人员20人以上,评估项目和人员覆盖率达到70%以上
26
实施CMM到评估的基本流程:
CMM/CMMI培训?
成立软件过程组织、软件质量保证组织?
建立和完善过程管理体系?
试点实施?
推广并制度化?
参加预评估?
参加、准备最终评估?
持续改进
27
3.软件需求分析概述软件需求分析是软件生命周期中必不可少的重要的部分,是软件开发成败的关键,占整个工程一半以上的工作量。
需求分析用经过证实的有效原理、方法,通过合适的工具和记号,系统地描述待开发产品或系统的行为特征及相关约束。
28
需求分析的任务和步骤的任务和步骤
建立分析模型在当前物理模型的基础上,建立分析模型?
完成“软件需求规格说明”(SoftwareRequirementSpecification,SRS)在SRS中,定义软件的功能,信息,表示软件的行为?
需求验证与用户达成共识,编写测试计划和测试案例
29
系统分析步骤示意
行业知识学习访问用户考察现场定制调研计划
组织调研建立未来系统逻辑模型建立当前系统物理模型
整理调研问题陈述
多次反复的过程
编制需求规格说明开发系统原型
30
需求分析阶段的产品
需求规格说明:
需求规格说明(主要内容)1.引言1.1编写目的1.2项目背景1.3定义1.4参考资料2.任务概述2.1目标2.2运行环境2.3条件与限制3.数据描述3.1数据字典(或数据库描述)3.2数据采集4.功能需求4.1功能划分4.2功能描述5.性能描述5.1数据精确度5.2时间特性5.3适应性6.运行需求6.1用户界面6.2硬件接口6.3软件接口6.4故障处理7.其它需求
31
软件的非功能性需求–过程需求:
交付需求、实现方法需求、标准需求等–产品需求:
可用性、性能需求、可靠性需求、可移植性需求、可重用性需求、安全性需求等–外部需求:
法规需求、费用需求、互操作性需求等?
需求模型模型是描述现实问题的一种手段,它能抽象和简化地反映实际产品或系统的外部特征和本质。
不同的方法学有不同的模型表示。
因此,它是软件工程方法学研究的主要内容之一。
(本章后面论述)
32
4+1试图模型由Kruchten在1995年提出,从五个侧面来表达系统
最终用户功能需求编程人员软件元素管理
逻辑视图场景进程视图
系统运行特性、非功能性需求
开发视图
物理视图
系统实施的拓扑、系统安装
逻辑视图和开发视图属于静态结构表达进程视图和物理视图是从系统的动态结构老表达的。
33
4.软件设计概述
软件设计,在软件生命周期中处于技术核心的位置,将完成软件系统实现意义的工程表示。
软件设计阶段任务:
①数据设计,用数据结构组织处理数据元素之间的逻辑关系②体系结构设计,定义软件的主要结构、构造元素、及之间的关系、限制和约束③接口设计,描述软件内部、软件和协作系统之间的通信,数据流或控制流④构件逻辑设计,对软件结构的构造元素,进行软件算法过程的描述,为编码提供依据
34
软件设计的方法和技术软件设计方法是软件工程中,软件技术的汇集焦点。
它汇集了操作系统、数据库技术、网络技术、软件体系结构,以及算法设计、界面设计等,几乎涵盖了计算机学科的所有技术和方法。
不同的方法学对应不同的设计方法和技术,例如:
结构化设计方法和面向对象的设计方法。
(本章后面分别论述)
35
5.软件测试
软件测试的目标为了发现软件中的错误,努力产生好的测试案例软件测试的评价能成功发现软件错误的测试才是好的测试能揭示软件错误的案例才是好的案例软件测试的基本原则测试应符合软件的功能及性能需求测试要有计划地进行测试应该从小规模开始,逐步到大规模的测试测试不可能穷举,只能尽量充分覆盖测试应该由软件开发人员和独立测试组共同完成
36
软件测试的三个阶段?
单元测试阶段,验证程序控制结构的分支,尽量覆盖所有可能的错误?
集成测试阶段,在单元测试的基础上验证程序以及测试程序构造问题?
高阶测试,也叫做“确认性测试”,是对已经通过集成测试并可运行的程序进行的测试
可行性分析需求分析设计编码系统维护确认性测试集成测试单元测试验证需求分析验证设计验证编码
测试v模型
37
软件测试的策略软件测试的不同阶段对应不同测试策略?
单元测试策略,包括:
程序中常见错误的测试、单元测试规程,等策略?
集成测试策略,包括:
自顶向下的测试、自底向上的测试、回归测试、烟雾测试,等策略?
高阶测试策略,包括:
α测试、β测试、恢复测试、安全测试、应力测试、性能测试等策略
38
软件测试技术?
黑盒测试技术,为证实软件运行功能,通过功能的操作执行发现和寻找错误?
白盒测试技术,为证实软件内部的执行规约,在程序内部发现和寻找错误软件测试方法和工具?
结构化测试方法和工具,是针对结构化程序语言程序的测试方法,以及结构化程序设计语言环境的软件测试工具。
面向对象测试方法,针对面向对象程序语言程序的测试方法,以及面向对象程序设计语言环境的软件测试工具。
39
6.软件维护
基本概念?
软件维护是指对已经提交用户使用的软件系统或软件产品的修改?
是软件生命周期中必然经历的阶段?
任何软件系统或产品存都存在缺陷,这是软件基本性质决定的:
①软件是人工过程为主的知识密集型产品,软件开发者对解决问题的理解总是有误差的②与软件操作相关的环境和需求是会变化的③软件解决的现实问题本身是存在不确定性因素的④软件开发的方法和技术本身是存在局限性的
40
软件维护的基本类型?
改正性维护:
交付使用的软件暴露的错误隐患?
适应性维护:
更新业务以及硬件系统或软件环境升级?
完善性维护:
原有功能或性能在使用中发现短缺?
预防性维护:
系统未来的扩充、维护、移植4种维护的比例:
其它改正性维护20%完善性维护50%适应性维护25%
41
软件维护的任务及过程?
设置专门的维护确认审批机构,减少由于随意修改造成的系统结构混乱?
建立合理的维护管理流程及严格的维护文档,包括:
申请、审批、问题报告、维护计划、实施结果?
进行维护活动的评审,对维护所带来的成本开销给出定量的分析
42
7.软件质量保证及评价体系
软件质量定义?
按国际标准ISO/8042-1994对软件质量定义:
能满足明确需求的软件实体,所具有能力的特性总合。
按照国家GB/T11457-2006《软件工程术语》中定义软件质量为:
–软件产品中能满足给定需要的性质和特性的总体–软件具有所期望的各种属性的组合程度–顾客和用户觉得软件满足其综合期望的程度–确定软件在使用中将满足顾客预期要求的程度
43
软件质量模型质量模型是质量特性结构的表达,业界认同的软件质量模型有几种:
Bohm质量模型,1976年由Bohm等提出软件质量分层模型?
McCall质量模型,1979年由McCall等人提出的软件质量模型?
ISO/IEC9126-1:
2001,给出的软件质量模型
44
Bohm质量模型
设备独立性自包含性可移植性可靠性可用性软件质量效率人类工程可测性可维护性可理解性可修改性正确性完备性一致性健壮性可计测性设备效率可存取性通信性自描述性结构化性简单清晰性可扩充性
45
McCall质量模型
可维护性可测试性灵活性
互联性可移植性复用性
产品修正
产品转移
产品运行正确性可靠性易用性效率完整性
46
2001质量模型
外部质量和内部质量功能性可靠性易用性效率可维护性可移植性
使用质量有效性生产性安全性满意度
47
软件质量保证体系ISO9001是适用于所有工程质量保证标准。
ISO9000-3是在软件过程中质量保证体系使用的子集。
标准中给出的软件质量保证体系。
主要内容包括:
管理职责、质量体系、合同评审、设计控制、文件和资料控制、采购、顾客提供产品的控制、产品标识和可追溯性、过程控制、检验和试验、检验/测量和试验设备的控制、检验和试验状态、不合格品的控制、纠正和预防措施、搬运/贮存/包装/防护和交付、质量记录的控制、内部质量审核、培训、服务、统计系统等20多项。
48
软件评审软件评审是软件质量保证的重要措施根据《GB/T12504-1990计算机软件质量保证计划规范》软件评审包括:
1)软件需求评审,产品对应需求的适合性,在软件需求分析结束后进行。
2)概要设计评审,软件设计的总体结构、外部接口、部件分配、数据结构以及各主要部件之间的接口等方面的适合性,在软件概要设计结束后进行。
3)详细设计评审,评价软件设计的每一个基本部件的功能、算法和过程描述各方面的适合性,在软件详细设计结束后进行。
49
4)软件验证和确认评审,评价软件验证与确认计划中使用方法的适合性与完整性,在软件验证与确认计划完成后进行。
5)功能检查,验证所开发软件满足需求的情况,在软件提交前对软件进行。
6)物理检查,验证程序和文档的一