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

下载本文档

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

文档简介

1、软件工程复习软件工程复习第一章1、软件配置主要包括程序、文档和数据等成分。 因此,软件开发不一定是写代码。2、程序能够完成预定功能和性能的可执行的指 令序列;数据是使程序能够适当地处理信息的数 据结构;文档是开发、使用和维护程序所需要的 图文资料。3、软件工程是指导计算机软件开发和维护的一 门工程学科。4、软件工程的基本原理1)用分阶段的生命周期计划严格管理2)坚持进行阶段评审3)实行严格的产品控制4)采用现代程序设计技术5)结果应能能清楚地审查6)开发小组的人员应该少而精7)承认不断改变软件工程实践的必要性5、软件生命周期有哪几个阶段1)问题定义2)可行性研究3)需求分析4)总体设计5 )详

2、细设计6)编码和单元测试7)综合测试8)软件维护软件维护有哪些:1)改正维护:也就是诊断和改正在使用过程中 发现的软件错误;2)适应性维护:即修改软件以适应环境的变化;3)完善维护:即根据用户的要求改进或扩充软 件使它更完善;4)预防性维护:即修改软件,为将来的维护活 动预先做准备。6、模型6.1瀑布模型瀑布模型最重要的特点:只有当一个活动完成、 交付相应的文档、通过审查小组的审查合格后, 才能开始下一个活动。瀑布模型的优点:1)为项目提供了按阶段划分的检查点;2)当前一活动完成后,只需要去关注后续活动;3)它提供了一个模板,这个模板使得分析、设 计、编码、测试和支持的方法可以在该模板下有 一

3、个共同的指导。瀑布模型的缺点:1)由于开发模型是线性的,用户只有等到整个 过程的末期才能见到开发成果,从而增加了开发 的风险;2)各个阶段的划分完全固定,阶段之间产生大 量的文档,极大地增加了工作量;3)早期的错误可能要等到开发后期的测试阶段 才能发现,进而带来严重的后果。6.2快速模型特点:本质是开发出系统的原型,以便让用户确 认什么是真正的需求,一旦用户确认了需求,原 型将被抛弃。优点:1)客户和开发者可以通过原型快速对需 求达成一致,明确一致的需求对软件设计和实现 具有重要作用;2)克服瀑布模型的缺点,减少由于软件需求不 明确带来的开发风险。缺点:有时开发组织对快速建立的原型舍不得抛 弃

4、,由此可能带来快速原型化模型的两个缺点: 1 )所选用的开发技术和工具不一定符合主流的 发展;2)快速建立起来的系统结构加上连续的修改可 能会导致产品质量低下。6.3增量模型特点:从一组给定的需求开始,通过构造一系列 可执行的软件构件来实施开发活动,以增量方式 逐步完善待开发的软件。当一个新的构件被编码 和测试后,并入到软件系统结构中,然后将该结 构作为一个整体进行测试。这个过程不断循环往 复直到软件系统达到要求的功能为止。优点:1)能在较短时间内向用户提交可完成一些 有用的工作产品,即从第1个构件交付之日起, 用户就能做一些有用的工作。2)逐步增加产品的功能可以使用户有较充裕的 时间学习和适

5、应新产品,从而减少一个全新的软 件可能给用户组织带来的冲击。3)对系统的可维护性是一个极大的提高,因为整 个系统是由一个个构件集成在一起的,当需求变 更时只变更部分构件,而不必影响整个系统。缺点:1)增量模型要求设计者必须站在整个系统 的角度,对系统的构架进行良好的设计,否则, 可能会出现各个构件不能集成在一起的风险。(2)至始至终开发者和客户必须在一起,直到完全 版本出来。6.4螺旋模型凤醴分忻快連点堕,严 * H喪代的需眾4擊fit笛证方爲盹隔制存W; F% !;啟的可商了贝柠片刑聲合测试简化的螺旋模型ts它线帀审丿杖件与 B&U _i t j 一Jfc :一;押曲I创14?/用域

