软件工程复习_第1页
软件工程复习_第2页
软件工程复习_第3页
软件工程复习_第4页
软件工程复习_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程复习第一章软件配置主要包括程序、文档和数据等成分。因此,软件开发不一定是写代码。程序能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。软件工程是指导计算机软件开发和维护的一门工程学科。软件工程的基本原理用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能能清楚地审查开发小组的人员应该少而精承认不断改变软件工程实践的必要性软件生命周期有哪几个阶段问题定义2)可行性研究3)需求分析4)总体设计5)详细设计6)编码和单元测试7)综合测试8)软件维护软件维护有哪些:改正维护:也就是诊断和改正在使用过程中发现的软件错误;适应性维护:即修改软件以适应环境的变化;完善维护:即根据用户的要求改进或扩充软件使它更完善;预防性维护:即修改软件,为将来的维护活动预先做准备。模型6.1瀑布模型瀑布模型最重要的特点:只有当一个活动完成、交付相应的文档、通过审查小组的审查合格后,才能开始下一个活动。瀑布模型的优点:1)为项目提供了按阶段划分的检查点;2)当前一活动完成后,只需要去关注后续活动;3)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。瀑布模型的缺点:1)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;2)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;3)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。6.2快速模型特点:本质是开发出系统的原型,以便让用户确认什么是真正的需求,一旦用户确认了需求,原型将被抛弃。优点:1)客户和开发者可以通过原型快速对需求达成一致,明确一致的需求对软件设计和实现具有重要作用;2)克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。缺点:有时开发组织对快速建立的原型舍不得抛弃,由此可能带来快速原型化模型的两个缺点:1)所选用的开发技术和工具不一定符合主流的发展;2)快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。6.3增量模型特点:从一组给定的需求开始,通过构造一系列可执行的软件构件来实施开发活动,以增量方式逐步完善待开发的软件。当一个新的构件被编码和测试后,并入到软件系统结构中,然后将该结构作为一个整体进行测试。这个过程不断循环往复直到软件系统达到要求的功能为止。优点:1)能在较短时间内向用户提交可完成一些有用的工作产品,即从第1个构件交付之日起,用户就能做一些有用的工作。2)逐步增加产品的功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给用户组织带来的冲击。3)对系统的可维护性是一个极大的提高,因为整个系统是由一个个构件集成在一起的,当需求变更时只变更部分构件,而不必影响整个系统。缺点:1)增量模型要求设计者必须站在整个系统的角度,对系统的构架进行良好的设计,否则,可能会出现各个构件不能集成在一起的风险。至始至终开发者和客户必须在一起,直到完全版本出来。6.4螺旋模型简化的螺旋模型完整的螺旋模型特点:沿螺旋线自内向外每旋转一圈便开发出更为完善的一个新的软件版本。优点:1)对于大型系统及软件的开发,这种模型是一个很好的方法。开发者和客户能够较好地对待和理解每一个演化级别上的风险。2)需要相当的风险分析评估专门技术,比较复杂。缺点:螺旋模型是风险驱动的,因此要求软件开发人员必须具有丰富的风险评估经验和这方表1组成数据流图的元素可以从描述问题的信息中提取源点/终点处理采购员仓库管理员产生报表处理事务数据流数据存储订货报表零件编号零件名称订货数量目前价格主要供应者次要供应者事务零件编号事务类型数量订货信息库存清单零件编号库存量库存量临界值0层图1订货系统的功能级数据流图D1D1库存清单库存清单库存清单1处理事务2产生报表1处理事务2产生报表仓库管理员采购员事务仓库管理员采购员事务订货信息订货信息订货信息订货信息D2D2订货信息1层

图2把处理事务的功能进一步分解后的数据流图D1D1库存清单库存清单库存清单1.3处理订货21.3处理订货2产生报表1..2存清单1.1接收事务订货报表库存信息采购员订货报表库存信息采购员事务仓库管理员订货信息订货信息订货信息订货信息D2D2订货信息2层练习题2:银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员输入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。(以下仅供参考)(1)识别外部实体及输入输出数据流。外部实体:输入数据:如果需要储户输入密码,储户才直接与系统进行交互。储户填写的存款或取款信息通过业务员键入系统,可以将存款及取款信息抽象为事务。输出数据:存款单、利息清单(2)画出环境图(顶层数据流图)画出一层数据流图画出二层数据流图对一层图中的“处理存款”及“处理取款”进行进一步分解,得到二层数据流图,即处理存款的数据流图和处理取款的数据流图。处理存款的数据流图处理取款的数据流图数据字典数据字典最主要的用途是供人查阅对不了解的条目的解释。基本元素:1)数据流2)数据流分量(即数据元素)3)数据存储4)处理练习题:北京某高校可用的电话号码由以下几类:校内电话号码由4位数字组成,第一位数字不是零;校外电话又分为本市电话和外地电话两类,拨校外电话先拨0,若是本地电话再接着拨8位数字(固话第一位不是0)或11位数字(移动电话第一位为1);若是外地电话,则拨3位区码再拨8位电话号码(固话第一位不是0),或拨0再拨11位数字(移动电话第一位为1)。请用数据定义的方法,定义上述电话号码。

