软件工程辅导班讲稿北大考研.ppt

上传人:牧羊曲112 文档编号:6610937 上传时间:2023-11-17 格式:PPT 页数:67 大小:293KB
返回 下载 相关 举报
软件工程辅导班讲稿北大考研.ppt_第1页
第1页 / 共67页
软件工程辅导班讲稿北大考研.ppt_第2页
第2页 / 共67页
软件工程辅导班讲稿北大考研.ppt_第3页
第3页 / 共67页
软件工程辅导班讲稿北大考研.ppt_第4页
第4页 / 共67页
软件工程辅导班讲稿北大考研.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《软件工程辅导班讲稿北大考研.ppt》由会员分享,可在线阅读,更多相关《软件工程辅导班讲稿北大考研.ppt(67页珍藏版)》请在三一办公上搜索。

1、软 件 工 程2002年5月,1、基本概念2、软件开发模型3、系统建模技术-结构化方法 系统建模技术-面向对象方法4、软件测试5、软件过程6、软件工具、平台与环境,一、基本概念 1、软件 程序及其文档 2、软件工程 3、软件工程框架 1)工程目标 2)工程原则 3)基本活动以及目标 例如:需求 定义问题,即建立系统模型 主要任务包括:1需求获取 需求定义 系统功能的一个正确的陈述 2需求规约系统需求规格说明 主要成分:系统模型 系统功能的一个精确、系统的描述 3需求验证,二、软件开发模型 1、基本概念 软件过程、活动、任务的结构框架。2、几种典型模型及其用法 3、模型的外征与内涵,三、系统建模

2、技术-结构化方法(一)结构化分析方法 1提出的概念有:数据流:加工:数据存储:数据源:数据潭:概念是完备的。,2建模过程 建立系统的DFD功能模型 建立系统环境图,确定系统边界 自顶向下,逐层分解 建立数据字典 给出加工小说明,3表示工具 数据流图表达系统模型的工具 结构符:|A A A B C B0 C0 B*用于定义数据结构 判断表与判定树 用于给出加工小说明,(二)结构化设计 要回答如何解决问题 即给出软件解决方案 1总体设计的任务:如何将DFD转化为MSD,分二步实现:第一步:如何将DFD转化为初始的MSD 第二步:如何将初始的MSD转化为最终可供详细设计,1)耦合:不同模块之间相互依

3、赖程度的度量。耦合类型:(1)内容耦合:(2)公共耦合:两个以上的模块共同引用一个全局数据项。(3)控制耦合:一个模块向另一模块传递一个控制信号,接受信号的模块将依据该信号值进行必要的活动。(4)标记耦合:两个模块至少有一个通过界面传递的公共 有结构的参数。(5)数据耦合:模块间通过参数传递基本类型的数据。,2)内聚:一个模块之内各成分之间相互依赖程度的度量。内聚类型:(1)偶然内聚:一个模块之内各成分之间没有任何关系。(2)逻辑内聚:几个逻辑上相关的功能放在同一模块中。(3)时间内聚:一个模块完成的功能必须在同一时间内完成,而 这些功能只是因为时间因素关联在一起。(4)过程内聚:处理成分必须

4、以特定的次序执行。(5)通信内聚:各成分都操作在同一数据集或生成同一数据集。(6)顺序内聚:各成分与一个功能相关,且一个成分的输出作为 另一成分的输入。(7)功能内聚:模块的所有成分对完成单一功能是最基本的,且 该模块对完成这一功能而言是充分必要的。,启发性规则-经验的总结(1)改进软件结构,提高模块独立性;(2)模块规模适中-每页60行语句;(3)深度、宽度、扇入和扇出适中;(4)模块的作用域力争在控制域之内;(5)降低模块接口的复杂性;(6)模块功能应该可以预测。,2详细设计的任务:定义每一模块 结构化程序设计 三种控制结构:顺序 begin s1;s2;sn end;选择 if 条件表达

