软件工程作业题及答案
软件工程(期末试题及答案)

软件工程(期末试题及答案)软件工程(期末试题及答案)一、选择题(共20题,每题2分,共40分)1. 在软件工程中,以下哪一项不是七大工程()。
A. 软件需求B. 软件设计C. 软件开发D. 软件维护答案: D2. 软件需求分析的目的是()。
A. 理解用户需求B. 设计软件架构C. 编写用户手册D. 测试软件功能答案: A3. 软件开发过程中的迭代模型,不存在的是()。
A. 瀑布模型B. 敏捷开发模型C. 螺旋模型D. 喷泉模型答案: D4. 以下哪个不是软件测试的目的()。
A. 发现错误和缺陷B. 验证软件是否满足需求C. 评估软件的可靠性和质量D. 优化软件的性能答案: D5. 软件项目管理中,以下哪种方法适用于大型复杂项目()。
A. 瀑布模型B. 敏捷开发C. 增量模型D. 螺旋模型答案: D6. 软件开发生命周期中,以下哪个过程不属于()。
A. 需求分析过程B. 设计过程C. 编码过程D. 运维过程答案: D7. 在软件工程中,什么是软件测试()。
A. 软件开发的最后阶段B. 发现软件缺陷的过程C. 确保软件质量的控制过程D. 软件最终验收的流程答案: C8. 以下哪种测试方法旨在评估软件在不同负载下的性能和稳定性()。
A. 单元测试B. 集成测试C. 系统测试D. 性能测试答案: D9. 软件开发中,以下哪个活动不属于软件配置管理()。
A. 版本控制B. 配置变更控制C. 缺陷管理D. 代码评审答案: D10. 以下哪个是敏捷开发的基本原则()。
A. 面对面交流胜过文档B. 完全按照计划进行C. 精确的需求分析是关键D. 严格的变更控制是必要的答案: A11. 下列哪个不属于软件配置管理的内容()。
A. 变更控制B. 版本控制C. 缺陷管理D. 运维管理12. 软件的可靠性是指()。
A. 软件是否能正常运行B. 软件是否符合用户需求C. 软件运行期间不出现故障的能力D. 软件功能的完善程度答案: C13. 下列哪个不属于软件开发的7大原则()。
软件工程考试题及答案

软件工程考试题及答案一、单项选择题(每题2分,共20分)1. 软件工程的三要素不包括以下哪一项?A. 工具B. 方法C. 过程D. 环境答案:D2. 软件需求分析阶段的主要任务是确定软件的()。
A. 功能需求B. 性能需求C. 界面需求D. 所有选项答案:D3. 软件测试的目的是()。
A. 发现软件中的错误B. 证明软件是正确的C. 验证软件是否满足需求D. 所有选项答案:D4. 以下哪一项不是软件维护的类型?A. 纠错性维护B. 适应性维护C. 完善性维护D. 开发性维护答案:D5. 软件项目管理的主要目标是()。
A. 提高软件质量B. 控制成本C. 缩短开发周期D. 所有选项答案:D6. 瀑布模型的主要缺点是()。
A. 缺乏灵活性B. 难以适应需求变化C. 无法并行开发D. 所有选项答案:D7. 敏捷开发方法的核心理念是()。
A. 以文档为中心B. 以人为中心C. 以过程为中心D. 以工具为中心答案:B8. 软件配置管理的主要目的是()。
A. 确保软件的一致性B. 跟踪软件的变更C. 控制软件的版本D. 所有选项答案:D9. 以下哪一项不是软件工程的原则?A. 抽象B. 模块化C. 复用D. 随机性答案:D10. 软件工程的目标是()。
A. 开发高质量的软件B. 提高软件生产率C. 降低软件成本D. 所有选项答案:D二、多项选择题(每题3分,共15分)1. 软件需求分析阶段可能包括以下哪些活动?A. 需求收集B. 需求分析C. 需求规格说明D. 需求验证答案:ABCD2. 软件测试的类型包括以下哪些?A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:ABCD3. 软件维护的常见原因包括以下哪些?A. 适应环境变化B. 修正软件缺陷C. 提高软件性能D. 增加新功能答案:ABCD4. 软件项目管理的关键活动包括以下哪些?A. 项目规划B. 项目监控C. 项目沟通D. 风险管理答案:ABCD5. 软件工程中的常见开发模型包括以下哪些?A. 瀑布模型B. 螺旋模型C. 敏捷模型D. 增量模型答案:ABCD三、判断题(每题2分,共10分)1. 软件工程的目标是开发出零缺陷的软件。
(完整版)《软件工程》作业及答案.

《软件工程》作业及答案1-1 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机典型表现:对软件开发成本和进度的估计常常很不准确。
用户对“已完成的”软件系统不满意的现象经常发生。
软件产品的质量往往靠不住。
软件常常是不可维护的。
软件通常没有适当的文档资料。
软件成本在计算机系统总成本中所占的比例逐年上升。
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
管理和控制软件开发过程相当困难。
软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。
1-2 假设你是一家软件公司的总工程师,当你把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”你怎么反驳他?1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?答:软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。
软件工程练习题&答案