6、j丿/青发、输遥" t-完整的螺旋模型特点:沿螺旋线自内向外每旋转一圈便开发出更 为完善的一个新的软件版本。优点:1)对于大型系统及软件的开发,这种模 型是一个很好的方法。开发者和客户能够较好地 对待和理解每一个演化级别上的风险。2)需要相当的风险分析评估专门技术,比较复 杂。缺点:螺旋模型是风险驱动的,因此要求软件开 发人员必须具有丰富的风险评估经验和这方面 的专门知识,否则将出现真正的风险:当项目实 际上正在走向灾难时,开发人员可能还以为一切 正常。6.5喷泉模型优点:该模型的各个阶段没有明显的界限, 开发 人员可以同步进行开发,可以提高软件项目开发 效率,节省开发时间,适应于面

7、向对象的软件开 发过程。缺点:1)由于该模型在各个开发阶段是重叠的, 在开发过程中需要大量的开发人员,因此不利于 项目的管理。2)该模型要求严格管理文档,使得审核的难度 加大,尤其是面对可能随时加入各种信息、需求与资料的情况7、V模型户需求分详细 单元编码&模型练习题练习题1假如要求你开发一个软件,该软件的 功能把读入的浮点数开平方,所得到的结果精确 到小数点后4位,一旦实现并试用后,该产品将 被抛弃。你打算用哪种软件生命周期模型?对这个软件的需求很明确,实现开方功能的算法 也很成熟,因此,既无须通过原型来分析需求也 无须用原型来验证设计方案。此外,一旦实现并 测试完之后,该产品将被抛

8、弃,因此也无须使用 有助于提高软件可维护性的增量模型或螺旋模 型来开发该软件。综上所述,为了开发这个简单的软件,使用大多 数人所熟悉的瀑布模型就可以了。练习题2 :假如你被任命为一家软件公司的项目 负责人,你的工作是管理该公司已被广泛应用的 字处理软件的新版本开发,由于市场竞争激烈, 公司规定了严格完成的期限并对外发布。你打算用哪种软件生命周期模型? 对这个项目的一个重要要求是,严格按照已对外 公布了的日期完成产品开发工作, 因此,选择生 命周期模型时应该着重考虑哪种模型有助于加 快产品开发的进度。使用增量模型开发软件时可 以并行完成开发工作,因此能够加快开发进度。 这个项目是开发该公司已被广

9、泛使用的字处理 软件的新版本,从上述事实至少可以得出3点结 论:第一,旧版本相当于一个原型,通过收集用 户对旧版本的反映,较容易确定对新版本的需 求,没必要再专门建立一个原型系统来分析用户 的需求;第二,该公司的软件工程师对字处理软 件很熟悉,有开发字处理软件的丰富经验,具有 采用增量模型开发新版字处理软件所需要的技 术水平;第三,该软件受到广大用户的喜爱,今 后很可能还要开发更新的版本,因此,应该把该 软件的体系结构设计成开放式的,以利于今后的 改进和扩充。综上所述,采用增量模型来完成这个项目比较恰 当。第二章可行性研究1、目的可行性研究的目的,就是用最小的代价在尽可能 短的时间内确定问题是

10、否能够解决。2、包括哪几个部分1)技术可行性2)经济可行性3)操作可行性3、研究过程1)复查系统规模和目标2)研究目前正在使用的系统3)导出新系统的高层逻辑模型4)进一步定义问题5)导出和评价供选择的解法6)推荐行动方针7)草拟开发计划8)书写文档提交审查4、系统流程图基本思想:用图形符号以黑盒子形式描绘组成系 统的每个部件(程序、文档、数据库、人工过程 等)。练习题:5、数据流图(DFD)是一种图形化技术,它描 绘信息流和数据从输入移动到输出的过程中所 经受的变化。它只是描绘数据在软件中流动和被 处理的逻辑过程。练习题1:假设一家工厂的采购部每天需要一张 订货报表,报表按零件编号排序,表中列

11、出所有 需要再次订货的零件。对于每个需要再次订货的 零件应该列出下述数据:零件编号,零件名称, 订货数量,目前价格,主要供应者,次要供应者。 零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给订货系统。当某个零件 的库存数量少于库存量临界值时就应该再次订 货。表1组成数据流图的元素可以从描述问题的信 息中提取源点/终点处理采购员仓库管理员产生报表处理事务数据流数据存储订货报表零件编号 零件名称 订货数量 目前价格订货信息 库存清单零件编号库存量库存量临界值主要供应者次要供应者 事务零件编号 事务类型 数量r 、仓悴事务定货定货报表釆购员管理员系统0层图1订货系统的功能级数据流图 孑

