软件工程复习
选择题(20%): ............................................................................................................. 4 软件危机: ....................................................................................................................... 5 什么是软件工程: ........................................................................................................... 5 软件生命周期的8个阶段及其任务 ............................................................................... 5 软件过程模型 ................................................................................................................... 5 可行性分析的三个方面 ................................................................................................... 6 数据流图的四种成分 ....................................................................................................... 6 需求分析的任务 ............................................................................................................... 6 需求规格说明书: ........................................................................................................... 6 总体设计: ....................................................................................................................... 6 设计原理:模块化、抽象、逐步求精、模块独立(耦合和内聚) .............................. 6 耦合、内聚的种类 ........................................................................................................... 6 信息流的类型 ................................................................................................................... 6 变换流和事务流 ............................................................................................................... 6 结构化程序设计 ............................................................................................................... 7 测试步骤 ........................................................................................................................... 7 测试方法 ........................................................................................................................... 7 白盒测试技术 ................................................................................................................... 7 黑盒测试技术 ................................................................................................................... 7 什么是软件维护: ........................................................................................................... 7 软件维护活动的分类: ................................................................................................... 7 文档分类(用户文档和系统文档)及作用 ................................................................... 7 软件可靠性的概念 ........................................................................................................... 7 基本概念:对象、类、实例、消息、方法、属性、封装、继承、多态、重载、 ...... 7 类图 ................................................................................................................................... 8 面向对象的三种模型 ....................................................................................................... 8 面向对象设计准则: ....................................................................................................... 8 软件重用: ....................................................................................................................... 8 子系统交互方式(两种): ............................................................................................. 8 软件配置管理 ................................................................................................................... 8 SCM的概念 ..................................................................................................................... 8 什么是软件工程? ........................................................................................................... 8 2、耦合性和内聚性有几种类型?其耦合度、内聚强度的顺序如何? ..................... 8 简述需求分析工作可以分成哪四个方面?软件需求分析的有哪三个基本原则? ... 8 什么是黑盒测试法、白盒测试法? ............................................................................... 8 简述结构化程序设计方法的基本特点。 ....................................................................... 9 衡量模块独立性的两个定性标准是什么?这两个标准的定义分别是什么?在我们的软件设计中,关于模块独立性我们追求的目标是什么? ....................................... 9 T1:什么是软件危机?它有哪些典型表现?为什么会出现软件危机? ................... 9 T3:什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? ....... 9 T4:简述结构化范型和面向对象范型的要点,并分析它们的优缺点。 ................. 10 1.假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结
果应该精确到小数点后4位。一旦实现并测试完之后,该产品将被抛弃。你打算选用哪种软件生命周期模型?请说明你做出选择的理由。 ......................................... 10 2.假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本的开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你打算采用哪种软件生命周期模型?为什么? ......................... 10 T1:在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性? ............................................................................................................. 10 T5:北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话刚再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。 ........................................................................ 11 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还可能会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,试写出问题定义,并给出数据流图。 ..................................... 11 2.为开发一个铁路自动售票系统(该系统预计从2004年使用到2014年),请完成下面的数据流图和数据字典,即从供选择的答案中选出A、B、C、D和E的内容,并给出F、G和H的内容,填在答案栏中。 ............................................................. 12 T2:怎样与用户有效地沟通以获取用户的真实需求? ............................................. 13 T3:银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员输入系统,如果是存款则则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。 ......................... 13 T6:复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告,等待维修人员来排除故障,故障排除后回到闲置状态。......................................................................................................................................... 14 1.请为某仓库的管理设计一个ER模型。该仓库主要管理零件的订购和供应等事项。仓库向工程项目供应零件,并且根据需要向供应商订购零件。 ..................... 14 T3:用面向数据流的方法设计下列系统的软件结构: ............................................. 15 第一题:分析下图,确定模块之间的耦合类型 ......................................................... 15 2.从供选择的答案中选出在下列叙述中括弧内字母应该代表的正确内容 .............. 16 T3:画出下列伪码程序的程序流程图和盒图............................................................. 16 T4:图6.18给出的程序流程图代表一个非结构化的程序,问: ............................ 17 T8:画出下列伪码程序的流图,计算它的环形复杂度,这个程序的逻辑有什么问题吗? ............................................................................................................................. 18 第一题:用三种方法计算图中所示流图的环形复杂度 ............................................. 19 4一家图书馆藏有书籍、杂志、小册子、电影录像带、音乐CD、录音图书磁带和报纸等出版物,供读者借阅。 ..................................................................................... 21 2.试建立下述订货系统的用例模型 .............................................................................. 21 1、有人说:软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。对否?请解释你的回答 ................................................................................................. 22
2、试论述瀑布模型软件开发方法的基本过程 ........................................................... 22 3、软件工程是开发、运行、维护和修复软件的系统化方法,它包含哪些要素? 22
4、数据流图的作用是什么?它有哪些基本成份 ....................................................... 22 5、请将下述有关模块独立性的各种模块之间的耦合,按其耦合度从低到高排列起来。 ................................................................................................................................. 23 6、请将下述有关模块独立性的各种模块内聚,按其内聚度(强度)从高到低排列起来。 ............................................................................................................................. 23 7、从供选择的答案中选出应填入下列叙述中( )内的正确答案。 ..................... 23 问题1:用故障播种(植入)的数学模型,估算出被测程序ASP的固有故障的个数N的值。如果通过测试一段时间后,发现的固有错误个数为ED = 795时,请估算此程序的平均无故障时间MTTF值。 .................................................................... 24 问题2:若要求把此MTTF再提高4倍,应至少再排除多少个固有错误? 请简要地列出有关计算式 ............................................................................................................. 24
选择题(20%):
软件设计中划分模块的一个准则是()C、高内聚低耦合
Jackson设计方法是由英国的M.Jackson提出的,它是一种面向( )的软件设计方法。 C、数据结构
试判断下列叙述中,哪个是正确的()c、事务分析和变换分析的设计步骤是基本相似的 ()是用户和设计交换最频繁的方法。A、原型化方法 软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是() C、软件开发工具和软件开发的环境 下列语言中哪个语言是低级语言() D、汇编语言
软件测试的目的是() D、尽可能多的发现软件系统中的错误
使用白盒测试方法时,确定测试数据应根据()和指定的覆盖标准。 A、程序的内部逻辑
软件维护工作的最主要部分是() C、完善性维护 PDL是()语言。 B、伪码式
对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。C、封装 软件生命周期中所花费用最多的阶段是() D、软件维护 需求分析中开发人员要从用户那里了解()A、软件做什么 测试的关键问题是() D、如何选择测试用例
()是将系统化的、规范化的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。D、软件工程方法学
()意味着一个操作在不同的类中可以有不同的实现方式。A、多态性 单元测试的测试用例主要根据()的结果来设计。D、详细设计 随着软硬件环境变化而修改软件的过程是() B、适应性维护 在白盒测试技术测试用例的设计中,()是最弱的覆盖目标。A、语句覆盖 结构化程序设计的一种基本方法是() C、逐步求精法 不适合作为科学工程计算的程序设计语言是() D、Prolog 只有单重继承的类层次结构是()层次结构。 C、树型 面向对象的开发方法中,()将是面向对象技术领域内占主导地位的标准建模语言。 C、UML语言
4
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
瀑布模型本质上是一种() A、线性顺序模型
软件维护产生的副作用,是指() C、因修改软件而造成的错误
软件详细设计的主要任务是确定每个模块的() A、算法和使用的数据结构 软件结构图的形态特征能反映程序重用率的是() C、扇入 为了提高模块的独立性,,模块内部最好是() C、功能内聚
软件结构图中,模块框之间若有直线连接,表示它们之间存在()A、调用关系 “软件危机”是指() C、软件开发和维护中出现的一系列问题 具有风险分析的软件生命周期模型是() C、螺旋模型
数据流图(DFD)中的每个数据处理至少需要() D、一个输入数据流和一个输出流 下列哪个阶段不属于软件生存周期的三大阶段() C、编码阶段 需求分析是() A、软件开发工作的基础
原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要( ) B、完整的生命周期
软件维护中,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程测称为()A、改正性维护
一般来说,投入运行的软件系统中有错误()A、不是不可以理解的
软件危机:
是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。它包含两个方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。 什么是软件工程:
是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护他。 软件生命周期的8个阶段及其任务
1、问题定义:回答“要解决的问题是什么?”通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认;
2、可行性研究:回答“对于上一阶段所确定的问题有行得通的办法吗?”任务是研究问题的范围,搜索这个问题是否值得去解,是否有可行的解决方法;
3、需求分析:确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。任务有用正式文档准确记录对目标系统的需求(规格说明书);
4、总体设计(概要设计):回答“概括的说,应该怎样实现目标系统?”解决问题的策略及目标系统中应包含的程序,和确定程序由哪些模块组成以及模块间的关系;
5、详细设计(模块设计):把解法具体化,设计出程序的详细规格说明,回答“应该怎样具体地实现这个系统”;
6、编码和单元测试:任务是写出正确的容易理解、容易维护的程序模块;
7、综合测试:任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求;
8、软件维护:任务是通过各种必要的维护活动使系统持久地满足用户的需要。有四类维护活动:改正性维护,适应性维护,完善性维护,预防性维护。 软件过程模型
瀑布模型、快速原型、螺旋模型(比较三者的优缺点)
瀑布模型:优点是可强迫开发人员采用规范的方法,严格地规定了每个阶段必须提交的文档,要求每个阶段交出的所有产品都必须经过质量保证小组的仔细检查;缺点是由文档驱动。
快速原型:优点是有助于保证用户的真实需要得到满足。
螺旋模型:优点是对可选方案和约束条件的强调有利于已有软件的重用,减少
5