软件工程练习题一. 选择题(单选或多选)(1)需求分析阶段最重要的技术文档是( C )。
A)项目开发计划B) 设计说明书C)需求规格说明书D) 可行性分析报告(2)在软件工程中,白盒测试法可用于测试程序的内部结构。
此方法将程序看作是(A )A) 路径的集合B) 循环的集合C) 目标的集合 D) 地址的集合(3)在以下模块耦合性类型中,模块之间独立性最差的类型是( D )A) 非直接耦合B) 标记耦合C)控制耦合D)内容耦合(4)软件详细设计的主要任务是对(A)进行的详细设计。
A) 算法和数据结构B) 外部接口C)软件编码D)功能(5)Jackson方法是一种面向(C)的结构化方法。
A) 数据流B) 对象C)数据结构D)控制流(6)一个成功的测试可以( D )。
A) 表明程序没有错误B) 发现所有错误C)提高软件可靠性D)发现尚未发现的错误(7)下述陈述中,哪一个不是软件健壮性的度量指标?(C )。
A)失败后重新启动所需的时间B)引起失败的时间所占的百分比C)失败前的平均工作时间D)在一次失败中数据恶化的概率(8)黑盒技术设计测试用例的方法之一为( A )。
A)因果图B)逻辑覆盖C)循环覆盖D)基本路径测试(9)CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是(D )。
A)工作无序,项目进行过程中经常放弃当初的计划B)建立了项目级的管理制度C)建立了企业级的管理制度D)软件过程中活动的生产率和质量是可度量的(10)在面向数据流的软件设计方法中,一般将信息流分为( A )。
A)变换流和事务流B)变换流和控制流C)事务流和控制流D)数据流和控制流(11)软件设计中一般将用到图形工具,下述哪种工具可用作设计的图形工具。
( ABCDEF )A)结构图B)实体关系图C)IPO图D)流程图E) N-S图F) 判定树(12)软件需求分析阶段建立原型的主要目地是( C )。
A)确定系统的性能要求B)确定系统的运行要求C)确定系统是否满足用户需要D)确定系统是否满足开发人员需要(13)要显示描绘软件开发项目各作业的依赖关系,应选择(B )。
软件工程试题及答案

一、填空1.结构化分析方法的分析策略是自顶向下逐步求精。
2.衡量模块独立性的两个定性标准是_耦合性与内聚性。
3.软件集成测试的方法主要有两种,它们是渐增式与非渐增式测试。
4.可行性研究的目的是用最小的代价在尽可能短的时间内确定该软件项目_是否值得开发_。
5.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求_。
6.软件生存周期中时间最长、花费的精力和费用最多的一个阶段是维护阶段。
7.计算机辅助软件工程这一术语的英文缩写为_CASE 。
8.McCall 提出的软件质量模型包括11 个软件质量特性。
9.软件结构是以模块10.软件概要设计的主要任务就是为基础而组成的一种控制层次结构。
软件结构的设计。
11.结构化程序设计方法是使用三种基本控制结构 (条件\控制\循环) 构造程序。
12.在建立对象的功能模型时,使用的数据流图中包含有处理、数据流、动作对象和数据存储对象_二、选择1.UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法( C )A、基于瀑布模型的结构化方法B、基于需求动态定义的原型化方法C、基于对象的面向对象的方法D、基于数据的数据流开发方法2、面向对象的开发方法中,(B)将是面向对象技术领域内占主导地位的标准建模语言。
A、Booch 方法B、UML 语言C、OMT 方法D、Coad 方法3、功能模型中所有的( A)往往形成一个层次结构。
在这个层次结构中一个数据流图的过程可以由下一层的数据流图作进一步的说明。
A、数据流图B、概念模型图C、状态迁移图D、事件追踪图4、(A)应当在应用分析之前进行,因为我们在了解问题之前应当对问题敞开思想考虑,不应加以限制。
A、问题域分析 B 、高层分析C、实例的建立D、类的开发5、通过执行对象的操作改变对象的属性,但它必须通过(B)的传递。
A、接口 B 、消息C、信息D、操作6、所有的对象可以成为各种对象类,每个对象类都定义了一组(B)A、说明 B 、方法C、过程D、类型9、面向对象的主要特征除对象唯一性、封装、继承外,还有(A)A、多态性 B 、完整性C、可移植性D、兼容10、在面向对象的设计中,我们应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有(B)A、隐藏复杂性 B 、信息隐藏C、即存类的重用 D 、类的开发13、在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。
软件工程(第五版)--习题及答案

一、判断题1、(√)详细设计也称模块设计。
2、(×)在数据代码设计时,应尽量让一条代码代表多个信息。
3、(×)在数据代码设计时,应可能设计字母和数字混合代码。
4、(×)在输出界面设计时,要尽可能使用代码或缩写,以求简洁。
5、(×)详细设计评审应尽可能和概要设计评审一同进行。
二、选择题1、软件详细设计的主要任务是确定每个模块的(A )。
A 、算法和使用的数据结构、算法和使用的数据结构 B 、外部接口、外部接口 C 、功能、功能 D 、程序、程序2、借助于软件工具,可将(C )容易地转换为高级语言源程序。
)容易地转换为高级语言源程序。
A 、程序流程图、程序流程图 B 、N-S 图 C 、PAD 图 D 、判定表、判定表3、不属于详细设计工具的是(A )。
A 、DFD 图B 、PAD 图C 、PDlD 、N-S 图 4、程序的三种基本结构是(C )。
A 、过程、子过程和子程序、过程、子过程和子程序 B 、递归、堆栈和队列、递归、堆栈和队列 C 、顺序、选择和重复、顺序、选择和重复 D 、调用、返回和转移、调用、返回和转移 5、下面描述中,符合结构化程序设计风格的是(A )。
A 、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B 、模块只有一个入口,可以有多个出口C 、注重提高程序的执行效率、注重提高程序的执行效率D 、不使用goto 语句 三、简答题1、软件的详细设计阶段完成的主要任务是什么? 答:(1)算法设计;(2)数据结构设计;(3)模块接口细节设计;(4)测试用例设计;(5)数据库物理设计;(6)数据代码设计;(7)其他设计;(8)编写详细设计说明书并进行评审。
编写详细设计说明书并进行评审。
2、数据输入界面设计的主要原则有哪些?答:在设计数据输入界面时应做到:尽量简化用户的工作、减少输入的出错率;减轻用户的记忆负担、尽可能减少输入量并实现自动输入;尽可能减少输入量并实现自动输入; 对共同的输入设置默认值;对共同的输入设置默认值; 使用代码或缩写;缩写; 自动填入已输入过的内容;列表式输入; 数据分组输入。
软件工程综合习题(1)及答案

