软件工程复习-
软件工程复习资料
软件工程复习题一一、选择题,请从四个可选项中选择正确答案。
1.以下哪一项不是软件危机的表现形式()A.成本高B.生产率低C.技术发展快D.质量得不到保证2.哪种模型分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。
()A.演化模型B.喷泉模型C.原型模型D.螺旋模型3.可行性研究的目的不包括()A.分析开发系统的必要性B.确定系统建模的方案C.分析系统风险D.确定是否值得开发系统4.可行性分析研究的费用大约是项目总经费的()。
A.2%B.8%C.20%D.50%5.在E-R 模型中,包含以下基本成分()。
A.数据、对象、实体B.控制、联系、对象C.实体、联系、属性D.实体、属性、联系6.软件需求分析产生一个重要文档是()。
A.软件维护说明书B.需求规格说明书C.可行性报告D.初步用户手册7.内聚程度较低的是()。
A.通信内聚B.过程内聚C.顺序内聚D.时间内聚8.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是()A.把软件划分成模块 B确定模块之间的调用关系C.确定各个模块的功能D.设计每个模块的伪代码9.UML 语言支持的建模方式不包括有()。
A.静态建模B.动态建模C.模块化建模D.功能建模10.以下哪一项不是面向对象的特征。
()A.多态性B.继承性C.封装性D.过程调用11.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了()A.软件危机B.软件工程C.程序设计革命D.结构化程序设计12.瀑布模型的关键不足在于()A.过于简单B.不能适应需求的动态变更C.过于灵活D.各个阶段需要进行评审13.可行性研究的四大要素是()。
A.经济、技术、法律和社会环境B.经济、技术、开发组织能力和领导者水平C.经济、技术、计算机硬件环境和网络带宽D.经济、技术、软件开发工具和人员的稳定性14.经济可行性研究的主要内容包括()A.开发过程B.开发工具C.风险分析D. 效益分析15.在需求分析过程中,分析员要从用户那里解决的最重要的问题是()。
软件工程复习资料
第一章绪论什么是软件工程?软件=程序+数据+文档什么是软件危机?软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件,从而导致软件开发与维护过程中出现一系列严重问题的现象。
什么是软件工程?采用工程化的原理和方法对软件进行计划开发和维护。
软件工程三范型:1.过程式编程范型2.面向对象编程范型3.基于构件技术的编程范型软件工程的发展时期:(1)传统软件工程或者经典软件工程:开发过程:结构化分析一>结构化设计一>面向过程的编码一>软件测试(2)面向对象软件工程开发过程:OO分析与对象抽取一》对象详细设计一》面向对象编码与测试(3)基于构件的软件工程:以软件复用为目标、领域工程为基础,其开发过程一般包括包括以下阶段:领域分析和测试计划定制一一》领域设计一一》建立可复用构件库一一》按“构件集成模型,,查找与集成构件第二章生存周期什么是软件生存周期?计划阶段:需求分析,软件分析开发阶段:软件设计,编码(测试)软件测试维护阶段:运行维护模型特点和使用场合可行性研究1.经济可行性2.技术可行性3.运行可行性4.法律可行性第三章结构化分析与设计结构化程序设计的特点以及论述(1)整个程序的模块化(2)每个模块只有一个入口和出口(3)每个模块都应能单独执行,且无死循环(4)采用自顶向下,逐步细化的方法SA结构化分析设计(结构化)从内容分:1.系统结构设计2.接口设计3.数据设计4.过程设计按照步骤分:1.概要设计2.详细设计第四章OO与面向对象+UML OO的特征1.抽象2.封装3.继承4.多态为什么用面向对象1.符合人类习惯的思维方式2.提高软件系统的可复用性3.提高软件系统的可扩展性4.提高软件系统的可维护性UML相关知识静态图1.用例图:描述系统功能2.类图:描述系统的静态结构3.对象图:描述系统在某个时期的静态结构4.构件图:描述实现系统的元素的组织5.部署图:描述系统环境元素的配置动态图1.状态图:描述系统元素的状态条件和相应2.时序图:按照时间顺序描述系统元素间的交互3.协作图:按照连接关系描述系统元素间的交互4.活动图:描述系统元素的活动流程第五章需求建模需求分析的步骤1.需求获取2.需求建模3.需求描述4.需求验证面向对象需求建模1.画用例图2.写用例规约3.描述补充规约4.编写术语表第六章需求分析面向对象的需求分析1.边界类:边界类提供了对参与者或外部系统交互协议的接口。
软件工程复习题库带答案完整版
软件工程复习题库带答案完整版一、选择题1、白盒测试法是通过分析程序的(C)来设计测试用例的。
A.应用范围B.功能C.内部逻辑D.输入数据2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。
A.风险产生的原因B.风险监控技术C.风险能否消除D.风险发生所产生的后果3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。
A.好的计划B.不断的发布C.反馈和勇气D.持续集成4、等价分类法的关键是(C)。
A.确定等价类的边界条件B.按照用例来确定等价类C.划分等价类D.确定系统中相同和不同的部分5、下列不属于黑盒测试的技术是(A)。
A.程序段或语句的功能 B.模块的接口C.数据的名称和用途 D.模块的功能6、为了提高模块的独立性,模块之间最好是(D)耦合。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。
A.角色B.活动C.制品D.工作流8、功能性注释嵌入在源程序内部,它是用来说明(A)。
A.程序段或语句的功能 B.模块的接口C.数据的名称和用途 D.模块的功能9、在结构化分析方法中,数据字典是重要的文档。
对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。
A.只有结构化语言 B.有结构化语言和判定树C.有结构化语言、判定树和判定表 D.有判定树和判定表10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。
A.正确性 B.适应性C.完善性 D.预防性11、软件危机的主要原因是(A)。
A软件本身特点与开发方法B对软件的认识不够C软件生产能力不足D软件工具落后12、13、下列关于面向对象分析与设计说法错误的是(C)。
A.面向对象的设计以面向对象分析为基础归纳出类B.建立类结构或进一步构造成类库,实现分析结果对问题空间的抽象C.面向对象的设计是面向对象分析的另一种思维方式D.面向对象的设计是面向对象分析进一步的细化和更高的抽象14、在软件的可行性分析中,可以从不同的角度对软件进行研究,其中(B)是从软件的功能可行性角度考虑的。
软件工程复习
一、单选题1、下面不属于软件工程的3个要素的是(D)。
A、工具B、过程C、方法D、环境2、软件复杂性度量的参数,不包括( D )A、规模B、难度C、智能度D、成本3、在软件开发的各种资源中,(D )是最重要的资源。
A、开发工具B、方法C、硬件环境D、人员4、软件开发的结构化生命周期方法将软件生命周期划分成(A)。
A、计划阶段、开发阶段、运行阶段。
B、计划阶段、编程阶段、测试阶段。
C、总体设计、详细设计、编程调试。
D、需求分析、功能定义、系统设计。
5、瀑布模型的关键不足在于(B)A、过于简单B、不能适应需求的动态变更C、过于灵活D、各个阶段需要进行评审6、软件可行性研究一般不考虑(D )A、是否有足够的人员和相关的技术来支持系统开发B、是否有足够的工具和相关的技术来支持系统开发C、待开发软件是否有市场、经济上是否合算D、待开发的软件是否会有质量问题8、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于( A)系统。
A、需求不确定的B、需求确定的C、管理信息D、决策支持10、需求分析最终结果是产生( B )A、项目开发计划B、需求规格说明书C、设计说明书D、可行性分析报告11、需求分析阶段的主要任务是(A)。
A、确定软件系统的功能B、确定软件开发方法C、确定软件开发费D、确定软件开发工具12、单元测试的测试用例主要根据(D )的结果来设计。
A、需求分析B、源程序C、概要设计D、详细设计13、(A )是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。
A 软件过程 B、软件工具 C、质量保证 D、软件工程16、(A )意味着一个操作在不同的类中可以有不同的实现方式。
A、多态性B、多继承C、类的可复用D、信息隐蔽18、时序图反映对象之间发送消息的时间顺序,它与(D )是同构的。
A、用例图B、类图C、活动图D、协作图19、在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,( C )是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。
软件工程复习
一、软件开发生命周期模型1.Code-and-fix life-cycle model:遗憾的是,许多产品都是使用"边做边改"模型来开发的。
在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改.在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。
在提供给用户使用后,如果程序出现错误,或者用户提出新的要求,开发人员重新修改代码,直到用户满意为止。
这是一种类似作坊的开发方式,对编写几百行的小程序来说还不错,但这种方法对任何规模的开发来说都是不能令人满意的,其主要问题在于:(1)缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无法继续修改;(2)忽略需求环节,给软件开发带来很大的风险;(3)没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难。
2.Waterfall life-cycle model:1970年WinSTon Royce提出了著名的"瀑布模型",直到80年代早期,它一直是唯一被广泛采用的软件开发模型。
瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。
当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。
瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。
但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于:(1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;(2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;(3)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
软件工程复习资料
A、语句覆盖:选择测试用例使程序中每条语句至少被执行一次 B、判定覆盖:选择测试用例使程序中每个判定至少都获得一次“真”值和一次“假”值 C、条件覆盖:选择测试用例使每个条件都满足 D、条件组合覆盖:将所有的判定条件都组合起来执行 答案: A B
9. 以下()不属于结构化流程图
A、运行程序并分析运行结果 B、桌前检查与代码会审 C、数据流分析图 D、调用图
答案: B C D
15. 下面()属于可复用的软件级别。
A、代码的复用 B、设计结果的复用 C、分析结果的复用 D、测试信息的复用
答案: A B C D
16. 黑盒测试着重测试软件功能,下列测试法中属于黑盒测试技术的有()。
3. 面向对象方法学的出发点和基本原则是什么?
答案: 面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世 界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一 致。
3. 软件原型
答案: 软件原型是在软件系统开发过程中,可快速建立的,旨在演示目标系统主要功能的可运行的程序。
4. 继承
答案: 广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象的软件技术中,继承是子类自动 地共享基类中定义的数据和方法的机制。
5. 有穷状态机
答案: 在软件工程领域,有穷状态机可以准确地描述一个系统,它是表达规格说明的一种形式化说明方法。一个有穷状态机包含5 个部分:状态集、输入集、由当前状态和当前输入确定下一个状态的转换函数、初始态和终态集。
A、等价划分法 B、平行运行法 C、边界值分析法 D、错误推测法
软件工程-复习题
《软件工程》复习题一、单项选择题1.螺旋模型是一种将瀑布模型和 _________ 结合起来的软件开发模型。
( )A. 增量模型B.专家系统C. 喷泉模型D. 变换模型2.UML中,对象行为是通过交互来实现的,是对象间为完成某一目的而进行的一系列消息交换。
消息序列可用两种图来表示,分别是(D)A.状态图和顺序图B.活动图和协作图C.状态图和活动图D.顺序图和协作图3.()模型的缺点是缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。
A.瀑布模型 B. 原型模型 C. 增量模型 D. 螺旋模型4.对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。
A.结合B.隐藏C.封装D.抽象5.软件测试方法中的静态测试方法之一为()A.计算机辅助静态分析B.黑盒法C.路径覆盖D.边界值分析6.类通常可以分为实体类,()和边界类A.父类 B. 子类 C. 控制类 D. 祖先类7.UML中有四种关系是:依赖,泛化,关联和()A. 继承B. 合作C. 实现D. 抽象8.用白盒法技术设计测试用例的方法包括()A .错误推测B .因果图C .基本路径测试D .边界值分析9.软件生命周期中所花费用最多的阶段是()A.详细设计B.软件编码C.软件测试D.软件维护10.软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种,它们( )A. 前者属于静态测试,后者属于动态测试B. 前者属于动态测试,后者属于静态测试C. 都属于静态测试D. 都属于动态测试11.程序的三种基本控制结构的共同特点是( )A. 只能用来描述简单程序B.不能嵌套使用C.单入口,单出口D.仅用于自动控制系统12.下面哪个不是UML中的静态视图()A.状态图 B. 用例图 C. 对象图 D. 类图13.()技术是将一个活动图中的活动状态进行分组,每一组表示一个特定的类、人或部门,他们负责完成组内的活动。
A. 泳道B. 分叉汇合C. 分支D. 转移14.软件生存期包括计划,需求分析和定义,(),编码,软件测试和运行维护。
《软件工程》复习题
《软件工程》复习题一、填空题1、自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和_______ 。
2、按数据流的类型,结构化设计方法有两种设计策略,它们是变换型设计和___________。
3、风险管理包括了________、_______、____________和风险监控四个活动。
4、数据流图和数据字典共同构成了系统的_______模型,是需求规格说明书的主要组成部分.5、软件是包括程序,____及其___的完整集合。
6、为了便于对照检查,测试用例应由输入数据和预期的两部分组成。
7、可移植性指的是___________________________。
8、一般而言,单独测试某一模块时,要为它设计驱动模块和模块,它们的作用是分别模拟被测试模块的和。
9、G.J.Myers提出:软件测试是为了发现___________而执行程序的过程。
10、软件可行性研究从__________、__________、社会可行性三个方面分析研究每种解决方案的可行性。
11、数据流图用图形符号表示、、及外部实体。
12、在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是关系。
13、类具有操作,它是对象的抽象。
14、标志一个模块内各个元素彼此结合的紧密程度。
15软件总体设计时应该遵循模块化、抽象、、局部化和模块独立等6条基本原理。
16、为了便于对照检查,测试用例应由输入数据和预期的两部分组成。
17、将数据流图映射为程序结构时, 所用映射方法涉及信息流的类型。
其信息流分为和两种类型。
18、软件由程序、、组成。
19、软件工程方法分两类:方法和对象方法。
20、单元测试过程应为测试模块开发一个和(或)若干个。
21、一个模块拥有的直属下级模块的个数称为,一个模块的直接上级模块的个数称为。
22、维护阶段是软件生存周期中花费精力和费用______的阶段。
23、被测试程序不在机器上运行,而是采用人工检测和计算机辅助分析检测的手段称为。
软件工程复习资料
1.什么是软件工程?他的基本原理是什么?1)软件工程是指导计算机软件开发和维护的工程学科。
采用工程的槪念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济地开发出高质量的软件并有效地维护它。
2)用分阶段的生命周期汁划严格管理、坚持进行阶段评审、实行严格的产品控制、采用现代程序设讣技术、结果应能淸楚的审査、开发小组的人员应该少而精、承认不断改进软件工程实践的必要性。
2.是什么导致了软件工程?主要是软件危机的出现导致了软件工程3.通常我们所见的软件工程模型有哪些?瀑布模型、快速原型模型、增量模型(渐增模型)、螺旋模型、喷泉模型。
21.软件危机的现象:1)经费超出预算,项目一再拖延。
02 )不重视需求,开发的软件不能满足用户的要求,项目成功率低。
3)没有规范的软件工程方法,软件可维护性差,软件质量差,可靠性差。
3圄)开发工具落后,手工方式,开发效率低。
2 2 .软件工程的三要素1)"过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质疑开发出软件。
2)"方法”为软件开发提供"如何做”的技术。
它涵盖了项目计划、需求分析、系统程序()实现、测试与维护灯一系列活动的做法。
3) "工具"可为过程和方法提供自动的或半自动的支持。
这些工具既包括软件,也包括硬件,软件工具包括编程、建模、管理等开发工具。
通过网络环境把这些软件工具集成起来搭建一个能够支持团队开发的平台,称为汁算机辅助软件工程,即CASE。
C ASE集成了软件、硬件和()存放开发过程信息的软件工程数据库,形成了一个软件工程环境。
23.简述软件工程的目标,过程和原则佢)目标、过程和原则是一切工程的三维框架,,这里是以工程的观点来看待软件开发。
软件工程的目标:降低成本,及时交付髙质量的软件产品。
m实现目标的过程即完成产品加工的过程:包括:基本过程、支持过程和组织过程进行过程应遵守的原则:原则就是过程中的轨道约朿,包括:选取适宜的开发范型、适合的设计方法、提供高质量的工程支持、重视开发过程的管理。
软件工程复习资料-完整版
一、选择题:1、用例图中,用来表示用例的符号为( B ) 。
2、协作图中包含的元素包括(A ) 。
A. 对象 B. 链 C. 激活 D. 消息3、在类图中,哪种关系表达整体与部分的关系( D ) 。
A .泛化 B. 实现 C. 依赖 D. 聚合4、下列各种图形符号中,用来表示组成关系的符号为 (B )。
A. B. C. D.5 、(A )工具在软件的详细设计中不能使用。
A . DFD B. N-S 图 C. 流程图 D. PDL6 、 “软件危机”是指 (C )。
A. 计算机病毒的出现B. 利用计算机进行经济犯罪活动C. 软件开发和维护中出现的一系列问题D. 人们过分迷恋计算机系统7 、 快速原型是利用原型辅助软件开发的一种新思想,它是在研究 (A )的方法和技术中产生 的。
A. 需求阶段B. 设计阶段C. 测试阶段D. 软件开发的各个阶段8、从严格意义上讲,下列 4 个选项中属于顺序图的元素是(ABCD ) 。
A.对象B. 参与者C. 消息D. 激活9、下列 UML 图形中, (ABCD )属于 UML 的动态视图。
A. 协作图B. 状态图C. 活动图D. 顺序图10、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是( D ) 。
A. 数据库设计B. 数据通信C. 数据关系描述D. 数据定义11、详细设计与概要设计衔接的图形工具是 (D )。
A. DFD 图B. 程序图C. PAD 图D. SC 图12 、UML 中,大多数建模者把节点分为(AC )A . 设备 B. 构件 C. 处理器 D. 显示器13 、(C)是一种特殊形式的状态机,用于对计算流程和工作流程建模。
A .时间图 B. 流程图 C. 活动图 D. 状态图14 、(A )描述从状态到状态的控制流程,常用来对系统的动态特征进行建模。
A. 状态图B. 序列图C. 协作图D. 活动图15、下列特点属于描述用例的特点的是( D ) 。
软件工程复习资料
1、下列哪一模型是软件的基础模型快速原型 C.增量模型 D.螺旋模型2、划分软件生存周期的阶段时所应遵循的基本原则是各阶段的任务在时间上连续C.各阶段的任务尽可能相关性D.各阶段的任务在时间上相对独立3、下列哪个办法不属于解决软件危机的途径之一A.采用软件工程的解决途径B.研制新一代智能计算机C.采用面向对象的软件设计方法4、下列哪个不属于软件工程的内涵之一开发既可靠又能有效运行的软件C.应用完善的科学与工程原理D.经济地开发软件5.造成大型软件开发困难的根本原因在于A.开发人员缺乏足够的开发经验B.项目开发进度不合理对软件开发的资金投入不足6.软件会逐渐退化而不会磨损,其原因在于A.软件备件很难订购C.软件错误在经常使用之后会逐渐增加D.软件通常暴露在恶劣的环境下7.下面说法正确的是B.由于软件是产品,因此可以应用其他工程制品所用的技术进行生产C.一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功D.购买大多数计算机系统所需的硬件比软件更昂贵8.Ariane 5 火箭发射失败的事例告诉我们A. ( 2 )软件后备系统可以通过复制生成B. ( 3 )软件重用必须重新进行系统论证和系统测试D. ( 1 )系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制9.软件危机的主要原因是B.软件工具落后。
C.软件生产能力不足。
D.对软件的认识不够。
10.下面的描述正确的是B.软件质量是由产品的功能、性能、易用性等外在特性决定的。
C.运行正确的软件就是高质量的软件。
D.软件产品质量越高越好,最理想的情况是达到“零缺陷”。
11、可行性研究主要包括哪几项?B.技术可行性、经济可行性和道德可行性C.技术可行性、法律可行性和操作可行性D.技术可行性、操作可行性和法律可行性12、成本/效益分析的目的是帮助 ( )正确地作出是否投资于这项开发工程的决定。
A.系统分析员项目经理 D.软件开发人员13、在进行成本/效益分析的时候,需要考虑( )14、数据流图和数据字典共同定义了新系统的逻辑模型。
软件工程复习资料
软件工程复习资料一、简答题1、软件过程模型有哪些?简述它们的特点。
过程模型分为五大类: (1)管理过程模型。
(2)瀑布模型(又称为生命周期模型)。
(3)增量过程模型:包括增量模型,RAD模型。
(4)烟花过程模型:包括原型开发模型,螺旋模型,协同开发模型。
(5)专用过程模型:包括机遇构建的开发模型,形式化方法模型,面向方面的软件开发模型。
2、什么叫软件危机?软件危机包含哪两点?软件危机产生的原因是什么?软件危机是指在计算机软件开发与维护过程中所遇到的一系列严重问题。
包括两点:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
软件开发和维护过程中存在的许多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
具体表现如下:(1)软件是逻辑部件而不是物理部件。
(2)软件的规模越来越大,复杂性越来越大。
(3)轻视需求分析的重要性,轻视软件维护的错误观点和方法。
3、软件开发的各阶段的任务是什么?定义阶段:问题定义——任务:关于规模和目标的报告书,可行性研究——任务:系统的高层逻辑模型:数据流图,成本/效益分析:需求分析——任务:系统的逻辑模型:数据流图,数据字典,算法描述。
开发阶段:总体设计——任务:系统流程图,成本/效益分析,推荐的系统结构:层次图结构图,详细设计-任务: HIPO图或PDL图;编码和单元测试——任务:源程序清单,单元测试方案和结果,综合测试——任务:综合测试方案,结果集成测试,验收测试,完整一致的软件配置。
维护阶段:软件维护——任务:维护记录以及改正性维护,适应性维护,完整性维护和预防性维护4、两种软件工程方法学开发软件时要建立哪些模型?软件工程方法学包括:传统方法学和面向对象方法学。
常用的开发模型有:瀑布模型( 需求稳定,而且可以预先指定)原型模型(需求模糊或者随时间变化)增量模型(分析员先作出需求分析和概要设计,用户参与逐步完善)螺旋模型(将瀑布模型与原型化模型结合起来并加入了风险分析)喷泉模型(使开发过程具有迭代性和无间隙性)5、什么叫软件?软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合6、UML中的事物有哪些?结构事物UML中的名词,它是模型的静态部分,描述概念或物理元素。
软件工程复习(有解析)
一、选择题1.在下列工具与环境中( C )属于较早期的CASE。
A.基于信息工程CASE B.人工智能CASEC.结构的基于图形CASE D.集成的CASE环境2.Putnam成本估算模型是一个( D )模型。
A.静态单变量 B.动态单变量 C.静态多变量D.动态多变量3.在McCall软件质量度量模型中,( C )属于面向软件产品修改。
A.可靠性 B.可重用性C.适应性 D.可移植性4.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是( D )A.SQIC B.SQMC C.SQRC D.SQDC5.软件复杂性度量的参数包括( B )A.效率B.规模 C.完整性 D.容错性6.对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。
A.结合 B.隐藏C.封装 D.抽象7.软件调试技术包括( B )A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试8.瀑布模型的存在问题是( B )A.用户容易参与开发B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求9.软件测试方法中的静态测试方法之一为( A )A.计算机辅助静态分析 B.黑盒法 C.路径覆盖 D.边界值分析10.软件生命周期中所花费用最多的阶段是( D )A.详细设计 B.软件编码 C.软件测试D.软件维护11.第一个体现结构化编程思想的程序设计语言是( B )A.FORTRAN语言B.Pascal语言 C.C语言D.PL/1语言12.程序的三种基本控制结构是( B )A.过程、子程序和分程序B.顺序、选择和重复 C.递归、堆栈和队列 D.调用、返回和转移13.在详细设计阶段,经常采用的工具有( A )A.PAD (问题分析图) B.SA C.SC D.DFD14.详细设计的结果基本决定了最终程序的( C )A.代码的规模 B.运行速度 C.质量 D.可维护性15.需求分析中开发人员要从用户那里了解( A )A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模16.结构化程序设计主要强调的是( D )A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性17.IDEF图反映系统( D )A.怎么做 B.对谁做 C.何时做D.做什么18.经济可行性研究的范围包括( C )A.资源有效性 B.管理制度C.效益分析 D.开发风险19.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出( B )的回答。
软件工程复习知识要点
1 软件和软件工程概念软件的组成部分之一;在软件开发中,编程只是软件开发过程的一个阶段。
2.在结构化程序设计时代,程序最小的单位是函数及子程序,程序和数据是分别的。
程序的最小单位是类。
3.软件的特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性。
4.软件的分类:系统软件;应用软件;支撑软件;可复用软件。
5.什么是软件工程?(课后题)软件工程是指导计算机软件开发和维护的工程学科。
接受工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
6.可以用功能性、牢靠性、易用性、效率、可维护性和可移植性六个特性衡量软件的质量。
功能性是指软件所实现的功能达到它的设计规范和满意用户需求的程度。
可移植性是指软件从某一环境转移到另一环境时所作努力得程度。
7.软件生存期由软件定义、软件开发和运行维护三个时期组成。
开发时期通常由概要设计、详细设计、编码和测试四个阶段组成。
开发过程中的典型文档包括:项目支配、软件测试支配、软件设计说明书、用户手册。
8.需求分析的基本任务?(1)建立分析模型,了解系统的各种需求微小环节。
(2)基于分析结果,编写出软件需求规格说明或系统功能规格说明,确认测试支配和初步的系统用户手册,并提交管理机构进行分析评审。
2 软件工程方法和工具1.面对对象方法的动身点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类相识问题和解决问题的方法和过程,从而使描述问题的问题空间和其解空间在结构上尽可能一样。
2.形式化方法的主要特点是:(课后题)(1) 软件需求规格说明被细化为用数学记号表达的详细的形式化规格说明;(2) 设计、实现和单元测试等开发过程由一个变换开发过程代替。
通过一系列变换将形式的规格说明细化成为程序。
3.面对对象 = 对象 + 类 + 继承 + 消息通信。
软件工程复习题
软件工程复习题一、单选题(20 分)第一组:1、在软件开发的各种资源中,()是最重要的资源。
A .开发工具 B. 方法 C. 硬件 D. 人员2、软件的复杂性是(),它引起人员通信困难、开发费用超支、开发时间超时等问题。
A. 固有的B. 人为的C. 可消除的D. 不可降低的3、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于()系统。
A. 需求不确定的B. 需求确定的C. 管理信息D. 决策支持4、单元测试的测试用例主要根据()的结果来设计。
A. 需求分析B. 源程序C. 概要设计D. 详细设计5、()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。
A. 软件过程B. 软件工具C. 软件生存周质量保证D. 软件工程6、()意味着一个操作在不同的类中可以有不同的实现方式。
A. 多态性B. 类的复用C. 封装D. 对象的复用7、软件测试计划开始于需求分析阶段,完成于()阶段。
A .需求分析 B. 软件设计 C. 软件实现 D. 软件测试8、在软件生存周期的瀑布模型中一般包括计划、()、设计、编码、测试、维护等阶段。
A .可行性分析 B. 需求采集 C. 需求分析 D. 问题定义9. 软件需求分析阶段的测试手段一般采用()。
A .总结 B. 阶段性报告 C. 需求分析评审 D. 不测试10. ()是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。
A .多态性 B. 继承 C.封装 D. 消息11. 软件测试是为了()而执行程序的过程。
A .纠正错误 B. 发现错误 C. 避免错误 D. 证明正确12. 在结构化分析方法中,()表达系统内部数据运动的图形化技术。
A .数据字典 B. 实体关系图 C.数据流图 D. 状态转换图13. 软件工程的基本要素包括方法、工具和()。
《软件工程》复习题
软件工程单项选择题1. 哪个活动可在可行性分析阶段进行?A.编码B.测试C.设计D.制订市场营销计划2. 在数据流程图中,有名字及方向的成分是()。
A.控制流B.信息流C.数据流D.信号流3. 以下各图中不是UML使用的图是()。
A.数据流程图B.用例图C.类图D.顺序图4. 下图中,类的关系是()。
A.依赖B.关联C.聚集D.泛化5. 甘特图是一种()。
A.UML模型B.过程模型C.系统构架的抽象模型D.进度计划的表达方式6. 下面不属于软件配置管理任务的是()。
A.变更控制B.配置审核C.状态报告D.用例分析7. 数据耦合、公共耦合、印记耦合、控制耦合的耦合性从低到高的顺序是()A.数据、公共、印记、控制B.数据、印记、控制、公共C.控制、数据、印记、公共D.控制、数据、公共、印记8. 软件需求分析的主要任务是准确地定义出要开发的软件系统是()A.如何做B.怎么做C.做什么D.对谁做9. 可行性分析研究的目的是()A.争取项目B.项目值得开发否C.开发项目D.规划项目10. 具有风险分析的软件生存周期模型是()A.瀑布模型B.喷泉模型C.螺旋模型D.增量模型11. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( )A.软件工程B.软件周期C.软件危机D.软件产生12. 程序的三种基本控制结构的共同特点是()A.只能用来描述简单程序B.不能嵌套使用C.单入口,单出口D.仅用于自动控制系统13. 数据字典是用来定义_________中的各个成份的具体含义的。
()A.流程图B.功能结构图C.系统结构图D.数据流图14. 为了使软件具有清晰结构和良好的风格,下面关于程序设计风格的叙述不可取的有( )A. 尽量不要进行浮点数的相等比较B. 应当有适量的注释C. 尽可能对代码优化D. 使用有意义的标识符15. 使用白盒技术设计测试用例的方法包括()A.边界值分析B.循环测试C.等价类划分D.回归测试16. 下列模块聚中,聚性最强的是()。
软件工程复习题(带答案)
软件工程复习题一、单选题1、软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是( c )A模块高内聚 B模块低耦合 C模块独立性 D程序模块化2、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?( D )A产生危机 B质量保证 C开发效率 D生产工程化3、软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究的结论主要相关于( A )A软件系统目标 B软件的性能C软件的功能 D软件的质量4、软件需求分析一般应确定的是用户对软件的( D )A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求5、软件测试是满足软件的功能和性能要求,保证软件正确性的措施,一般软件测试计划的制订应始于软件开发的哪个阶段? ( D )A.需求分析B.软件设计C.程序编码D.软件计划6、软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指( B )A.原型化方法B.结构化方法C.面向对象方法.D.功能分解法7、数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示,即.( A )A.软件模型B.软件功能C.软件结构D.软件加工8、软件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不属于开发技术的范畴?(D)A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济9、软件文档是软件工程实施中的重要成份,它不仅是软件开发的各阶段的重要依据,而且也影响软件的()A.可理解性B.可维护性C.可扩展性D.可靠性10、从( )语言开始,软件摆脱了对硬件的依赖。
A.第一代B.第二代C.第三代D.第四代11、在下面列出的基本成分中,哪个不是实体关系图的基本成分? ( )A.实体B.数据存储C.关系 D属性13、结构化程序设计主要强调程序的(C)A.效率B.速度C.可读性D.大小14、在软件工程中根据程序的功能说明,而不关心程序内部逻辑的测试方法为( A )A.黑盒法B.白盒法C.灰盒法D.综合法15、软件开发的结构化分析方法,常用的描述软件功能需求的工具有( C )A业务流程图,数据字典 B.软件流程图,模块说明C.数据流图,数据字典D.系统流程图,程序编码16、结构化程序设计思想的核心是要求程序只由顺序、循环和( A )三种结构组成。
软件工程复习题
盒测试,系统集成人员用黑盒测试方法对系统进行测试,构件开发人员
用白盒测试方法对构件进行测试,这是常用的测试方法。
7、什么叫风险分析?技能风险与技术风险有何区别?
答:这里的风险分析是指软件立项过程中对产品开发、销售等可能出
现的风险进行分析。分析方法是将一个大风险化解为多个小风险,然后
再一个个克服小风险。
2、请说明“三层结构”与“三个模型”之间的关系以及“三层结 构”的优点。
答:三个模型从根本上满足了B/A/S三层结构的需求:B层(又称
浏览层)对应功能模型,A层(又称业务逻辑层)对应业务模型,S层 (又称数据库服务器层)对应数据模型。这真是一种奇妙的、天衣无缝 的巧合! 三层结构优点:① 三层之间的低耦合,互不干扰,哪一层出了问题就 去找哪一层解决。同时,由于同一层内的各个类之间,也是低耦合,所 以不会出现Bug现象。 ② 三层结构减少了客户机的工作量,提高了网络系统的运行效率。 ③ 三层结构有利于系统的维护和升级,各个层的维护,互不影响。
A.数据流程图案 B.数据字典 C.判定表 D.需求规 格说明书 19、数据字典是软件需求分析阶段的最重要工具之一,其最 基本的功能是( )。
A.数据库设计 B.数据通信 C.数据定义 D.数据维护 20、提高测试的有效性非常重要,成功的测试是指( )。 A.证明了被测试程序正确无误 B.说明了被测试程序符合 相应的要求 C.发现了至今为止尚未发现的错误 D.未发现被测试程序的错 误
软件运行的最低配置或者最低资源需求;另一方面,可以正常提供软件 需要的资源,但是通过不断加重软件要处理的任务,来测试软件在正常 配置下具有的能力指标; (8)易用性测试:易用性测试的目的很明确,即简单易用,但是标准 不容易确定; (9)其他测试:如边界值测试、兼容性测试、回归测试、Alpha测试和 Beta测试等。
软件工程复习题-ans
新建试卷20181220095245一、单选题(共56题,56分)1、UML中描述类与类之间关系的图是()。
A、用例图B、类图C、包图D、顺序图2、下列不是面向对象方法优点的是()。
A、与人类习惯的思维方法一致B、稳定性好C、可重用性好D、不用维护3、UML中,包图是一种()。
A、集合B、数据结构C、分组机制D、对系统的动态描述4、软件可分为系统软件、支撑软件、应用软件等,这是根据()来划分的。
A、软件的工作方式B、软件的规模C、软件的功能D、软件的制造过程5、下面的()说法是正确的.A、软件危机在20世纪70年代末期全面爆发B、当前先进的软件工程方法已经解决了软件危机的问题C、软件危机是指在计算机软件开发和维护过程中遇到的一系列严重问题D、软件危机是指在软件产品中存在一系列的质量问题6、UML中表示对象之间交互的图为( ).A、类图B、活动图C、协作图D、配置图7、下面()不是消息的组成部分。
A、接收消息的对象B、消息名C、变元D、规格说明8、热水器和小鸭牌热水器这两个事物之间是( )关系。
A、继承B、聚集C、关联D、细化9、对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。
A、结合B、隐藏C、封装D、抽象10、面向对象的主要特征除对象惟一性、封装、继承外,还有().A、多态性B、完整性C、可移植性D、兼容性11、软件文档在软件工程实施中是十分重要的,它不仅是软件开发各阶段的重要依据,而且极大影响软件的( ).A、可靠性B、可维护性C、可扩展性D、可移植性12、下列()属于系统软件。
A、字处理软件B、Rational RoseC、操作系统D、ERP系统13、以下是图书管理系统的相关类,属于边界类的是 ( )A、图书类B、读者类C、身份验证类D、借书操作界面类14、 OMT 方法是由下面哪位科学家提出的()A、BoochB、RumbaughC、CoadD、Jacobson15、面向对象分析过程中获取用户需求不正确的是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章软件工程学概述1.什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机的典型表现:(1)对软件开发成本和进度的估计常常很不准确。
(2)用户对“已完成”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
管理和控制软件开发过程相当困难。
软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2.什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
本质特性:(1)软件工程关注于大型程序的构造。
(2)软件工程的中心课题是控制复杂性。
(3)软件经常变化。
(4)开发软件的效率非常重要。
(5)和谐地合作是开发软件的关键。
(6)软件必须有效地支持它的用户。
(7)在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。
缓解软件危机:软件危机只有缓解,不可能解决,特别是在目前这种硬件结构体系下开发的软件,其危机永远存在,即使未来的新一代计算机系统问世后,那也会产生新形式的软件危机。
要缓解软件危机,既要有先进的技术和方法,又需要高水平的组织管理措施。
而软件工程正是综合了管理和技术两方面,研究如何更好地开发软件的一门新兴学科。
所以,就目前而言,软件工程是缓解软件危机的最好途径。
6.什么是软件过程?它与软件工程方法学有何关系?答: 软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件工程方法学包含软件过程。
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
数据字典组成:数据流,数据元素,数据存储,处理。
数据元素组成:顺序、选择、重复,可选。
数据字典最重要的用途是作为分析阶段的工具。
7.什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。
软件生命周期模型,是从一个特定角度提出的对软件过程的简化描述,是对软件开发实际过程的抽象,它包括构成软件过程的各种活动、软件工件(artifact)以及参与角色等。
瀑布模型的优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。
瀑布模型的缺点:(1)开发过程一般不能逆转,否则代价太大;(2)实际的项目开发很难严格按该模型进行;(3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。
(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。
瀑布模型的使用范围:(1)用户的需求非常清楚全面,且在开发过程中没有或很少变化;(2)开发人员对软件的应用领域很熟悉;(3)用户的使用环境非常稳定;(4)开发工作对用户参与的要求很低。
快速原型模型的优点:(1)可以得到比较良好的需求定义,容易适应需求的变化;(2)有利于开发与培训的同步;(3)开发费用低、开发周期短且对用户更友好。
快速原型模型的缺点:(1)客户与开发者对原型理解不同;(2)准确的原型设计比较困难;(3)不利于开发人员的创新。
快速原型模型的使用范围:(1)对所开发的领域比较熟悉而且有快速的原型开发工具;(2)项目招投标时,可以以原型模型作为软件的开发模型;(3)进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的。
增量模型的优点:(1)采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;(2)如果核心产品很受欢迎,则可增加人力实现下一个增量;(3)可先发布部分功能给客户,对客户起到镇静剂的作用。
增量模型的缺点:(1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;(2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。
增量模型的使用范围:(1)进行已有产品升级或新版本开发,增量模型是非常适合的;(2)对完成期限严格要求的产品,可以使用增量模型;(3)对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的。
螺旋模型的优点:(1)设计上的灵活性,可以在项目的各个阶段进行变更;(2)以小的分段来构建大型系统,使成本计算变得简单容易;(3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;(4)随着项目推进,客户始终掌握项目的最新信息, 从而他或她能够和管理层有效地交互。
螺旋模型的缺点:(1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;(2)过多的迭代次数会增加开发成本,延迟提交时间。
螺旋模型的使用范围:螺旋模型只适合于大规模的软件项目。
系统流程图是概括地描绘物理系统的传统工具。
它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序、文档、数据库、人工过程等)。
数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
需求分析过程应建立的3种模型:数据模型、功能模型和行为模型状态转换图(简称状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
状态图还指明了作业特定事件的结果系统将做哪些动作。
状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。
事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。
层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。
IPO图是输入、处理、输出图的简称,它是由美国IBM公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。
3.银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。
请用数据流图描绘本系统的功能5.办公室复印机的工作过程如下:未接收到复印命令时处于闲置状态,一旦接收到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现缺纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待绝维修人员来排除故障,故障排除后回到闲置状态。
(请用状态转换图描绘复印机的行为。
)第五章总体设计模块是由边界元素限定的相邻程序元素序列,而且有一个总体标识符代表它。
过程、函数、子程序和宏等,都可以作为模块。
模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
信息隐藏:使一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。
局部化是指把一些关系密切的软件元素物理地放得彼此靠近。
有助于实现信息隐藏。
模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。
模块独立的重要性:1.有效的模块化(即有独立的模块)的软件比较容易开发出来。
2.独立的模块比较容易测试和维护。
耦合衡量不同模块彼此间互相信赖(连接)的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。
低耦合:数据耦合高内聚:功能内聚、顺序内聚尽量做到作用数据耦合,少用控制耦合和特征耦合限制公共环境耦合的范围,完全不用内容耦合。
面向数据流的设计方法把信息流映射成软件结构,信息流类型决定了映射的方法。
变换流:信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加处理以后再沿输出通路变换成外部形式离开软件系统。
事务流:以事务为中心,数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。
事务中心所要完成任务:1.接收输入数据(输入数据又称为事务)。
2.分析每个事务以确定它的类型。
3根据事务类型选取一条活动通路。
3 画出下列伪码程序的程序流程图和盒图4 下图给出的程序流程图代表一个非结构化的程序,请问:(1)为什么说它是非结构化的?(2)设计一个等价的结构化程序。
(3)在(2)题的设计中你使用附加的标志变量flag吗?若没用,请再设计一个使用flag的程序;若用了,再设计一个不用flag的程序(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。
图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。
(2)不使用flag把该程序改造为等价的结构化程序的方法如图所示。
7.。
P142 令P代表交易的总金额,Q代表每股的售价,n代表交易的股数。
(1)表示手续费计算方法的判定表如图所示。
判定表的每一列是一条计算规则。
例如,第1列(规则1)规定,当交易总金额P少于1000元,且每股售价Q低于14元,且交易的股数n是100的倍数时,给经纪人的手续费为(l+0.05)×0.084P 第16列(规则16)表明,当交易总金额P超过10000元,且每股售价Q在14元到25元之间,且交易的股数n不是100的倍数时,手续费为(1+0.06)×(0.04P+134)(3)表示手续费计算方法的判定树如图所示。
软件测试步骤:模块测试子系统测试系统测试验收测试平行运行代码审查:由审查小组正式进行人工测试源程序。
代码审查比计算机测试优越的是:一次审查会上可以发现许多错误;用计算机测试的方法发现错误之后,通常需要先改正这个错误才能继续测试,因此错误是一个个地发现并改正的。
也就是说,采用代码审查方法可以减少系统验证的总工作量。