5、式 then s1 else s2;循环 while 条件表达式 do s;,2详细设计的任务:定义每一模块几种表示工具 流程图、PAD、NS图、伪码等 框图,s1,s2,s1,s2,.,s,伪码 伪码是一种混合语言。外部采用形式语言的控制结构,内部使用自然语言。PAD图,S1,S2,S3,S1,S2,X5X5,S,顺序:选择:循环:,注:支持逐步求精设计,N-S图,支持逐步求精设计举例,顺序:选择:循环:,条件,F,T,S1,S2,循环条件,循环体,N:=1.10,X5,T,F,F,T,S1,S2,S3,S4,S5,S6,S8,S7,S9,S10,X10&Y3,(二)、面向对象方法 多层面的

6、建立系统模型 1、静态模型-概念及其表示 1)对象(Object)及其特征(自治性 封闭性 通信性)2)属性:表示对象状态的一组值。3)操作:为其它对象提供的服务。4)链(OSA的关系)。,5)类(class):一组具有共同特征(属性和 操作)的相似对象的抽象描述-控制描述客观事物信息复杂性的机制,6)关联:一组具有相同结构特性、行为特性 和语义特性的链的抽象描述-控制描述客观事物之间关系这种信息 复杂性的机制,既然类和关联均是对实体和关系的抽象描述,那么,应提供对它们的语义进行必要说明的机制:,可见性:用于描述类的属性和操作,并可采用 两种形式:(+,-,#或 public,private,

7、protected)多重性:用于描述类的属性,关联。性质串:用于描述类(名)、属性和操作,并 提供一些标准的关键字,例如:frozen,query,特别地,为了描述关联的语义,还特意引入“关联端点”,用于表示:角色(名),限定符等,以及常用的一些结构:聚合,组合,泛化,依赖,2、功能模型 1)USE CASE模型(1)基本概念与表示 USE CASE 一个USE CASE是系统或其它语义实体(例如子系统或一个类)所提供的一块(unit)高内聚的功能。该功能通过:与一个或多个操作者交替出现的消息序列,以及所执行的动作,予以表现。USE CASE通常被表示为一个椭圆:,为了表明USE CASE所包

8、含的具体内容,还应给出它的正文描述。即:名称(Name)标识(Identifier)描述(Description)角色(Actor)状态(Status)活动及时序频度(Frequency),操作者 一个操作者定义了一组高内聚的角色,当用户与该实体交互时,用户可以扮演这一角色。通常,一个操作者被表示为:,关系 操作者与USE CASE之间的关系:关联:参与关系,即操作者参与一个USE CASE。USE CASE之间的关系:扩展:指出了USE CASE B的一个实例可以由A说明 的行为予以扩展。包含:指出USE CASE A的一个实例将包含USE CASE B说明的行为。泛化:USE CASE A

9、到USE CASE B的泛化,指出A是B的特殊情况。,Check status,Place order,Fill order,Establish credit,Telephone Catalog,Salespers on,Shipping Clerck,Supervisor,Customer,(2)USE CASE模型 例:USE CASE图,3、行为模型1)状态图(1)基本概念与表示 状态:表示对象所处的阶段、活动和外征 转换:在事件的激发下,状态的变迁.事件:引起状态变迁的条件、动作(action).,状态1,或/和条件,Action,状态2,或/和条件,Action,状态3,状态4,或/

10、和条件,Action,状态6,状态5,状态7,或/和条件,Action,状态8,条件,条件,OMT/OSA以状态网 来表示类的行为,(2)状态图,2)顺序图(1)基本概念与表示 对象生命线:表示扮演特定角色的对象。代表一个对象在特定时间内的存在。“对象生命线”表示为垂直虚线。激活(活化):表示一个对象直接或通过从属例程执行一个行为的时期。既表示行为执行的持续时间,也表示了活动和它的调用者之间的控制关系。用一个窄长的矩形表示激活(活化)。消 息:是两个对象间的通讯,该通讯用于产生一个操作并传输该操作所需要的信息。表示为从一个对象生命线到另一个对象生命线的一个水平实线箭头。,An Order En

11、try window,An Order,An Order Line,A Stock Item,prepare(),*prepare(),hasStock:=check(),hasStock remove(),needsReorder:=needsToReorder(),needsReorder new,hasStocknew,A Delivery Item,a Reorder Item,message,Object,Iteration,Self-Call,Deletion,Creation,Return,(2)顺序图:例,4、过程统一软件开发过程 USDP是以用况(use case)为驱动、以