高校电话=[校内电话|校外电话]校内电话=非零数字+3位数字校外电话=[本市电话|外地电话]本市电话=0+非零数字+7位数字外地电话=0+3位区码+非零数字+7位数字3位区码=3{数字}37位数字=7{数字}7非零数字=[1|2|3|4|5|6|7|8|9]数字=[0|1|2|3|4|5|6|7|8|9]成本效益练习题:设计一个成本开发为50000元,寿命为3年。未来3年的每年收益预计为22000元、24000元、26620元。银行年利率为10%,不计复利。试对此项目进行成本效率分析,以决定其经济可行性。存银行:50000×(1+3×10%)=65000开发软件:22000×(1+2×10%)+24000×(1+1×10%)+26620=79420需求分析需求分析的任务确认对系统的综合要求功能需求性能需求可靠性和可用性需求出错处理需求接口需求约束逆向需求将来可能提出的要求分析系统的数据要求导出系统的逻辑模型修正系统开发计划与客户沟通获取需求的方法访谈面向数据流自顶向下求精简易的应用规格说明技术快速建立软件原型状态转换图3.1在状态图中定义的状态主要有初态(即初始状态)、终态(即最终状态)和中间状态。在一张状态图中只能有一个初态,而终态则可以有0至多个。3.2事件触发条件:练习题复印机工作过程:未接到复印命令处于闲置状态,一旦接到复印命令进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接受复印命令;如果复印机发生卡纸状态,发出警告,等待维修人员来排除故障,故障排除后回到闲置状态。排除故障排除故障卡纸Do警告卡纸Do警告复印命令闲置复印复印命令闲置复印do复印缺纸Do警告缺纸Do警告完成命令完成命令装满纸装满纸总体设计目的:总体设计的基本目的就是回答“概括地说,系统该如何实现”这个问题,因此总体设计又称概要设计或初步设计。必要性:可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用最低成本开发出较高质量的软件系统。总体设计过程通常由两个主要阶段组成:系统设计阶段:确定系统具体实现方案结构设计阶段:确定软件结构设计原理模块化2)抽象3)逐步求精4)抽象信息隐藏和局部化5)模块独立高内聚和低耦合耦合内聚耦合度按从强到弱的顺序可分为几种类型:(6)独立耦合:模块间没有信息传递时,属于非直接耦合(5)数据耦合:指两个模块彼此交换数据(两个模块间的通讯信息是若干参数,其中每一个参数都是一个数据元素)(4)控制耦合:一个模块在界面上传递一个信号(如开关值、标志量等)控制另一个模块,接收信号的模块的动作根据信号值进行调整,称为控制耦合。(3)特征耦合:介于数据耦合与控制耦合之间。当把整个数据结构作为参数传递而被调用的模块是需要其中一部分数据元素时。(2)公共耦合:两个以上的模块共同引用一个全局数据项(1)内容耦合:当一个模块直接修改或操作另一个模块的数据或者直接转入另一个模块时,就发生了内容耦合。内聚度按强度从低到高有以下几种类型:(1)偶然内聚:模块内的各个任务没有什么有意义的联系,它们之所以能构成一个模块完全是偶然的原因。(2)逻辑内聚:几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。(3)时间内聚:如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。(4)过程内聚:如果一个模块内部的处理成份是相关的,而且这些处理必须以特定的次序执行,则称为过程内聚。(5)通信内聚:如果一个模块的所有成份都操作同一数据集或生成同一数据集,则称为通信内聚。(6)顺序内聚:如果一个模块的各个成份和同一个功能密切相关,而且一个成份的输出作为另一个成份的输入,则称为顺序内聚。(7)功能内聚:模块的所有成份对于完成单一的功能都是必须的,则称为功能内聚。题型:以下哪种内聚最强,耦合最弱?启发规则改进软件结构提高模块独立性模块规模应该适中深度、宽度、扇出和扇入都应该适当模块的作用域应该在控制域之内力争降低模块接口的复杂程度设计单入口单出口的模块模块功能应该可以预测

