版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第10章 软件工程标准化和软件文档1、什么是软件工程标准化 1983年我国颁布的国家标准(GB3935.1-83)中对“标准”的定义是:“标准是对重复性事物和概念所做的统一规定。它以科学、技术、实践经验和综合成果为基础,经有关方面协商一致,由主管机构批准,以特定形式发布,作为共同遵守的准则和依据。” 随着软件工程学的发展,软件工作的范围从只是使用程序设计语言编写程序,扩展到整个软件生存期。涉及软件概念的形成、需求分析、设计、实现、测试、安装和检验、运行和维护,直到软件淘汰。同时还有许多技术管理工作(如过程管理、产品管理、资源管理)以及确认与验证工作(如评审和审计、产品分析、测试等),这些常常是
2、跨越软件生存期各个阶段的专门工作。所有这些方面建立的标准或规范,即是软件工程标准化。 软件工程标准化2、软件工程标准化的意义 协调软件开发项目中人员、开发项目的各个部分以及各开发阶段之间联系和衔接问题。软件工程标准化的作用如下: 可提高软件的可靠性、可维护性和可移植性,从而提高软件产品的质量; 可提高软件人员的技术水平和软件的生产率; 可提高软件人员之间的通信效率,减少差错和误解; 为科学地进行软件管理奠定了基础; 有利于降低软件产品的成本和运行维护成本; 有利于缩短软件开发周期; 标准化是软件研究、生产、使用三者之间的桥梁。 软件工程标准化3、软件工程标准的范围和分类4、软件工程标准的层次
3、国际标准 国家标准 行业标准 企业规范 项目规范 由国际联合机构制定和公布,提供各国参考的标准。ISO(International Standards Organization)国际标准化组织。 这一标准通常冠有ISO字样,如ISO863186 Information processingProgram constructs and conventions for their representation信息处理程序构造及其表示法的约定。该标准现己由中国收入国家标准。软件工程标准化3、软件工程标准的范围和分类4、软件工程标准的层次 国际标准 国家标准 行业标准 企业规范 项目规范 由政府或国家
4、级的机构制定或批准,适用于全国范围的标准,如: GB中华人民共和国国家技术监督局是中国的最高标准化机构,简称 “国标”。 ANSI(American National Standards Institute)美国国家标准协会。 软件工程标准化3、软件工程标准的范围和分类4、软件工程标准的层次 国际标准 国家标准 行业标准 企业规范 项目规范由行业机构、学术团体或国防机构制定,并适用于某个业务领域的标准,如: IEEE(Institute of Electrical and Electronics Engineers)美国电气与电子工程师学会。 GJB中华人民共和国国家军用标准。 DODSTD(
5、Department Of DefenseStandards)美国国防部标准 软件工程标准化3、软件工程标准的范围和分类4、软件工程标准的层次 国际标准 国家标准 行业标准 企业规范 项目规范 一些大型企业或公司,由于软件工程工作的需要,制定适用于本部门的规范。例如,美国IBM公司通用产品部(General Products Division)1984年制定的程序设计开发指南。仅供该公司内部使用。软件工程标准化3、软件工程标准的范围和分类4、软件工程标准的层次 国际标准 国家标准 行业标准 企业规范 项目规范 由某一科研生产项目组织制定,且为该项任务专用的软件工程规范。例如,计算机集成制造系统
6、(CIMS)的软件工程规范。软件工程标准化5、软件工程标准的体系框架1、软件工程功能标准框架可按标准的自然属性分为四个类别: 通用标准:指软件工程领域的共性标准,包括术语词汇、组织框架、参考信息、软件分类等。原理标准:包括描述各个原理级的关键组织标准。要素标准:包括带有详细性能要求的标准。指南和补充:包括为如何把原理或要素标准应用于特定场合而提供指南的文档。软件工程标准化5、软件工程标准的体系框架1、软件工程功能标准框架 六种类型标准:过程、产品、工具、技术、人员和材料资源、数据(包括需求数据、产品数据和工程数据)。 过程:包括应用于计算机软件的开发、提供、安装和维护的指南、软件文档的管理指南
7、、软件生存周期过程、软件测量过程、软件维护、软件用户文档过程、软件配置管理、软件工程项目管理等。 产品:产品标准框架以及相关国际标准如图10-5,包括质量模型、软件产品质量、软件包质量需求和测试、软件测量功能性规格测量、系统和软件完整性级别、用户文档的设计和编制指南等。软件工程标准化1、软件工程功能标准框架 工具:包括CASE工具的评价和选择指南、CASE工具的采用指南、实体模型和原型的软件生存周期裁剪、软件工程环境服务、配置管理工具需求等。 技术:技术标准的框架以及相关国际标准如图10-7。包括软件产品评价、软件过程评估、软件可信性、科技系统功能安全的风险分析、功能安全与系统相关的安全以及体
8、系结构相关的技术标准。 人员和材料资源:包括TR155046:软件过程评估第6部分:评估员资格指南和计划中的对于知识软件工程体指南的快速批准。软件工程标准化1、软件工程功能标准框架 数据:包括判定表规范、文档编制符号和约定、程序结构和约定及其表示、计算机系统配置图符号和约定、软件状态转换的人际通信的表示、基于计算机的应用系统的文档编制指南、软件生存周期过程信息产品的内容指南、软件工程数据定义和交换及高级Petri网等。2、基于软件生存周期过程的软件工程路径框架软件工程标准化6、中国的软件工程标准化工作 从1983年起到现在,中国已陆续制定和发布了20项国家标准。这些标准可分为4类: 基础标准;
9、 开发标准; 文档标准; 管理标准。 另外,还制定了以“GJB”为标记的软件工程国家军用标准12项。软件工程标准化 7、IS09000国际标准简介 ISO9000系列标准对提供产品或服务的机构称为供方,标准规定了对供方的各方面质量要求和质量管理办法,以图对购买者和消费者(称为顾客)所要求的各种质量条件都得到满足。(1) IS09000标准的特点: 国际性 、完整性 、兼容性 、主动性 、可信性 、指导性 、科学性 、实践性 。 软件工程标准化 7、IS09000国际标准简介(2) ISO9000系列标准包括的标准范围ISO9000系列标准共包括5项标准。它们是: ISO9000-1:1994质
10、量管理和质量保证标准 第一部分:选择和使用指南 ISO9001:1994质量体系 设计、开发、生产、安装和服务的质量保证模式 ISO9002:1994质量体系 生产、安装和服务的质量保证模式 ISO9003:1994质量体系 最终检验和试验的质量保证模式 ISO9004-1:1994 质量管理和质量体系要素 第一部分:指南软件工程标准化 7、IS09000国际标准简介(3) ISO9000系列标准用途和分类 ISO9000-1:1994标准的用途 该标准主要用途是供给供需双方选择质量保证和供给供方选择质量管理标准时使用;ISO9001ISO9003:1994标准的用途 该三项标准是一组质量保证
11、标准;它们是在合同情况下,供购双方签订供货合同选择质量保证标准时,或供方申请体系认证选择质量保证模式时使用的标准。 软件工程标准化 7、IS09000国际标准简介(4) 质量保证标准(ISO9001ISO9003)之间及其与质量管理标准(ISO9004-1)的关系ISO9001、9002、9003质量保证标准之间的关系 从用途上看,它们各自独立,但它们内在有着紧密的关系。ISO9003是最终检验和试验质量保证模式,含16项体系要素,是三者中要求提供证据最少的质量保证模式;ISO9002是生产、安装和服务的质量保证模式,含19项体系要素,ISO9002包容了ISO9003的要素;ISO9001是
12、设计、开发、生产、安装和服务的质量保证模式,含20项体系要素,ISO9001包容了ISO9002的要素。软件工程标准化 7、IS09000国际标准简介(4) 质量保证标准(ISO9001ISO9003)之间及其与质量管理标准(ISO9004-1)的关系质量保证标准(ISO9001ISO9003)与质量管理标准(ISO9004-1)之间的关系 区别:ISO9004-1是质量管理标准,其用途是指导企业推行质量管理,建立质量管理体系,提高管理水平用的;ISO9001ISO9003是一组三种不同模式的质量保证标准,它们的用途是指导供需双方选择质量保证模式或供方质量体系认证用的。 联系:ISO9004-
13、1体系要素基本包括了ISO9001ISO9003体系的各项要素。企业的质量管理体系是企业产品质量保证体系的基础。软件文档1、文档:对活动、需求、过程或结果进行描述、定义、 规定、报告或认证的所有书面及图示的信息。 文档也是软件产品的一部分,没有文档的软件就不成其为软件。 2、软件文档的作用 (1)记录开发过程中的事件,以提高软件开发过程的能见度。 (2)记录开发过程中的有关信息,便于协调以后的软件、开发、使用和维护和各类人员、用户之间的协作、交流。 (3)提高开发效率。 (4)作为开发人员在一定阶段的工作成果和结束标志。 (5)便于潜在用户了解软件的功能、性能等各项指标,为他们选购符合自己需要
14、的软件提供依据。软件文档3、文档的分类根据软件文档形式,大致可分为两类: (1)工作表格:包括开发过程中填写的各种图表。 (2)文档或文件:包括应编制的技术资料或技术管理资料。 按照文档产生和使用的范围,可分为三类: (1)开发文档 (2)管理文档 (3)用户文档根据文档内容,软件文档又可分为两类: (1)用户文档 (2)系统文档软件文档3、文档的分类根据软件产品从形成概念开始,经过开发、使用和不断增补修订,直到最后被淘汰的整个过程应提交的文档又可以分为以下十三种:(1)可行性研究报告 (7)用户手册 (2)项目开发计划 (8)操作手册 (3)软件需求说明书 (9)测试计划 (4)数据要求说明
15、书 (10)测试分析报告 (5)概要设计说明书 (11)开发进度月报 (6)详细设计说明书 (12)项目开发总结报告 (13)维护修改建议 软件文档4、软件文档的编制要求 高质量的文档应当体现在以下几个方面: 准确、简明、完整、灵活、有针对性、可追溯性。为了能够编写出高质量的文档,应注意以下一些问题: (1)应根据具体的软件开发项目,决定编制的文档种类。 (2)当所开发的软件系统非常大时,一种文档可以分成几卷编写。 (3)应根据任务的规模、复杂性,确定文档的详细程度。 (4)对国标中所建议的所有条款都可以扩展,以适应需要。 (5)程序的设计可采用多种表现形式。 (6) 文档的表现可以使用自然语
16、言、也可以使用形式化的语言。 (7)当可以建立一些特殊的文档种类要求。软件文档5、软件文档的管理和维护 1)软件开发小组应设一位文档保管员。 2) 开发小组的成员可根据工作需要保存一些个人文档。 3)开发人员个人只保存着主文本中与它工作有关的部分文档。 4)在新文档取代旧文档时,管理人员应及时注销旧文档。 5)项目开发结束时,文档管理人员应收回开发人员的个人文档。 6)在软件开发的过程中,可能发现需要修改已完成的文档。另外软件文档,作为一类配置项,必须纳入配置管理的范围。第11章 软件工程质量 软件质量,是贯穿软件生存期的一个极为重要的问题,是验证软件开发过程中所使用的各种开发技术和方法有效性
17、的最终体现。1、软件质量的定义 软件质量可定义为:“与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体 ”;或“所有描述计算机软件优秀程度的特性的组合 ”。 软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用户提出的质量要求不同而不同。 软件工程质量软件质量反映了以下三方面的问题: (1)软件需求是度量软件质量的基础。不符合需求的软件就不具备质量。 (2)在各种标准中定义了一些开发准则,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。 (3)往往会有一些隐含的需求没有明确地提出来。如果软件只满足那些精确定义了的需求而没有满足这些隐含的
18、需求,软件质量也不能保证。软件工程质量2、软件质量的特性 人们通常用软件质量模型来描述影响软件质量的特性。 软件质量模型定义成分层模型。 在分层的模型中,最基本的叫做基本质量特性,它可以由一些子质量特性定义和度量。 二次特性在必要时又可由它的一些子质量特性定义和度量。 软件工程质量2、软件质量的特性 (1)ISO的软件质量评价模型 按照ISO/TC97/SC7/WG3/1985130/N382,软件质量度量模型由三层组成, 高层(top level) 软件质量需求评价准则(SQRC) 中层(mid level) 软件质量设计评价准则(SQDC) 低层(low level) 软件质量度量评价准则
19、(SQMC) 其中,应对高层和中层建立国际标准,而低层可由各使用单位视实际情况制定。 软件工程质量2、软件质量的特性(2)McCall质量模型 这是McCall等人于1979年提出的软件质量模型。其软件质量概念基于11个特性之上。 其中反映产品运行特性的包括正确性 、可靠性 、效率 、完整性 、可使用性 ; 反映产品修改特性的包括可维护性 、可测试性 、灵活性 ; 反映产品转移特性的包括可移植性 、复用性 、互连性;软件工程质量2、软件质量的特性(3)上海软件中心(SSC)的软件质量度量模型 在SSC模型中,用了与ISO/IEC9126相同的6个质量特性,它们分别是功能性(正确性)、可靠性、易
20、使用性、效率、可维护性和可移植性。同时设置了22个质量子特性,是参照McCall模型定义的。 软件工程质量3、软件质量的度量 软件质量的高低,必须有一定的衡量标准。(1)软件质量度量的条件通常有以下几项: 适应性:必须制定能适应各种用户要求、软件类型和规模的质量标准,并能够度量。 易学性:不需要特殊技术,软件技术人员人人都容易掌握。 可靠性:对同一个软件的评价,尽管评价的人或场合可能不同,但评价结果必须一致。 针对性:不是在检查时才改进质量,而必须从设计阶段起就确立质量目标,在各个阶段实施落实。 客观性:要从各种不同角度加以评价,并将评价结果定量地表示,使得人人都能理解。 经济性:考虑如何才能
21、把质量度量和保证所需要的费用控制在适当的范围内。 软件工程质量3、软件质量的度量 标准分为三级: 质量需求评价准则:是否满足用户的要求 质量设计评价准则:开发者在设计实现时是否按软件需求保证了质量 质量度量准则:定量度量质量而规定的一些检查项目 软件质量度量的方法有三种: 精密度量 全面度量 简易度量软件工程质量4、软件质量的评价(1)评分 检查表:对每一阶段要达到的质量指标详细开列建立度量工作表,在表中,以提问题方式,列出在某一阶段为实现某一质量指标,应达到什么标准。 回答问题需参照各类文档,以及开发过程中积累的各种数据,特别是对出错数据的记录。依据软件实际成果进行评分。软件工程质量4、软件
22、质量的评价(2)分析结果 根据评分的结果,对照评价指标。检查某个质量特性是否达到了要求的质量标准。如果某个质量特性不符合规定的标准,就应当分析这个质量持性,找出为什么达不到标准的原因。 分析原因应该自顶向下进行。按系统级、子系统级、模块级逐步分析。 质量特性的得分低于规定的质量指标有两个可能的原因: 该质量特性与其他质量特性冲突,而那些质量特性是很重要的; 这个软件部分有质量问题。软件工程质量5、软件质量保证 软件质量保证,是指为保证产品和服务充分满足消费量要求的质量而进行的有计划、有组织的活动。 软件的质量保证就是向用户及社会提供满意的高质量的产品。 软件工程质量5、软件质量保证 软件质量保
23、证的主要任务大致可归结为8点: (1)用户要求定义 (2)力争不重复劳动 (3)掌握开发新软件的方法 (4)组织外部力量协作 (5)排除无效劳动 (6)发挥每个开发者的能力 (7)提高软件开发的工程能力 (8)提高计划和管理质量 软件工程质量软件质量保证体系 软件的质量保证活动,是涉及各个部门的部门间的活动。 质量保证体系:为了顺利开展质量保证活动,需要事先明确部门间的质量保证业务,确立部门间的联合与协作的机构。软件工程质量6、软件质量管理体系(1)软件产品质量管理的特点: 软件质量管理应该贯穿软件开发的全过程,而不仅仅是软件本身。 对开发文档的评审是产品检验的重要方式。 通过技术手段保证质量
24、。 软件工程质量6、软件质量管理体系 (2)软件质量管理的指导思想 缺陷预防 紧紧扣住用户需求 采用快速原型法 充分设计之后再编码 牢牢控制对缺陷的修改 充分进行软件的系统测试 恰当掌握软件的放行标准软件工程质量6、软件质量管理体系 (3)软件开发的质量管理体系 要制定质量方针和质量目标,配备足够的人力、物力资源,明确各岗位的质量职责,并保证质量体系的运行。 根据ISO9001标准的要求,建立了程序文件、操作指导书和质量记录,对公司运行的主要过程规定了操作的规范,并在工作中严格执行 。 对开发人员、测试人员和内审员进行各自专业的培训。 软件工程质量6、软件质量管理体系 (3)软件开发的质量管理
25、体系质量管理部门的职责 实行“检、监、控”三分离的职责设置 质量管理部的具体职能是:制定质量管理工作计划;对各部门的质量管理工作提出建议指导;跟踪、内审、分析质量体系的运行;控制软件和开发文档的版本;确认软件产品的测试结果;组织质量体系的改进。软件工程质量6、软件质量管理体系 (3)软件开发的质量管理体系 基于ISO9001标准和CMM原则的开发流程管理文件 基于ISO9001标准,并吸收CMM的原则,公司应制定大量的程序文件和指导书,以及记录这些流程操作的记录表格,为各项操作提供了科学合理的指导,构成了完整严密的质量保证体系。 对软件开发过程的监督 根据ISO9001标准,公司应制定软件开发
26、全过程的一系列流程文件。质量管理部根据这些文件,抽查开发的实际过程是否遵守了流程文件,从而实现对软件开发过程的监督。第12章 软件工程项目管理 软件项目管理常见管理技术及工具简介软件过程成熟度模型利用CMM对软件机构进行成熟度评估项目管理认证体系IPMP和PMP软件工程项目管理 通过软件项目管理,可以保证在给定资源与环境下,有效地组织人力、物力、财力,在预期的时间内,完成预定软件项目。 项目管理的内容包括项目计划管理、质量管理、人员组织管理、文档管理、成本控制和配置管理。由于软件的易变动性,软件配置的管理成为软件项目管理的重点内容。 软件项目管理开始于任何技术活动之前,贯穿于软件的整个生命周期
27、之中。软件工程项目管理 软件项目管理的主要职能包括: (1)制定计划:规定待完成的任务、要求、资源、人力和进度等。 (2)建立组织:为实施计划,保证任务的完成,需要建立分工明确的责任制机构。 (3)配备人员:任用各种层次的技术人员和管理人员。 (4)指导:鼓励和动员软件人员完成所分配的工作。 (5)检验:对照计划或标准,监督和检查实施的情况。常见管理技术及工具简介软件项目管理的主要内容1、项目计划管理 项目计划内容包括: (1)范围:定义该软件项目所要做的工作以及性能限制 (2)资源:包括人员资源、软硬件资源的管理 (3)进度安排 其主要的方法有:工程网络图、cantt图、任务资源表。 (4)
28、成本估算 (5)培训计划:为用户各级人员制定培训计划。常见管理技术及工具简介软件项目管理的主要内容2、软件质量控制 软件质量控制的主要措施有计划、评审、测试和复审。 计划是指在软件定义阶段就要根据项目的要求确定质量保证体系 评审主要是针对软件开发的需求分析、系统设计各阶段完成的文档进行审查验证。 测试系统主要查看系统的实现情况。 复审是确认软件开发各阶段完成里程碑的过程。常见管理技术及工具简介3、人员组织管理 软件开发组织中的技术人员主要有系统分析员,系统高级程序员,程序员,以及辅助人员,如文档录入员,技术秘书等,系统分析员通常也是项目经理。初、中、高级人员比例通常为10:3:1或者10:4:
29、1。 4、文档管理 编制软件文档的目的:详细记录开发过程中的工作进展情况、技术信息,以及软件运行、维护、培训的信息 。软件文档可分为用户文档、技术文档和维护文档三类: (1)提供给用户的文档 (2)开发人员使用文档 (3)维护文档 常见管理技术及工具简介5、软件配置管理 软件开发和维护过程中引起的变更,增加了项目中程序员之间通信与协调的难度。 由于变更在软件开发和运行期间的任何时刻都可以发生,因此软件配置管理应用于软件生存期的全过程,它开始于软件项目启动,结束于软件被丢弃。常见管理技术及工具简介5、软件配置管理 软件配置管理的主要内容包括: (1)配置标识与版本控制 (2)变更控制 (3)软件
30、配置审核 (4)向有关人员报告变更 常见管理技术及工具简介常见工具简介 1、 Microsoft Visual SourceSafe 6.0(VSS) Microsoft Visual SourceSafe 6.0是由微软开发和维护的源代码版本控制软件。Visual SourceSafe 是一种源代码控制系统,它提供了完善的版本和配置管理功能,以及安全保护和跟踪检查功能。 2、 Concurrent Version System (并发版本管理系统) Concurrent Version System(并行版本系统),简称CVS,用于版本管理。它是一个C/S系统,多个开发人员通过一个中心版本控
31、制系统来记录文件版本,从而达到保证文件同步的目的 。常见管理技术及工具简介常见工具简介3、 ClearCase6.0 ClearCase主要应用于复杂的产品发放、分布式团队合作、并行的开发和维护任务,包括支持当今流行软件开发环境Client/Server网络结构。 ClearCase的四个具体功能(1)版本控制(Version Control) (2)工作间管理(Workspace Management)(3)建立管理(Build Management)(4)过程控制(Process Control)软件过程成熟度模型软件过程成熟度模型 CMM(Capability Maturity Mode
32、l)即能力成熟度模型。用于评价软件机构的软件过程能力成熟度的模型。此模型在建立和发展之初,主要目的在于为大型软件项目的招投标活动提供一种全面而客观的评审依据,发展到后来,又同时被应用于许多软件机构内部的过程改进活动中。软件过程成熟度模型软件过程成熟度模型 CMM可以指导软件机构(1)通过确定当前的过程成效度状况、识别对过程改进起关键作用的一些问题来明确过程改进的方向和策略 ;(2)通过有限的一组与过程改进的方向和策略相一致的过程改进活动的集中开展。 软件过程成熟度模型软件过程成熟度模型 CMM提供了一个级别框架,将不同软件机构所拥有的不同软件过程,根据其过程成熟度的不同划分成由低到高的五个级别
33、 CMM所提供的五个级别包括,初始级(又称为“l级”)、可重复级(又称为“2级”)、已定义级(又称为“3级”)、已管理级(又称为“4级”)和优化级(又称为“5级”)。 CMM的每一个成熟度级别中都包含一组过程改进的目标,满足这些目标后,一个机构的软件过程就从当前级别进化到下一个成熟度级别中 ,随着成熟度级别的不断上升,该机构的过程改进活动取得了愈加显著的成效 见图软件过程成熟度模型软件过程成熟度模型 CMM的五个成熟度级别 的划分:(1)初始级(2)可重复级(3)已定义级 (4)已管理级 (5)优化级 在初始级,软件机构的软件过程是没有规律的,有时甚至是混乱的,没有真正确定的软件过程。在项目进
34、行过程中,通常没有依照所规划的程序,时常因时间紧迫而把力量集中在编码和测试上,项目的成功与否完全依赖于软件开发队伍的整体水平,一旦该开发队伍不再负责此项目,各种问题就会接踵而来。 在此级别上稳定的软件过程是很少的,产品性能只能根据相关人员的个人工作能力而不是软件机构的过程能力来预测。软件过程成熟度模型软件过程成熟度模型 CMM的五个成熟度级别 的划分:(1)初始级(2)可重复级(3)已定义级 (4)已管理级 (5)优化级 在可重复级,软件机构建立了基本的项目管理过程(过程模型),包括软件项目管理方针和工作程序,可用于跟踪成本、进度、功能和质量。 对新项目的策划和管理过程是基于以前类似软件项目的
35、实践经验,使得有类似应用经验的软件项目能够再次取得成功。达到2级的个目标是使项目管理过程稳定。 软件过程成熟度模型软件过程成熟度模型 CMM的五个成熟度级别 的划分:(1)初始级(2)可重复级(3)已定义级 (4)已管理级 (5)优化级 在已定义级,软件机构已定义了完整的软件过程(过程模型),并在软件过程工程活动和软件项目工程活动中实现了标准化和文档化。在此软件机构中,有个固定的过程小组(过程工程师、过程管理者和过程执行者)从事软件过程工程活动。 在此软件机构内实施了培训计划,能够保证全体项目负责人和项目开发人员具有完成他们任务所要求的知识和技能。 软件过程成熟度模型软件过程成熟度模型 CMM
36、的五个成熟度级别 的划分:(1)初始级(2)可重复级(3)已定义级 (4)已管理级 (5)优化级 在已管理级,软件机构对软件过程(过程模型和过程实例)和软件产品建立了定量的质量目标,所有项目的重要的过程活动都是可度量的。 该软件机构收集了过程度量和产品度量的方法并加以运用,可以定量地了解和控制软件过程和软件产品,并为评定项目的过程质量和产品质量奠定了基础。软件过程成熟度模型软件过程成熟度模型 CMM的五个成熟度级别的划分:(1)初始级(2)可重复级(3)已定义级 (4)已管理级 (5)优化级 在优化级,软件机构集中精力进行不断的过程改进。此时,该软件机构是一个以防止缺陷出现为目标的机构,它有能
37、力识别软件过程要素的薄弱环节,有充分的手段改进它们。 在该机构中,有关软件过程有效性的统计数据是可以得到的,它可用于对新技术进行成本效率分析,并优化出所能采用的软件工程实践中最佳的新方法。利用CMM对软件机构进行成熟度评估评估过程有以下几步: (1)建立评估组成员应对软件过程、软件技术和应用领域很熟悉,有实践经验、能够提出见解。 (2)评估组准备具体审定评估的问题,决定对每一个问题要求展示哪些材料和工具。 (3)项目准备评估组与被评估机构领导商定选择哪些处在不同开发阶段的项目和典型的标准实施作为评估对象。将评估时间安排通知被评估项目负责人。利用CMM对软件机构进行成熟度评估 (4)进行评估对被
38、评估机构的管理人员和项目负责人说明评估过程。评估组与项目负责人一起就所列出的问题逐一对照审查,保证对问题的回答有一致的解释,从而取得一组初始答案。 (5)初评对每个项目和整个机构做出成熟度等级初评。 (6)讨论初评结果。使用备用资料及工具演示从而决定可能的成熟度等级。可进一步证实某些问题的答案 (7)给出最后的结论由评估组综合问题的答案、后继问题的答案,以及背景证据,做出最终评估结论。项目管理认证体系IPMP与PMP项目管理认证体系IPMP与PMP 目前,在我国项目管理领域有两种认证体系,即IPMP与PMP 。1、国际项目管理专业资质认证(IPMP)简介 IPMP是一种对项目管理人员知识、经验
39、和能力水平的综合评估证明,根据IPMP认证等级划分获得IPMP各级项目管理认证的人员,将分别具有负责大型国际项目、大型复杂项目、一般复杂项目或具有从事项目管理专业工作的能力。项目管理认证体系IPMP与PMP国际项目管理专业资质认证(IPMP) IPMP有四个级别 IPMP A级:认证的高级项目经理; IPMP B级:认证的项目经理; IPMP C级:认证的项目管理专家; IPMP D级:认证的项目管理专业人员。 项目管理认证体系IPMP与PMP2、PMP简介 PMP是美国项目管理协会(PMI)推行的一种认证体系。 PMP认证只有一个级别,对参加PMP认证学员资格的要求与IPMP的C级相当。 P
40、MP在中国的认证,是完全由PMI组织考试,有关PMP的认证程序、培训、考试等均是英语,现在正逐步汉化,采用英汉对照式。 PMP在中国认证的代理点只负责培训与考试的组织工作,至于认证学员是否通过认证考核,是否获得证书以及对证书的发放与管理,必须上报至PMI,由PMI决策。项目管理认证体系IPMP与PMP3、国际项目管理协会(IPMA)简介 国际项目管理协会(IPMA)是一个在瑞士注册的非赢利性组织。它的职能是促进项目管理的国际化。 IPMA创建于1965年,早先的名字是INTERNET,是一个在国际项目领域的项目经理之间交流各自经验的论坛。她于1967年在维也纳主持召开了第一届国际会议。项目管理
41、从那时起即作为一门学科而不断发展。 项目管理认证体系IPMP与PMP4 、中国项目管理研究委员会(PMRC)简介 PMRC正式成立于1991年6月,挂靠在西北工业大学,是我国唯一的、跨行业的、全国性的、非盈利的项目管理专业组织 。 IPMA全权授权PMRC负责中国的IPMP认证,所以认证学员是否通过认证考核,是否获得证书以及对证书的发放与管理,是在IPMA的指导与监督下,由IPMP中国认证委员会负责。 软件过程成熟度模型初始级可重复级已定义级已管理级优化级12345返回第1章 概述软件,已处于信息技术的核心位置,软件产业,已成为信息产业中独立的支柱产业,软件业的发展造就了一个个 “童话”。软件
42、工厂成为了科技时代的浪尖。 自从1968年首次软件工程一词以来,软件工程已成为计算机软件的一个重要分支和研究方向。 第1章 概述 工程将理论和所学的知识应用于实践的科学。 软件工程应用计算机科学、数学及管理科学等原理,开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。 软件工程是一门交叉性学科。软件工程的主要内容软件工程的基本概念软件开发模型软件开发各阶段的任务、技术、方法软件过程软件工具软件工程管理软件质量保证软件工程环境软件经济学软件
43、的概念程序、软件与软件产品独唱-小合唱-合唱-万人大合唱 | | |简单程序 较复杂程序 软件软件定义: 软件=程序+数据+文档程序:按事先设计的功能和性能需求执行的指令序列数据:是程序能正常操纵信息的数据结构文档:与程序开发、维护和使用有关的图文材料 软件的特点 软件是逻辑实体。具有抽象性。软件的形态不可见,必须通过观察、分析、思考、判断来了解其功能、性能和其它特性。 软件是人脑思维的产物,其生产过程与硬件不同开发过程的质量控制及软件产品保护问题。 软件的开发和运行受计算机系统限制软件移植问题。 软件的开发技术落后,手工开发方式仍占统治地位,开发效率低。 软件的特点软件的失效率与硬件不同。失
44、效率时间硬件失效率曲线失效率时间软件失效率曲线 软件的特点软件的复杂性越来越高,对软件人员的要求越来越高,出现了软件复杂性与软件技术发展的不适应现象。软件复杂性差距软件需求与软件技术发展现状软件需求时间软件技术软件技术进步落后于需求增长 软件的特点 软件的特点软件的开发研制成本高,自年代以来,已大大超过硬件成本。计算机系统软、硬件成本比例的变化情况硬件年份软件年年年成本 软件的特点相当多的软件工作涉及社会因素,如机构、体制、管理方式等,包括人的观念及心理,都直接影响软件工作的成败。 软件的分类按功能按规模按工作方式按使用频度按失效影响系统软件支撑软件应用软件按服务对象 软件的分类按功能按规模按
45、工作方式按使用频度按失效影响按服务对象微型软件小型软件大型软件甚大型软件极大型软件 软件的分类按功能按规模按工作方式按使用频度按失效影响按服务对象实时处理软件分时软件交互式软件批处理软件 软件的分类按功能按规模按工作方式按使用频度按失效影响按服务对象产品软件项目软件 软件的分类按功能按规模按工作方式按使用频度按失效影响按服务对象使用频度低使用频度高 软件的分类按功能按规模按工作方式按使用频度按失效影响按服务对象不良影响严重影响软件开发的发展过程程序设计阶段 50至60年代程序系统阶段 60至70年代软件工程阶段 70年代以后计算机应用发展软件数量多规模大软件成本高质量低个体化软件开发方法软件维
46、护困难软件危机软件工程软件危机定义计算机软件的开发和维护过程所遇到的一系列严重问题。 表现对软件开发成本和进度的估算很不准确用户很不满意质量很不可靠没有适当的文档软件成本比重上升供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势 软件危机原因客观:软件本身特点逻辑部件规模庞大主观:不正确的开发方法忽视需求分析错误认为:软件开发=程序编写轻视软件维护软件危机解决途径组织管理工程项目管理方法技术措施软件开发技术与方法软件工具 软件工程 为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术方面研究如何更好地开发和维护计算机软件的学科。定义: 软件工程
47、是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来即软件工程。 软件工程软件工程的基本原理(自“软件工程”提出后,专家和学者们陆续提出了100多条关于软件工程的准则或“信条”,有专家归纳出了确保开发质量和效率的原理的最小集合7条基本原理):1)用分阶段的生命周期严格管理;2)坚持进行阶段评审;3)实行严格的产品控制;4)采用现代程序设计技术;5)结果应能清楚地审查;6)开发小组人员应少而精;7)承认不断改进软件工程实践的必要性。 软件工程三要素软件工程三个要素方法工具过程提供一系列软件
48、开发技术。包括完成开发过程中各方面任务的方法并用某种特殊的语言或图形来描述。 软件工程三要素软件工程三个要素方法工具过程软件工具为软件方法提供了自动的或半自动的支撑环境。将多种工具集成在一起可构成计算机辅助软件工程( CASE )的软件开发支撑系统。 软件工程三要素软件工程三个要素方法工具过程软件过程是将软件工程的方法和工具综合起来,进行软件开发。方法、工具和过程:软件工程方法为软件开发提供了 “如何做” 的技术软件工具为软件工程方法提供了自动的或半自动的软件支撑环境软件工程过程定义了: 方法使用的顺序 要求交付的文档资料 为保证质量和适应变化所需要的管理 软件开发各个阶段完成的里程碑软件工程
49、的三要素软件工程项目的基本目标付出较低的开发成本达到要求的软件功能取得较好的软件性能开发的软件易于移植需要较低的维护费用能按时完成开发工作,及时交付使用软件工程基本原则抽象 采用分层次抽象,自顶向下、逐层细化的办法控制软件开发过程的复杂性。信息隐蔽 将模块设计成“黑箱”,实现的细节隐藏在模块内部,不让模块的使用者直接访问。这就是信息封装,使用与实现分离的原则。模块化 如 C 语言程序中的函数过程,C+ 语言程序中的类。模块化有助于信息隐蔽和抽象,有助于表示复杂的系统。局部化 要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块之间具有松散的耦合,模块内部具有较强的内聚。这有助于控制解的
50、复杂性。确定性 软件开发过程中所有概念的表达应是确定的、无歧义性的、规范的。一致性 整个软件系统的各个模块应使用一致的概念、符号和术语。程序内部接口应保持一致。软件和硬件、操作系统的接口应保持一致。系统规格说明与系统行为应保持一致。用于形式化规格说明的公理系统应保持一致。软件工程基本原则完备性 软件系统不丢失任何重要成分,可以完全实现系统所要求功能的程度。为了保证系统的完备性,在软件开发和运行过程中需要严格的技术评审。可验证性 开发大型的软件系统需要对系统自顶向下、逐层分解。系统分解应遵循系统易于检查、测试、评审的原则,以确保系统的正确性。软件工程基本原则 软件工程过程和软件生命期软件工程过程
51、:软件工程过程是为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。软件工程过程内容软件工程过程特性1)软件规格说明:规定软件的功能及运行限制2)软件开发:产生满足规格说明的软件3)软件确认:对软件能否满足用户要求进行确认4)软件演进:为满足用户的变更要求的演进 软件工程过程和软件生命期软件工程过程:软件工程过程是为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。软件工程过程内容软件工程过程特性1)可理解性; 2)可见性;3)可支持性; 4)可接受性;5)可靠性; 6)健壮性;7)可维护性; 8)速度。 软件工程过程和软件生命期软件生命期(Life cycle
52、): 一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程称为软件生存期或叫生命期。生命期的划分:制定计划需求分析和定义软件设计程序编写软件测试运行/维护定义阶段开发阶段维护阶段 软件生存期模型瀑布模型原型模型螺旋模型喷泉模型构件组装模型统一过程模型第四代技术 瀑布模型计划需求分析设计编码测试运行、维护定义阶段开发阶段维护阶段原型模型原型模型也称快速原型模型.原型模型的基本思想是:软件开发人员在与用户进行需求分析时,以比较小的代价快速建立一个能够反映用户主要需求的原型系统,让用户在计算机上进行操作,在实践过程中提出改进意见,开发人员根据用户的意见,对原型进行补充和完善,然后再由用
53、户试用、评价、提出建议,重复这一过程,直到用户对开发的原型系统满意为止。 原型模型原型开发原型评价最终系统设计用户反馈 原型模型螺旋模型 螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即:制定计划确定软件目标,选定实施方案,弄清项目开发的限制风险分析分析所选方案,考虑如何识别和消除风险实施工程实施软件开发客户评估评价开发工作,提出修正建议螺旋模型螺旋模型特点瀑布模型+快速原型+风险分析迭代过程一个螺旋式周期 确定目标,选择方案,选定完成目标的策略 风险角度分析该策略 启动一个开发阶段 评价前一步的结果,计划下一轮的工作 喷泉模型迭代 重复 演进无间隙 各阶段间无明显界限喷泉模型构件
54、组装模型构件组装模型特点:面向对象基于构件库融合螺旋模型特征支持软件开发的迭代方法 软件重用统一过程模型Rational统一过程(Rational Unified Process,RUP)是由Rational公司开发的一种软件过程,它的开发过程有如下3个主要特点:是一种用例(Usecase)驱动的软件开发过程是以体系结构(Architecture)为中心的过程迭代(Iterative)开发与增量(Incremental)开发相结合的过程第四代技术 “第四代技术”(4GT)包含了一系列的软件工具,其特点是:能使软件工程师在较高级别上说明软件的某些特征,然后利用工具将开发者的说明自动生成源代码,并
55、且软件被说明级别越高,其建造程序的速度就越快。基于4GT的开发过程如下:像其他范型一样,4GT也是从需求收集这一步开始。 制订一个系统的设计策略。 应用4GL的生成功能,自动生成所期望的代码。 进行测试,完成相关文档,并完成其他软件工程范型中同样要求的所有集成活动,得到最终产品。 软件开发方法简述 软件开发方法是指软件开发过程中所应遵循的方法和步骤。局部软件开发方法:针对某些活动的开发方法全局软件开发方法:覆盖开发全过程的方法考虑如下的几个因素:(1)对该软件开发方法是否已具有经验,或有已受过训练的人员;(2)为软件开发提供的软件硬件资源及可使用的工具的情况;(3)该开发方法在计划、组织和管理
56、方面的可行性;(4)对开发项目所涉及领域的知识的掌握情况。软件开发方法简述1 、 结构化方法 结构化方法也称为面向功能的软件开发方法或Yourdon方法,是由E.Yourdon和L.Constantine提出的. 结构化分析方法SA:对软件进行需求分析 结构化设计方法SD:进行总体设计和详细设计 结构化编程SP 特点:按照功能分解的原则,自顶向下、逐步求精,直到实现软件功能为止。 该方法简单、实用。软件开发方法简述1 、 结构化方法主要问题:(1)它以功能分解为基础,而用户的功能是经常改变的,必然导致系统的框架结构不稳定。 (2)从数据流程图到软件结构图之间的过渡有明显的断层,导致设计回溯到需
57、求有困难。 软件开发方法简述2 、面向数据结构的开发方法面向数据结构的软件开发方法有两种:Warnier方法:由JDWarnier提出的结构化数据系统开发方法(DSSD);Jackson方法:由M.A.Jackson提出的Jackson系统开发方法(JSD)。面向数据结构的软件开发方法基本思想是:从目标系统的输入输出数据结构入手,导出程序的基本框架结构,在此基础上,对细节进行设计,得到完整的程序结构图。软件开发方法简述3 、面向对象的方法面向对象方法的优点:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。 (2)以数据为中心,而不是基于对功能的分解, 使得软件结构相对稳
58、定,软件的重用性、可靠性、可维护等特性都较好。 软件开发方法简述3 、面向对象的方法影响较大的面向对象方法有:(1)Booch方法:该方法的分析能力较弱,是一种偏重设计的方法。(2)OMT方法:通过建立对象模型、动态模型、功能模型,来实现对整个系统分析和设计工作。(3)OOSE方法:最大特点是用用例(UseCase)与外部角色的交互来表示系统功能,用例贯穿于整个开发过程。(4)CoadYourdon的面向对象分析和设计方法:即OOA和OOD方法,它是最早的面向对象的分析和设计方法之一。 (5)UML:统一建模语言,国际对象管理组织OMG已批准将UML1.1作为面向对象技术的标准建模语言。软件开
59、发方法简述4 、可视化开发方法 可视化开发方法是随着图形用户界面的兴起而发展起来的,是通过事件驱动实现应用软件的工作。可视化开发方法的优点:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。(2)软件开发简单,易学、易上手。(3)专业或非专业人员都能参与软件开发活动。软件工程的最新发展动向 软件形式语言的研究构件技术质量管理第二章 软件计划可行性研究系统流程图软件计划成本/效益分析可行性研究一、目的 可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。 可行性研究的目的不是解决问题,而是确定问题 是否值得解决。怎样达到这个目的呢?当
60、然不能靠主 观猜想而只能靠客观分析,必须分析几种主要的可能 解法的利弊,从而判定原定的系统目标和规模是否现 实。系统完成后所能带来的效益是否大到值得投资开 发这个系统的程度。因此,可行性研究实质上是要进 行一次大大压缩简化了的系统分析和设计的过程。也 就是在较高层次上以较抽象的方式进行系统分析和设 计的过程。可行性研究二、可行性研究集中在如下四个最为敏感的方面: 1.经济可行性 这个系统的经济效益能超过它的开发成本吗? 2.技术可行性 使用现有的技术能实现这个系统吗?分析技术冒险的各种因素,例如有关的技术是否已进步到足以支持该系统?能否有胜任开发该系统的熟练技术人员?为开发项目的所有硬、软件资
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025个人虾池承包养殖资源整合与开发合同3篇
- 二零二五版智能农业监测系统采购合同提升农业效率4篇
- 二零二五学校与家长联合实施家校共育行动计划3篇
- 2025年度北京商品房买卖合同(含智能家居系统升级承诺)3篇
- 2025年个人间信息保密与责任承担协议书3篇
- 二零二五年度城市综合体运营顾问服务协议3篇
- 二零二五年度卵石市场调研与销售预测合作协议3篇
- 2024版股权自由转让协议快速执行权利义务
- 2024私家车紧急公务借用服务协议范本3篇
- 二零二五年度企业市场拓展策略企业咨询服务管理全案合同
- 2024版个人私有房屋购买合同
- 2024爆炸物运输安全保障协议版B版
- 2025年度军人军事秘密保护保密协议与信息安全风险评估合同3篇
- 《食品与食品》课件
- 读书分享会《白夜行》
- 光伏工程施工组织设计
- DB4101-T 121-2024 类家庭社会工作服务规范
- 化学纤维的鉴别与测试方法考核试卷
- 2024-2025学年全国中学生天文知识竞赛考试题库(含答案)
- 作品著作权独家授权协议(部分授权)
- 取水泵站施工组织设计
评论
0/150
提交评论