12、库存2(订货 订货 孑订货图2把处理事务的功能进一步分解后的数据流 图D库存库存存订货订货-D订货一2层练习题2 :银行计算机储蓄系统的工作过程大致 如下:储户填写的存款单或取款单由业务员输入 系统,如果是存款则系统记录存款人姓名、 住址(或电话号码)、身份证号码、存款类型、存款 日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有 密码,则系统首先核对储户储户密码,若密码正 确或存款时未留密码,则系统计算利息并印出利 息清单给储户。(以下仅供参考)(1) 识别外部实体及输入输出数据流。外部实体:输入数据:如果需要储户输入密码,储户才直接 与系统进行交互。储户填

13、写的存款或取款信息通 过业务员键入系统,可以将存款及取款信息抽象 为事务。输出数据:存款单、利息清单(2) 画出环境图(顶层数据流图)(3)画出一层数据流图处FI3(4)画出二层数据流图对一层图中的“处理存款”及“处理取款”进 行进一步分解,得到二层数据流图,即处理存款 的数据流图和处理取款的数据流图。处理存款的数据流图处理取款的数据流图6、数据字典数据字典最主要的用途是供人查阅对不了解的 条目的解释。基本元素:1)数据流2)数据流分量(即数据元素)3)数据存储4)处理练习题:北京某高校可用的电话号码由以下几 类:校内电话号码由4位数字组成,第一位数字 不是零;校外电话又分为本市电话和外地电话

14、两 类,拨校外电话先拨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 |

15、5 | 6 | 7 | 8 | 9 7、成本效益练习题:设计一个成本开发为50000元,寿命为3年。未来3年的每年收益预计为22000元 24000 元、26620元。银行年利率为10%,不计复利。 试对此项目进行成本效率分析,以决定其经济可 行性。存银行:50000X( 1+3 X 10%) =65000开发软件:22000X (1+2X 10%) +24000X (1+1X10%) +26620=79420第三章需求分析1、需求分析的任务1) 确认对系统的综合要求 ?功能需求?性能需求?可靠性和可用性需求?出错处理需求?接口需求 ?约束?逆向需求 ?将来可能提出的要求2)分析系统的数据要求

16、?导出系统的逻辑模型?修正系统开发计划2、与客户沟通获取需求的方法1)访谈2)面向数据流自顶向下求精3)简易的应用规格说明技术4)快速建立软件原型3、状态转换图3.1在状态图中定义的状态主要有初态(即初始 状态)、终态(即最终状态)和中间状态。在一张状态图中只能有一个初态,而终态则可以 有0至多个。3.2事件触发条件:练习题复印机工作过程:未接到复印命令处于闲置状态,一旦接到复印命令进入复印状态,完成一个 复印命令规定的工作后又回到闲置状态,等待下 一个复印命令;如果执行复印命令时发现没纸, 则进入缺纸状态,发出警告,等待装纸,装满纸 后进入闲置状态,准备接受复印命令;如果复印 机发生卡纸状态

17、,发出警告,等待维修人员来排除故障,故障排除后回到闲置状态。 排除Jk装满第五章总体设计1、目的:总体设计的基本目的就是回答“概括 地说,系统该如何实现”这个问题,因此总体设 计又称概要设计或初步设计。2、必要性:可以站在全局高度上,花较少成本, 从较抽象的层次上分析对比多种可能的系统实 现方案和软件结构,从中选出最佳方案和最合理 的软件结构,从而用最低成本开发出较高质量的 软件系统。3、总体设计过程通常由两个主要阶段组成:1)系统设计阶段:确定系统具体实现方案2)结构设计阶段:确定软件结构4、设计原理1)模块化 2)抽象3)逐步求精4)抽象信息隐藏和局部化 5)模块独立高内聚和低耦合?耦合?