12、体系结构为中心的、迭代的(iterative)、增量的(incremental)过程。即:以用况为驱动 以用况为单位,制定计划、分配任务、监控执行和进行测试等。以体系结构为中心 以系统需求(用况模型)为驱动,紧紧围绕系统体系结构,从不同角度描述要构造的系统的静态和动态结构,得到不断精化的体系结构基线-一个模型集合和一个体系结构描述。,迭代与增量迭代:按核心工作流,即需求规约、分析、设计、实现和测试这五个活动,对每个“小”项目都进行迭代;迭代被组织在4个阶段中:初始阶段、精化阶段、构造阶段和移交阶段。增量:贯穿在整个生命周期中的迭代有:主里程碑:是管理者与开发者的同步点。副里程碑:是开发内部的一

13、个工作点。在一次迭代结束时,把模型集合所处的具体状态定义为基线。增量是由两次相邻迭代所得到的基线之差。,(1)核心工作流 捕获需求 工作流程:,产生:表达需求的用况模型:参与者、用况、用况模型和体系结构描述。,分析 工作流程:,产生:用况实现-分析,分析类,分析包,体系结构描述分析模型角度,分析类:概念性的(责任,概念性属性和关系)。包括:用于对系统和参与者之间的接口建模的边界类;实体类;控制类 分析包:由分析类、用况实现-分析以及分析包组成。通常把支持一个特定的业务过程或参与者的一些用况组织在一个包中,或把具有泛化或扩展关系的用况组织在一个包中 用况实现-分析:注重于功能需求。涉及:类图(使

14、用分析类);交互图(用协作图描述分析类之间的交互);事件流分析(用文本解释图),以及补充需求(非功能需求)等。系统体系结构描述分析模型角度:主要包括:分析包和它们之间的依赖;关键分析类;实现(重要及关键功能)的用况实现-分析。,设计,工作流程:,其中:活动1 把分析模型的分析包变为设计模型的子系统。活动2 把用况中的各个流对应一个顺序图。,产生:用况实现设计:是设计模型中的一个协作,描述一个具体的用况如何实现和执行。注:设计模型-描述用况物理实现的对象模型,注重于功能需求和实现环境对系统的影响。设计子系统:是组织设计模型的一种手段,用以描述大粒度的构件,由设计类、用况实现、接口和其它子系统组成

15、。接口:表示由设计类和子系统提供的操作。设计类:考虑与实现有关的因素,描述操作的参数、属性和类型等体系结构描述设计模型角度:包括由设计模型分解的子系统、接口、依赖、关键设计类和用况实现设计。部署图:按在计算节点上的功能分布描述系统的物理分布体系结构描述部署图的角度:包括部署模型的体系结构的视图。,实现 任务:实现设计类和子系统;由设计类生成构件;对构件进行单元测试;对构件进行集成和连接;把可执行的构件映射到部署模型。工作流程:,产生:实现模型:描述用构件如何实现设计模型中的元素;描述按实现环境如何组织构件;描述构件间依赖关系。构件:是对模型元素(如设计模型中的设计类)的物理 封装。实现子系统:

16、由构件、接口和其它子系统组成。接口:用于表示由构件和实现子系统所实现的操作。在 这一阶段可以使用设计时的接口。体系结构描述实现模型的角度:包括由实现模型分解的 子系统、子系统间的接口、子系统间的依赖以及关键构 件。集成建造计划:在增量开发中,每一步的结果即为一 个建造(Bulid),即系统的一个可执行的版本。,测试工作流程:,产生:测试模型:测试模型是测试用例、测试过程和测试构件 的集合体。测试用况:一般描述:输入、输出和条件。测试过程:描述怎样执行一个或几个测试用况。测试构件:用于测试模型实现中的构件。测试计划:测试计划描述测试策略、资源和时间表。其中 测试策略包括:对各迭代进行测试的种类、