软件工程综合习题(1)及答案一、选择题1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。
A.软件工程B.软件周期C.软件危机D.软件产生2.瀑布模型本质上是一种(A )模型。
A.线性顺序B.顺序迭代C.线性迭代D.早期产品3.瀑布模型存在的问题是(B )。
A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求4.螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。
A.增量模型B.专家系统C.喷泉模型D.变换模型5.原型化方法是用户和设计者之间执行的一种交互构成,适用于(A)系统。
A.需求不确定性高的 B.需求确定的C.管理信息 D.实时6.下列有关软件工程的标准,属于国际标准的是(D )A.GBB.DINC.ISOD.IEEE7.结构化方法是一种基于(D)的方法。
A.数据结构B.程序结构C.算法D.数据流8.软件可行性研究实质上是要进行一次( A)需求分析、设计过程。
A、简化、压缩的B、详细的C、彻底的D、深入的9.可行性研究的目的是(D)A、分析开发系统的必要性B、确定系统建设的方案C、分析系统风险D、确定是否值得开发系统10.设年利率为i,现存入p元,不计复利,n年后可得钱数为(C)。
A、P×(1+i*n)B、P× (i+1)*nC、p×(1+i)nD、p×(i+n)11.可行性研究是在(A)之前A、系统开发B、测试C、试运行D、集成测试12.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的(C)。
A、1%B、20%C、8%D、50%13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。
A.《计算机软件保护条例》B.《中华人民共和国计算机信息系统安全保护条例》C.《中华人民共和国著作权法》D.《计算机病毒防治管理办法》14.效率是一个性能要求,因此应当在以下哪个阶段规定?BA、可行性分析B、需求分析C、概要设计D、详细设计15.需求规格说明书的作用不包括(D)A、软件验收的依据B、用户与开发人员对软件要做什么的共同理解C、软件可行性研究的依据D、软件设计的依据16.数据字典是用来定义(D)中的各个成份的具体含义的。
软件工程试题及答案(较详细)

