《软件工程复习(精品).ppt》由会员分享,可在线阅读,更多相关《软件工程复习(精品).ppt(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 软件工程 复习讲解软件工程软件工程 Software Engineering 软件工程是采用工程的概念、原理技术方法来指导计算机软件开发和维护的工程学科。软件工程是一门新兴的科学,我国80年才发展它,包括了计算机科学、管理科学、经济学、通讯技术及心理学。软件工程包含各方面的技术:1).软件开发与维护技术 2).软件质量及质量评估技术 3).软件管理技术 4).软件支撑环境(软件开发工具与软件开发环境)1968年北大西洋协约组织的计算机科学家在德国召开的国际会议上,正式提出并使用了“软件工程”的概念。此会议上,Dijkstra提出结构化程序设计思想及方法。二、基本概念二、基本概念 1)程序:为
2、了完成预定的功能编排的一系列的步骤 (利用指令或语句编写)2)软件:早期说法,软件就是程序。这是不完善的,而软件 确切定义:程序附加文档(Document)。即软件=程序+文档;而文档是主要的,本质的。3)文档:软件在开发与维护过程中所使用的一切文书、资料 一般分为三类。A.规格说明书:这类文档主要是用来在开发各阶段之 间传递信息,起承上启下的指导作用。即上一阶段的输出 作为下一阶段的输入。它包含需求规格说明书,设计规格 说明书,程序规格说明书等。B.说明书类:说明书这类文档与程序一起构成软件产品 如用户手册,系统维护手册等。C.分析报告书:这类文档是记录开发经过的文档。即开发过程中的讨论、评
3、价、实验等。它对系统的 推广教育维护起很大的作用。文档是软件不可缺少的一部分,它的目的是向他人传达该系统的有关软件的内容。即起通信作用,另一个目的是把系统分析员,设计员等头脑中考虑的想法以正确的形式表现出来 4).软件可靠性:可靠性:在一定条件下,在一定期间内功能完成所需概率的 性质。含义:条件下与环境有关。在一定期间与用户所须功能有关 可靠度是一个概率 b.加工 c.文件 d.源点 4.由外向内画数椐流图(例:图书予定系统 另图)及自顶向下逐层画数据流图(分层数据流图)基本思想:分解、抽象 层次分解:顶层、底层、过渡层(中间层)P/28 图3.1 基本步骤:1)把基本系统模型加上源点及终点作
4、为顶层 2)画出各层数据流图。例:P/36 修改主文件 3)画数据流图时几个注意的问题 P/37 .分层数椐流图分层数椐流图分为顶层,中间层、底层三部分顶层:系统的外貌,与输入输出之间关系 中间层:又称为过渡层,根据问题的复杂程又可分为多层,但一般不超过5-7层底层:基本加工(不可再分解)例:修改主文件 P/36画数据流图时几个注意的问题 P/37 *父图与子图 :说明上下层之间关系,它们是相对而言。*平衡(数椐守恒):在分解过程中,不允许添加或减少输入/出的内容,但允许改变。如I=i1+i2+.O=o1+o2+.p/38图3.16 3.17 *编号:说明加工的顺序及所在的层次位置,以园点隔开
5、。例:0层编号为:1、2、3。一层为1.1、1.2、1.3。二层为1.1.1、1.1.2、1.1.3。依此类推。*局部文件:根椐问题需要它出现在相应的层次。它在整个图中均存在。P/39 图3.184)分解的深度与层次:上层分解,要快、果断。下层分解,要慢、慎重。一般为57层。.数据词典P/44 5.数据词典:数据流图只描述系统的“分解”,它没有表达出各 数据和加工的目具体含义。它对数据图中的有名(数据流、加工、文件)进行定义。数据词典由四种条目汇集构成即:数据流条目、数据项条目、加工条目、文件条目。定义中的符号:“+”表示“与”;“|”表示“或”;表示重复;()表示选择;m.n 表需界域。*数
6、据流条目有:旅客 =姓名+地址+电话号码 学生 =姓名+班级+进修选课 进修课程 =课程名+教师+教材+课程表 课程表=星期几+第几节+教室 *数据单项条目:年级=1|2|3|4 或 年级=1.5 准考证号=0001.9999 *文件条目 组成:航班目录文件=航班号+起点+终点+时间 组织:按航班号次序排列 *加工条目 (即小说明)P/50 小说明:描述一个加工“做什么”,即加工逻辑、以及有关 信息,执行条件,优先级,执行频率,出错处理等。手段:描述一个加工的工具 1)结构化语言,即半形式化语言(分为内外两层 P/51);外层:三种基本结构(顺序、分支、循环)。内层:自然语言(英语、中文)2)
7、判定表P/55;判定树 (又称为图)P/56需求分析可分为四个阶段 1)调查研究:了解系统需求、市场调查、访问用户、考察现。2)确定系统的需求 功能需求,性能需求,可靠性需求,安全保密性需求,资源需 求,开发费用及项目进展需求。3)描述需求规格说明书(数据流图 及数据词典)要求深刻清晰、准确的描述。理论上、技术上无二义性,有限制的描述。4)复审:对功能正确性、完整性、以及需求评价。*实例CMIS规格说明书(干部管理系统)1、概述:CMIS是对干部信息进行检索、统计、制表、增加、删除、修改以及内部调动等管理。(工作范围、任务、资源进度已在CMIS计划任务书规定,本规格书给出全面的数据分析)2、数
8、据流分析:2.1、顶层数据流图:(1)数据流图 干部科干部信息管理CMIS干部信息系统命令干部科统计信息人事表格检索情况 (2)数据流描述(词典)系统命令=检索命令|统计命令|维护命令|打印命令 干部信息=输入信息|检索项|统计项|维护项|打印项 2。2、第0层数据流图(3)检索命令检查命令合法性1命令类型处理2数据库维护3统计4检索5打印6系统命令合法命令维护命令统计命令打印命令打印项非法命令检索项统计项维护项干部信息文件(1)统计信息(3)检索情况人事表格 2.3、第一层数据流图 (1)数据流图:3.1维护类型处理3.2增加干部信息3.3修改3.4索引数据库干部文件维护命令增加命令修改命令
9、索引命令修改项输入信息索引项索引文件6.1打印类型处理6.3打印部门花名册6.2打印全体花名册6.5打印个人卡片6.4打印简明登记表 干部信息文件打印命令打印全体花名册命令打印部门命令打印简明命令打印个人卡片命令打印项全体花名册部门编号打印项部门花名册固定项简明表特征项个人卡片 2.4、第二层数据流图 1、数据流图3.3.1修改类型处理3.3.4修改干部信息3.3.3撤消信息3.3.2内部调动干部信息文件修改命令部门编号死亡或调出修改项第四章第四章 设计阶段设计阶段 软件设计是从需求规格说明书出发,形成软件设计方案的过程,它分为总体设计(外部设计)和详细设计(内部设计)。总体设计决定系统的模块
10、结构:即 *系统分为多少模块 *模块的功能,模块间的调用,模块间数据传递以及如何评价模块的质量ACBA1B2B1A2Hxy,z顺序顺序选择重复一、结构化设计(一、结构化设计(SD)方法方法 1.基本思想 *模块:具有输入和输出、功能、内部数据、程序代码等 4 个特征,要求相对独立,功能单一。P/66 *模块独立性两个定性的量度标准:内聚(也称块内联系)和耦合(称块间联系),而设计目标尽量达到高内聚,低耦合。*模块间联系的各种类型(从三个角度衡量)P/71 1)方式:联系通过怎样方式进行;2)作用:块间共同信息是做什么用的;3)数量:块间共用信息多少。块间联系由大到小列为五种类型:内容型、公共型
11、、控制型、复合型、数据型。模块联系从上到下确定紧密程度模块间联系方式:1.内容联系(直接调用)2.外部联系(调用公共模块)3.控制联系(开关控制)4.数椐联系(参数传递)模块间联系作用:1.既有控制作用又有数椐作用2.仅有控制作用3.仅有数椐作用数椐联系:参数多少确定联系紧密程度模块内联系:由小到大列为六种类型(P/76)1.偶然联系:模块内的功能元素无意义上的关联性,可随时分为几块。例:OS中的初始化模块。2.逻辑联系:从一连串关连性的功能选择某一功能执行,调用时使用代码开关。例:主控模块、windows主界面。3.瞬时联系:这类联系与同时间有关,即模块中所有成份因需要同时执行。例:中断处理
12、(关闭文件、保留现场、报警)。4.通讯联系:模块中的成份引用同样的数椐。5.顺序联系:指模块中某个成份的输出是另一成份的输入。6.功能联系:一个模块包括并仅包括为完成某一具体任务所必需的所有成份。例:计算 Ax2+BX+C=o 的两个根。2.设计准则:P/91 以上述内容为理论基础,求精和复审的依据。*通过模块的分解和合并,减少块间联系,增加块内联系 *模块调用最好不超过五个:*一个模块的作用范围应在这个模块的控制范围内 *力求单入口、单出口 *模块大小以页为宜 3.结构化设计技术从数据流图导出的数据结构图P/94 1)数据流图类型标准类型 变换型数据流图:具有明确的输入、输出及加工(变换)三
13、个界 面的数据流图。事务型数据流图:某一加工将它的输入分离成一串平行的数据流,然后根据输入值选择某一路径进行。此加工称为事务中心。变换型数据流图格式检查打印数据计算汇费汇款单物理输入合格汇款单核准汇款单数据物理输出逻辑输入逻辑输出 事务型数据流图要求类型处理退房处理调房处理分房处理用户要求事务中心分房单调房单活动路径退房单 *实例 CMIS初始结构图(上属分析为事务型)CMIS主控模块数据库维护打印检索统计增加信息修改信息索引数据库单项统计多项统计多项检索打印全体打印部门打印简表打印个人卡片单项检索事务中心。新建插入追加内容调整删除修改个人信息打印数据条打印个人简表。服务模块文件(菜单模块)原
14、始数据文件(干部文件)报表文件(统计文件、中间文件)省缺 二、详细设计二、详细设计 考虑模块内部怎样做,即算法设计,数据结构设计,以及接口设 计,采用结构化程序设计方法(SP方法)。详细设计描述工具:1.框图,2.PAD图,3.N-S图(盒图),4.结构化语言(伪码)P/109116 例:P/109 图 4.58开始结束aX?b框图c框图a bc N-S 图axbcPAD 图 第五章第五章 编码阶段编码阶段一、基本概念一、基本概念1.所谓编码就是把软件详细设计的结果翻译成机器可以“理解”的形式,也就是采用某种程序设计语言书写程序。从描述客观系统的角度来看:程序设计语言可分为面向过程的语言和面向
15、对象的语言。(1)、面向过程的语言 以“数据结构+算法”程序设计范式构成的程序设计语言成为面向过程的语言。如:机器语言、汇编语言、高级语言(a.基础语言:BASIC FORTRAN b.结构化语言:PASCAL,C,LISP.)()、面向对象的语言以“对象消息”程序设计范式构成的程序设计语言。目前比较流行的语言:Visual BASIC(VB)、Visual Forpro(VF)、Delphi、C+、Java等他们具备了可视化的开发环境。例:例:Visual Foxpro不仅仍然支持面向过程化的程序设计,而且提供了面向对象的程序的强大功能和更大的灵活性。面向对象的程序设计方法与编程技术不同于标
16、准的过程化设计(既不从代码的第一行写到最后一行),它是以对象为中心来设计程序。每个对象都具有各自的属性、事件和方法。它关心的是对象的一些特征值和对象的动作进行控制。.面向对象的基本概念()对象()对象(Object)对象是(Object-Oriented)OO方法的核心,由于研究的领域不同,理解定义也不同。对象不仅能表示具体的实体,也能表示抽象的规则、计划或时间。对象的分类:对象的分类:a.有形的实体:指一切看的到的摸这着的实体,如飞机、房子等;b.作用:指人或者作用,如医生、学生起的作用;c.事件:在特定的时间内所发生的,如飞行事故;d.性能说明:对产品性能的全面说明。对象不仅能表示结构化的
17、数据,也能表示抽象的事件、规则。例如VF中表单、控件、数据库、表、查询、视图和报表都是对象。每个对象有自己的属性、事件和方法,它可以类似一个函数。()消息对象之间进行通信的一种构造叫消息:当一个消息发送给某个对象时,包括接收及相应的反映(响应)()类类的定义与对象大致相同,类包括方法和数据,描述一组对象的共同行为和属性,如窗口。一个类可以创建多个对象。类的特性a.封装性:类的封装性就是把类的特性及内部过程方法加以信息隐藏,全部封装在类的内部。b.继承性:继承性使得在一个类的特征反映到它的所有子类中。即父类同子类之间共享数据和方法的机制。继承还有单重继承和多重继承:单重继承:一个子类只有一个父类
18、。多重继承:一个子类可以多个父类。c.多态性:在收到消息时,对象要予响应,不同的对象收到同一个消息可以产生完全不同的结果,这一现象叫多态。ACDAB父类子类:C继承部分D 增加部分ABCDEF第六章第六章 测试阶段测试阶段 一、测试概念一、测试概念 1.什么是测试:为了保证程序的正碓性而进行的静态、动态测试。2.测试目的:为了保证程序的正碓性而尽可能多的找出隐含的错误。3.测试对象:需求规格书、设计文档、沅程序。4.测试信息流图 5.测试数据(用例)合理的测试数据、不合理的测试数据及预期的结果范围。6.穷举测试32 位zyx黑盒法232*232=264=20白盒法520=1014测试信息流图测
19、试文件测试评价建立可靠性模型排错测试结果预期结果预测的可靠性修正的文件错误结果出错率测试工具被测文件 二、黑盒法与白盒法二、黑盒法与白盒法 1.黑盒法(功能测试):通过测试来检验是否每个功能黑盒法(功能测试):通过测试来检验是否每个功能正常使用。正常使用。1)等价分类法:将所有可能绘输入的数据划分成若干个等价类(子类、子集),然后,选择用例进行测试。2)边缘值法:在上法测试基础上,对边缘值进行测试。3)因果图法:上述测试通过基础上,对其等价类进行随机或 顺序的组合,再进行测试。(注):上述均为动态测试。4)错误推测法:由有经验的专家及软件人员,对其软件在易发生错误的部分或关键部位、提出问题,解
20、决问题。此类方法能解决7090%的问题。(注):此法为静态测试。2.白盒法(逻辑测试):通过测试来检验是否产品内部动作是否 按规格说明书的规定正常进行。1)语句覆盖2)判定覆盖 3)条件覆盖4)判定/条件覆盖 5)条件组合覆盖 2.白盒法白盒法(逻辑测试):通过测试来检验是否产品内部动作是否(逻辑测试):通过测试来检验是否产品内部动作是否 按规格说明书的规定正常进行。按规格说明书的规定正常进行。P/147-151 1)语句覆盖:选择足够多的用例,使得被测程序的每条语句至少执行一次。2)判定覆盖:选择足够多的用例,使得程序可中每个判定至少获得一次真和假,从而 使得每一分支至少执行一次。3)条件覆
21、盖:选择足够多的用例,使得程序中每一个条件都能获得不同的结果。4)判定/条件覆盖:选择足够多的用例,使得判定表达式中每个条件都取得各种可能 的值,并且每个判定表达式也都取得各种可能的结果。5)条件组合覆盖:选择足够多的用例,使得每个判定中的条件的各种可能组合都至少出现一次。三、测试步骤三、测试步骤 *单元测试模块测试;*子系统测试模块接口的测试;*系统测试集成测试;*验收测试功能测试;*平行运行性能指标测试。*基本概念测试阶段的信息流 *软件配置:需求说明、设计说明和源程序等;*测试配置:测试计划(大纲)、测试方案等;1、单元测试 *测试单元模块的五个特征:*模块接口;*局部数据结构;*重要的
22、执行通路;*出错处理通路;*影响上述各方面特性的边界条件;2、集成测试 2。1、非渐增 测试软件多,开销大 接口错误发现晚 发现错误难诊断定位 单元测试有两次 节省机器时间 可并行测试 *宜权衡利弊,综合考虑 2。2、渐增 部分测试程序可利用,开销小 接口错误发现早 发现错误易诊断定位 多重测试 增加了测试时间 集成测试渐增方式 *自顶向下结合 先测试主控模块 3、验收测试 软件有效性功能和性能如同用户所合理期望的那样 验收测试的范围 测试以用户为主进行 与系统测试类似,但有区别 第七章第七章 维护维护*软件维护的定义;*可维护性;*维护的副作用维护的副作用 软件维护的定义软件维护的定义 软件
23、维护:在软件已经交付使用后,为了改正错误或满足新的需要而修改软件的过程.1.改正性维护:诊断和改正错误的过程。17-21%2.适应性维护:配合环境变化而进行的软件修改过程。18-25%3.完善性维护:增加新功能或修改已有功能的过程。50-66%4.预防性维护:为了给未来的改进奠定更好的基础而进行的软件修改过程。4%维护活动必须应用于整个软件配置,软件文档和软件可执行代码的维护同样重要。可维护性可维护性 软件的可维护性定义为:维护人员理解、改正、改动和改进这个软件的难易程度。提高可维护性是支配软件工程方法论所有步骤的关键目标。*决定软件可维护性的因素:可理解性:理解软件的结构、接口、功能和内部过程的难易程度。可测试性:理解软件的程度;良好的文档;软件结构及测试、调试工具;开发阶段的测试方案。可修改性:耦合、内聚、局部化、控制域与作用域的关系等,影响可修改性。维护的副作用维护的副作用 P/180 *编写程序副作用:删除或修改子程序、删除或修改语句标号、删除或修改标识符、修改文件的打开或关闭、修改逻辑算符、对边界测试所作的修改等。*数据副作用:重新定义全程量和局部量、重新定义记录格式和文件格式、修改 全程数据、重新初始化控制标志或指针等。*文档副作用:在开发的全过程中所有文档要求前后一致,否则将难以进行各类 的维护,后果影响极大。课程复习结束