软件工程复习范围汇总.pptx

上传人:莉*** 文档编号:73627721 上传时间:2023-02-20 格式:PPTX 页数:166 大小:1.21MB
返回 下载 相关 举报
软件工程复习范围汇总.pptx_第1页
第1页 / 共166页
软件工程复习范围汇总.pptx_第2页
第2页 / 共166页
点击查看更多>>
资源描述

《软件工程复习范围汇总.pptx》由会员分享,可在线阅读,更多相关《软件工程复习范围汇总.pptx(166页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、工具方法过程软件工程三个要素:方法、工具、过程软件工程的内容软件工程的内容第1页/共166页软件工程的内容软件工程的内容产品产品人员人员过过程程方法与规程技术与工具技术与工具第2页/共166页软件工程教学的目标软件工程教学的目标用工程化的方法来开发软件用工程化的方法来开发软件第3页/共166页软件工程概述软件工程概述第4页/共166页软件软件软件 =or =or 程序 软件 =程序?软件 =程序 +数据?软件 =程序 +数据 +文档?第5页/共166页软件软件程序、软件与软件产品独唱-小合唱-合唱-万人大合唱|简单程序 较复杂程序 软件软件包括程序:按事先设计的功能和性能需求执行的指令序列数据

2、:是程序能正常操纵信息的数据结构文档:与程序开发、维护和使用有关的图文材料 第6页/共166页软件工程软件工程定义指导计算机软件开发和维护的工程学科指导计算机软件开发和维护的工程学科 工程方法工程方法+管理技术管理技术+技术方法技术方法第7页/共166页Fritz Bauer在NATO会议上给出的定义:“软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用的健全的工程原理(方法)”软件工程软件工程第8页/共166页IEEE【IEE83】给出的软件工程定义:“软件工程是开发、运行、维护和修复软件的系统方法”IEEE【IEE93】给出了一个更加综合的定义:“将系统化的、规范的、

3、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中”软件工程软件工程第9页/共166页软件生命周期软件生命周期第10页/共166页软件生命周期软件生命周期软件生命周期软件定义软件定义问题定义问题定义可行性分析可行性分析需求分析需求分析软件开发软件开发系统设计系统设计编码编码测试测试软件维护软件维护第11页/共166页阶段 基本任务工作结果参加者计划期可行性研究与计划研究开发该项目的可行性 可行性研究报告用户、高级程序员 开发期 需求分析理解和表达用户的要求需求说明书用户、高级程序员设 计建立系统的结构模块、数据说明书用户、高级程序员 编 程 编写程序程序高级程序员、初级程序

4、员测 试发现错误和排除错误 测试报告另一独立的部门运行期运行与维护维护 改进的系统用户、高级程序员 软件生命周期软件生命周期第12页/共166页软件生存期模型软件生存期模型软件生存期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。瀑布模型瀑布模型原型模型原型模型螺旋模型螺旋模型喷泉模型喷泉模型第13页/共166页特点:上一阶段的变换结果 是下一阶段的变换的 输入,相邻两个阶段 具有因果关系,紧密 相联。需求分析需求分析问题定义问题定义可性行研究可性行研究计划时期概要设计概要设计详细设计详细设计编编 码码 测测 试试开发时期运行与维护运行与维护运 行时 期软件生

5、存周期模型(瀑布模型 Waterfall Model)第14页/共166页瀑布模型瀑布模型特点阶段的顺序性和依赖性阶段的顺序性和依赖性推迟实现的观点推迟实现的观点质量保证质量保证存在问题不适合需求模糊的系统不适合需求模糊的系统第15页/共166页原型模型(Prototype Model)加工加工原型原型原型原型原型:是指模拟某种产品的原始模型快速分析快速分析和设计和设计建造建造原型原型客户客户评价原型评价原型1、原型系统仅包括未来系统的主要功能,以及系统的重要接口。2、为了尽快向用户提供原型,开发原型系统时应尽量使用能缩短开发周期的语言和工具。第16页/共166页快速原型模型快速原型模型特点快

6、速开发工具快速开发工具循环循环低成本低成本种类渐进型渐进型抛弃型抛弃型第17页/共166页螺旋模型螺旋模型第18页/共166页螺旋模型螺旋模型 特点瀑布模型瀑布模型+快速原型快速原型+风险分析风险分析迭代过程迭代过程 一个螺旋式周期 确定目标,选择方案,选定完成目标的策略确定目标,选择方案,选定完成目标的策略 风险角度分析该策略风险角度分析该策略 启动一个开发阶段启动一个开发阶段 评价前一步的结果,计划下一轮的工作评价前一步的结果,计划下一轮的工作 第19页/共166页阶段交付阶段交付软件概念软件概念需求分析需求分析构架设计构架设计阶段阶段1 1:详细设计,编码,调试,:详细设计,编码,调试,

7、阶段阶段2 2:详细设计,编码,调试,:详细设计,编码,调试,第20页/共166页阶段交付阶段交付阶段交付持续地在确定的阶段向用户展示软件。和渐进原型不同,在阶段交付的时候,你明确地知道下一步要完成什么工作。阶段交付的特点是不会在项目结束的时候一下交付全部软件,而是在项目整个开发过程中持续不断地交付阶段性成果。第21页/共166页喷泉模型喷泉模型第22页/共166页小结小结软件工程软件生存周期过程软件生存周期模型第23页/共166页可行性研究可行性研究第24页/共166页可行性研究的任务可行性研究的步骤可行性研究的工具系统流程图数据流图数据字典成本/效益分析可行性研究可行性研究第25页/共16

8、6页可行性研究的任务可行性研究的任务可行性研究的目的在于用最小的代价确定在问题定义阶段所确定的系统目标和否可实现。简而言之,可行性研究的目的不是解决问题,而是确定问题是否值得解决。第26页/共166页可行性研究的步骤可行性研究的步骤1.复查系统规模和目标2.研究现有系统功能3.导出新系统模型4.重新定义问题5.导出和分析各种可选解决方案6.推荐行动方针7.草拟开发计划8.书写文档提交审查第27页/共166页可行性研究的步骤可行性研究的步骤旧系统逻辑模型新系统目标和规模逻辑模型描述工具数据流图数据字典用例图3 3 导出新系统模型导出新系统模型第28页/共166页可行性研究的工具可行性研究的工具物

9、理数据流图,不同与程序流程描述物理系统表示物理部件信息流动分层的SFD从抽象到具体,从简单到复杂系统流程图系统流程图SFDSFD第29页/共166页可行性研究的工具可行性研究的工具系统流程图系统流程图SFDSFD电话销售系统流程图第30页/共166页可行性研究的工具可行性研究的工具描述系统逻辑模型信息在系统中的流动和处理用途交流信息的工具分析和设计的工具数据流图数据流图DFDDFD第31页/共166页可行性研究的工具可行性研究的工具符号例子分层从高层到低层分解前后的数据流必须一致命名数据流处理数据流图数据流图DFDDFD第32页/共166页可行性研究的工具可行性研究的工具数据流图数据流图DFD

10、DFD图书管理系统顶层图第33页/共166页可行性研究的工具可行性研究的工具DFD中所有元素定义的集合内容数据流数据流分量数据存储处理(一般不用DD描述)数据字典数据字典DDDD第34页/共166页需求分析重要性软件生命周期中,一个错误发现得越晚,修复错误的费用越高。第35页/共166页图形工具 数据流图 数据字典建立目标系统逻辑模型的图形工具第36页/共166页 -学生购买教材的具体模型学生购买教材的具体模型 举举举举例例例例请建立计算机售书系统的逻辑模型张张秘书秘书学学生生购书购书 购书购书 王王会计会计发票发票李李出纳出纳领书领书赵赵保管保管单单申请申请证明证明书书 -学生购买教材的学生

11、购买教材的 逻辑模型逻辑模型 审查审查有效性有效性学学生生有效有效购书单购书单 开发票开发票发票发票开领开领书单书单领书单领书单发书发书购书单购书单书书第37页/共166页 -学生购买教材的学生购买教材的 逻辑模型逻辑模型 审查并审查并开发票开发票学学生生发票发票购书单购书单 各班学生用书表各班学生用书表教材存量表教材存量表无效书单无效书单开领开领书单书单领书单领书单学学生生 完善目标系统并补充细节,导出目标系统的正式逻辑模型第38页/共166页需求规格说明书与评审需求规格说明书与评审 软件需求说明书软件需求说明书 -SRS(Software Requirement Specification

12、)主要包括以下的内容主要包括以下的内容:SRS 引言引言 数据描述数据描述 数据流图数据流图 数据字典数据字典 功能描述功能描述 性能描述性能描述 特殊需求特殊需求第39页/共166页1 1、数据流图中的主要图形元素、数据流图中的主要图形元素-转换数据流的处理过程转换数据流的处理过程 -可以是数据库文件或任何形式的数据组织。箭可以是数据库文件或任何形式的数据组织。箭头向内则表示写入文件或查询文件,箭头向外则表示从头向内则表示写入文件或查询文件,箭头向外则表示从文件中读取数据或得到查询结果文件中读取数据或得到查询结果 数据转换数据转换外部实体外部实体 -位于软件系统边界之外的信息生产者位于软件系

13、统边界之外的信息生产者 或或 消费者消费者数据流数据流 -在转换之间有向流动的数据项或数据在转换之间有向流动的数据项或数据 集合集合数据存储文件数据存储文件第40页/共166页-系统系统逻辑逻辑模型模型数据的数据的加工或加工或变换变换输入输入输出输出软件软件系统系统外部实体外部实体外部实体外部实体 外部实体外部实体外部实体外部实体 输入输入数据流数据流输入输入数据流数据流输出输出数据流数据流输出输出数据流数据流第41页/共166页2 2、数据流图中的其它图形元素、数据流图中的其它图形元素ABC-有有 A 则则 B 或者或者 C,或者两者都有或者两者都有*ABC+ABC-有有 A 则则 B 与与

14、 C,或者两者同时有或者两者同时有-有有 A 则则 B 或或 C,但不会同时有但不会同时有B与与C第42页/共166页-标识多个数据流与加工之间关系的符号标识多个数据流与加工之间关系的符号-当当 A 或或 B 有一个存在就有有一个存在就有 CABC*ABC-只有当只有当 A 与与 B 都存在,则有都存在,则有 C第43页/共166页3 3、分层的数据流图、分层的数据流图 F0A0B0F11A0B0F12F13F14F15p1C1D1M1N1F21M1F22N1F23K2F24W2F25p1Y2X2第第 n 层层第第 n+1 层层第第 n+2 层层第44页/共166页学生学生教材购教材购销系统销

15、系统购书单购书单领书单领书单缺书单缺书单进书通知进书通知进书通知进书通知保管员保管员1销售销售购书单购书单领书单领书单学学生生缺书单缺书单进书通知进书通知2采购采购保管员保管员第第 1 层层第第 2 层层 教材存量表教材存量表 F1F1 缺书登记表缺书登记表 F2F2外部实体外部实体第45页/共166页 教材销售子系统教材销售子系统 无效无效书单购书单1.3登记并开登记并开领书单领书单1.2开发票开发票1.1审查审查有效性有效性1.4登记登记缺书缺书1.5补售补售教材教材采采购购学学生生学学生生进书通知进书通知有效有效书单发票票领书单暂缺缺书单1销售销售购书单购书单领书单领书单缺书单缺书单进书

16、通知进书通知2采购采购进书通知进书通知缺书登记表缺书登记表教材存量表教材存量表学学生生保管员保管员第第 2 层层补售售书单第第 3 层层 教材存量表教材存量表 F1F1 缺书登记表缺书登记表 F2F2 F1书号书号单价单价数量数量 各班用书表各班用书表 F3F3 售书登记表售书登记表 F4F4外部外部项项第46页/共166页1销售销售购书单购书单领书单领书单缺书单缺书单进书通知进书通知2采购采购进书通知进书通知缺书登记表缺书登记表教材存量表教材存量表学学生生保保管员管员采购采购 子系统子系统 第第 2 层层第第 3 层层缺缺书单2.3修改教材库修改教材库存和待存和待购量购量销销售售进书通知进书

17、通知进书通知进书通知2.1按书号汇按书号汇总缺书总缺书2.2按出版社统按出版社统计缺书计缺书保保管员管员 教材存量表教材存量表 F1F1 待购教材表待购教材表 F5F5 教材一览表教材一览表 F6F6 缺书登记表缺书登记表 F2F2第47页/共166页数据元素名数据元素名:类型类型:数字(离散值、连续值),文字(编码类型)数字(离散值、连续值),文字(编码类型)长度长度:取值范围取值范围:相关的数据元素及数据结构相关的数据元素及数据结构 (2)(2)数据元素词条的描述数据元素词条的描述 年年=“1900”.“3000”月月=“01”.“12”日日=“01”.“31”摘要摘要=1字母字母4 金额

18、金额=“00000000.01”.“999999999.99”第48页/共166页2 2、数据字典定义符号、数据字典定义符号 符号符号含含 义义例例 子子 =被定义为被定义为+与与 x=a+b,则表示则表示 x 由由 a 和和 b 组成组成x=a,b,则表示则表示 x 由由 a 或由或由 b 组成组成 或或重复重复x=a,则表示则表示 x 由由 0个个或多个或多个 a 组成组成()可选可选 表示在两个表示在两个 *之间的内容为词条的注释之间的内容为词条的注释m n 重复重复x=3a8,则表示则表示x中至少出现中至少出现3 3次次a,最多出现最多出现8 8次次*注释符注释符x=(a),则表示则表

19、示 a 在在 x 中出现中出现,也可不出现也可不出现第49页/共166页软件估算的基础(软件估算的基础(2)复杂性:相同KLOC的两个程序花费的时间将会不同。因而不能简单地应用KLOC或SLOC,而要根据复杂性进行修正,但是复杂性的度量通常是主观而定的。第50页/共166页面向对象建模面向对象建模第51页/共166页结构化分析模型的组成结构结构化分析模型的组成结构数据流图 (DFD)E-R图状态变迁图(STD图)加工说明控制说明数据对象说 明数据字典(DD)第52页/共166页面向对象分析模型的组成结构面向对象分析模型的组成结构对象-关系模型类/对象 模型对象-行为模型使用实例(Use Cas

20、e)操作、属性、协作者第53页/共166页面向对象分析面向对象分析1.基本过程2.需求陈述3.建立ObjectModel4.建立DynamicModel5.建立FunctionModel6.定义服务第54页/共166页1.基本过程:RequirementstatementRapidprototypeModels其中model有三个:Objectmodel:最重要,开发任何系统都需要;Dynamicmodel:对于开发交互式系统很重要;Functionmodel:对于开发大运算量问题(如科学计算、编译系统等)很重要。面向对象分析面向对象分析第55页/共166页OMT模型系统分析设计过程模型系统分

21、析设计过程产生需求结构及对象设计建立模型问题描述对象模型、动态模型、功能模型详细的对象模型详细的动态模型详细的功能模型分析阶段设计阶段第56页/共166页CategoryClass-&-ObjectStructure1+1+AttributeMethodObjectmodel由五个层次组成,相当于把五张透明胶片叠在一起,每一层显示更多的细节。1 1、基本过程、基本过程第57页/共166页需求陈述的内容包括:问题范围、功能需求、性能要求、应用环境、假设条件等等。陈述方式可繁可简,说明What 而不是 How。2.2.需求陈述需求陈述第58页/共166页需求建模实例需求建模实例风险分析交易估计进行

22、交易进行交易接待员酒店系统财务系统某金融贸易系统用例图(UML)第59页/共166页1、确定Class-&-Object:第1步:列出所有候选对象(candidates),它们可能是 物理实体 人或组织 要处理的事件 对象间的活动 抽象概念 等等非正式分析:从需求陈述中挑出 名词 Class-&-Object 形容词 Attribute 动词 Method3.3.建立建立 Object Model第60页/共166页账户余额限额类型现金兑换卡分行代码卡号储户姓名地址输入站事务日期柜员事务远程事务柜员姓名卡权限密码限额更新金额类型总行总行名分行分行名ATM现有金额付出金额柜员终端分行代码组成站号

23、站号账号雇员号卡号输入1+拥有1+保管拥有拥有雇用发放拥有1+1+标识1+1+访问1+启动1+1+输入1+组成修改归纳组成分解合并 建立建立 Object ModelObject Model第61页/共166页1、编写脚本(scenarios),描述event序列:Event=Activator+Receiver+Parameters基本类型:正常情况脚本特殊情况脚本(输入输出取边界值时)异常情况脚本(应允许用户异常中止或取消一个操作)4.4.建立建立 Dynamic Model第62页/共166页3、画事件跟踪图(eventtracingdiagram)EventActivatorRecei

24、verTimeLine每个脚本对应一张图2、设想用户界面(userinterface)rapidprototype.建立建立 Dynamic Model第63页/共166页要求输入取款额插卡要求密码输入密码请求验证帐户请求分行验证帐户帐户有效帐户有效要求事务类型输入类型输入取款额请求处理事务请求处理分行事务分行事务成功事务成功吐出现金请求拿走现金拿走现金请求继续此事务结束印帐单退卡请求拿走卡拿走卡显示主屏幕储户ATM总行分行例:例:ATM系统的正常情况脚本的系统的正常情况脚本的ETD第64页/共166页画状态图(eventflowdiagram)从ETD出发:Event2Event1Actio

25、nStatusClass-&-Object每个具有交互行为的class-&-object对应一张图。Event1Statusdo:ActionEvent2建立建立 Dynamic Model第65页/共166页状态图状态和事件的网络,侧重描述每一类对象的动态行为。动态模型动态模型第66页/共166页DFD+IPO+Pseudocode必要时对功能进行文字描述功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。5.5.建立建立 Function Model第67页/共166页建立数据字典建立数据字典为所有模型实体准备一个数据字典,精确描述每一

26、个对象类,包括:成员约束关联、属性、操作第68页/共166页基于三个模型的分析步骤基于三个模型的分析步骤需求陈述对象建模动态建模功能建模添加操作反复建模第69页/共166页软件生命周期软件生命周期需求分析、系统设计、系统实现、测试与维护。第70页/共166页OMT支持整个软件生命周期支持整个软件生命周期1.分析阶段:理解应用问题,建立对象模型、动态模型和功能模型,说明对象关联、控制流及数据变换。2.系统设计阶段:确定系统框架,考虑并发任务、通讯机制和数据存储策略。3.对象设计阶段:从实现的角度细化分析对象模型、动态模型和功能模型4.实现阶段:具体代码实现第71页/共166页面向对象方法面向对象

27、方法 (Object-Oriented Methodology)第72页/共166页面向对象方法学面向对象方法学基本思想就是尽可能的模拟人认识世界的方式和思基本思想就是尽可能的模拟人认识世界的方式和思维方式,来分析和解决问题。维方式,来分析和解决问题。第73页/共166页OOMOOM的优点:的优点:传统方法:面向过程设计,以计算为核心,数据与操传统方法:面向过程设计,以计算为核心,数据与操作分离,不易理解。其开发过程如下:作分离,不易理解。其开发过程如下:第74页/共166页OOM:以object为核心,强调对现实概念的模拟而不强调算法。“面向对象方法学的基本原则,是按照人们习惯的思维方式建立

28、问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统”。Class:由特殊到一般的归纳(induction)Inheritance:由一般到特殊的演绎(deduction)OOMOOM的优点:的优点:第75页/共166页传统方法:结构依赖于功能,不稳定。OOM:以Object模拟实体,需求变化不会引起结构的整体变化,因为实体相对稳定,故系统也相应稳定。OOMOOM的优点:的优点:第76页/共166页传统方法:可维护性是最令人头痛的问题。OOM:从以下几方面改善了可维护性稳定性好:软件功能需求的变化不牵动全局,只需局部修改。Class独立性强:只要修改不涉及class的对外接口,则内部修

29、改完全不影响外部调用Inheritance和多态性使其很容易被修改和扩充,容易理解;容易测试、调试。OOMOOM的优点:的优点:第77页/共166页选择合适的开发模型Waterfall:需求稳定少变化;对环境较熟悉(低风险)用户很少参与开发;面向过程编程Spiral:需求可能在开发早期有变化;对环境较熟悉(中风险);用户不同程度地参与整个过程第78页/共166页Incremental:需求随时可能变化;对环境不熟悉(高风险)用户完全参与开发SA-SD-SP与Waterfallmodel有本质上的密切联系;OOP由可用于任何模型。OOM的工作重点在分析阶段,确定objects,此外,生命周期的各

30、阶段可以“无缝”连接。选择合适的开发模型选择合适的开发模型第79页/共166页OOMOOM的四要素:的四要素:对象对象(object):世界由对象组成。:世界由对象组成。类类(class):对象可划分为类;单个对象可视为:对象可划分为类;单个对象可视为某一类的实例某一类的实例(instance)。第80页/共166页继承(inheritance):类可分层,下层子类与上层父类有相同特征,称为继承。消息(message):对象间只能通过发送消息进行联系,外界不能处理对象的内部数据,只能通过消息请求它进行处理(如果它提供相应消息的话)。OOMOOM的四要素:的四要素:综上所述,面向对象的方法学可以

31、用下列方程来概括:OOM=Object+Class+Inheritance+Communicationwithmessages第81页/共166页Correlative relation:是是object间的关系间的关系教教 师师书书1+一对多一对多文文 件件用用 户户1+1+访问权访问权限限链属性链属性1+目目 录录文文 件件文件名文件名限限 定定发送发送者者接收接收者者发送消息以调用发送消息以调用第82页/共166页成绩 教师 学生 课程职称性别职务姓名教工号教课程号课名学时学分姓名学号学系年级性别1NMN用面向对象方法分析下图第83页/共166页要想对一个系统了解得比较清楚,还应当考察在

32、任何时刻对象及其关系的改变。系统的这些涉及时序和改变状况用动态模型来描述。动态模型着重于系统的控制逻辑。包括两个图,一是状态图,一是事件追踪图。2、Dynamic Model:表示系统瞬时的控制性质:表示系统瞬时的控制性质第84页/共166页三要素:事件(event):引发object状态改变的控制信息(瞬时)。状态(status):即object的attributes所处的情形(可持续)。行为(action):Object要达到某种status所做的操作(耗时)。2、Dynamic Model表示方法:表示方法:Event 0Event 0Status 1Status 1do:Action

33、do:Action 1 1Status 2Status 2do:Action do:Action 2 2Event 1Event 1Event 2Event 2StartStartEndEndCondition Condition 11注:当描述循环运行过程时,通常不关心是怎样启动的。注:当描述循环运行过程时,通常不关心是怎样启动的。第85页/共166页状态图状态图状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为。在状态图中,状态是对某一时刻中属性特征的概括。而状态迁移表示这一类对象在何时对系统内外发生的哪些事件做出何种响应。Event 0Event 0Status 1Status

34、 1do:Action 1do:Action 1Status 2Status 2do:Action 2do:Action 2Event 1Event 1Event 2Event 2StartStartEndEndCondition 1Condition 1第86页/共166页动态模型由多个状态图组成。对于每一个具有重要动态行为的类都有一个状态图,从而表明所有系统活动的模式。各个状态图并发地执行,并可以独立地改变状态。各种类的状态图可以通过共享事件组合到一个动态模型中。状态图状态图第87页/共166页闲闲 置置拨拨 号号通通 话话断断 线线拨号音拨号音do:do:响拨号音响拨号音超超 时时do:

35、do:响蜂鸣音响蜂鸣音存储的信息存储的信息do:do:播放信息播放信息接通中接通中do:do:试接通试接通振振 铃铃do:do:振振 铃铃忙忙 音音do:do:响忙音响忙音拿起听筒拿起听筒数字数字数字数字有效号码有效号码已接通已接通受话人回话受话人回话受话人挂断电话受话人挂断电话挂断电话挂断电话超超 时时挂断电话挂断电话超时超时无效号码无效号码信息播完信息播完占占 线线例:例:电话的电话的 状态图状态图第88页/共166页事件追踪图事件追踪图事件追踪图侧重于说明发生于系统执行过程中的一个特定“场景”。场景也叫做脚本,是完成系统某个功能的一个事件序列。场景通常起始于一个系统外部的输入事件,结束于

36、一个系统外部的输出事件,它可以包括发生在这个期间的系统所有的内部事件。第89页/共166页 打 电 话 者 拿 起 电 话 受 话 器 电 话 忙 音 开 始 打 电 话 者 拨 数 字(8 8)电 话 忙 音 结 束 打 电 话 者 拨 数 字(2 2).打 电 话 者 拨 数 字(3 3)接 电 话 者 的 电 话 开 始 振 铃 铃 声 在 打 电 话 者 的 电 话 上 传 出 接 电 话 者 回 答 接 电 话 者 的 电 话 停 止 振 铃 铃 声 在 打 电 话 者 的 电 话 中 消 失 通 电 话 .第90页/共166页第91页/共166页状态图与事件追踪图的关系状态图与事件

37、追踪图的关系状态图叙述一个对象的个体行为,事件追踪图则给出多个对象所表现出来的集体行为。它们从不同侧面来说明同一系统的行为。例如,一个事件追踪图指出某一对象在接受一个事件之后发出另一事件,同一行为在此对象的状态图中也应当有所表示。第92页/共166页表示方法:数据流图(DFD)功能模型表明,通过计算,从输入数据能得到什么样的输出数据,不考虑参加计算的数据按什么时序执行。功能模型由多个数据流图组成,它们指明从外部输入,通过操作和内部存储,直到外部输出,这整个的数据流情况。3、Function Model:表明系统应该做什么第93页/共166页功能模型中所有的数据流图往往形成一个层次结构。在这个层

38、次结构中,一个数据流图中的过程可以由下一层的数据流图做进一步的说明。一般来讲,高层的过程相应于作用在聚合对象上的操作,而低层的过程则代表作用于一个简单对象上的操作。数据流图中允许加入控制流,但这样做将与动态模型重复,不提倡夹带控制流。3、Function Model第94页/共166页4 4、三者关系、三者关系功能模型功能模型FM:做什么:做什么 What动态模型动态模型DM:何时做:何时做 When 对象模型对象模型OM:操作的实体:操作的实体How第95页/共166页结构化设计结构化设计 概要设计概要设计&详细设计详细设计第96页/共166页结构化设计结构化设计(1)概要设计(总体设计)确

39、定软件的结构以及各组成成分(子系统或模块)之间的相互关系。(2)详细设计 确定模块内部的算法和数据结构,产生描述各模块程序过程的详细文档。第97页/共166页系统结构归为两种典型形式系统结构归为两种典型形式变换型结构事务型结构数据流图可分为两种类型 变换型数据流事务型数据流第98页/共166页变换中心输入输出变换型结构由输入、变换中心和输出三部分组成基本模型特征基本模型特征变换型结构由3个部分组成:传入路径(Afferent Path),变换中心(Transform Center)和传出路径(Efferent Path)。流经这3个部分的数据流,分别称为传入流、变换流和传出流。第99页/共16

40、6页事务中心接受路径动作路径事务型结构具有在多种事务中选择执行某类事物的能力。基本模型特征基本模型特征事务型结构由至少一条接受路径(Reception Path)、一个事务中心(Transaction Center)与若干条动作路径(Action Path)组成。这类系统的特征是:具有在多种事务中执行某类事务的能力。第100页/共166页变换中心输入输出变换型结构事务中心接受路径动作路径事务型结构由输入、变换中心和输出三部分组成具有在多种事务中选择执行某类事物的能力基本模型特征基本模型特征第101页/共166页基本模型基本模型变换型数据流 结构事务型数据流 结构传入变换传出变换中心传入部分传出

41、部分事务分析事务中心动作1 1动作3 3接受接受部分动作2 2第102页/共166页变换型数据流举例变换型数据流举例输入信息物理输入格式检查处理显示正确信息结果物理输出数据变换中心逻辑输入逻辑输出传入部分传出部分特点:具有明确的传入、变换(或称主加工)和传出界面的DFD第103页/共166页面向数据流方法的设计过程面向数据流方法的设计过程精化数据流图区分事务中心和数据接收路径映射成变换结构流类型流类型区分输入和输出分支映射成事务结构用启发式设计规则精化软件结构导出接口描述和全程数据结构复查复查详细设计“事务”“变换”事务分析事务分析变换分析变换分析第104页/共166页面向数据流设计方法的设计

42、步骤面向数据流设计方法的设计步骤(1)精化DFD(2)确定DFD类型(3)把DFD映射到系统模块结构设计出模块结构的上层(4)基于DFD逐步分解高层模块设计出下层模块(5)根据模块独立性原理,精化模块结构(6)模块接口描述第105页/共166页SDSD两种映射方法两种映射方法变换型DFD图事务型DFD图初始SC初始SC变换分析事务分析第106页/共166页测 试测试步骤测试方法结构测试(单元测试、基本路径测试)功能测试(等价划分法、边界值分析法)调试主要内容主要内容第107页/共166页 软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序内部结构而精心

43、设计的一批测试用例(即输入数据及预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。测 试(Testing)第108页/共166页测 试(Testing)第109页/共166页测 试(Testing)第110页/共166页测 试测试步骤测试方法结构测试(单元测试、基本路径测试)功能测试(等价划分法、边界值分析法)调试主要内容主要内容第111页/共166页测试步骤测试步骤(1)Component testing program design&coding bugs(2)Subsystem testing connections between modules(3)System

44、testing requirements&system design(4)Acceptance testing customer joins in(5)Parallel running compare the new system with the old one.第112页/共166页测 试测试步骤测试方法结构测试(单元测试、基本路径测试)功能测试(等价划分法、边界值分析法)调试主要内容主要内容第113页/共166页测试方法测试方法测试是为了发现程序中的错误而执行程序的过程。注意:只能尽可能查错,不能证明程序中没有错;测试员与程序员不应是同一个人。2、黑盒和白盒测试第114页/共166页黑盒

45、测试(black-box,orclosed-boxtesting)Make sure that every kind of input is submitted,and the output observedmatchestheoutputexpected.-Functionaltesting白盒测试(white-box,oropen-box,clear-boxtesting)Usethestructureoftheprogramtotest.-Structuraltesting主要问题:穷尽测试(completetest)通常是不可能的。测试方法测试方法第115页/共166页白盒测试的内容对

46、程序模块的所有独立执行路径至少测试一次对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测试一次。在循环的边界和运行边界限内执行循环体 测试内部数据结构的有效性。白盒测试白盒测试第116页/共166页单元测试(白盒)单元测试(白盒)主要测试以下五个方面:1、模块接口:内部检查:传输参数的数目、属性、单位、次序是否匹配;全程变量的定义是否一致;只做输入的变元有无被修改,等等。外部检查:打开、结束、关闭文件的操作;文件和属性;IO错误处理;输出拼写,等等。2、局部数据结构:数据说明(declaration);初始化与缺省值的设置;变量名拼写;数据类型的相容性;上下溢出及地址异常,等。第117页

47、/共166页3、重要的执行通路:由于穷尽测试不可能,故通常针对最常见的错误设计测试方案。较常见的错误有:计算次序问题不同类型混合运算(例:比较类型不同的量)初值设置错误精度问题(例:精度不够导致两变量不可能相等,而程序中等待相等条件的出现)表达式错误单元测试(白盒)单元测试(白盒)第118页/共166页4、出错处理通路:预见出现错误的条件,设置处理。较常见的问题有:输出的错误信息难以理解,不能确定错误位置 描述的错误与实际错误不符 处理之前系统已经干预 处理不正确5、边界条件-单元测试中最后,也可能是最重要的任务,因为软件常在其边界失效。单元测试(白盒)单元测试(白盒)第119页/共166页1

48、、代码审查(CodeInspection)例如LucentTechnologies的测试策略,是由三人一组(包括author,reader和recorder),逐行检查源代码。Rehearsal:由人扮演computer,模拟执行情况。优点是一次审查可发现多个错误,不必改一个测一个。2、制做测试软件:Stub(存根)和Driver(驱动)软件的编写,属额外开支。模块高内聚可简化这一过程。单元测试的主要手段单元测试的主要手段 第120页/共166页集成测试集成测试(Integration Testing)1 1、非渐增式测试、非渐增式测试 (Big-bang(Big-bang testing)t

49、esting)Test A,B,C,DTestATestBTestCTestD第121页/共166页两种方式的比较:Incrementaltesting可以较早发现模块间的接口错误;Big-bangtesting 最后才组装,因此错误发现得晚。Big-bangtesting中发现错误后难以诊断定位;Incrementaltesting中,出现的错误往往跟最新加入的模块有关。Incrementaltesting 在不断集成的过程中使模块不断在新的条件下受到新的检测,测试更彻底。Incrementaltesting较 Big-bangtesting 费时。Big-bangtesting 可以同时并

50、行测试所有模块,能充分利用人力渐增式测试渐增式测试 (Incrementaltesting)第122页/共166页Top-downtesting第1步:测试顶端模块,用存根程序(stub)代替直接附属的下层模块Stub:tosimulatetheactivityofthecomponentwhichisnotyettested.Incremental testing 的几种策略的几种策略M MS S1 1S S2 2第123页/共166页第2步:根据深度优先或宽度优先的策略,每次用一个实际模块代换一个stub。第3步:在结合进一个模块的同时进行测试。第4步:回归测试(regressiontes

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