一.判断题:1.如果决定将软件全部包给第三方公司开发。
(×)2.有了对系统的目标有了大致的了解,就可以开始开发项目,以后的在开发中继续了解。
(×)3.对于一个成功的软件项目,可执行程序是唯一交付的东西。
(×)4.直到程序运行,才评估软件系统的质量。
(×)5.如果未能按时完成任务,我们可以通过增加程序员来加快完成任务.(×)6.虽然软件需求不断变更,但因软件比硬件有弹性,所以我们经常可以变更它.(×)7.软件工程将导致我们产生大量的无用文档,降低工作效率。
(×)8.在面向对象建模中,主题划分提供了在更高一层上描述。
(主题划分是指UML中将一组关联比较强的类的集合。
则上百个类可划分为几个主题)(√)9.面向对象的开发,对象分解取代功能分解. (√)10.软件中80%的错误存在20%的模块中。
(√)11.结构化分析方法在建立系统模型时,使用一般――特殊结构(实际上没有这种关系)来处理信息。
(×)12.开发软件就是编程。
(×)13.需求规格说明书说明了(√)14.结构化方法,建立系统模型时使用一般连接组织信息. (×)15.敏捷过程模型选用小而高激励的团队使用而不适用于大团队。
(√)二.简答题1.软件工程是层次化的,其四个层次是?答:方法,工具,过程,质量保证软件工程是一种层次化的技术(如图2-1所示)。
任何工程方法(包括软件工程)必须以有组织的质量保证为基础。
全面的质量管理和类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现。
支持软件工程的根基就在于对质量的关注。
软件工程的基层是过程层。
软件工程过程是将技术层结合在一起的凝聚力,使得计算机软件能够被合理地和及时地开发出来.过程定义了一组关键过程区域的框架(KPAs)[PAY93],这对于软件工程技术的有效应用是必须的。
关键过程区域构成了软件项目的管理控制的基础,并且确立了上下各区域之间的关系,其中规定了技术方法的采用、工程产品(模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证及变化的适当管理。
软件工程学试题及答案

软件工程学试题及答案一、单项选择题(每题2分,共10分)1. 软件工程的目的是()。
A. 提高软件的生产率B. 提高软件的运行效率C. 降低软件的生产成本D. 提高软件的可维护性答案:A2. 下列哪项不是软件需求分析的任务?()。
A. 确定软件的功能需求B. 确定软件的性能需求C. 确定软件的界面需求D. 确定软件的测试需求答案:D3. 软件生命周期中,()阶段是确定软件需求的阶段。
A. 需求分析B. 系统设计C. 编码D. 测试答案:A4. 软件测试的目的是()。
A. 证明软件是正确的B. 证明软件存在错误C. 发现软件中的错误D. 证明软件不存在错误答案:C5. 软件危机主要表现在()。
A. 软件成本B. 软件质量C. 软件进度D. 所有选项答案:D二、多项选择题(每题3分,共15分)1. 软件工程的基本原理包括()。
A. 用分阶段的生命周期计划严格管理B. 强调开发过程的迭代性质C. 采用合适的编程规范D. 强调软件工具的使用答案:ABD2. 软件需求分析的常用方法包括()。
A. 数据流图B. 用例图C. 状态转换图D. 流程图答案:ABC3. 软件测试的类型包括()。
A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:ABCD4. 软件维护的类型包括()。
A. 校正性维护B. 适应性维护C. 完善性维护D. 预防性维护答案:ABCD5. 软件工程中常用的设计模式包括()。
A. 单例模式B. 工厂模式C. 观察者模式D. 策略模式答案:ABCD三、简答题(每题5分,共20分)1. 简述软件工程中的模块化设计原则。
答案:模块化设计原则要求将系统分解成若干个模块,每个模块具有高内聚、低耦合的特点,以便于系统的开发、测试、维护和理解。
2. 描述软件需求分析的重要性。
答案:软件需求分析是软件开发过程中的关键步骤,它确保了开发团队对用户需求有清晰的理解,有助于避免开发出不符合用户需求的软件,减少返工和成本。
《软件工程》11套考试复习练习题、作业题(含答案)

作业1:1. 软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。
其中,( A )是按事先设计的功能和性能要求执行的指令序列。
( B )是使程序能够正确操纵信息的数据结构。
( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2. 开发软件时对提高软件开发人员工作效率至关重要的是( A )。
软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。
供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3. 从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。
有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950年代末~1960年代末)称为“基本软件期”。
出现了( A ),并逐渐普及。
随着( B )的发展,编译技术也有较大的发展。
第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。
这一时期,与硬件费用下降相反,软件开发费急剧上升。
人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。
第四阶段(1970年代中期~现在)称为“软件工程时期”。
软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、(G )及其整体有关的各种管理技术。
供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理4. 软件工程过程有哪几个基本过程活动?试说明之。
软件工程试卷及参考答案

试卷(一)一、单项选择题1、在结构化设计(SD)方法中全面指导模块划分的最重要的原则是( )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、PascalB、CC、FortranD、 Prolog10、研究开发所需要的成本和资源是属于可行性研究中的( )研究的一方面。
A. 技术可行性B. 经济可行性C. 社会可行性D. 法律可行性11、中级结构性成本模型COCOMO是一个( )A、静态单变量模型B、动态单变量模型C、静态多变量模型D、动态多变量模型12、PAD图为()提供了有力的工具。
A、系统分析B、软件的自动化生成C、自动分析数据D、测试软件13、下列关于JSP方法不正确的说法是( )A、JSP方法主要用于规模不大的数据处理系统B、JSP方法不明确的划分软件概要设计和详细设计的两个阶段C、JSP方法适用于输入数据和输出数据之间有对应关系的问题求解D、JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。
因此它只适用于详细设计阶段14、在详细设计阶段,经常采用的工具有()A、PADB、SAC、SCD、DFD15、确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于()A、集成测试B、恢复测试C、验收测试D、单元测试16、盒图(N-S图)为()提供了有力的工具。
软件工程期末试卷(十套含答案)

软件工程期末试卷(十套含答案)一、选择题(每题1分,共5分)A. 方法论B. 工具C. 过程D. 人员2. 下列哪一项不是软件生命周期的阶段?A. 需求分析B. 设计C. 编码D. 销售与市场A. 瀑布模型B. 喷泉模型C. 增量模型D. 敏捷模型4. 下列哪种方法不是软件需求获取的方法?A. 问卷调查B. 访谈C. 观察D. 编码A. 单一职责原则B. 开放封闭原则C. 里氏替换原则D. 依赖倒置原则二、判断题(每题1分,共5分)1. 软件工程的目标是生产出高质量的软件产品。
(√/×)2. 在软件开发过程中,需求分析阶段是最重要的阶段。
(√/×)3. 软件开发模型只有瀑布模型和喷泉模型两种。
(√/×)4. 在面向对象方法中,类是现实世界中实体的抽象。
(√/×)5. 软件测试的目的是证明软件的正确性。
(√/×)三、填空题(每题1分,共5分)1. 软件工程的三要素包括方法论、工具和______。
2. 软件生命周期包括需求分析、设计、编码、测试和______。
3. 在面向对象方法中,对象是现实世界中实体的______。
4. 软件开发模型包括瀑布模型、喷泉模型、增量模型和______。
5. 软件测试的目的是发现软件中的______。
四、简答题(每题2分,共10分)1. 简述软件工程的目标。
2. 简述软件生命周期的阶段。
3. 简述面向对象方法的基本概念。
4. 简述软件开发模型的作用。
5. 简述软件测试的目的。
五、应用题(每题2分,共10分)1. 假设你是一个软件开发人员,你需要为一个图书馆开发一个图书管理系统。
请列出该系统的需求。
2. 请解释瀑布模型和喷泉模型的区别。
3. 请解释面向对象方法中的继承和多态的概念。
4. 请解释软件测试中的黑盒测试和白盒测试的区别。
5. 请解释软件维护的类型。
六、分析题(每题5分,共10分)1. 假设你是一个软件开发人员,你需要为一个在线购物网站开发一个支付系统。
《软件工程》题库及参考答案

《软件工程》练习测试题库一、单项选择题1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()A.软件工程B.软件周期C.软件危机D.软件产生2.研究开发所需要的成本和资源是属于可行性研究中的()研究的一方面。
A.技术可行性B.经济可行性C.社会可行性D.法律可行性3.IDEF0图不反映出系统()A.系统做什么B.系统功能如何实现C.系统由谁来做D.系统实现的约束条件4.模块的内聚性最高的是()A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚5.在SD方法中全面指导模块划分的最重要的原则是()A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性6.软件详细设计主要采用的方法是()A.模块设计B.结构化设计C.PDL语言D.结构化程序设计7.下列关于JSP方法不正确的说法是()A.JSP方法主要用于规模不大的数据处理系统B.JSP方法不明确的划分软件概要设计和详细设计的两个阶段C.JSP方法适用于输入数据和输出数据之间有对应关系的问题求解D.JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。
因此它只适用于详细设计阶段8.不适合作为科学工程计算的语言是()A. PascalB. CC. FortranD. Prolog9.黑盒测试在设计测试用例时,主要需要研究()A.需求规格说明与概要设计说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明10.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。
设计这组测试用例的方法是()A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法11.下列属于维护阶段的文档是()A.软件规格说明B.用户操作手册C.软件问题报告D.软件测试分析报告12.快速原型模型的主要特点之一是()A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件13.因计算机硬件和软件环境的变化而做出的修改软件的过程称为()A.较正性维护B.适应性维护C.完善性维护D.预防性维护14.类库这种机制是()级别的信息共享。
软件工程习题及详细答案

软件工程习题及答案一、选择题: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、1/6B、1/5C、1/4D、1/37. 变换型和事务型是程序结构的标准形式。
从某处获得数据,再对这些数据作处理,然后将结果送出是属于。
A、变换型B、事务型8. PAD(Problem Analysis Diagram)图是一种工具。
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. 结构化程序设计主要强调程序的。
(完整版)软件工程试卷及答案(多套精品试卷)

软件工程试题及答案第一部分选择题一、单项选择题每小题1分,共20分。
(在每小题的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内)1.在下列工具与环境中()属于较早期的CASE。
A.基于信息工程CASE B.人工智能CASEC.结构的基于图形CASE D.集成的CASE环境2.Putnam成本估算模型是一个()模型。
A.静态单变量 B.动态单变量 C.静态多变量 D.动态多变量3.在McCall软件质量度量模型中,()属于面向软件产品修改。
A.可靠性 B.可重用性C.适应性 D.可移植性4.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是()A.SQIC B.SQMC C.SQRC D.SQDC5.软件复杂性度量的参数包括()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.FORTRAN语言B.Pascal语言 C.C语言D.PL/1语言12.程序的三种基本控制结构是()A.过程、子程序和分程序B.顺序、选择和重复 C.递归、堆栈和队列 D.调用、返回和转移13.在详细设计阶段,经常采用的工具有()A.PAD B.SA C.SC D.DFD14.详细设计的结果基本决定了最终程序的()A.代码的规模 B.运行速度 C.质量 D.可维护性15.需求分析中开发人员要从用户那里了解()A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模16.结构化程序设计主要强调的是()A.程序的规模 B.程序的效率C.程序设计语言的先进性D.程序易读性17.IDEF。
软件工程习题附答案

软件工程习题附答案软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。
以下是一些软件工程的习题及答案,希望能帮助您更好地理解这门学科。
一、选择题1、软件生命周期中所花费用最多的阶段是()A 详细设计B 软件编码C 软件测试D 软件维护答案:D解析:软件维护阶段需要对软件进行修改、优化和修复,由于软件在使用过程中可能会遇到各种问题和需求变更,所以维护阶段通常会花费大量的时间和资源。
2、下面不属于软件工程的 3 个要素的是()A 工具B 过程C 方法D 环境答案:D解析:软件工程的三要素是方法、工具和过程。
方法为软件开发提供了“如何做”的技术;工具为方法的运用提供了自动的或半自动的软件支撑环境;过程是将方法和工具结合起来,以达到合理、及时地进行软件开发的目的。
3、软件可行性研究实质上是要进行一次()需求分析和设计过程。
A 简化、压缩的B 详细的C 彻底的D 深入的答案:A解析:可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决,其实质是进行一次简化、压缩的需求分析和设计过程。
4、软件测试的目的是()A 证明软件的正确性B 找出软件中的所有错误C 尽可能多地发现软件中的错误D 调试程序答案:C解析:软件测试的目的是尽可能多地发现软件中的错误,而不是证明软件的正确性,也不可能找出软件中的所有错误。
5、下面描述中,不符合结构化程序设计风格的是()A 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B 自顶向下C 注重提高程序的执行效率D 限制使用 goto 语句答案:C解析:结构化程序设计强调清晰的结构和良好的可读性,注重程序的可理解性和可维护性,而不是过于追求执行效率。
二、填空题1、软件生存周期一般可分为问题定义、可行性研究、()、设计、()、测试、运行与维护阶段。
软件工程习题及答案

《软件工程》习题集目录一软件与软件工程 (1)二软件项目管理 (4)三需求分析 (7)四面向对象的需求分析 (10)五软件设计 (15)六程序设计语言和编码 (18)七软件测试 (20)八软件维护 (23)综合试卷一 (25)综合试卷二 (28)综合试卷三 (31)附参考答案: (34)一软件与软件工程参考答案 (34)二软件工程管理参考答案 (37)三需求分析参考答案 (39)四面向对象的需求分析参考答案 (43)五软件设计参考答案 (52)六程序设计语言和编码参考答案 (55)七软件测试参考答案 (59)八软件维护参考答案 (62)综合试卷一参考答案及评分标准 (65)综合试卷二参考答案及评分标准 (68)综合试卷三参考答案及评分标准 (71)一软件与软件工程一、选择题1.软件的主要特性是()A、无形性B、高成本C、包括程序和文档D、可独立构成计算机系统2.软件工程三要素是()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法3.包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4.软件工程的主要目标是()A、软件需求B、软件设计C、风险分析D、软件实现5.下列属于面向对象开发方法的是()A、BoochB、UMLC、CoadD、OMT6.软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下7.软件开发方法的主要工作模型有()A、螺旋模型B、循环模型C、瀑布模型D、专家模型8.软件工程的目标有()A、易于维护B、低的开发成本C、高性能D、短的开发期9.软件工程学的目的和意义是()A、应用科学的方法和工程化的规范管理来指导软件开发。
B、克服软件危机。
C、作好软件开发的培训工作。
D、以较低的成本开发出高质量的软件。
二、判断题1.软件就是程序,编写软件就是编写程序。
2.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
软件工程考试试题及答案

软件工程考试试题及答案一、单选题1. 软件需求分析是软件工程的哪个阶段?a. 需求分析与定义b. 软件设计c. 软件测试d. 软件维护答案:a. 需求分析与定义2. 下列哪项不是软件工程的基本原则?a. 可复用性b. 高效性c. 可维护性d. 可理解性答案:b. 高效性3. 下列哪项不是软件质量保证的措施?a. 程序员的自我质量保证b. 审计c. 代码复用d. 测试答案:c. 代码复用4. 下列哪个是软件生命周期模型?a. 瀑布模型b. 程序开发模型c. 螺旋模型d. 增量模型答案:a. 瀑布模型5. 在软件工程中,什么是软件配置管理?a. 设计和开发软件的过程b. 管理软件的版本和更改c. 测试软件的过程d. 分配和调度任务的过程答案:b. 管理软件的版本和更改二、多选题1. 下列哪些是软件需求规格说明的内容?(多选)a. 需求的功能描述b. 系统性能要求c. 用户界面设计d. 软件的安装要求答案:a. 需求的功能描述、b. 系统性能要求、d. 软件的安装要求2. 软件测试的目的是什么?(多选)a. 发现软件中的错误b. 确保软件满足需求c. 评估软件的质量d. 提高软件的可维护性答案:a. 发现软件中的错误、b. 确保软件满足需求、c. 评估软件的质量3. 下列哪些是软件维护的类型?(多选)a. 纠错性维护b. 适应性维护c. 完善性维护d. 增量性维护答案:a. 纠错性维护、b. 适应性维护、c. 完善性维护、d. 增量性维护三、判断题1. 软件工程是一门工程学科,它包括对软件进行开发、测试、维护和管理等方面的知识。
(正确/错误)答案:正确2. 软件需求分析是软件开发的最后一步。
(正确/错误)答案:错误3. 软件测试的目的是为了证明软件是没有错误的。
(正确/错误)答案:错误四、简答题1. 简述软件生命周期模型中的瀑布模型。
答案:瀑布模型是软件生命周期模型中最早的模型之一。
它将软件开发过程分为需求分析、系统设计、详细设计、编码、测试和维护等阶段,并按照顺序执行。
软件工程题库(含答案)

软件工程题库(含答案)一、单选题(共60题,每题1分,共60分)1、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( )A、可用性B、正确性C、完整性D、可靠性正确答案:D2、软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是( ).A、可移植性B、可理解性C、可重用性D、可修改性正确答案:A3、在软件质量要素的评价准则中,操作该软件的难易程度指的是( )。
A、容错性B、检测性C、可操作性D、安全性正确答案:C4、下列属于维护阶段的文档是( )A、软件问题报告B、用户操作手册C、软件测试分析报告D、软件规格说明正确答案:B5、快速原型模型的主要特点之一是( )A、及早提供工作软件B、开发完毕才见到产品C、及早提供全部完整的软件产品D、开发完毕后才见到工作软件正确答案:C6、可维护性通常包括( )。
A、可用性和可理解性B、可修改性、数据独立性和数据一致性C、可理解性、可修改性和可测试性D、可测试性和稳定性正确答案:C7、软件的可修改性支持软件的( )。
A、可互操作性B、可维护性C、可追踪性D、有效性正确答案:B8、数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( )A、数据通信B、数据定义C、数据维护D、数据库设计正确答案:B9、软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是( )。
A、可追踪性B、可理解性C、可互操作性D、可维护性正确答案:C10、可维护性的特性中相互促进的是( )A、效率和可移植性B、可理解性和可测试性C、效率和结构好D、效率和可修改性正确答案:B11、在软件质量特性中,( )是指在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。
A、可靠性B、易使用性C、正确性D、准确性正确答案:A12、设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X 需要的工作量(时间)。
对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( )A、信息隐藏和局部化的根据B、逐步求精的根据C、抽象的根据D、模块化的根据正确答案:D13、下列说法中,不正确的是( )。
软件工程考试题及答案

软件工程考试题及答案一、单项选择题(每题2分,共20分)1. 软件工程的主要目标是()。
A. 提高软件的生产率B. 提高软件的运行效率C. 降低软件的生产成本D. 提高软件的可维护性答案:A2. 软件工程的三要素包括()。
A. 方法、工具和过程B. 方法、工具和人员C. 方法、过程和人员D. 工具、过程和人员答案:C3. 软件需求分析阶段的主要任务是()。
A. 确定软件的功能需求B. 确定软件的非功能需求C. 确定软件的界面需求D. 确定软件的测试需求答案:A4. 软件设计阶段的主要任务是()。
A. 制定软件开发计划B. 确定软件的体系结构C. 编写软件详细设计文档D. 进行软件测试答案:B5. 软件测试的目的是()。
A. 证明软件是正确的B. 发现软件中的错误C. 证明软件是无错误的D. 证明软件是可维护的答案:B6. 软件维护不包括以下哪项活动()。
A. 改正性维护B. 适应性维护C. 完善性维护D. 软件设计答案:D7. 软件项目管理的主要任务不包括()。
A. 进度管理B. 质量管理C. 风险管理D. 软件编码答案:D8. 面向对象方法中,对象的基本特性不包括()。
A. 抽象B. 封装C. 继承D. 多态答案:D9. UML(统一建模语言)是一种()。
A. 程序设计语言B. 数据库查询语言C. 建模语言D. 脚本语言答案:C10. 在软件开发过程中,需求变更是不可避免的,以下哪项不是需求变更的原因()。
A. 客户的需求不明确B. 项目范围的扩大C. 技术实现的困难D. 软件已经完成答案:D二、多项选择题(每题3分,共15分)11. 软件工程的基本原理包括()。
A. 抽象B. 模块化C. 逐步求精D. 迭代开发答案:ABC12. 软件需求分析阶段的输出包括()。
A. 需求规格说明书B. 用户手册C. 系统架构图D. 测试计划答案:A13. 软件设计阶段的主要文档包括()。
A. 架构设计文档B. 详细设计文档C. 用户手册D. 测试计划答案:AB14. 软件测试的类型包括()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程作业题简答题1、什么叫软件?软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合2、什么叫软件危机?软件危机包含哪两点?软件危机产生的原因是什么?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
包括两点:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
这些问题具体表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
3、什么叫软件工程?版本1:软件工程是指导计算机软件开发和维护的工程学科。
它采用工程的概念、原理、技术和方法来开发和维护软件;它将管理技术与当前经过时间考验的而证明是正确的技术方法结合起来;它强调使用生存周期方法学和结构分析和结构技术;经过人们长期的努力和探索,围绕着实现软件优质高产这个目标,从技术到管理两个方面做了大量的努力,逐渐形成了”软件工程学”这一新的学科。
版本2:1968 年在第一届NATO 会议上的早期定义:“建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”。
1993 年IEEE 的定义:“①软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②进而研究①实现的途经我们国家最近定义:软件工程是指导计算机软件开发和维护的工程学科。
它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来4、两种软件工程方法学开发软件时要建立哪些模型?瀑布模型(需求稳定,而且可以预先指定)原型模型(需求模糊或者随时间变化)增量模型(分析员先作出需求分析和概要设计,用户参与逐步完善)螺旋模型(将瀑布模型与原型化模型结合起来,并加入了风险分析)喷泉模型(使开发过程具有迭代性和无间隙性)5、软件过程模型有哪些?简述它们的特点。
过程模型分为五大类:1.管理过程模型。
2.瀑布模型(又称为生命周期模型)。
3.增量过程模型:包括增量模型、RAD模型。
4.烟花过程模型:包括原型开发模型、螺旋模型、协同开发模型。
5.专用过程模型:包括机遇构建的开发模型、形式化方法模型、面向方面的软件开发模型。
6、什么是软件生命周期?一个软件从定义、开发、使用和维护,知道最终被废弃,要经历一个毛长的时期,通常把软件经历的这个漫长的时期成为生命周期。
7、软件生命周期有哪几个阶段和步骤?软件开发过程——生命周期各个阶段的基本任务1)软件定义(1)问题定义(2)可行性研究(3)需求分析——系统必需完成哪些任务2)软件开发(1)总体设计――概括地说,系统如何实现(2)详细设计(3)编码和单元测试(4)综合测试3)软件维护(1)改正性维护(2)适应性维护(3)完善性维护(4)预防性维护8、计算机软件的开发经过哪三个大阶段?三个阶段:定义、开发、维护9、软件开发的各阶段的任务是什么?定义阶段:问题定义、可行性研究、需求分析;开发阶段:总体设计、详细设计、编码与单元测试、综合测试;维护阶段:运行维护10、软件设计分哪两个阶段?总体设计的两个阶段分别是什么?分为总体设计和详细设计两个阶段。
总体设计包括系统设计(划分出组成系统的程序、文件、数据库、人工过程和文档等物理元素)和结构设计(确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系,不涉及模块内部算法流程)11、软件与硬件的区别是什么?软件是一种逻辑部件,而不是具体的物理部件。
软件在开发、生产、使用、维护等方面与硬件相比有明显差异。
软件是开发,硬件是制造软件是自定的,硬件是组装的软件不会磨损,硬件存在机械磨损问题12、软件需求分析的任务是什么?需求分析的任务是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。
一般说来,需求分析的任务包括下述几方面:(1).确定对系统的综合要求(主要有:功能需求、性能需求、运行需求、将来可能提出的需求。
)(2).分析系统的数据要求(3).导出系统的逻辑模型:数据流图、实体-联系图、状态转换图、数据字典、算法流程等(4).修正系统开发计划13、瀑布模型与原型模型分别适用于开发哪些软件?瀑布模型与原型模型分别适用于开发哪些软件瀑布模型适合于需求稳定,而且可以预先指定的大型系统工程项目。
原型模型适合于需求模糊或者随时间变化的中小型项目14、数据流图的作用是什么?数据流图简称DFD(Data Flow Diagram)图,它是以特定的图形符号描述系统逻辑模型的工数据流图具;它从数据传送和加工的角度抽象的描述信息在系统中的流动和数据处理的过程;它是开发人员与用户之间交流信息的通信工具;它也是系统分析与系统设计的工具。
数据流图画法总结(1).先找出数据源点和汇点。
它们是外部实体,由它们确定系统与外界的接口。
(2).找出外部实体的输出数据流与输入数据流。
画出顶层数据流图。
(3).从顶层加工出发,逐步细化,画出所需子图。
(4).分析系统的主要处理功能,把每一个处理功能作为一个加工,并且确定它们之间的数据流入、流出关系,画出第一层数据流图。
(5). 对流图中的每个加工进行细化,画出所需的子图,直到加工不需再分解为止。
(6).按照前面给出原则检查和修改每一层数据流图和子图15、什么叫数据字典?如何写数据字典?数据字典是描述数据流图中数据的信息的集合(描述内容包括:数据流图、状态转换图、数据字典E-R 图中的数据信息(数据流、数据存储、外部实体)、控制信息(事件)等,不包括处理)。
如何写?数据元素的组合方式顺序:即以确定的次序连接两个或多个分量。
例:A+B 选择:即从两个或多个可能的元素中选取一个。
例:[A|B]重复:即把指定的分量重复零次或多次。
例:1{A}5 可选:即一个分量是可有可无的(重复零次或一次)16、软件设计的原则有哪些?模块化、抽象与逐步求精、信息隐藏于局部化,模块独立。
17、耦合与内聚分别有哪些?如何定义?如何区分?耦合衡量不同模块彼此间互相依赖(连接)的紧密程度内聚衡量一个模块内部各个元素彼此结合的紧密程度耦合的种类:数据耦合:如果两个模块间的通讯信息是若干参数,其中每一个参数都是一个数据元素,称数据耦合这种耦合为数据耦合。
这是模块之间影响最小的耦合关系。
标记耦合:当把整个数据结构作为参数传递而被调用模块只需要使用其中一部分数据元素标记耦合时,这种情况称为标记耦合。
控制耦合:那么A和B之间控制耦合如果模块A向模块B所传递的信息控制了模块B的内部逻辑,的耦合称为控制耦合。
公共耦合:如果两个或多个模块都和同一个公共数据域有关,则称为公共耦合。
公共耦合公共耦合是一种不良的耦合关系,它给模块的维护和修改带来困难。
如果两个模块共享的数据很多,都通过参数传递很不方便时,可以利用公共耦合。
内容耦合:如果一个模块和另一个模块的内部属性(即运行程序和内部数据)有关,则称为内容耦合。
功能内聚:如果一个模块内部的各组成部分的处理动作全都为执行同一个功能而存在,并且功能内聚:只执行一个功能,则称为功能内聚。
判断一个模块是不是功能内聚,只要看这个模块是“做什么”是完成一个具体的任务,还是完成多任务。
顺序内聚:如果一个模块内部的各个组成部分执行的几个处理动作有这样的特征:前一个处顺序内聚:理动作所产生的输出数据是后一个处理动作的输入数据,称为顺序内聚。
顺序内聚维护起来不如功能内聚方便,要修改模块中的一个功能,会影响到同一个模块中的其他功能。
通讯内聚:如果一个模块内各组成部分的处理动作都使用相同的输入数据或产生相同的输通讯内聚出数据,称为通讯内聚。
过程内聚:如果一个模块内部的各个组成部分的处理动作各不相同,彼此也没有联系,但他们都受同一个控制流支配,决定他们的执行次序,称为过程内聚。
暂时内聚(时间内聚):如果一个模块内的各组成部分的处理动作和时间有关,则称为暂时:内聚。
暂时内聚模块的处理动作必须在特定的时间内完成。
-----指在一个特定的时间范围内完成,但完成次序不重要。
例如:程序设计中的模块的初始化。
逻辑内聚:如果一个模块内部的各组成部分的处理动作在逻辑上相似,但功能都彼此不同或逻辑内聚:无关,则称为逻辑内聚。
一个逻辑内聚模块往往包括若干个逻辑相似的动作,使用时可以选用一个或几个功能。
例如:把编辑各种输入数据的功能放在一个模块中。
机械内聚(偶然内聚):如果一个模块的内部各组成部分的处理动作彼此没有任何联系,则:称为机械内聚18、详细设计阶段用到了哪些图形工具?程序流程图(PFD) 盒图(N-S 图)问题分析图(PAD)判定表/判定树(其他非图形工具有过程设计语言(PDL)19、软件工程的启发式规则有哪些?A.当模块过大时就应该分解它。
一般按功能分解到成为一个小的功能单一的模块为止。
一般一个模块内包含的语句在30-50 条左右较好(指高级语言)。
分解后不应该降低模块的独立性。
B. 深度、宽度、扇出和扇入都应适当。
好的设计结构通常是顶层扇出比较高,中层扇出比较少,底层扇入到公共的实用模块中去(底层模块有高扇入)。
模块的独立性是贯穿始终的标准,不能为了追求其它目标而违背独立性标准。
C.对于任何一个内部存在判断调用的模块,它的判断作用的范围应该是其控制范围的一个子集。
存在判断调用的模块,所在层次不要与那些属于判断作用范围的模块所在的层次相隔太远----越近越好。
D. 力争降低模块接口的复杂程度。
模块接口复杂是软件发生错误的一个主要原因。
应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致。
接口复杂或不一致(即看起来传递的数据之间没有联系),是紧耦合或低内聚的征兆,应该重新分析这个模块的独立性。
E.设计单入口单出口的模块:防止出现内容耦合---多入口(多种处理功能)意味着内容耦合。
F.模块功能应该可以预测-----模块是黑合子,输入相同则输出相同,其内部数据结构和接口受到限制。
模块的功能应该能够预测,但也要防止模块功能过分局限。
过分局限将导致模块灵活性太差,会出现使用现场的修改。
20、模块的作用域与控制域分别指什么?模块的控制域:本身及其所有下级模块(包括直接和间接下级模块)。
模块的作用域:受该模块内一个判定影响的所有模块的集合21、模块的扇入、扇出、深度、宽度分别是什么意思?深度表示软件结构中控制的层数----粗略的标志一个系统的大小和复杂程度。
宽度是软件结构同一层次上的模块总数的最大值----宽度越大系统越复杂。
模块的扇出指一个模块拥有的直属下级模块的个数,一般扇出数控制在7以内,平均为3或4。