数据仪表板系统的数据流图具有边界的数据流图详细设计目标:详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成某种程序设计语言书写的程序。N-S图和PAD图练习题STARTIFATHENX1DOUNTILBELSEX2YENDIFZSTOPN-S图AFTAFTX1X2UNTILBYZSTARTPAD图STARTX1FTZYX2UNTILBASTOPX1FTZYX2UNTILBASTOP 实现测试人员要及早介入,测试计划/用例要早点写通常把编码和测试称为实现。编码是对设计的进一步具体化,因此程序的质量主要取决于软件设计的质量。一个程序的测试与什么有关?设计测试的目的:在软件投入生产性运行之前,尽可能多地发现软件中的错误。测试没问题后不能立即给用户使用。测试之后还要试运行,在试用时发现问题再修改。编码风格都用全局变量好还是都用临时变量好注释越多越好,越详细越好。软件测试基础V模型:描述软件开发各阶段与测试策略之间的对应关系。测试分类:单元测试,集成测试,白盒测试,黑盒测试白盒测试7.1适用场合:白盒测试主要用于对模块的测试,包括:程序模块中的所有独立路径至少执行一次对所有逻辑判定的取值(“真”与“假”)都至少测试一次在上下边界及可操作范围内运行所有循环测试内部数据结构的有效性等7.2分类:常用的白盒测试方法有:逻辑覆盖测试基本路径覆盖测试数据流测试循环测试语句覆盖(重点掌握)黑盒测试8.1适用场合:黑盒测试可用于各种测试,它试图发现以下类型的错误:不正确或遗漏的功能接口错误,如输入/输出参数的个数、类型等数据结构错误或外部信息(如外部数据库)访问错误性能错误初始化和终止错误8.2分类:主要的黑盒测试方法有:等价类划分边界值分析比较测试错误猜测因果图测试用例(会写)测试数据和预期的输出结果称为测试用例。练习题:这个是黑盒测试注册测试用例功能描述:注册编号输入/动作期望的输出/相应实际情况1用户名和密码在【最小值,最大值】之间,进行注册注册成功2用户名和密码为【最大值】进行注册注册成功3用户名和密码为【最小值】进行注册注册成功4必填项分别为空注册显示必填项提示信息5用户名长度【最大值】+1,进行注册显示用户名长度验证提示信息6用户名长度【最小值】-1,进行注册显示用户名长度验证提示信息7密码长度【最大值】+1,进行注册显示密码长度验证提示信息8密码长度【最小值】-1,进行注册显示密码长度验证提示信息9用户名含有非法字符注册显示用户名字符验证提示信息10密码含有非法字符注册显示密码字符验证提示信息11两次输入秘密不一致进行注册显示两次输入密码不一致提示信息12以已经注册的用户名进行注册显示用户名已存在提示信息13改变已存在用户的用户名的大小写进行注册根据需求量看是否区分大小写登录测试用例功能描述:登录编号输入/动作期望的输出/相应实际情况1使用合法用户名和密码登陆登陆成功2使用错误的用户名和密码登陆显示用户名或密码错误信息3改变合法用户名或密码的大小写登陆显示用户名或密码错误信息4用户名为空登陆显示输入用户名或密码5在合法用户或密码前插入空格显示用户名或密码错误信息6在合法用户名或密码中间插入空格显示用户名或密码错误信息7在合法用户名或密码后插入空格显示用户名或密码错误信息8使用已被禁用的帐号登陆显示帐号被禁用等相应提示信息9使用已删除的帐号登陆显示不存在此用户等相应提示符10登陆界面是否支持快捷键,如Tab,Enter健Tab健能按照顺序切换焦点,Enter健能焦点于登陆按钮上11密码为空进行登陆显示输入密码,密码不能为空提示信息12用户名和密码均为空登陆显示请输入用户名和密码提示符13用户名中含有全角字符登陆显示用户名或密码错误提示信息14密码中含有全角字符登陆显示用户名或密码错误提示信息修改密码测试用例功能描述:修改密码编号输入/动作期望的输出/相应实际情况1新密码长度在【最小值,最大值】之间,进行修改修改成功2新密码长度为【最大值】,进行修改修改成功3新密码长度为【最小值】,进行修改修改成功4不输入旧密码进行修改显示未输入旧密码提示信息5输入错误的旧密码进行修改显示旧密码输入错误提示信息6新密码输入为空进行修改显示未输入新密码提示信息7重复新密码输入为空进行修改显示旧密码输入错误提示信息8新密码与重复密码不一致进行修改显示两次密码输入不一致提示信息9新密码长度为【最大值】+1,进行修改显示密码长度验证提示信息10新密码长度为【最小值】-1,进行修改显示密码长度验证提示信息11新密码中输入非法字符进行修改显示密码字符验证提示信息软件可靠性和可用性区别软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。软件可用性是程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。维护软件维护的定义:所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。分类:非结构化维护和结构化维护。面向对象方法学引论概念:对象:在应用领域中有意义的、与所要解决的问题有关系的任务事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西类类就是对具有相同数据和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论