18、内聚耦合度按从强到弱的顺序可分为几种类型:(6)独立耦合:模块间没有信息传递时,属于 非直接耦合(5)数据耦合:指两个模块彼此交换数据(两个 模块间的通讯信息是若干参数,其中每一个参数 都是一个数据元素)(4)控制耦合:一个模块在界面上传递一个信 号(如开关值、标志量等)控制另一个模块,接 收信号的模块的动作根据信号值进行调整,称为 控制耦合。(3)特征耦合:介于数据耦合与控制耦合之间。 当把整个数据结构作为参数传递而被调用的模 块是需要其中一部分数据元素时。(2)公共耦合:两个以上的模块共同引用一个 全局数据项(1)内容耦合:当一个模块直接修改或操作另 一个模块的数据或者直接转入另一个模块时

19、,就 发生了内容耦合。内聚度按强度从低到高有以下几种类型:(1)偶然内聚:模块内的各个任务没有什么有 意义的联系,它们之所以能构成一个模块完全是 偶然的原因。(2)逻辑内聚:几个逻辑上相关的功能被放在 同一模块中,则称为逻辑内聚。(3)时间内聚:如果一个模块完成的功能必须 在同一时间内执行(如系统初始化),但这些功 能只是因为时间因素关联在一起,则称为时间内 聚。(4)过程内聚:如果一个模块内部的处理成份 是相关的,而且这些处理必须以特定的次序执 行,则称为过程内聚。(5)通信内聚:如果一个模块的所有成份都操作同一数据集或生成同一数据集,则称为通信内 聚。(6)顺序内聚:如果一个模块的各个成份

20、和同 一个功能密切相关,而且一个成份的输出作为另 一个成份的输入,则称为顺序内聚。(7)功能内聚:模块的所有成份对于完成单一 的功能都是必须的,则称为功能内聚。题型:以下哪种内聚最强,耦合最弱?5、启发规则1)改进软件结构提高模块独立性2)模块规模应该适中3)深度、宽度、扇出和扇入都应该适当4)模块的作用域应该在控制域之内5)力争降低模块接口的复杂程度6)设计单入口单出口的模块7)模块功能应该可以预测岌nirl速确加AJ占i+i却就 料和H Ik世廿轩|1足 计睫稍% 术V.-®n数据仪表板系统的数据流图AspHtn呃扣逋产主 mph M小产牛ki/J'燃料流 J专述器怙汁详

21、 mph和 超迪点II W艸1 和T:计#发出 铃山严严;F:.酋 hiF>性扌奂成 rpm具有边界的数据流图f mpg區不;mph EiATnZ ©® 、下髓久第六章详细设计1、目标:详细设计阶段的根本目标是确定应该 怎样具体地实现所要求的系统,也就是说,经过 这个阶段的设计工作,应该得出对目标系统的精 确描述,从而在编码阶段可以把这个描述直接翻 译成某种程序设计语言书写的程序。2、N-S图和PAD图练习题STARTIF A THENX1DO UNTIL BELSEX2YEND IFZSTOPN-S图ITAFX1X2UNTIL BYZpaWr"in 匚UN

22、TIL X1AIX2F 1第七章实现测试人员要及早介入,测试计划/用例要早点写1、通常把编码和测试称为实现。2、编码是对设计的进一步具体化,因此程序的 质量主要取决于软件设计的质量。一个程序的测试与什么有关?设计3、测试的目的:在软件投入生产性运行之前, 尽可能多地发现软件中的错误。4、测试没问题后不能立即给用户使用。 测试之后还要试运行,在试用时发现问题再修 改。5、编码风格都用全局变量好还是都用临时变量好 注释越多越好,越详细越好。6、软件测试基础V模型:描述软件开发各阶段与测试策略之间的 对应关系。测试分类:单元测试,集成测试,白盒测试,黑 盒测试7、白盒测试7.1适用场合:白盒测试主要