17、目 的、级别、代码覆盖率以及成功的准则。缺陷:系统的异常现象。评价测试:对一次迭代,对测试用况覆盖率、代码覆盖率和缺陷情况(可绘制缺陷趋势图)进行评价。把评价结果与目标比较,准备度量。,(2)USDP的四个阶段初始阶段:本阶段确定所设立的项目是否可行。办法:采用简化的用况模型,确定系统的大多数角色和用况;给出在子系统意义下的系统体系结构;识别影响项目可行性的风险,其中主要考虑时间、经费、技术、项目规模和效益等 基于业务情况,制订出开发计划。精化阶段:进行高层分析和设计,并作出结构性决策 产生:基线体系结构 包括:用况列表、领域概念模型(类图以及 相关的行为模型)和技术平台。体系结构基线的稳定是

18、精化阶段结束的准则 制订的构造阶段计划,构造阶段 针对用况,进行分析、设计、编码(如对类、属性、范围、函数原型和继承的声明等)、测试和集成,得到一个满足项目需求子集的产品。在代码完成后,要保证其符合某些标准和设计规则,并要进行质量检查。对于新出现的变化,要通过逆向工具把代码转换为模型,对模型进行修改,再重新产生代码,以保证软件与模型同步。根据情况,还要建立必要的类图、交互图和配置图。特别地:如果一个类具有复杂的生命周期,可绘制状态图;如果一个算法特别复杂,可绘制活动图。移交阶段 完成最后的软件产品和最后的验收测试,并完成用户文档以及准备对用户培训等。,附:关于Coad的PROCESS(1)分析

19、阶段 标识类及对象-建立系统基本框架 标识结构-控制信息组织的复杂性 标识主题-控制文档组织的复杂性 定义属性及实例连接-建立类状态的基础 标识服务及消息连接-给出类的功能 继之:为每一类,给出状态图;对每一操作,给出服务定义。(2)设计阶段,问题域 部分 设计,人机交互部分设计,任务管理部分设计,数据管理部分设计,标识类及对象,标识结构,注:设计活动相对独立,没有固定顺序。,标识主题,定义属性及实例连接,标识服务及消息连接,四、软件测试技术,环境,被测对象,人员素质,被测对象模型,测试执行,正确?,环境模型,错误模型,软件测试过程所涉及的要素,以及 这些要素之间的关系,正确,1)测试过程模型

20、,2)依据程序逻辑结构-白盒测试技术(1)关于建立被测对象模型 控制流程图:结点/分支/过程块/链 路径(2)“完整测试”策略(3)关于测试用例设计 其中:关于循环的路径选取,(3)循环情况的路径选取 一层 二层 级连循环 嵌套循环 还要考虑循环变量的具体情况 关键路径的选取 主要功能路径 没有功能的路径 最短路径.,3)功能测试-基于规格说明的测试(1)事务流测试技术,1,2,3,6,4,5,7,(2)等价类划分技术 等价类:输入域的一个子集,在该子集中,各个输入数据对于揭示程序中的错误都是等效的。并合理地假定,以等价类中的某代表值进行的测试,等价于对该类中其他取值的测试。,等价类划分原则指

21、南 如果输入条件规定了输入数据的取值范围或值的个数,则可以确定一个有效等价类和二个无效等价类。,如果输入条件规定了输入值的集合,或规定了“必须如何”的条件,则可以确定一个有效等价类和一个无效等价类。如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。如果输入条件规定了输入数据的一组值,而且软件要对每个输入值进行处理,则可以为每一个输入值确定一个有效等价类,为所有不允许的输入值确定一个无效等价类。,如果输入条件规定了输入数据必须遵循的规则,则可以确定一个有效等价类(符合规则),和若干个无效等价类。例如:“语句必须以;号结束”注意:如果在已确定的等价类中各元素在软件中的处理方式不同

22、,则应根据需要对等价类进一步进行划分。测试用例设计在确定了等价类之后,建立等价类表:-输入条件 有效等价类 无效等价类-,4)集成测试 集成测试是一种软件集成化技术 方式:自顶向下或自底向上 设计测试设备 驱动模块 承接模型,被测模块,驱动模块,承接模块,承接模块,-代替原来的被控模块,-代替原来的控制模块,五、软件过程 软件过程:活动的一个集合;活动:任务的一个集合;任务:将一个输入转换为一个输出的操作。按性质可分为三类过程:基本过程类 支持过程类 组织过程类 1基本过程类 包括:获取过程、供应过程、开发过 程、运行过程、维护过程,2支持过程类 包括:文档过程、配置管理过程、质量保证过程、验

