软件工程18(结构化设计详细设计)
- 格式:ppt
- 大小:1.30 MB
- 文档页数:25
软件工程练习题一. 选择题(单选或多选)(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 )。
软件结构化设计之概要设计什么是概要设计?⼜叫总体设计。
即对全局问题的设计,也就是设计系统总的处理⽅案。
软件⼯程总体设计包括:计算机配置设计、系统模块结构设计、数据库和⽂件设计、代码设计以及系统可靠性与内部控制设计等内容。
软件功能分解属于下列软件开发中的总体设计阶段。
完成⼤型⼯程体系的总体⽅案和总体技术途径的设计过程。
在⼀般⼯程设计中总体设计则指按计划任务书的内容进⾏概略计算,附以必要的⽂字说明和图纸设计,⼜称初步设计。
对于⼯程系统⼯程总体设计是指前⼀种含义。
总体设计是⼯程项⽬开发过程中的⼀个重要阶段。
研制⼤型⼯程体系的基本问题是,怎样把⽐较笼统的初始研制要求逐步地变为成千上万个研制参加者的具体⼯作,以及怎样把这些⼯作最终综合成⼀个技术上先进、经济上合算、研制周期短、能协调运转的实际系统,并使这个系统成为它所从属的更⼤系统的有效组成部分。
1954年美国最早出现为导弹研制计划提供这种服务的系统⼯程公司──拉莫·沃尔德⾥奇公司。
50年代末中国开始研制⼈造卫星和运载⽕箭时,也建⽴了这样的机构,并称之为总体设计部。
总体设计部设计的是系统的总体,系统的总体⽅案和实现它的技术途径,并通过可⾏性研究和技术经济论证,确保项⽬在规划、设计、制造和运⾏各个阶段,总体性能最优。
这样可以避免因规划、研制和运⽤的缺陷造成⼈⼒、物⼒和财⼒的浪费。
软件⼯程的概要设计就是把系统的功能需求分配到⼀个特定的软件系统结构中。
基本⽬的就是回答“概括地说,系统应该如何实现”这个问题。
总体设计阶段的另⼀项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。
概要设计的主要任务是把需求分析得到的系统扩展⽤例图转换为软件结构和数据结构。
设计软件结构的具体任务是:将⼀个复杂系统按功能进⾏模块划分、建⽴模块的层次结构及调⽤关系、确定模块间的接⼝及⼈机界⾯等。
数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。
1.需求规格说明书的作用不应该包括()。
A、软件设计的依据B、用户与开发人员对软件要做什么的共同理解C、软件验收的依据D、软件可行性研究的依据2.结构化设计方法在软件开发中用于()。
A、概要设计B、详细设计C、程序设计D、测试用例设计3.软件结构使用的图形工具,一般采用()图。
A、DFDB、PADC、SCD、ER4.JSP方法是一种面向()的设计方法。
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、源程序1.需求分析中,开发人员要从用户那里解决的最重要的问题是( )。
A、要让软件做什么B、要给该软件提供哪些信息C、要求软件工作效率怎样D、要让该软件具有何种结构2.DFD中的每个加工至少有( )。
A、一个输入流或一个输出流B、一个输入流和一个输出流C、一个输入流D、一个输出流3.详细设计与概要设计衔接的图形工具是( )。
A、DFD图B、SC图C、PAD图D、程序流程图4.下列几种类型中,耦合性最弱的是( )。
A、内容型B、控制型C、公共型D、数据型5.确认测试中,作为测试依据的文档是( )。
A、需求规格说明书B、设计说明书C、源程序D、开发计划6.为了适应软硬件环境变化而修改软件的过程是( )。
A、校正性维护B、完善性维护C、适应性维护D、预防性维护7.瀑布模型是一种( )。
一、判断题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、数据输入界面设计的主要原则有哪些?答:在设计数据输入界面时应做到:尽量简化用户的工作、减少输入的出错率;减轻用户的记忆负担、尽可能减少输入量并实现自动输入;尽可能减少输入量并实现自动输入; 对共同的输入设置默认值;对共同的输入设置默认值; 使用代码或缩写;缩写; 自动填入已输入过的内容;列表式输入; 数据分组输入。
2022年春4月《软件工程》全国自考试题一、单项选择题1、RUP设计阶段的主要活动不包含______。
A.程序设计B.体系结构设计C.用况设计D.类设计2、RUP的分析类包括边界类、实体类和______。
A.子类B.控制类C.父类D.活动类3、软件结构化设计中,支持“自顶向下逐步求精”的详细设计,并且能够以一种结构化方式严格地控制从一个处理到另一个处理的转移,这个详细设计工具是______。
A.PAD图B.程序流程图C.DFD图D.N-S图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、RUP中,用于捕获系统语境中的一些重要领域对象,其中领域对象表达系统工作环境中存在的事物或发生的事件,领域模型一般采用______。
软件工程结构化分析与设计软件工程结构化分析与设计简介软件工程结构化分析与设计是软件工程领域中重要的一环,它涉及到软件系统的分析和设计阶段。
在软件工程领域,结构化分析与设计是指通过建立准确的抽象层次,将软件系统划分为各个模块,并规定各个模块之间的关系和功能,以实现系统的需求。
什么是结构化分析与设计结构化分析与设计是一种系统性的方法,它利用模块化和层次化的原则,对软件系统进行分析、设计和实现。
结构化分析关注的是系统需求,它通过分解需求,将系统划分为不同的模块,并定义它们之间的关系。
结构化设计则负责将分析得到的模块进行详细设计,并确定模块的功能和接口。
结构化分析与设计的目标是提高软件系统的可理解性、可维护性和可扩展性。
结构化分析与设计的流程结构化分析与设计通常包含以下几个步骤:1. 确定系统需求:定义软件系统的功能和性能要求。
2. 确定模块划分:将系统划分为不同的模块,并定义它们之间的功能和接口。
3. 定义模块内部逻辑:对每个模块进行详细设计,包括设计数据结构和算法等。
4. 确定模块间的通信方式:确定模块之间的数据交换和通信方式。
5. 验证和评估设计:对设计进行评估和验证,确保满足系统需求。
6. 实施和编码:根据设计编写代码,完成软件系统的实施。
7. 和调试:对软件系统进行和调试,确保其功能和性能的正确性。
结构化分析与设计的优势结构化分析与设计具有以下优势:1. 提高可理解性:通过模块化的设计原则,使系统的结构和功能更易于理解和掌握。
2. 提高可维护性:分解模块可以使系统的维护更加简单和方便,减少对其他模块的影响。
3. 提高可扩展性:模块化的设计可以使系统更易于扩展和修改,方便适应需求变化。
4. 提高开发效率:结构化分析与设计明确了各个模块的功能和接口,可以并行开发,提高开发效率。
5. 降低系统复杂性:通过模块化的设计,将大型系统划分为多个小模块,降低了系统的复杂性。
结构化分析与设计的工具和技术在软件工程中,有许多工具和技术可以用于结构化分析与设计。
1、典型的详细设计工具有流程图、盒图、、类程序设计语言。
问题反馈【教师释疑】正确答案:【PAD图】2、UML是一种语言。
问题反馈【教师释疑】正确答案:【可视化】3、类是一组具有属性、操作、关系和语义的对象的描述。
问题反馈【教师释疑】正确答案:【相同】4、对象是类的一个。
问题反馈【教师释疑】正确答案:【实例】5、用况图是一种表达系统模型的图形化工具。
问题反馈【教师释疑】正确答案:【功能】6、UML中的顺序图是一种交互图,即由一组对象以及按组织的对象之间的关系组成。
问题反馈【教师释疑】正确答案:【时序】7、模块的作用域是指受该模块内一个所影响的所有模块的集合。
问题反馈【教师释疑】正确答案:【判定】8、模块的控制域是指这个模块本身以及所有直接或间接它的模块的集合。
问题反馈【教师释疑】正确答案:【从属于】9、在数据流图中引入数据源和数据潭这两个术语的目的是为了表示系统的,可以使用它们和相关数据流来定义系统的。
问题反馈【教师释疑】正确答案:【环境|边界】10、模块结构图是系统的一个高层蓝图,允许设计人员在较高的层次上进行抽象思维。
模块结构图可用和两种形式来表示。
问题反馈【教师释疑】正确答案:【层次图|HIPO图】11、在设计模块结构图时要基于原则来设计模块。
问题反馈【教师释疑】正确答案:【高内聚低耦合】12、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“尽力使模块的在其控制域之内”。
问题反馈【教师释疑】正确答案:【作用域】13、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“力求深度、宽度、扇出和扇入”。
问题反馈【教师释疑】正确答案:【适中】14、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“改进软件结构,提高模块的”。
详细设计的方法与表达工具详细设计是软件开发中至关重要的一步,它是软件架构和程序设计的实现方法,是软件的实际编写工作的基础。
详细设计的过程需要软件工程师对软件架构和程序设计进行细化,具体到每个功能模块、每个数据结构、每个算法和每个界面的设计,从而确保程序实现的正确性和高效性。
在本文中,我们将详细介绍详细设计的方法和表达工具,包括设计方法的优化、常用的表达工具以及注意事项等内容。
设计方法的优化在进行详细设计之前,设计师需要根据系统的需求和功能,制定相应的设计方法。
本节将介绍一些常见的设计方法,并分析它们的优点和缺点,以供设计师在实际工作中参考。
1. 结构化设计结构化设计是一种基于模块化思想的设计方法。
在结构化设计中,软件系统被分成模块,并且模块之间的接口和数据传递都非常清晰。
结构化设计方法的主要优点是可以支持模块的独立性和可重用性,并且可以提高程序的可读性和可维护性。
然而,结构化设计也可能导致系统过于复杂,降低了性能和效率。
2. 面向对象设计面向对象设计是一种基于对象的设计方法。
在面向对象设计中,系统被视为由对象组成的集合,对象通过消息传递进行通信。
面向对象设计方法的主要优点是可以提高软件的可重用性、可读性和可维护性,并且可以提高程序的性能和效率。
然而,面向对象设计的缺点是过于灵活,需要特定的设计方法和工具才能有效实现。
3. 数据驱动设计数据驱动设计是一种基于数据驱动的设计方法。
在数据驱动设计中,系统的设计是基于数据的结构和数据处理流程的,而不是基于功能。
数据驱动设计方法的主要优点是可以支持复杂的数据关系和数据处理流程,并且可以提高程序的性能和效率。
然而,数据驱动设计需要特定的数据结构和数据处理算法,可能导致系统的复杂性和可读性降低。
常用的表达工具在进行详细设计的过程中,设计师需要使用一些表达工具来记录设计的过程,以便其他设计师或开发者能够理解设计的目的和实现方式。
下面我们将介绍一些常见的表达工具,包括UML、编程语言、伪代码和流程图等。
软件⼯程详细设计在完成前置的总体设计报告后,就应该开始着⼿于详细设计了,在这⼀步骤中,我们将需要去细化总体设计中提出的模块,详细的设计出每个模块的作⽤、算法,各个模块间的结构关系,通过需求分析中的结果,利⽤总体设计提出的⼤致框架设计出满⾜客户需求的软件系统产品。
⼀、为什么需要详细设计在总体设计完成后,应当对系统的整体有了⼤概的⼀个了解,但在没有对各个模块提出更为详细的要求的情况下,程序员难以对系统拥有准确的判断,从⽽导致系统运⾏效率低下,结构不清晰等等的问题,⽽在详细设置中,将会提出对每⼀个模块的性能要求、流程要求、⽤户界⾯要求等⼀系列详细的要求,这将会令编码者在编码实现的过程中思路更为清晰,减少编程过程中因合作产⽣的混乱,提⾼整个程序的开发效率。
⼆、程序的结构化设计“模块化设计是指在进⾏程序设计时将⼀个⼤程序按照功能划分为若⼲个⼩程序模块,每个⼩程序模块完成⼀个确定的功能,并在这些模块间建⽴必要的联系,通过模块的互相协作完成整个功能的程序设计⽅法。
”在我们刚开始学习c语⾔程序设计时,我们通常习惯将所有的代码按照⾃⼰的思路写在同⼀个.c⽂件当中,虽然程序可以实现相应的功能,并且作者只需要标注良好的注释,就能在回看代码时重新理解代码的含义。
但当程序需要分享或者⼯程量过于庞⼤需要多⼈协作完成⼀项程序时,这种⾯向过程编程的⽅式将是极其没有效率的,就如同在运动会上的接⼒赛跑,唯有当⼀个⼈完成了指定的任务和功能后,后⾯的成员才能开始其负责部分的代码,所以这种编程⽅法并不适⽤于⼤项⽬。
⽽程序的结构化设计很好的弥补了⾯向过程编程难以多⼈协作的问题,它将⼀个⼤程序拆分成⼀个⼀个⼩零件,每⼀个零件都有其⾃⾝的功能,并且零件便于程序测试,在每完成⼀个零件后可单独对其进⾏各种测试保证程序的运⾏正确⽆误,在完成所有的零件后,由⼀根主轴将所有的零件穿起来,利⽤零件的相互转换作为参数和返回值实现不同的程序功能。
同时模块化设计实现的程序也便于后期程序的维护,就如同⼀辆汽车,某个部件出现损坏或过时了,只需更换对应的部件即可,⽽模块化程序在出现错误时也只需对相应的部分进⾏修改更新,⽽在程序需要添加功能时,也只需要再制造所需要的零件进⾏组装即可。
软件工程结构化设计的基本步骤软件工程是一个综合性学科,它涉及到软件的开发、测试、维护等多个方面。
其中,结构化设计是软件工程中非常重要的一个环节,它直接影响到软件的质量和可维护性。
那么,软件工程结构化设计的基本步骤是什么呢?在本文中,我们将深入探讨软件工程结构化设计的基本步骤,帮助你更好地理解这一重要主题。
一、需求分析软件工程结构化设计的第一步是需求分析。
在这个阶段,你需要与用户进行充分的沟通,了解用户的需求和期望。
通过需求分析,你可以明确软件的功能性需求和非功能性需求,从而为后续的设计工作奠定基础。
在需求分析阶段,我建议你采用面向对象的方法来描述用户需求,并将其转化为可执行的任务。
这样做可以帮助你更好地理解用户的需求,并为后续的设计工作提供清晰的指导。
二、概要设计概要设计阶段是软件工程结构化设计的第二步。
在这个阶段,你需要将需求分析阶段得到的需求转化为软件的整体架构。
这包括确定系统的模块划分、模块之间的接口设计等工作。
概要设计是软件工程中非常关键的一个环节,它直接影响到后续的详细设计和编码工作。
在概要设计阶段,我建议你采用结构化的方法来设计软件的整体架构。
这样做可以帮助你清晰地描述软件的功能和结构,并为后续的详细设计提供有力的支持。
三、详细设计详细设计是软件工程结构化设计的第三步。
在这个阶段,你需要进一步细化概要设计阶段得到的软件架构,包括设计每个模块的具体功能和接口。
详细设计阶段是软件工程中非常具体的一个环节,它直接关系到软件的实现和性能。
在详细设计阶段,我建议你采用模块化的方法来设计每个模块的功能和接口。
这样做可以帮助你更好地组织软件的设计思路,并为后续的编码工作提供清晰的指导。
四、编码和测试编码和测试是软件工程结构化设计的最后两步。
在编码阶段,你需要根据详细设计阶段得到的设计图纸来实现软件的各个模块。
你还需要编写相应的测试用例,以确保软件的功能和性能达到预期的要求。
在测试阶段,你需要对软件进行全面的测试,包括单元测试、集成测试和系统测试等多个方面。
一、选择题1.软件测试的目的是(B )。
A)试验性运行软件B)发现软件错误C)证明软件正确D)找出软件中全部错误2.软件开发瀑布模型中的软件定义时期各个阶段依次是:(B )。
A)可行性研究,问题定义,需求分析B)问题定义,可行性研究,需求分析C)可行性研究,需求分析,问题定义D)以上顺序都不对3.黑盒法是根据程序的(C )来设计测试用例的。
A)应用范围B)内部逻辑C)功能口)输入数据4.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C )。
A)软件工程B)软件周期C)软件危机D)软件产生5.在SD方法中全面指导模块划分的最重要的原则是(D )。
A)程序模块化B)模块高内聚C)模块低耦合D)模块独立性6.详细设计的结果基本决定了最终程序的(C )。
A)代码的规模B)运行速度C)质量D)可维护性7.结构设计是一种应用最广泛的系统设计方法,是以(A )为基础、自顶向下、逐步求精和模块化的过程。
A)数据流B)数据流图C)数据库D)数据结构8.软件需求规格说明的内容不应包括(B )。
A)主要功能B)算法的详细描述C)用户界面及运行环境D)软件的性能9.程序的三种基本控制结构的共同特点是(D )。
A)不能嵌套使用B)只能用来写简单的程序0已经用硬件实现D)只有一个入口和一个出口10.结构化程序设计主要强调程序的(C )。
A)效率B)速度C)可读性D)大小11.与设计测试数据无关的文档是(D )。
A)需求说明书B)设计说明书C)源程序口)项目开发设计12.软件测试过程中的集成测试主要是为了发现(B )阶段的错误。
A)需求分析B)概要设计C)详细设计D)编码13.为软件的运行增加监控设施以应对将来可能出现的问题,这种维护的维护类型是(D )。
A)改正性维护B)适应性维护C)完善性维护D)预防性维护14.集成测试时,能较早发现高层模块接口错误的测试方法为(A )。
人)自顶向下渐增式测试8)自底向上渐增式测试C)非渐增式测试D)系统测试15.确认测试以(A )文档作为测试的基础。