23、用于对模块的测试,包括: ?程序模块中的所有独立路径至少执行一次?对所有逻辑判定的取值(“真”与“假”)都至 少测试一次?在上下边界及可操作范围内运行所有循环?测试内部数据结构的有效性等7.2分类:常用的白盒测试方法有:?逻辑覆盖测试?基本路径覆盖测试?数据流测试?循环测试 语句覆盖(重点掌握)s cS"入口fx = x / vb-tCJfX - X + 1d&黑盒测试8.1适用场合:黑盒测试可用于各种测试,它试图发现以下类型 的错误:?不正确或遗漏的功能?接口错误,如输入/输出参数的个数、类型等?数据结构错误或外部信息(如外部数据库)访问 错误?性能错误?初始化和终止错误8

24、.2分类:主要的黑盒测试方法有:?等价类划分?边界值分析?比较测试?错误猜测?因果图9、测试用例(会写)测试数据和预期的输出结果称为测试用例练习题:C手机帐号&邮箱帐号Im2屍IF邮1汁弼77帀瓷包寿空略这个是黑盒测试注册测试用例功能描述:注册编输入/动作期望的输出/相实号应际 情 况1用户名和密码在【最小 值,最大值】之间,进 行注册注册成功2用户名和密码为【最大 值】进行注册注册成功3用户名和密码为【最小 值】进行注册注册成功4必填项分别为空注册显示必填项提示信息5用户名长度【最大值】+1,进行注册显示用户名长 度验证提示信 r丿息6用户名长度【最小值】 -1,进行注册显示用户名长

25、 度验证提示信 r丿息7密码长度【最大值】+1,显示密码长度进行注册验证提示信息8密码长度【最小值】-1, 进行注册显示密码长度 验证提示信息9用户名含有非法字符 注册显示用户名字 符验证提示信 r丿息10密码含有非法字符注 册显示密码字符 验证提示信息11两次输入秘密不致 进行注册显示两次输入密码不致提示信息12以已经注册的用户名 进行注册显示用户名已 存在提示信息13改变已存在用户的用 户名的大小写进行注 册根据需求量看 是否区分大小 写登录测试用例功能描述:登录编输入/动作期望的输出/相应实号际情 况1使用合法用户名和 密码登陆登陆成功2使用错误的用户名显示用户名或密和密码登陆码错误信息

26、3改变合法用户名或密码的大小写登陆显示用户名或密 码错误信息4用户名为空登陆显示输入用户名 或密码5在合法用户或密码 前插入空格显示用户名或密 码错误信息6在合法用户名或密 码中间插入空格显示用户名或密 码错误信息7在合法用户名或密 码后插入空格显示用户名或密 码错误信息8使用已被禁用的帐 号登陆显示帐号被禁用 等相应提示信息9使用已删除的帐号 登陆显示不存在此用 户等相应提示符10登陆界面是否支持 快捷键,如Tab,Enter 健Tab健能按照顺 序切换焦点,Enter健能焦点于登陆按钮上11密码为空进行登陆显示输入密码, 密码不能为空提 示信息12用户名和密码均为 空登陆显示请输入用户名和

27、密码提示符13用户名中含有全角字符登陆显示用户名或密码错误提示信息14密码中含有全角字 符登陆显示用户名或密码错误提示信息修改密码测试用例功能描述:修改密码编 号输入/动作期望的输出/相 应实际情况1新密码长度在【最 小值,最大值】之 间,进行修改修改成功2新密码长度为【最 大值】,进行修改修改成功3新密码长度为【最 小值】,进行修改修改成功4不输入旧密码进行修改显示未输入旧密码提示信息5输入错误的旧密码 进行修改显示旧密码输 入错误提示信 r丿息6新密码输入为空进 行修改显示未输入新密码提示信息7重复新密码输入为 空进行修改显示旧密码输 入错误提示信 r丿息8新密码与重复密码 不致进行修改显示两次密码输入不致提示信息9新密码长度为【最 大值】+1,进行修 改显示密码长度 验证提示信息10新密码长度为【最 小值】-1,进行修改显示密码长度 验证提示信息11新密码中输入非法 字符进行修改显示密码字符 验证提示信息10、软件可靠性和可用性区别软件可靠性是程序在给定的时间间隔内, 按照规 格说明书的规定成功地运行的概率。软件可用性是程序在给定的时间点,按照规格说 明书的规定,成功地运行的概率。第八章维护1、软件维护的定义: 所谓软件维护就是在软件已经交付使用之

温馨提示

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

评论

0/150

提交评论