23、证过程、确认过程、联合评审过程、审计过程、问题解决过程等。3组织过程类 包括:管理过程、基础设施过程、培训过程、改进过程剪裁过程:对软件过程和活动实施剪裁。将一选定的模型以及相关标准应用于某一领域或具体的软件项目,形成该领域的模型及标准,或该软件项目的软件过程和活动。,3软件过程之间的关系,获取过程,获取过程,供应过程,管理过程,运行过程,开发过程,维护过程,获取者供应者,管理者,运行者用 户,开发者维护者,开发者维护者,组织过程:管理、改进.,支持过程:文档、质量保证、配置管理.,合同,使用,合同观点,管理观点,运行观点,开发观点,支持观点,2)ISO 90003(1)ISO 9000-3是

24、质量体系这一概念的应用:质量体系费根堡姆:“在制造及传递某种合乎特定质量标准的产品时,必须配合适当的管理及技术作业程序,这些程序所组成的结构,称之为质量体系”。(2)ISO 9000-3是结合软件开发的特点,对ISO 9001进行的“解释”,为软件企业实施ISO 9001提供一个指南:,ISO 9001:质量体系设计、开发、生产、安装和服务的质量保证模式,ISO/IEC 12207:信息技术软件生存周期过程,ISO 9000-3:质量管理和质量保证标准第3部分:ISO9001:1994在计算机软件开发、供应、安装和维护中的使用指南,解释和实施指南,参照,(3)ISO 9000-3是软件开发中的

25、质量体系框架;。有序地组织了20个质量要素。质量:“与软件产品满足规定的和隐含的需求能力 有 关的特征或特性的全体”注:只规定应当“做什么”-强调规范化(文档化)。(4)目的:规范化地运行软件过程,即使每一过程 均处于受控状态。-质量来源于过程 为软件工程技术在实践中的应用,创造一个 良好的环境。-质量收益于技术,3 能力成熟度模型(CMM)(1)CMM的软件过程成熟度框架,初始级(1),可重复级(2),已定义级(3),已管理级(4),持续优化级(5),严格的过程,标准的一致的过程,可预言的过程,持续改善的过程,在这一框架中,将过程能力成熟度分为五级:初始级,可重复级,已定义级,已管理级,持续

26、优化级。,通过成熟度级别,定义了在使软件过程成熟的过程 中的 演化状态。,根据“状态”的定义,软件过程成熟度框架的基础是软件能力成熟度模型。(2)软件能力成熟度模型 CMM的每个等级是通过三个层次加以定义的:关键过程域 关键实践类 关键实践,成熟度级别,关键过程区域(KPA),共同特征,关键实践,过程能力,目标,实现或制度化,基础设施或活动,包含,指示,组织,达到,包含,解决,描述,其中:关键过程域:在框架的某一“平台”上,其实施将对达到下一成熟度等级的目标起保证作用的过程域,被称为关键过程域。目标:表明一个关键过程域的范围、边界和意图。例如 软件项目规划:是2级的一个关键过程域。其目标可概括

27、为:制定进行软件工程和管理软件项目的合理计划。具体包括:(1)软件生存周期已选定,并经评审确认;(2)对计划中的软件规模、工作量、成本、风险等已经 进行估计;(3)软件项日的活动和约定是有计划的;(4)影响计划进度的关键路径是己标识的、且受控的;(5)影响计划进度的关键资源需求是已标识的;注:可用来确定某组织或某项目是否已有效地 实施该关键过程域。,关键实践:(每一关键过程域包含一组关键实践。)对关键过程域的实施起关键作用的方针、规程、措施、活动以及相关的基础设施。作用:一个关键过程域中所包含的关键实践的实施,才可以达到该关键过程域中的目标。组织:每一级的关键实践按“共同特征”予以组织。这些“

