9第9章工程管理与质量保证电子教案_ppt.txt

大学软件工程——原理、方法与应用-肖孟强 曲秀清-大学教学资料课件PPT

收藏

资源目录
跳过导航链接。
大学软件工程——原理、方法与应用-肖孟强曲秀清-大学教学资料课件PPT.zip
软件工程——原理、方法与应用-肖孟强 曲秀清-大学教学资料
软件工程——原理、方法与应用-肖孟强 曲秀清-大学教学资料
(课件资料)《软件工程——原理、方法与应用》-肖孟强 曲秀清-电子教案
《软件工程——原理、方法与应用》-肖孟强 曲秀清-电子教案-3250
压缩包内文档预览:
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:21835864    类型:共享资源    大小:1.12MB    格式:ZIP    上传时间:2019-09-06 上传人:QQ24****1780 IP属地:浙江
25
积分
关 键 词:
大学软件工程——原理、方法与应用-肖孟强 曲秀清-大学教学资料课件PPT 大学 软件工程 原理 方法 法子 应用 利用 运用 孟强 曲秀清 教学 资料 课件 ppt
资源描述:
大学软件工程——原理、方法与应用-肖孟强 曲秀清-大学教学资料课件PPT,大学软件工程——原理、方法与应用-肖孟强,曲秀清-大学教学资料课件PPT,大学,软件工程,原理,方法,法子,应用,利用,运用,孟强,曲秀清,教学,资料,课件,ppt
内容简介:
第10章 软件工程标准化 学习目标掌握软件工程标准的定义与层次 了解ISO 9000 系列标准及在质量认证中的实施掌握软件文档的概念、作用与分类 了解CMM模型的等级划分与评价标准 第10章 软件工程标准化 教学内容 10.1 软件工程标准化 10.2 软件质量认证 10.3 软件文档 10.4 CMM模型 本章小结 返回总目录10.1 软件工程标准化主要教学内容: 10.1.1 软件工程标准化的概念 10.1.2 软件工程标准化的意义 返回目录10.1 软件工程标准化 10.1.1 软件工程标准化的概念 软件工程标准的类型也是多方面的,例产品标准,包括需求、设计、部件、描述、报告等;过程标准,包括方法、技术、检验、质量等;记法标准,包括表示法、语言等; GB/T 15538-1995软件工程标准分类:过程标准 产品标准专业标准 记号 返回目录10.1 软件工程标准化10.1.2 软件工程标准化的意义减少开发人员间联系的差错和误解,提高软件的生产效率,缩短软件开发周期。有利于软件管理,降低开发和运行成本提高软件产品的质量(可靠性、可维护性和可移植性) 返回目录10.2 软件质量认证主要教学内容: 10.2.1 ISO 9000系列标准 10.2.2 软件质量认证 10.2.3 ISO 9000-3的要点 返回目录10.2 软件质量认证 质量认证,检验整个企业的质量水平,注重软件企业的整体资治,全面考察企业的质量体系,检验它是否具有设计、开发和生产符合质量要求的软件产品的能力。10.2.1 ISO 9000系列标准 ISO 9000系列标准包括:ISO 9000质量管理与质量保证标准ISO 9001质量体系ISO 9002质量体系ISO 9003质量体系ISO 9004质量管理与质量体系要素返回目录10.2 软件质量认证10.2.2 软件质量认证 质量认证标准,从1987年国际标准化组织公布的ISO 9000系列质量管理标准开始得到确立,软件行业的质量认证也得到广泛关注。(1)为保证产品质量,ISO 9000要求在生产过程中,对影响产品质量的所有因素要全面控制与管理。(2)ISO 9000标准要求实现(3)质量管理必须坚持进行质量改进,贯彻执行ISO9000标准,就是企业加强质量管理,提高产品质量的过程。10.2 软件质量认证10.2.3 ISO 9000-3的要点(1)ISO 9000-3标准仅适用于依照合同进行的单独的订货开发软件,不适用于面向多数用户销售的程序软件包。(2)在包括合同在内的全部工序中进行审查,并要求一切文档化。(3)ISO 9000-3对合同双方的责任均做出了明确规定,需方应收集使用部门意见,归纳形成需方需求,详细传达给供方,明确所要求的技术条件,才可能对供方提出实施质量保证的要求。10.2 软件质量认证(4)将质量制作入产品之中是ISO 9000-3最重要的质量保证体系。(5)供方应建立与实施全面质量审核制度 主要有以下内容:为进行质量保障活动整顿其组织机构,设置质量保证管理负责人,建立程序与工序等明确的质量体系,编制质量手册。在企业内部建立可以监督质量体系的机制。10.2 软件质量认证每一个软件的开发活动,均应编制“质量计划”,以实施基于质量体系的质量保证活动,并形成相应的文件。ISO 9000-3要求在领导层的指导下,以保持业务的一贯性为目的而开展质量保证活动。ISO 9000-3规定了用以建立质量保证体系的“应做事件”的框架,并未规定实施程序、文件格式等的具体内容。 因此,在软件工程项目中执行ISO 9000-3标准时,必须引用其他的有关标准才能展开质量保证活动。返回目录10.3 软件文档主要教学内容: 10.3.1 软件文档的作用 10.3.2 软件文档的分类 10.3.3 文档的管理与维护 10.3.4 常用的软件文档 返回目录10.3 软件文档 文档是指某种数据媒体和其中所记录的数据。 10.3.1 软件文档的作用(1)软件文档是开发管理工作的依据(2)提高联系和开发效率(3)也是开发人员一定阶段的工作成果和结束标志。(4)便于以后软件的开发、使用和维护。(5)提供软件的运行、维护和培训的有关信息,是管理人员、开发人员、操作人员、用户之间协作、交流的语言。(6)能从分展示软件的功能、性能等各项指标,为用户选购符合自己需要的软件提供参照。返回目录10.3 软件文档 10.3.2 软件文档的分类 软件文档从内容表现形式上可分为两类,一类是图表文档,另一类是应编制的技术文档,称之为文档或文件。 按照文档的产生与使用范围,软件文档可分为三类:(1)技术文档 这类文档是软件开发人员在开发过程中的工作应遵循的规范和指南,也是开发人员工作成果的体现,像软件需求分析详细说明书、概要设计报告、详细设计报告、数据要求说明书、项目开发计划等。10.3 软件文档 (2)管理文档 这类文档由软件开发人员和管理人员共同制定的工作计划或工作报告的组成,管理人员能够依据这些文档了解、掌握软件开发项目的安排、进度、资源使用等情况。管理文档包括项目开发计划、测试计划与报告、开发进度安排报告及项目开发总结报告等。(3)用户文档 由开发人员制定、编写,提供用户的有关该软件使用、操作、维护等方面的资料,包括用户使用手册、操作手册、维护指南等。返回目录10.3 软件文档 10.3.3 文档的管理与维护(1)设立文档保管员,全面负责保管文档。(2)根据工作需要,开发人员可以保存一些个人文档和主文档中与它工作有关的部分文档,在内容上应注意与主文档保持一致,在要作内容修改时,也应先修改主文档。(3)在文档内容变更时,管理人员应及时修改主文档,保持主文档的内容为最新。新文档替代旧文档时,一般应及时销毁旧文档。10.3 软件文档(4)项目开发结束后时,文档管理人员应及时收回开发人员的个人文档。并检查个人文档与主文档在内容上是否一致,发现差别,应立即通知解决。(5)在软件开发的过程中,有时由于特殊原因,需要修改已完成的文档,此时,应充分考虑可能对系统开发带来的影响,要经过仔细论证,按照提议、评议、审核、批准、实施的步骤严格执行,避免产生严重后果。返回目录10.3 软件文档10.3.4 常用的软件文档 软件产品从形成概念开始,经过开发、使用和不断增补修订,直到最后被淘汰的整个过程应提交的文档归于以下十三种:可行性研究报告 项目开发计划 软件需求规格说明数据要求规格说明概要设计规格说明 10.3 软件文档详细设计规格说明用户手册 操作手册 测试计划 测试分析报告 开发进度月报 项目开发总结报告 维护修改建议 10.3 软件文档 上述13个文档,最终要向软件工程管理部或用户回答下列问题:要满足哪些需求?所开发的软件在什么环境中实现?所需信息从那里来?开发工作的时间如何安排?开发或维护工作有谁来做?需求如何实现?为什么要进行这些软件开发或维护工作?返回目录10.4 CMM模型 软件过程成熟度用于描述软件过程被明确和有效地定义、管理、测量和控制的程度。主要教学内容: 10.4.1 软件过程成熟度模型 10.4.2 关键过程域 10.4.3 成熟度提问单 返回目录10.4 CMM模型10.4.1 软件过程成熟度模型软件过程能力成熟度模型CMM(Capability Maturity Model),是在1987年,由美国卡内基-梅隆大学软件工程研究院(SEI)根据联邦政府的要求,研究提出的模型,用于评估软件供应商的能力。1991年正式公布了CMM 1.0版,1993年推出CMM 1.1,现已成为具有广泛影响的模型。 CMM模型把成熟度等级分为五级,共包括18个关键过程域,52个过程目标,3168种关键实践。10.4 CMM模型以下给出5个等级的软件企业过程成熟度的特征:(1)初始级(Initial)软件过程是无序的,规划落实得不到保障。管理无章,对过程几乎没有定义,缺乏健全的管理制度开发项目成效不稳定,成功取决于个人努力,产品的性能和质量依赖于个人的能力。(2)可重复级(Repeatable) 管理制度化,建立了基本的项目管理过程来管理费用、进度等。 初步实现标准化,制定了必要的过程规划和章程 能重复早先类似项目取得的成功10.4 CMM模型(3)已定义级(Defined)软件管理和工程两个方面,均实现标准化和文档化。建立了完善的评审和培训制度。技术活动和管理活动得到稳定实施。项目的质量、进度和费用均可控制。使用经过批准和论证的标准软件过程来开发和维护软件。(4)已管理级(Managed)对软件过程和产品有定量的理解和控制软件过程中活动的质量可度量已实现项目产品和过程的控制可预测过程和产品质量趋势10.4 CMM模型(5)优化级(Optimizing)可采用新思想、新技术使过程不断改进对过程可量化,并可据此进行分析,提出改进过程的有效方法 上述5个等级是测量软件机构的成熟度和评价其过程能力的有效尺度,每一个成熟度等级均为软件机构过程的改进与提高提供了一个基础。返回目录10.4 CMM模型10.4.2 关键过程域 过程域是指互相关联的若干软件实践活动和有关基础设施的一个集合。除初始级外,其他4级均有若干指示软件机构改进软件过程的要点,称为关键过程域(Key Process Area,KPA),为了确保不同等级的软件过程能力成熟度达到各自的目标,成功地完成这些对实现该等级的目标起关键性作用的过程域十分重要,对实施关键过程域起关键作用的措施、活动、规程等,又称为关键实践(Key Practice),关键过程域的目标就是通过关键实践的实施来达到。返回目录10.4 CMM模型10.4.3 成熟度提问单 提问单涉及到软件企业的组织结构资源、人员及培训技术、文档管理标准化、工作过程数据管理和数据分析过程控制等方面,由于涉及5个等级的提问单内容较多,以下仅给出各个等级的部分提问单的问题。(1)二级的问题(2)三级的问题(3)四级的问题(4)五级的问题返回目录本 章 小 结软件工程标准化这一章主要从软件开发过程、阶段评审和验收测试、运行与维护的一系列软件工程阶段,论述了软件工程标准化的意义给出了软件工程标准的分类和层次。介绍了ISO 9000 系列标准及软件质量认证,ISO 9000 系列标准的内容及制定,实施ISO 9000 系列标准的方法与策略。本 章 小 结讨论了软件文档在软件开发过程中的作用和分类。给出了文档编制的质量要求与文档的管理与维护要求。引入了软件过程成熟度模型CMM(capability maturity model)。介绍了各阶段的定义。给出了软件过程成熟度的分级与各个级别的部分成熟度提问单的问题。返回目录第11章 软件工程环境学习目标掌握软件工程环境的概念及分类了解软件工程环境的构成及特性 掌握软件开发工具的概念及分类 了解CASE环境的组成与结构第11章 软件工程环境 教学内容 11.1 什么是软件工程环境 11.2 CASE环境 本章小结 返回总目录11.1 什么是软件工程环境 主要教学内容: 11.1.1 软件开发环境的特点 11.1.2 软件开发环境的模型 返回目录11.1 什么是软件工程环境 软件工程环境就是指支持软件产品开发、维护和管理的软件系统,它在统一的集成机制下由一系列软件工具组成。这里主要讨论软件开发环境。11.1.1 软件开发环境的特点 1集成化的软件工具 工具的集成化主要包括数据集成、界面集成、控制集成和过程、平台等其他方面的集成。(1)数据集成 所有的工具统一建立在公共的文件库或信息库之上。11.1 什么是软件工程环境 (2)界面集成 各个工具使用统一的用户界面,采用公共的交互方式。(3)控制集成 能支持开发环境中的一个工具控制另一个工具,或调用某个工具的特定服务。(4)过程集成(5)平台集成 指工具运行在相同的硬件和操作系统下。11.1 什么是软件工程环境2友善和统一的用户界面 现代的开发环境常采用以下的技术来改善用户接口的友善性: (1)具有拉出(Pull-Out)功能的多级菜单 (2)屏幕提示和在线帮助(On-Line HELP)技术 (3)采用多窗口(Multi-Windows)技术 (4)采用向导(Wizard)技术 菜单、多窗口、向导和帮助信息,是用户界面的重要内容,被称为四大友善技术。不仅适用于软件开发环境,在开发应用软件是也多采用这种技术。另外,开发环境还十分重视用户界面的一致性(Unification)返回目录11.1 什么是软件工程环境11.1.2 软件开发环境的模型 R.N.Charette在软件工程环境:概念与技术一书中,将软件开发环境抽象为一个模型,并给出了开发环境的定义:生产一个软件系统所需要的过程(Process)、方法(Methods)与自动化(Automation)。把开发环境模型分为由底向上的3个层次,过程、方法和自动化,并将“理想”的软件开发环境描述为“过程由充分自动化了的方法所支持的完整的过程模型(Process Model)”。11.2 CASE环境主要教学内容: 11.2.1 CASE环境 11.2.2 CASE环境的组成与结构 返回目录11.2 CASE环境11.2.1 CASE环境 早在1978年出现了用CASE一词来描述软件环境。1986年9月24日,美国华尔街日报首次将CASE一词作为技术名词来使用,之后其作为软件环境的称呼便迅速流行起来,现已成为现代化软件开发环境的总称。CASE环境、CASE工具及集成CASE(Integrated CASE,简称I-CASE)等,几乎都成了软件工程环境的代名词。 11.2 CASE环境 CASE环境的总目的,是通过一组集成化的工具,建立软件开发平台,使软件开发人员实现各项开发活动的全部自动化,保证软件产品在整个生存周期内的质量,借以提高软件开发和维护的质量和生产率。 除了CASE外,对软件工程环境的称呼有多种,如:软件支持环境(SDE,Software Support Environment)程序设计支持环境(PSE,Programming Support Environment)软件开发环境(SSE,Software Development Environment)集成化项目支持(IPSE,Integrated Project Environment)返回目录11.2 CASE环境11.2.2 CASE环境的组成与结构 CASE环境是一个总称,它也代表了集成化项目支持(IPSE)和集成CASE(I-CASE)环境。以下主要介绍CASE环境的组成和结构两个方面的内容。1CASE环境的组成Pressman把CASE环境的组成归纳为6个部分,3个层次,如图11-1所示 11.2 CASE环境图11-1 CASE环境的组成11.2 CASE环境 由硬件平台和操作系统(包括网络和数据库管理系统)组成的体系结构,是CASE环境的基础(地层)。 集成化框架(Integration Framework)由一组专门程序组成,用于建立单个工具之间的通信,建立环境信息库,以及向软件开发者提供一致的界面,它们与CASE工具集成在一起,构成环境的顶层。 余下的一层是服务于“可移植性”的机构。它介于集成化工具与环境基础软、硬件之间,使集成后的工具无需作重大的修改即可与环境的软、硬件平台相适应。11.2 CASE环境(1)CASE工具 CASE工具是指“用于辅助软件开发、运行、维护、管理和支持等过程中的活动的软件”。 CASE按软件过程的活动来分类,归纳为以下三类:支持软件开发过程的工具,包括需求分析工具、软件设计工具、编码工具、测试工具和纠错工具等。支持软件维护的工具,包括版本控制工具、文档分析工具、开发信息库工具、逆向工程工具和再工程工具等。支持软件管理过程和支持过程的工具,主要包括项目管理工具、配置管理工具和软件评价工具等。11.2 CASE环境(2)CASE环境信息仓库 环境信息仓库具有类似数据库管理系统的功能,Forte在1989年给出了其功能定义,主要有以下几个方面:数据完整性信息共享数据-工具集成数据-数据集成文档资料标准化 11.2 CASE环境2CASE 环境结构 在集成CASE环境中,各构件有机地结合在一起,构成层次式的环境体系结构。 Sharon和Bell在1995年提出的CASE集成框架的层次结构模型(如图11-2所示),具有一定的代表性。它把组成CASE环境的构件分成4个层次,从上到下分别是:用户界面层、工具层、对象管理层和共享中心库层。11.2 CASE环境图11-2 CASE集成框架的层次结构模型 11.2 CASE环境 最上层是用户界面层,它包括标准的界面工具箱和公共的表示协议。界面工具箱包含人机界面管理软件和显示对象库,提供了必要的界面元素和工具,能使集成环境的用户界面显示风格一致。表示协议提供一组界面约定,包括一致的屏幕布局约定、菜单名和组织、图符、对象名、键盘和鼠标的使用等。 工具层除了CASE工具本身外还包括一组工具管理服务。工具管理服务(TMS)负责管理工具的执行中多任务操作,包括同步和通信、协调从中心库和对象管理系统到工具的信息流,以及收集关于工具使用的度量等。 11.2 CASE环境 对象管理层(OML)完成集成服务和配置管理功能。在框架体系结构这层的软件提供了CASE工具集成的机制,每个软件工具被“插入”到对象管理层,并通过一组将工具和中心库藕合在一起。OML的配置管理服务用于标识配置对象,完成版本控制,并提供对变化控制、审计以及状态说明和报告的支持。最底层是共享中心库层,它使得对象管理层能够与CASE数据库交互并完成对CASE数据库的访问控制。返回目录本 章 小 结环境在现代软件开发中占有重要地位。软件开发活动中各阶段有各种支持工具,这些工具是环境的最重要组成部分。软件开发环境经过不断的发展形成了完全集成化的CASE工具集。CASE环境的总目的,是通过一组集成化的工具,建立软件开发平台,使软件开发人员实现各项开发活动的全部自动化,保证软件产品在整个生存周期内的质量,借以提高软件开发和维护的质量和生产率。本 章 小 结由硬件平台和操作系统组成的体系结构,是CASE环境的基础(地层)。集成化框架由一组专门程序组成,用于建立单个工具之间的通信,建立环境信息库,以及向软件开发者提供一致的界面,它们与CASE工具集成在一起,构成环境的顶层。余下的一层是服务于“可移植性”的机构。它介于集成化工具与环境基础软、硬件之间,使集成后的工具无需作重大的修改即可与环境的软、硬件平台相适应。本 章 小 结CASE工具泛指用于辅助软件开发、运行、维护、管理和支持等过程中的活动的软件。CASE工具按软件过程的活动可归纳为以下三类:支持软件开发过程的工具、支持软件维护的工具和支持软件管理过程和支持过程的工具 。CASE环境信息仓库的应有的功能包括:数据完整性、信息共享、数据-工具集成、数据-数据集成和文档资料标准化 。CASE环境的构件分成4个层次,从上到下分别是:用户界面层、工具层、对象管理层和共享中心库层。 返回目录第12章 嵌入式系统软件技术 学习目标了解嵌入式系统的基本知识与应用掌握嵌入式系统的基本开发过程了解嵌入式系统的测试与调试方法第12章 嵌入式系统软件技术 教学内容 12.1 嵌入式系统的基础知识 12.2 嵌入式系统开发过程 12.3 嵌入式软件的测试 12.4 嵌入式系统的调试 本章小结 返回总目录12.1 嵌入式系统的基础知识主要教学内容: 12.1.1 嵌入式系统的定义 12.1.2 嵌入式系统的特点 12.1.3 嵌入式系统的应用 返回目录12.1 嵌入式系统的基础知识返回目录12.1.1 嵌入式系统的定义 一般的定义为:嵌入式系统以应用为中心,以计算机技术为基础,软硬件可裁剪,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。 嵌入式系统通常由几大部分组成:嵌入式处理器外围设备嵌入式操作系统应用软件 12.1 嵌入式系统的基础知识12.1.2 嵌入式系统的特点 (1)是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。 (2)通常是面向特定应用的,一般都有实时要求。 (3)与具体应用相结合,它的升级换代与具体产品同步进行。 (4)硬件和软件设计要求高效率,在保证稳定、安全、可靠的基础上裁剪,去除冗余,力争实现更高的性能,最大限度地降低应用成本。 (5)常常要求减小功耗。一方面是为了省电,另一方面是要减少发热量。12.1 嵌入式系统的基础知识(6)特别重要的是可靠性与稳定性,所以即使逻辑上的系统结构相同,在物理组成上也会有所不同。 (7)所提供的功能以及面对的应用和过程都是预知的、相对固定的,不像通用计算机有很大的随意性。在可编程方面对灵活性要求不高。 (8)大多数嵌入式系统有实时要求,对外部事件要迅速做出反应。(9)嵌入式系统本身不具备自举开发能力。(10)嵌入式系统开发人员却往往是各个应用领域中的专家,这就要求嵌入式系统所支持的开发工具易学、易用、可靠、高效。返回目录12.1 嵌入式系统的基础知识 12.1.3 嵌入式系统的应用 嵌入式系统主要用于各种信号处理与控制,用于企业、军队、办公室、实验室及个人家庭等各种场所。已在国防、国民经济及社会生活各领域普及应用。目前,嵌入式系统应用比较热门的有以下几种:1IP电话 IP电话把电话网和Internet结合成一个功能强大的通信网络,它在IP网络上实时传输被压缩的语音信息。 12.1 嵌入式系统的基础知识2机顶盒STB(Set Top Box) 它是和电视机结合使用的一个盒子,能提供通过电视机直接上网的功能。它简单易用,是专门为那些不是很了解电脑的人设计的。 3个人数字助理PDA 目前市面上已经出现基于Linux的PDA,它具有网络、多媒体等强大的功能。 PDA手机成为新的热点。 嵌入式系统的应用越来越广泛,在信息家电中的应用,是对嵌入式系统概念和应用范围的一个变革 。 返回目录12.2 嵌入式系统开发过程 主要教学内容: 12.2.1 嵌入式软件的开发特点 12.2.2 嵌入式软件的开发过程 返回目录12.2 嵌入式系统开发过程12.2.1 嵌入式软件的开发特点1需要特定的开发环境 使用交叉开发环境。交叉开发环境是指实现编译、链接和调试应用程序代码的环境。2任务是基本的执行单元 嵌入式应用系统引入任务设计方法,以任务作为基本的执行单元。嵌入式系统的设计通常采用DARTS(Design and Analysis of Real-Time System)设计方法进行任务的设计。DARTS给出了系统任务划分的方法和定义任务间接口的机制。12.2 嵌入式系统开发过程3程序需要固化 应用软件在目标环境下必须存储在非易失性存储器中,保证用户用完关机后确保下次的使用。所以应用软件在开发完成以后,应生成固化版本,烧写在目标环境Flash中运行。4软件开发难度大 嵌入式应用软件对稳定性、可靠性、抗干扰性等性能的要求都比通用软件的要求更为严格和苛刻。因此,嵌入式软件开发的难度加大。返回目录12.2 嵌入式系统开发过程12.2.2 嵌入式软件的开发过程 整个开发过程可分为需求分析阶段、设计阶段、生成代码阶段和固化阶段。1需求分析阶段主要包括以下3个方面: (1)对问题的识别和分析(2)制订规格说明文档 (3)需求评审 12.2 嵌入式系统开发过程2设计阶段 设计阶段包括系统设计、任务设计和任务的详细设计。系统设计阶段将系统划分为多个并发执行的任务,各个任务允许并发执行,通过相互间通信建立联系。在嵌入式软件开发中引入DARTS的设计方法。 DARTS设计方法的设计步骤主要有以下几步:(1)数据流分析(2)划分任务(3)定义任务间的接口12.2 嵌入式系统开发过程 有了划分好的任务及已定义好的任务间的接口后,就可以开始任务的详细设计。详细设计的主要工作是确定每个任务的结构。画出每个任务的数据流图,使用结构化设计方法,从数据流图导出任务的模块结构图,并定义各模块的接口。之后,进行每个模块的详细设计,给出每个模块的程序流程图。 12.2 嵌入式系统开发过程3生成代码阶段(1)代码编程(2)交叉编译和链接(3)交叉调试(4)测试4固化阶段 嵌入式软件大多要在目标环境的非易失性的存储器(如Flash)中运行。程序需要写到Flash中固化。 返回目录12.3 嵌入式软件的测试 主要教学内容: 12.3.1 嵌入式软件的测试方法 12.3.2 嵌入式软件的测试策略 12.3.3 嵌入式软件的测试工具 返回目录12.3 嵌入式软件的测试12.3.1 嵌入式软件的测试方法 嵌入式软件测试在4个阶段上进行,即单元测试、集成测试、系统测试、硬件/软件集成测试。硬件/软件集成测试阶段是嵌入式软件所特有的,目的是验证嵌入式软件与其所控制的硬件设备能否正确地交互。1白盒测试与黑盒测试 白盒测试在开发环境中通过硬件仿真进行,选取的测试工具应该支持在宿主机环境中的测试。黑盒测试时,要把系统的预期用途作为重要依据,根据需求中对负载、定时、性能的要求,判断软件是否满足这些需求规格。还要检验软硬件之间的接口,检查软件失效过程。12.3 嵌入式软件的测试2目标机环境测试和宿主机环境测试 在嵌入式软件测试中,常常要在基于目标机的测试和基于宿主机的测试之间做出折衷。基于目标机的测试消耗较多的经费和时间,而基于宿主机的测试代价较小,但毕竟是在模拟环境中进行的。目前的趋势是把更多的测试转移到宿主机环境中进行,但是目标环境的复杂性和独特性不可能完全模拟。 在两个环境中可能出现不同的软件缺陷,所以对目标机环境和宿主机环境的测试内容要有所选择。 返回目录12.3.2 嵌入式软件的测试策略 12.3.2 嵌入式软件的测试策略 嵌入式软件测试或叫交叉测试(cross-test),在测试的各个阶段有着通用的策略:(1)使用测试工具的插装功能(主机环境)执行静态测试分析,并且为动态覆盖测试准备插装好的软件代码。(2)使用源码在主机环境执行功能测试,修正软件的错误和测试脚本中的错误。(3)使用插装后的软件代码执行覆盖率测试,添加测试用例或修正软件的错误,保证达到所要求的覆盖率目标。(4)在目标环境下重复(2),确认软件在目标环境中执行测试的正确性。(5)若测试需要达到极端的完整性,最好在目标系统上重复(3),确定软件的覆盖率没有改变。返回目录12.3.2 嵌入式软件的测试策略 1单元测试 所有单元级测试都可以在宿主机环境上进行,除非少数情况,特别具体指定了单元测试直接在目标机环境进行。当在宿主机平台完成测试时,就可以在目标机环境上重复做一次简单的确认测试。在目标环境上进行确认测试可能发现一些未知的、未预料到的、未说明的主机与目标机的不同结果。 12.3.2 嵌入式软件的测试策略2集成测试 软件集成可在宿主机环境上完成,在宿主机平台上模拟目标环境运行。当然在目标环境上重复测试也是必须的,在此级别上的确认测试将确定一些环境上的问题,比如内存定位和分配上的一些错误。 在宿主机环境上进行的集成测试,依赖于目标系统的具体功能数目。有些嵌入式系统与目标机环境耦合的非常紧密,若在宿主机环境上做集成是不切实际的。 12.3.2 嵌入式软件的测试策略3系统测试和确认测试 所有的系统测试和确认测试必须在目标环境下执行。当然在主机上开发和执行系统测试,然后移植到目标环境重复执行是很方便的。 确认测试最终的实施舞台必须在目标环境中,系统的确认必须在真实系统之下测试,而不能在主机环境下模拟。这关系到嵌入式软件的最终使用。使用有效的cross-test测试策略可极大地提高嵌入式软件开发测试的水平和效率,提高嵌入式软件的质量。返回目录12.3.3 嵌入式软件的测试工具 12.3.3 嵌入式软件的测试工具 几类比较有用的有关嵌入式软件的测试工具:1、内存分析工具 用来处理在动态内存分配中存在的缺陷。当动态内存被错误地分配后,通常难以再现,可能导致的失效难以追踪。使用内存分析工具可以避免这类缺陷进入功能测试阶段。2、性能分析工具 性能分析工具会提供有关的数据,根据这些数据,确定哪些例程消耗部分执行时间,从而可以决定如何优化软件,获得更好的时间性能。返回目录12.3.3 嵌入式软件的测试工具3、GUI测试工具 GUI测试工具可以作为脚本工具在开发环境中运行测试用例,其功能包括对操作的记录和回放、抓取屏幕显示供以后分析和比较、设置和管理测试过程。4、覆盖分析工具 在白盒测试时,可以使用代码覆盖分析工具追踪哪些代码被执行过。分析过程可以通过插装来完成,插装可以是在测试环境中嵌入硬件,也可以是在可执行代码中加入软件,也可以是二者相结合。 以上测试工具,都可以通过各自的方式在宿主机和目标机上移植,从而使嵌入式软件的测试能更方便地进行。返回目录12.4 嵌入式系统的调试 主要教学内容: 12.4.1 嵌入式系统的调试方式 12.4.2 嵌入式系统的调试方法 返回目录12.4 嵌入式系统的调试12.4.1 嵌入式系统的调试方式1、源程序模拟器方式 源程序模拟器(Simulator)是在PC机上,通过软件手段模拟执行某种嵌入式处理器编写的源程序的测试工具。2、监控器方式 进行监控器(Monitor)调试需要目标机与宿主机协调。首先在宿主机和目标机之间建立物理上的连接,建立起了目标机和宿主机的物理通道。然后建立宿主机与目标机的逻辑连接。12.4 嵌入式系统的调试3、仿真器方式(Emulator) 使用处理器内嵌的调试模块接管中断及异常处理。用户通过设置CPU内部的寄存器来指定哪些中断或异常发生后处理器直接进入调试状态,被调试的程序暂时停止运行,宿主机的调试器通过微处理器外部特设的通信口访问各种寄存器、存储器资源并执行相应的调试指令。仿真器调试方式避免了监控器方式的许多不足。它在调试过程中不需要对目标操作系统进行修改,没有引入监控器,使系统能够调试目标操作系统的启动过程。 返回目录12.4 嵌入式系统的调试12.4.2 嵌入式系统的调试方法 嵌入式系统有软件调试和硬件调试两种调试方法。软件调试使用软件调试器调试嵌入式系统软件,硬件调试使用仿真调试器协助调试过程。就操作系统调试的层次而言,有时需要调试嵌入式操作系统的内核,有时需要调试嵌入式操作系统的应用程序。嵌入式系统的调试需要目标运行平台和调试器两方面的支持。返回目录12.4 嵌入式系统的调试1硬件调试 硬件调试的原理一般是通过仿真硬件的真正执行过程,让开发者在调试过程中可以实时获得执行情况。使用硬件调试器,可以获得比软件功能强大得多的调试性能。2、软件调试 软件调试包括操作系统内核的调试和应用程序的调试。应用程序的调试可以借助于本地调试器和远程调试器两种中介来完成。 返回目录本 章 小 结嵌入式系统在日常生活中应用很广泛。一般的定义为:嵌入式系统以应用为中心,以计算机技术为基础,软硬件可裁剪,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式系统通常由嵌入式处理器、外围设备、嵌入式操作系统和应用软件等几大部分组成。嵌入式软件的开发需要特定的开发环境。应用系统以任务作为基本的执行单元 。应用软件在开发完成以后,应生成固化版本,烧写在目标环境的Flash中运行。嵌入式软件开发的难度比较大。本 章 小 结嵌入式软件的整个开发过程可分为需求分析阶段、设计阶段、生成代码阶段和固化阶段。嵌入式软件测试阶段包括单元测试、集成测试、系统测试、硬件/软件集成测试。嵌入式软件是最难测试的一种软件。辅助嵌入式软件测试的工具常用的有内存分析工具 、性能分析工具 、GUI测试工具和覆盖分析工具 。嵌入式系统的调试方式有:源程序模拟器方式、监控器方式 、仿真器方式 。嵌入式系统有软件调试和硬件调试两种调试方法。返回目录软件工程原理、方法与应用 肖孟强 曲秀清 主 编中国水利水电出版社第1章 软件工程概论学习目标掌握软件的概念及特点 了解软件危机的产生 掌握软件工程的概念及其研究内容 掌握软件生存周期的定义及其模型 第1章 软件工程概论 教学内容 1.1 引 言 1.2 软件与软件危机 1.3 软件工程的概念 1.4 软件生存周期及软件开发模型 本章小结 返回总目录1.1 引 言 尽管软件的发展非常迅速,但软件的开发尚没有摆脱手工制作的过程,开发人员对软件开发的认识存在一些偏差,严重影响了软件的发展。于是,许多计算机和软件科学家进行了一些尝试,把其他工程领域中行之有效的方法运用到软件开发中来,形成了软件工程。 本书以大家都比较熟知的学生成绩管理系统为案例,进行软件工程的讲解与学习。本软件规模比较小,通过可行性论证,形成相关文档,并同用户进行协商。在同用户达成共识的基础上对系统进行需求分析的调研与设计。通过广泛的调研与分析,并与用户达成了一致。1.1 引 言学生成绩管理系统总体框图如下: 1.1 引 言 系统模块功能确定以后,下一步就要对模块的功能和性能、数据结构、用户界面等进行必要的设计;然后进入程序编码、软件测试等阶段,而后方可交付用户使用;在用户使用的过程中,还要对程序进行不断的完善与修改,以满足用户的实际需要。返回目录1.2 软件与软件危机主要教学内容: 1.2.1 软件的定义 1.2.2 软件的特点 1.2.3 软件的分类 1.2.4 软件危机 返回目录1.2 软件与软件危机 1.2.1 软件的定义 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档组成的完整集合。 可以写作为:软件=程序+数据+文档。 程序:程序是按事先设计好的功能和性能要求执行的指令序列。 数据:数据是指程序能正常处理信息的数据和数据结构。 文档:文档是与程序运行和维护有关的图文资料。 返回目录1.2 软件与软件危机1.2.2 软件的特点(1) 软件具有抽象特征。(2) 软件具有无明显制造过程特征。(3) 软件无备件的特征。(4) 手工制作特征。(5) 成本昂贵特征。返回目录1.2 软件与软件危机1.2.3 软件的分类1按软件功能进行划分 (1)系统软件 (2)支撑软件 (3)应用软件2按软件规模进行划分 按开发软件所需的人力、时间以及完成的源程序行数,可确定六种不同规模的软件。如表1.1所示。1.2 软件与软件危机表1.1软件规模的分类 返回目录1.2 软件与软件危机1.2.4 软件危机1软件危机的产生 20世纪60年代中期以后,一些开发大型软件系统的要求提了出来。然而软件技术的进步一直未能满足形势发展的需要,在大型软件的开发过程中出现了复杂程度高、研制周期长、正确性难以保证的三大难题。遇到的问题找不到解决办法,致使问题堆积起来,形成了人们难以控制的局面,出现了所谓的“软件危机”。 1963年,美国用于控制火星探测器的计算机软件中的一个“,”号被误写为“。”,而致使飞往火星的探测器发生爆炸,造成高达数亿美元的损失。1.2 软件与软件危机2软件危机的定义及其表现形式 软件危机是指在软件开发和维护中所产生的一系列严重的问题。一是如何开发软件,满足用户对软件的需求,二是如何维护数量众多的已有软件。其主要表现如下: (1)用户需求不明确、变更过多 (2)软件成本日益增长 (3)开发进度难以控制 (4)软件质量差 (5)软件维护困难1.2 软件与软件危机3软件危机产生的原因 (1)软件开发无计划性 (2)软件需求不充分 (3)软件开发过程无规范 (4)软件产品无评测手段4解决软件危机的途径 (1)应该加强软件开发过程的管理。 (2)推广使用开发软件的成功技术与方法 (3)开发和使用好的软件工具返回目录1.3 软件工程的概念主要教学内容: 1.3.1 软件工程的产生及发展 1.3.2 软件工程的定义及目标 1.3.3 软件工程学的范畴 返回目录1.3 软件工程的概念1.3.1 软件工程的产生及发展 为了解决软件危机,人们在软件开发中也不断改进和发展,在50多年中计算机软件开发经历了三个发展阶段:程序设计阶段:约为50至60年代程序系统阶段:约为60至70年代 软件工程阶段:约为70年代以后从表1.2中可以看到软件开发三个发展阶段的主要特点。 1.3 软件工程的概念 几十年来最根本的变化体现在: (1)人们改变了对软件的看法。 (2)软件的需求是软件发展的动力。 (3)软件工作的范围从只考虑程序的编写扩展到涉及整个软件生存周期。返回目录1.3 软件工程的概念1.3.2 软件工程的定义及目标 Fritz Bauer曾经为软件工程下了定义:“软件工程是为了经济地获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完善的工程化原则。” 1983年IEEE给出的定义为:“软件工程是开发、运行、维护和修复软件的系统方法”,其中,“软件”的定义为:计算机程序、方法、规则、相关的文档资料以及在计算机上运行时所必需的数据。1.3 软件工程的概念 软件工程的方法、工具、过程构成了软件工程的三要素。 软件工程的目标可概括为:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户要求的软件产品。图1.2 软件工程目标之间的关系 返回目录1.3 软件工程的概念1.3.3 软件工程学的范畴 软件工程学所研究的主要内容包括:软件开发技术和软件工程管理两个方面。其中:软件开发技术包含:1、软件开发方法学2、软件工具3、软件工程环境4、软件工程管理返回目录1.4 软件生存周期及软件开发模型 主要教学内容: 1.4.1 软件生存周期 1.4.2 软件生存周期模型 1.4.3 瀑布模型(Waterfall model) 1.4.4 演化模型(evolutional model) 1.4.5 螺旋模型(spiral model) 1.4.6 智能模型(intelligence model) 返回目录1.4 软件生存周期及软件开发模型1.4.1 软件生存周期 软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程。我们称其为计算机软件的生存周期。 软件生存周期可划分为若干个阶段。各阶段都包括计划、开发、运行与维护三个时期,而每个时期又划分为若干个阶段。1计划时期 计划时期的主要任务是调查和分析。计划时期有问题定义和可行性研究两个阶段。 1.4 软件生存周期及软件开发模型2开发时期 开发时期要完成设计和实现两大任务。设计任务包括需求分析和软件设计两个阶段;实现任务包括编码和测试。 (1)需求分析 该阶段主要解决的问题是“目标系统必须做什么”,也就是要深入描述软件的功能和性能;确定软件设计的限制和软件与其他系统元素的接口;定义软件的其他有效性需求,并用“需求规格说明书”的形式准确地表达出来,提交管理机构评审。 1.4 软件生存周期及软件开发模型 (2)软件设计 是软件工程的技术核心,主要任务是把已确定了的各项需求转换成一个相应的体系结构,通常细分成总体设计和详细设计两个阶段。 (3)编码 该阶段的主要任务就是按照选定的语言把软件设计转换成计算机可以接受的程序代码, 即写成 “源程序清单”。 (4)测试 测试是保证软件质量的重要手段,其主要方式是在设计测试用例的基础上检验软件的各个组成部分。1.4 软件生存周期及软件开发模型3运行时期 已交付的软件投入正式使用,便进入运行时期。这是软件生存期的最后一个时期,可能要持续若干年甚至几十年。在运行过程中,可能由于多方面的原因,需要对它进行修改。因此,软件人员在这一时期的主要工作,就是做好软件维护。返回目录1.4 软件生存周期及软件开发模型1.4.2 软件生存周期模型 软件生存周期模型是从软件项目需求定义直至软件经使用后废弃为止,跨越整个生存周期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。 有多种软件生存期模型。例如:瀑布模型、演化模型、螺旋模型、智能模型等。它们各有特色,但一般都包含“定义(或计划)”、“开发”和“维护”3类活动。定义活动主要弄清软件“做什么”;开发活动集中解决让软件“怎么做”;维护活动则聚集于软件的“修改”,即“What-How-Change”。 返回目录1.4 软件生存周期及软件开发模型1.4.3 瀑布模型(Waterfall model) 瀑布模型(也称线性顺序模型或软件生存周期模型),是W.Royce在19
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:大学软件工程——原理、方法与应用-肖孟强 曲秀清-大学教学资料课件PPT
链接地址:https://www.renrendoc.com/p-21835864.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!