28、共同特征”为:实施承诺-制定方针政策(关键过程)实施能力-确保必备条件(关键过程)实施活动-实施软件过程(关键过程)度量分析与验证-检查实施情况(关键过程)它们之间的关系是:)实施软件过程这一关键实践类中的关键实践,描述了为建立过程能力,过程实施者必须作些什么;B)其他关键实践类中的实践,作为一个整体使实施软件过程中的实践规范化。,各级包含的关键过程域:可重复级:6个 软件配置管理,软件质量管理,子产品工程 项目跟踪和监督,软件项目规划,需求管理 已定义级:6+7(个)=13个 对等复审,组间协作,软件产品工程,集成的软件管理,培训计划,组织过程定义,组织过程焦点 已管理级:13+2(个)=1

29、5个 软件质量管理,量化的过程管理 持续优化级:15+3(个)=18个 过程变化管理,技术变化管理,缺陷预防,结束语:随项目的规模和复杂度增长,在解决软件质量和生产率 问题中,目前 更加关注组织和管理。其突破点为过程改善,增强过程能力。主要理论基础为费根堡姆的质量体系:一个软件开发组织,只有通过:建立全组织的有效的软件过程;采用严格的软件工程方法和管理;坚持不懈地付诸实践;-才能取得全组织的软件过程能力的不断改进,六、软件工具、平台与环境1)基本概念:计算机辅助软件工程CASE(Computer-Aided Software Engineering)CASE是一组工具和方法的集合。是辅助软件开

30、发的任何计算机技术,其含义为:在软件开发和/或维护中,提供计算机辅助支持;在软件开发和/或维护中,引入工程化方法。,软件工程,自动化工具,CASE=,+,2)CASE技术分类,CASE系统,工具,工作台,环境,编译器,文件比较器,编辑器,集成环境,以过程为中心的环境,分析和设计,编程,测试,多方法工作台,单方法工作台,多语言工作台,特定语言工作台,3)CASE工作台 CASE工作台是一组工具,支持像分析、设计或测试等特定软件开发阶段。工作台将一组工具组装(通过共享文件、数据结构和/或数据仓库等实现集成),并使这组工具可以协同工作。,程序设计工作台,源程序,语言编译器,结构化编辑器,语法树,符号

31、表,已编译代码,交叉引用,按格式打印,静态分析器,交互式调试器,动态分析器,加载器,连接器,程序库,可执行程序,执行报告,格式化文件列表,程序报告,用户,调用,编辑,调用,可执行程序,测试工作台,报告生成器,测试结果报告,预 测 器,测试数据,测试结果,被测试的程序,执行报告,源代码,规 约,文件比较器,测试数据生成器,动态分析器,测试管理器,模拟器,测试预估,4)软件工程环境 定义:软件开发环境 支持软件产品开发的软件系统。它由软件工具和环境集成机制构成,前者用以软件开发的相关过程、活动和任务,后者为工具集成和软件开发、维护及管理提供统一的支持。主要研究成果 Wasserman五级模型(19

32、90)APSE模型 一个环境的层次模型 大型软件开发环境青鸟系统,Wasserman五级模型(1990)平台集 数据集成及其典型集成方式 表示集成 控制集成 过程集成 APSE模型,KAPSE,MAPSE,APSE,配置管理,外壳,编译器,连接加载器,测试器,APSE模型,一个环境的层次模型 环境是一组服务的集合。,工具(工作台)应用,框 架 服 务,平 台 服 务,其中:平台服务包括文件服务 进程管理服务 网络通信服务 窗口管理服务 打印服务,框架服务-建立在平台服务之上,专用于支持CASE工具的集成。,数据仓库服务,数据集成服务,任务管理服务,用户界面服务,工具插槽,消息服务,SEE基准模型,围绕环境通用接口的研究及成果之间的关系,可概括为:项 PCIS(1994 V1.0)目 对CAIS和PCTE进行综合 与 PCTE+ECMA PCTE 成 针对存在的缺陷 果 CAIS PCTE 开 发 开 发 基础 APSE SEE PCTE的研究历程,5)大型软件开发环境青鸟系统 背景 体系结构-软件解 关键技术-对象库管理系统-CASE C+语言-用户界面类库与界面辅助生成器-可复用构件库-消息服务器-过程控制-工具模型,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号