简述结构化程序设计方法的基本要点

合集下载

软件系统开发技术模拟题参考答案

软件系统开发技术模拟题参考答案

软件系统开发技术试题(一)答案一、单项选择题(本大题共10小题,每小题1分,共10分)1. 设计软件结构一般不拟定( D )A.模块之间的接口B.模块间的调用关系C. 模块的功能D. 模块内的局部数据2. 软件结构化设计中,好的软件结构应当力求做到(BA.顶层扇出较少,中间扇出较高,底层模块低扇入B.顶层扇出较高中间扇出较少,底层模块高扇入C. 顶层扇入较少,中间扇出较高底层模块高扇入D. 顶层扇入较少,中间扇入较高,底层模块低扇入3. 两个模块都使用同一张数据表,模块间的这种耦合称为(AA.公共耦合C. 数据耦合B.内容耦合D. 控制耦合4. 划分模块时,下列说法对的的是(A )A.作用范围应在其控制范围之内B.控制范围应在其作用范围之内C. 作用范围与控制范围互不包含D. 作用范围与控制范围不受限制5. 重用率高的模块在软件结构图中的特性是(BA.扇出数大B.扇入数大C. 扇出数小D. 内聚性高6. 面向对象建模得到的三个模型,其中核心的模型是(A)A.对象模型C. 逻辑模型B.功能模型D. 动态模型7. 从结构化的瀑布模型看,在软件生存周期的几个阶段中,对软件的影响最大是(CA.具体设计阶段B.概要设计阶段C. 需求分析阶段D. 测试和运营阶段8. 对U ML的叙述不对的的是( D )A.U ML统一了B ooch方法、OMT方法、OO SE方法的表达方法。

B.U ML是一种定义良好、易千表达、功能强大且普遍合用的建模语言。

C. U ML融入了软件工程领域的新思想、新方法和新技术。

D. U ML仅限千支持面向对象的分析与设计,不支持其它的软件开发过程。

9. 以下哪个软件生存周期模型是一种风险驱动的模型( C )A.瀑布模型C. 螺旋模型B.增量模型D.喷泉模型10. 以下哪一项对模块耦合性没有影响( DA.模块间接口的复杂限度B.调用模块的方式C. 通过接口的信息D. 模块内部各个元素彼此之间的紧密结合限度二、填空题(本大题共10小题,每空2分,共20分)1. 数据流图描绘数据在系统中流动和解决的过程。

软件工程大题

软件工程大题

• 1.单项选择题(20分)• 2.填空题(15分)• 3.名词解释(20分)• 4.简答题(25分)• 5.应用题(20分)1.为了提高软件产品的质量和可靠性,对某些无法避开的差错,使其影响减至最小程度所采用的技术是(A)A.容错技术B.避开错误技术C.检测技术D.排错技术2.构造原型时,主要考虑(B)A.全部功能B.原型要体现的特征C.全部细节D.全部要求3.在白盒技术测试用例的设计中,以下覆盖标准中发现错误能力最强的是(C)A.语句覆盖B.判定/条件覆盖C.条件组合覆盖D.判定覆盖4.以下软件生存周期的活动中,要进行软件结构设计的是(B)A.测试用例设计B.概要设计C.程序设计D.详细设计5.能够清楚地表示复杂的条件组合与应做的动作之间的对应关系的工具是(B)A.结构化语言B.PAD图C.判定表D.程序流程图6.需求分析方法必须能够表达和理解问题的数据域和( C )A.数据流B.用户类型C.功能域D.应用领域以用户需求为动力,以对象作为驱动的模型是(C)A.瀑布模型B.基于知识的模型C.喷泉模型D.增量模型8.在软件生存期的各个阶段中跨越时间最长的阶段是(D)A.需求分析阶段B.设计阶段C.测试阶段D.维护阶段二. 填空题1.软件复杂性主要表现在程序的复杂性。

程序的复杂性主要指__模块内_程序的复杂性。

2. 白盒法中,_基本路径测试___首先以详细设计或源程序为基础,导出控制流程图的拓扑结构(程序图)。

3.一个模块通过传递开关、标志对某一模块的多种功能进行选择,则这两个模块之间的耦合方式是__控制耦合___4.结构化分析是面向_数据流___进行需求分析的方法三.名词解释黑盒测试法:把被测对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行工作测试,依据需求规格说明书,检查程序是否满足功能要求.瀑布模型:将软件生存周期各个活动规定为依线性顺序连接的若干阶段的一种软件开发模型。

软件工程习题(附答案)

软件工程习题(附答案)

一、选择题1、软件是一种( 2 )性工业产品。

(1)理论(2)知识(或逻辑)(3)消耗(4)体力2、需求分析是在( 2 )进行的。

(1)用户(2)用户和分析人员之间(3)开发人员内部(4)使用和维护人员之间3、在软件的可行性研究中经常从不同角度对系统进行可行性研究,其中从功能角度对系统进行研究属于( 2 )的研究。

(1)经济可行性(2)技术可行性(3)操作可行性(4)法律可行性4、在软件工程项目中,不随参与人员的增加而使软件的生产率增加的主要问题是( 4 )。

(1)工作阶段的等待时间(2)生产原型的复杂性(3)参与人员所需的工作站数(4)参与人员之间的沟通困难5、需求分析阶段的研究对象是( 1 )。

(1)用户需求(2)分析员要求(3)系统需求(4)软硬件需求6、对某公司进行调查分析,确定是否值得开发一个新系统的工作是进行( 4 )。

(1)系统设计(2)系统分析(3)系统详细调查(4)系统初步调查7、系统分析员应当( 4 )。

(1)善于使用户接受自已的观点(2)善于使自已获得成就(3)是用户与计算机技术人员的有效协调与组织者(4)满足上述所有条件8、数据流图的绘制过程,是对新系统的需求进行综合分析和形成新系统( 1 )的过程。

(1)逻辑模型(2)物理模型(3)总体方案(4)可行性报告9、系统测试的目的是( 4 )。

(1)找出编码错误(2)找出数据错误(3)要证明程序无错(4)发现软件错误10、一个模块内部各程序段都在同一张表上操作,这个操作的内聚性称为( 3 )。

(1)时间内聚(2)功能内聚(3)通信内聚(4)顺序内聚11、在结构化方法中全面指导模块划分的最重要的原则是( 4 )A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性12、最高程度也是最差的耦合是( 2 )。

(1)公共耦合(2)内容耦合(3)控制耦合(4)数据耦合13、概要设计阶段产生的文档不包括( 4 )。

(1)概要设计说明书(2)数据库设计说明书(3)用户手册(4)开发进度报告14、汽车有一个发动机,汽车和发动机之间的关系是( 2 )。

软件工程复习题与答案

软件工程复习题与答案

二、填空题1.为了支持软件人员开发和维护活动而使用的软件一般是指___软件工具_____。

3.在软件结构的设计中,各个模块之间要力求降低耦合性,提高__内聚性_____。

5.数据流图(DFD)一般可分为变换型和__事务性_____两类。

6.软件维护的内容包括校正性维护、适应性维护、__完善性维护__和预防性维护。

7.软件的生产经历了三个阶段,分别是程序设计时代、程序系统时代和___软件工程时代___。

8.渐增模型是瀑布模型的变种,分为两类:增量构造模型和__演化提交模型__。

9.状态图反映了_事件与状态____的关系。

10.软件项目管理过程一个关键的活动是__制定项目计划__,它是软件开发工作的第一步。

11.组成软件的两个部分是:____程序和文档________。

14.变换型数据流图是由输入、__变换(或处理)_____和输出三部分组成的。

15.Jackson方法是一种面向___数据结构_____的开发方法。

16.结构化语言是介于___自然语言_____和形式语言之间的一种半形式语言。

17.软件产品在交付使用之前一般要经过___单元测试___、集成测试、确认测试和系统测试。

18.不采用软件工程的方法开发软件,软件只有程序而无文档,从而导致维护工作困难,这是一种__结构化______的维护。

19.子类自动共享父类数据结构和方法的机制是___继承性_____,这是类之间的一种关系。

21.软件生产的发展经历了三个阶段,分别是程序设计时代、程序系统时代和___软件工程____时代。

22.可行性研究从以下三个方面研究每种解决方法的可行性:经济可行性、社会可行性和__技术可行性____。

23.HIPO图的H图用于描述软件的层次关系,矩形框表示一个模块,矩形框之间的直线表示模块之间的____调用_____关系。

24.数据流图描绘数据在系统中___流动和处理___的过程。

25.为了便于对照检查,测试用例应由输入数据和预期的___输出结果(输出数据)____两部分组成。

软件工程(本)阶段练习三

软件工程(本)阶段练习三

华东理工大学网络教育学院《软件工程(本)》阶段练习三一、判断题(每题分,共分;正确打“√”,错误打“×”)、结构图只能描述数据结构,不能描述程序结构。

( ×)、图是由一张层次图和一组图组成的。

( √)、源程序的文档化就是软件的文档化。

( ×)、问题分析图()是一种常用的详细设计描述工具。

( √)、方法是一种面向对象的软件设计方法。

( ×)、把一个软件系统划分成多个模块的目的是为了降低软件系统的复杂性。

( √)、耦合性是一个用来衡量模块内部各个元素彼此结合紧密程度的度量指标。

( ×)、将软件系统划分为模块时,应尽量做到高内聚低耦合,提高模块的独立性。

( √)、面向数据流的设计以需求分析阶段产生的数据流图为基础,按一定的步骤将其映射为软件结构。

( √)、软件结构图是软件系统的模块层次图,它反映了整个系统的功能实现。

( √)二、单项选择题(每空分,本大题共分)、在模块化软件设计中,划分程序模块通常遵循的基本原则是:使各模块间的耦合性①;使各模块内部的内聚度②。

、尽可能强、尽可能弱、适中、视情况而定、面向数据流的设计方法把数据流图()划分为变换型和③两大类,并提出了对应于这两类结构的分解方法。

、控制型、处理型、事务型、功能型、模块化的目的是为了④。

、增加内聚性、提高易读性、降低复杂性、减少耦合性、三种可能的模块耦合是:⑤:例如一个模块直接引用另一个模块中的数据。

⑥:例如一个模块把控制另一个模块执行流程的逻辑量作为参数传递给另一个模块。

⑦:例如一个模块把一个数据量传递给另一个模块。

其中⑧的耦合性最强。

、数据耦合、内容耦合、标记耦合、控制耦合、公共耦合、使用结构化分析()方法时,可以得到⑨,这种方法采用的基本手段是⑩;使用面向数据流的设计方法()时,可以得到⑾,并可以实现⑿,而使用方法可以实现⒀。

、程序流程图、具体的语言程序、模块结构图及模块的功能说明、分层和、分解和抽象、分解和综合、归纳推导、从数据结构导出程序结构、从数据流图导出模块结构图、从模块结构导出数据结构、从模块结构导出程序结构、模块的内聚度用于衡量模块内部各成分之间彼此结合的紧密程度。

软件工程习题课

软件工程习题课

1.如果要开发“图书馆管理信息系统”,你认为采用什么开发模型比较合适?请说明理由。

答:开发“图书馆管理信息系统”采用瀑布模型比较合适。

因为瀑布模型在开发过程中各阶段非常清晰,便于评审、跟踪、管理和控制,并且“图书馆管理信息系统”也基本符合瀑布模型的条件:(1)“图书馆管理信息系统”在开发过程中需求变化很少。

(2)分析和设计人员对“图书馆管理信息系统”比较熟悉。

(3)“图书馆管理信息系统”是低风险项目。

(4)“图书馆管理信息系统”的用户使用环境比较稳定。

(5)“图书馆管理信息系统”的用户除提出需求以外,很少参与开发工作。

2.简述结构化程序设计方法的基本要点。

(1)采用自顶向下,逐步求精的程序设计方法。

(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环(3)采用主程序员组的组织形式。

3.下图中,模块G为判定,判断涉及到模块B、F、G,请指出设计中的错误,再根据改进模块图的基本原则,画出1~2 个改进方案(不改变模块G 的判断关系),并说明是按照哪条基本原则进行改进的。

解:下图为一个改进方案,将模块G的位置提高,使其作用范围为控制范围的子集,减少模块之间的联系。

4.根据下列条件使用等价类划分法设计测试用例。

某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围是-177~177,如05,0127,-065。

用等价划分法:(1)划分等价类并编号,如表1(2)(3)5.为提高软件的可理解性,可采取哪些措施?可理解性是指理解软件的结构、接口、功能和内部过程的难易程度。

提高软件可理解性的措施有:采用模块化的程序结构;书写详细正确的文档;采用结构化程序设计;书写源程序的内部文档;使用良好的编程语言;具有良好的程序设计风格。

6.什么是软件生存周期?它有哪几个活动?软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。

软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等。

软件工程试题与答案

软件工程试题与答案

一、单选题1.在软件危机中表现出来的软件质量差的问题,其原因是_____C__。

A.软件研发人员素质太差B.用户经常干预软件系统的研发工作C.没有软件质量标准D.软件开发人员不遵守软件质量标准2.在软件质量因素中,软件在异常条件下仍能运行的能力成为软件的___B__。

A.安全性B.健壮性C.可用性D.可靠性3.在下列测试技术中,__D____不属于黑盒测试技术。

A.等价划分B.边界值分析C.错误推测D.逻辑覆盖4.软件工程方法是在实践中不断发展着的方法,而早期的软件工程方法主要是指_____B_。

A.原型化方法B.结构化方法C.功能化方法D.面向对象方法5.__C____是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。

A.多态B.继承C.封装D.消息6.Jackson方法是在软件开发过程中常用的方法,使用Jackson方法时可以实现____A__。

A.从数据结构导出程序结构B.从数据流图导出初始结构图C.从模块结构导出数据结构D.从模块结构导出程序结构7.软件测试时为了_____B___而执行程序的过程。

A.纠正错误B.发现错误C.避免错误D.证明错误8.在软件系统中,一个模块应具有什么样的功能,这是由__B___决定的。

A.总体设计B.需求分析C.详细设计D.程序设计9.面向对象分析是对系统进行___A______的一种方法。

A.需求分析B.程序设计C.设计评审D.10.测试验收软件文档是软件工程实施中的重要部分,它不仅是软件开发各阶段的重要依据,而且影响软件的___B____。

A.可理解性B.可维护性C.可扩展性D.11.可移植模块内聚度越高,说明模块内各成分彼此结合的程序越____B___。

A.松散B.紧密C.无法判断D.12.相等软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码、测试和维护等阶段,一般认为可能占用人员最多的阶段是_____C___。

软件工程考试资料整理

软件工程考试资料整理

1.在结构化分析中,__数据字典__用于详细地定义数据流图中的成分。

2.结构化程序设计是一种程序设计技术,它采用__自顶向下、逐步求精__的设计方法和顺序、选择、循环三种基本控制结构构造常态程序。

3.结构化分析方法中,数据流图的四种基本成分为:处理、源点或终点__数据存储和数据流_。

4.模块内部的算法设计在结构化方法的___详细设计__阶段进行。

5.定性度量模块独立性的两个标准是内聚性和___耦合性___。

6.从模块内外的联系来看,结构化设计的要求是___高内聚低耦合_。

7.耦合性和内聚性是衡量___模块独立性_的两个定性的标准。

8.在一段程序中,将多次出现的一组语句设计为一个子程序,供多个部分调用,这种情况出现的内聚称为___偶然内聚_____。

9.一个进行学生成绩统计的模块其功能是先对学生的成绩进行累加,然后求平均值,则该模块的内聚性是 ____顺序内聚__。

10.在模块结构图中,直接调用某一模块的其他模块数称为该模块的__扇入数_11.在软件开发过程中要产生大量的信息,要进行大量的修改,软件配置管理能协调12.软件开发,并使混乱减到最低程度。

13.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。

14.为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。

15.软件结构是以模块为基础而组成的一种控制层次结构。

16.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、17.判定树。

18.结构化语言是介于自然语言和形式语言之间的一种半形式语言。

19.第二代CASE工具的特点是支持图形表示的 __结构化方法__________ 。

如数据流图与结构图。

20.在面向对象方法中,对象实现了数据和操作的结合,使数据和操作 _封装__ 于对象的统一体中。

21.面向对象分析的目的是对客观世界的系统进行建模。

22.为了使应用软件适应计算机环境的变化而 _____修改软件_的过程称为适应性维护。

计算机软件技术基础教程(第二版)习题及答案

计算机软件技术基础教程(第二版)习题及答案

第1章习题部分答案1. 操作系统的发展分为那几个阶段?解:操作系统的发展经历了三个阶段:操作系统的酝酿阶段、操作系统的形成阶段、操作系统的理论化和标准化阶段。

2. 计算机软件技术开发系统包括那几个阶段?解:计算机软件开发系统的发展经历了四个阶段:机器语言阶段、汇编语言阶段、高级语言阶段、面向对象语言和可视化语言阶段。

3. 计算机软件技术的主要范畴是什么?解:计算机软件技术的主要范畴包括软件工程技术、程序设计技术、软件工具环境技术、系统软件技术、数据库技术、实时软件技术、网络软件技术、与实际工作相关的软件技术等八个领域的内容。

4. 从软件技术的发展现状来看有哪些值得我们注意的问题?解:从软件技术的发展现状来看有以下几个值得我们注意的问题:1)软件危机2)软件技术标准,软件版权和软件价值评估3)软件技术的基础研究。

1第2章习题部分答案1. 什么是软件危机?软件危机的表现有哪些?解:软件开发技术的进步为能满足发展的要求,在软件开发中遇到的问题找不到解决的方法,问题积累起来形成了尖锐的矛盾,导致了软件危机。

2. 软件危机产生的原因是什么?解:造成软件危机的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的。

1)软件规模越来越大,结构越来越复杂。

2)软件开发管理困难而复杂。

3)软件开发费用不断增加。

4)软件开发技术落后。

5)生产方式落后。

6)开发工具落后,生产率提高缓慢。

3. 常见的软件过程模型有哪些?解:常见的软件过程模型有瀑布模型、增量模型、演化过程模型、敏捷开发4. 如何对软件质量进行评价?解:软件质量的评价主要围绕可维护性、可靠性、可理解性和效率这几个方面进行。

2第3章习题部分答案1. 软件可行性研究的目的是什么?软件可行性研究的任务又是什么?解:软件可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。

可行性研究的任务首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,把他们清楚地列举出来。

软件工程导论简答题

软件工程导论简答题

1.软件工程的七条基本原理是什么?答:软件工程的七条基本原理是:用分阶段的是的生存周期计划严格管理;坚持进行阶段评审;严格实施的产品控制;采用现代程序技术;结果应能清楚地审查;开发小组的成员应该少而精;承认不断改进软件工程的必要性。

2.良好的编码风格应具备哪些条件?答:应具备以下条件:(1)使用标准的控制结构;(2)有限制地使用GOTO语句;(3)源程序的文档化(应具备以下内容)①有意义的变量名称——“匈牙利命名规则”。

②适当的注释——“注释规范”。

③标准的书写格式:——用分层缩进的写法显示嵌套结构的层次(锯齿形风格);——在注释段的周围加上边框;——在注释段与程序段、以及不同程序段之间插入空行;——每行只写一条语句;——书写表达式时,适当使用空格或圆括号等作隔离符。

(4)满足运行工程学的输入输出风格。

3.简述文档在软件工程中的作用。

答:(1) 提高软件开发过程的能见度(2) 提高开发效率(3) 作为开发人员阶段工作成果和结束标志(4) 记录开发过程的有关信息便于使用与维护;(5) 提供软件运行、维护和培训有关资料;(6) 便于用户了解软件功能、性能。

4.可行性研究包括哪几方面的内容?答:(1)经济可行性:是否有经济效益,多长时间可以收回成本;(2)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足;(3)运行可行性:系统操作在用户内部行得通吗?(4)法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。

5.结构化的需求分析描述工具有哪些?答:有数据流图(DFD)、数据字典(DD)、判定表、判定树、结构化语言(PDL)、层次方框图、Warnier图、IPO图、控制流图(CFD)、控制说明(CSPEC)、状态转换图(STD)和实体—关系图(E—R)等。

6.一般面向对象分析建模的工具(图形)有哪些?答:用例图、类/对象图、对象关系图、实体—关系图(E—R)、事件轨迹图(时序图)和状态转换图(STD)等7.UML统一建模语言有哪几种图形?用例图、类图、对象图、构件(组件)图、部署(配置)图、状态图、活动图、顺序(时序)图、合作(协作)图等九种图。

软件工程试卷及参考答案

软件工程试卷及参考答案

试卷(一)1、在结构化设计(SD)方法中全面指导模块划分的最重要的原则是( )A、程序模块化B、模块高内聚C、模块低耦合D、模块独立性2、软件维护产生的副作用,是指( )A、开辟时的错误B、隐含的错误C、因修改软件而造成的错误D、运行时误操作3、软件详细设计的主要任务是确定每一个模块的( )A、算法和使用的数据结构B、外部接口C、功能D、编程4、为了提高模块的独立性,模块内部最好是( )A、逻辑内聚B、时间内聚5、软件是一种( )A、程序B、数据C、功能内聚C、逻辑产品D、通信内聚D、物理产品6、因计算机硬件和软件环境的变化而作出的修改软件的过程称为( )A、纠正性维护B、适应性维护C、完善性维护D、预防性维护7、惟独单重继承的类层次结构是( )层次结构。

A、网状型B、星型C、树型D、环型8、下列属于维护阶段的文档是( )A、软件规格说明B、用户操作手册C、软件问题报告D、软件测试分析报告9、不适合作为科学工程计算的语言是( )A 、Pascal B、 C C、Fortran D、 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 、SA C、SCD 、DFD15、确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于( )A、集成测试B、恢复测试C、验收测试D、单元测试16、盒图(N-S 图)为( )提供了有力的工具。

软件工程各章作业习题的名词解释和问答题参考答案

软件工程各章作业习题的名词解释和问答题参考答案

软件工程各章作业习题的名词解释和问答题参考答案第一章:1:什么是软件危机开发软件由于管理混乱,加入软件规模越来越大,越来越复杂,造成软件开发失败。

2:软件工程过程指获取、供应、开发、操作和维护软件时要实施的过程、活动和任务。

3:软件生成周期可行性研究与计划、需求分析、总体设计、详细设计、实现、测试、使用与维护4:有哪些软件周期模型瀑布模型、原型模型、增量模型、螺旋模型。

5:软件计算机程序及说明程序的各种文档6:个体手工劳动个人编写程序7:小生产合作方式多人编写程序8:软件的特点是一种逻辑产品,软件的生产主要是研制,软件产品不会用坏,软件生产主要是脑力劳动,软件的成本高。

9:软件文档有关程序的功能、设计、图形资料等等。

第二章:三. 名词解释1.可行性研究以最小代价, 在尽可能短的时间内, 确定该软件项目是否能够开发, 是否值得开发.2.技术可行性主要研究开发的软件技术风险有多大3.经济可行性主要研究开发成功后能否得到应有的效益4.社会可行性主要研究开发的软件是否存在责任和侵权, 以及与当前管理制度, 人员素质, 操作方式的矛盾能否解决.四.问答题1. 可行性研究的任务是什么首先初步确定项目的规模, 目标, 约束和限制条件, 决定系统的主要功能, 进行简要压缩, 提出几种解决方案.对每种方案提出意见.2.可行性研究有那些步骤确定任务;分析技术可行性;分析经济可行性;分析社会可行性;作出系统流程图;作出开发计划。

3.可行性研究的目的.减少开发大型软件的风险,缩短开发周期, 减小投资, 减少使用资源, 在尽可能短的时间内, 确定该软件项目是否能够开发, 是否值得开发.第三章三. 名词解释1. 需求分析指开发人员为了准确地理解, 表达用户的要求, 通过调查, 分析, 把系统的功能, 性能等方面准确地表达出来2. DFD数据流图四. 简答题1.什么是需求分析该阶段的基本任务是什么指开发人员为了准确地理解, 表达用户的要求, 通过调查, 分析, 把系统的功能, 性能等方面准确地表达出来基本任务:(1) 能够表达和理解问题的功能和性能;(2) 可以把一个复杂问题按某种方式进行划分, 并能逐步细化, 从而使复杂问题简化,软件的功能域,数据域都可以划分;(3) 建立模型.2. 简述结构化分析的步骤这一方法的基本思想是采用自顶向下,逐层分解的方法分析整个系统,有效的控制系统的复杂性.对于复杂, 规模大的应用系统,采用先抽象后具体, 先全局后局部的思想,有利于把握系统的总体目标, 结构和功能.第四章:三. 名词解释1. 软件设计确定软件结构,选择好的数据库,进行数据结构设计2.模块化把复杂问题划分为模块的过程3.信息隐蔽指模块内部处理细节和内部数据用某种手段隐蔽起来,外部模块不能随便访问4.模块独立性希望一个模块越独立越好,每个模块完成独立的功能,与其他模块联系越少越好5.耦合性指软件结构中模块之间相互依赖的程度6.内聚性模块内部各部分执行功能组合在一起的相关程度7.模块的控制范围一个模块对下属模块的控制8.模块的作用范围指模块之间的作用,但两个模块间是平级的9. 软件结构以需求分析文档为依据,解决实现软件体系结构四. 简答题1.什么是软件概要设计, 该阶段的基本任务是什么以需求分析文档为依据,解决实现软件体系结构。

第三次作业答案

第三次作业答案

第六章详细设计习题一、名词解释详细设计:确定每个模块的具体执行过程,也称过程设计。

详细设计的结果基本决定了最终的程序代码的质量。

结构化程序设计:是按照一组能提高程序的可读性和易维护性的规则而进行的程序设计方法,目的是为了使程序具有一种合理的结构,以使程序易理解和维护,便于保证和验证程序的正确性。

PDA:问题分析图,是一种算法描述工具。

它是一种从左向右展开的二维树形结构,其控制流程为自上而下,从左到右地执行。

二、填空1、详细设计阶段的主要任务是确定每个模块的具体执行过程。

2、软件的详细设计可以用图形、表格、过程设计语言三种形式的描述工具表示模块的处理过程。

3、处理过程设计中最典型的方法是结构化程序设计方法,其基本要点是自顶向下、逐步求精。

4、任何程序都可由顺序、选择和循环3种基本控制结构构造,这3中基本结构的基本点是单入口、单出口。

5、PAD图是一种从左到右展开的二维树形结构,PAD图的控制流程是自上而下、从左到右地执行。

6、详细设计是软件设计的第二个阶段,主要确定每个模块的具体执行过程,故也成为过程设计。

7、详细设计的目标不仅是逻辑上正确地实现每个模块的功能,还应使设计出的处理过程清晰易懂。

结构化程序设计是实现该目标的关键技术之一,它指导人们用良好的思想方法开发易于阅读、易于理解的程序。

三、单项选择1、在详细设计阶段,经常采用的工具包括( C )A.SAB.SDC.PADD.DFD2、详细设计阶段的任务是( A )。

A.算法设计B.功能设计C.调用达观系设计D.输入/输出设计3、结构化程序设计的一种基本方法是( D )。

A.筛选法B.递归法C.迭代法D.逐步求精法4、下面说法不正确的是( C )。

A.流程图不易表示数据结构B.流程图容易造成非结构化的程序结构C.流程图支持逐步求精D.流程图描述的是程序的逻辑结构5、下面说法不正确的是( B )。

A. PAD图支持逐步求精B.PAD图容易造成非结构化的程序结构C. PAD图描述的是算法D.PAD图容易表达程序的层次结构四、简答题1、什么是详细设计,?该阶段的基本任务是什么?详细设计是软件设计的第二个阶段,确定每个模块的具体执行过程,也称过程设计。

软件结构简答题

软件结构简答题

软件开发环境:指在计算机的基本软件基础上,为了支持软件开发而提供的一组工具软件系统软件开发方法软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。

软件生存周期一个软件从提出开发要求直到该软件报废为止的整个时期。

需求分析需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求成熟转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。

错误推测法:在测试程序是,人们可能根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法黑盒测试法:把本测试对象看成一个黑盒子,测试人员不考虑程序内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求软件质量保证:是向用户及社会提供满意的高质量的产品,确保软件从诞生到消亡为止的所有阶段的质量活动,即确定达到和维护需要的软件质量而进行的所有有计划有系统的管理活动瀑布模型:将软件生存周期各个活动规定为依线性顺序连接的若干阶段的一种软件开发模型,它包括可行性分析,项目开发计划,需求分析,概要设计,详细设计,编码,测试和维护程序设计风格程序设计风格指一个人编制程序时所表现出来的特点,习惯逻辑思路等。

白盒测试该方法把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。

基线基线是软件生存周期中各开发阶段的一个特定点,它的作用是把开发个阶段工作的划分更加明确,使本来连续的工作在这些点上断开,以便检查与肯定阶段成果。

因此基线可以作为一个检查点。

耦合性软件系统结构中各模块间相互联系的紧密程度的一种度量。

内聚性内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量多态性指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。

软件开发技术考试复习题及参考答案

软件开发技术考试复习题及参考答案

软件开发技术一、填空题1、软件工程学的内容可包括()、结构、()、()、环境、管理、规范等。

2、软件生存周期一般可分为问题定义、()、()、设计、()、测试、运行与维护阶段。

3、系统流程图是()的传统工具。

4、结构化语言是介于自然语言和()之间的一种半形式语言。

5、数据字典的内容包括六项:()、()、()、数据存储、处理逻辑、外部实体。

6、UML的定义包括()和()两个部分。

7、按数据流的类型,结构化设计方法有两种设计策略,它们是变换分析设计和()。

8、瀑布模型是以文档为驱动、适合于()的软件项目的模型。

9、对象具有标识唯一性、分类性、多态性、( ) 和( )等基本特性。

10、消息关联指的是对象()的一种依赖关系。

11、对象的规格说明包括对对象()的说明及对对象()的说明。

12、在需求分析阶段常用的图形工具有()、()、()。

13、模块独立的概念是()、()、()和局部化概念的直接结果。

14、基于计算机系统的系统元素包括:软件、硬件、人、()、()和过程等几个部分。

15、软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、()、可使用性和效率。

16、为了便于对照检查,测试用例应由输入数据和预期的()两部分组成。

17、在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、()。

18、需求分析的基本任务是准确的回答()。

19、常用的系统分析方法有四类,包括:()、数据流方法、信息造型方法以及()。

20、面向对象设计中,主要存在两种耦合,交互耦合和()。

21、UML是一种标准的图形化(即可视化)建模语言,它由()和()组成。

其中,前者是UML的表示法(语法),而后者给出前者的含义,是UML的语义。

二、选择题1、下列关于瀑布模型的描述正确的是()。

A. 瀑布模型的核心是按照软件开发的时间顺序将问题简化。

B. 瀑布模型具有良好的灵活性。

C. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。

软件工程 第5章软件详细设计

软件工程 第5章软件详细设计

第5章例题分析与解答作者:不详来源:2006年9月1日发表评论进入社区一、填空题1.结构化程序设计方法的要点是使用___三种基本控制_____结构,自顶向下、逐步求精地构造算法或程序。

2.为了产生结构化的流程图,应由三种基本控制结构顺序组合或__完全嵌套___而成。

3.结构化程序设计方法提倡开发人员的组织形式是___主程序组_____。

4.PAD图是一种由左向右展开的二维树型结构,图中的竖线为程序的____层次线____。

5.在Jackson方法中解决结构冲突的具体办法是引入__中间数据结构或中间文件______。

二、选择题1.详细设计与概要设计衔接的图形工具是( B )。

A.DFD图B.SC图C.PAD图D.程序流程图2.结构化程序设计主要强调的是( C)。

A.程序的效率B.程序的执行速度C.程序的易读性D.程序的规模3.详细设计的任务是确定每个模块的( A)。

A.算法B.功能C.调用关系D.输入输出数据4.Jackson方法实现从( A )导出(C )。

A.数据结构B.数据流图C.程序结构D.软件模块层次结构5.在软件详细设计过程中不采用的描述工具是( D )。

A.判定表B.IPO图C.PAD图D.DFD图三、应用题一个正文文件由若干个记录组成,每个记录是一个字符串。

要求统计每个记录中空格字符的个数及文件中空格字符的总个数。

要求输出数据格式是每复制一行字符串之后,另起一行印出上一行字符串空格字符的个数,最后一行印出空格字符总个数。

答案:一、填空题1.三种基本控制结构2.完整嵌套3.主程序员组4.层次线5.中间数据结构或中间文件二、选择题1.B2.C3.A4.AC5.D三、应用题图5-1图5-2<>第5章自测题及参考答案作者:不详来源:2006年9月1日发表评论进入社区一、名词解释1.结构化程序设计2.PAD3.PDL4.结构冲突5.对应关系二、填空题1.结构化程序设计方法使用___三种基本控制结构___构造程序。

软件工程名词解释和简答题

软件工程名词解释和简答题

1.软件工程。

是指导计算机软件开发和维护的工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。

…2.数据流图:数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。

在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。

3.模块:是数据说明、可执行语句等程序对象的集合,模块可以单独被命名、而且可通过名字来访间。

4.白盒测试法:白盒测试是把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。

5.耦合性:也称为模块间联系。

指软件系统结构中各模块间相互联系紧密程度的一种度量。

模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。

模块间耦合高低取决于模块间接口的复杂性]调用的方法及传递的信息。

软件危机:是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。

计算机软件:与计算机系统操作有关的程序、规程、规则及任何与之有关的文档和数据。

或软件=程序+数据+文档。

UML:统一建模语言,是面向对象软件的标准化建模语言。

1、什么是软件危机?为什么会产生软件危机答:(1)软件危机是指软件在开发和维护过程中遇见的一系列严重问题,主要包含二方面的问题,一是如何开发利用软件,二是如何维护数量不断膨胀的已有软件。

(2)产生软件危机的原因:一方面与软件本身的特点有关,另一方面和软件开发与维护的方法不正确有关。

2、简述结构化程序设计方法的基本要点。

答:(1)采用自顶向下,逐步求精的程序设计方法。

(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环(2分)()采用主程序员的组织形式。

1分)3.简述软件工程的目标和面临的主要问题答:软件工程是一门工程性的学科,其目标主要是成功地建造一个大型软件系统。

简述结构化程序设计方法的基本要点

简述结构化程序设计方法的基本要点

简述结构化程序设计方法的基本要点一、什么是结构化程序设计方法?结构化程序设计方法是一种软件开发的方法论,旨在通过划分问题为一系列小而简单的模块,从而使得程序更易于理解、维护和修改。

其基本思想是将程序划分为若干个逻辑上独立的模块,并采用模块化、自顶向下、逐步求精等技术手段进行程序设计和实现。

二、结构化程序设计方法的基本要点1. 自顶向下设计自顶向下设计是指从整体到部分的过程,即先考虑整个系统的框架和功能,再将其细分为多个子功能,并逐层细化直至最小单元。

这种方式可以使得整个系统更加清晰明了,便于后期开发和维护。

2. 模块化编程模块化编程是指将一个大型程序划分为多个独立的小模块,每个模块都有自己特定的功能,并且可以独立编译和测试。

这种方式可以提高代码重用性和可读性,减少出错概率。

3. 顺序、选择和循环三种基本结构顺序结构是指按照代码书写的顺序依次执行语句;选择结构是指根据条件判断执行不同的语句;循环结构是指重复执行一段代码直到满足某个条件。

这三种基本结构是编程中最常用的,也是结构化程序设计方法的基础。

4. 输入、处理和输出三个基本模块输入模块是指从外部获取数据的过程;处理模块是指对数据进行处理的过程;输出模块是指将处理结果输出到外部的过程。

这三个基本模块相互独立,可以分别设计和测试,便于程序开发和维护。

5. 数据流图和结构图数据流图和结构图是结构化程序设计方法中常用的两种图形化表示方式。

数据流图主要用于表示系统中数据流动和转换关系,而结构图则主要用于表示系统中程序模块之间的调用关系。

6. 程序测试和调试程序测试和调试是软件开发过程中必不可少的环节。

在采用结构化程序设计方法时,应尽可能地将各个模块独立开发、测试和调试,并且在整合时进行全面测试和调试,以确保系统能够正常运行。

三、如何实践结构化程序设计方法?1. 划分功能模块首先需要根据需求对整个系统进行功能划分,并将其拆分为多个逻辑上独立的模块。

每个模块应该具有明确的输入、处理和输出功能,并且应该尽可能地遵循单一职责原则。

软件工程复习题

软件工程复习题

单项选择题(在每小题的四个备选答案中,选出一个正确的答案序号填在括号内。

每小题1分,共20分)1. 信息隐蔽概念与( A )这一概念直接的相关。

A. 模块的独立性B. 模块类型的划分C. 软件结构定义D. 软件生命周期2. 下列方法中不属于面向对象的开发方法有( C )。

A. Booch方法B. Coad方法C. VDM方法D. OMT方法3. 不属于详细设计的主要工具有( C )。

A. IPO图B. PAD图C. PDLD. SC4. 选择结构的复杂性比顺序结构的复杂性要( B )。

A. 小B.大C.相等D.无法比较5.软件需求分析是保证软件质量的重要步骤,它的实施应该是在(C)。

A.编码阶段B.软件开发全过程C.软件定义阶段D.软件设计阶段6. 模块内聚度越高,说明模块内各成分彼此结合的程度越(B)。

A.松散B.紧密C.无法判断D.相等7. 软件文档是软件工程实施中的重要部分,它不仅是软件开发各阶段的重要依据,而且影响软件的( A )。

A. 可理解性B.可维护性C.可扩展性D.可移植性8. 单元测试阶段主要涉及( C )的文档。

A.需求设计B. 编码和详细设计C. 详细设计D. 概要设计9. 鱼是一种水生动物。

鱼与水生生物之间的关系是( A )。

A. 一般与特殊关系B. 组装关系10.下列选项不属于软件工程方法学三要素的是( D )。

A.方法B.工具C.过程D.操作11. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。

A.运行和维护阶段B.设计阶段C.代码实现阶段D.测试阶段12. .黑盒测试在设计测试用例时,主要需要研究( A )。

A.需求规格说明与概要设计说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明13. 可行性研究要进行一次( D )需求分析。

A. 深入的B. 详尽的C. 彻底的D. 简化的、压缩了的14. 下列属于维护阶段的文档是( C )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

结构化程序设计方法的基本要点
简介
结构化程序设计方法是一种用于构建大型程序的系统性方法。

它通过将程序分解为一系列小的、可管理的模块,以及规定了模块之间的交互方式,从而降低程序的复杂性,提高程序的可维护性和可读性。

本文将从以下几个方面详细介绍结构化程序设计方法的基本要点。

1. 模块化
模块化是结构化程序设计方法的核心思想之一。

模块化将程序分解为多个功能相对独立的模块,每个模块负责完成一个特定的任务。

模块化有助于提高程序的可读性,可维护性和可重用性。

1.1 模块划分
在进行模块划分时,可以按照功能划分原则,将程序划分为几个不同的功能模块,每个模块负责完成一个特定的功能。

也可以按照数据划分原则,将程序划分为几个处理不同数据的模块。

模块应该具有清晰的职责和界限,不同模块之间的功能和数据交互应该通过接口进行。

1.2 接口设计
模块之间的接口设计是模块化的关键。

接口应该明确定义模块之间的输入和输出,以及数据的传递方式。

良好的接口设计可以降低模块之间的耦合度,提高代码的可复用性,使得模块可以独立开发和测试。

1.3 函数与过程
模块可以通过函数或过程来实现。

函数是一段可重用的代码,用于执行特定的计算或操作,并返回一个结果。

过程是一段可重用的代码,用于执行一系列操作,不返回结果。

函数和过程有助于将程序划分为更小的单元,提高程序的可读性和可维护性。

2. 控制结构
控制结构是结构化程序设计方法的另一个重要要点。

控制结构用于控制程序的执行流程,改变程序的执行顺序或执行条件。

2.1 顺序结构
顺序结构是程序从上到下按照顺序执行的控制结构。

顺序结构是程序的基础,所有的程序都是从顺序结构开始进行。

2.2 选择结构
选择结构用于根据条件选择执行不同的代码块。

常见的选择结构包括if语句和switch语句。

if语句用于判断一个条件是否成立,如果条件成立,则执行其中的
代码块;否则执行其他代码块。

switch语句可以根据一个表达式的值选择执行不
同的代码块。

2.3 循环结构
循环结构用于重复执行一段代码块,直到满足指定的条件为止。

常见的循环结构包括for循环,while循环和do-while循环。

for循环用于执行特定次数的循环,while循环根据条件判断是否执行循环,do-while循环先执行一次循环,再根据条件是否继续执行。

2.4 控制流程图
控制流程图是一种图形化的表示方法,用于描述程序的控制流程。

控制流程图通过使用不同的符号和箭头,表示不同的控制结构,以及程序的执行顺序和条件。

3. 数据结构
数据结构是结构化程序设计方法的另一个关键要点。

数据结构用于组织和存储数据,使得数据可以高效地被访问和处理。

3.1 基本数据类型
基本数据类型是编程语言提供的最基本的数据类型,如整数,浮点数,字符和布尔值。

基本数据类型可以用于存储和处理简单的数据,是构建复杂数据结构的基础。

3.2 数组
数组是一种线性的数据结构,可以存储多个相同类型的数据。

数组的特点是具有固定的长度和连续的存储空间。

通过使用数组,可以方便地对大量数据进行存储和操作。

3.3 链表
链表是一种动态的数据结构,可以存储多个不连续的内存块,并通过指针进行连接。

链表的特点是可以灵活地插入和删除元素,但查找和访问元素的效率较低。

3.4 栈和队列
栈是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。

栈可以用于实现函数调用和表达式求值等场景。

队列是一种先进先出(FIFO)的数据结构,可以在队列的前端进行删除操作,队列的后端进行插入操作。

队列可以用于实现任务调度和消息传递等场景。

3.5 树和图
树是一种非线性的数据结构,由节点和边组成。

树的特点是每个节点最多有一个父节点和多个子节点。

图是一种更复杂的数据结构,由顶点和边组成。

图的特点是每个顶点可以与其他顶点之间存在多条边。

树和图可以用于表示和处理具有层级关系的数据。

4. 抽象和封装
抽象和封装是结构化程序设计方法的关键思想之一。

抽象是将复杂的细节和实现从用户中隐藏,只展示必要的接口和功能。

封装是将数据和相关操作封装在一起,形成一个独立的模块。

4.1 数据抽象
数据抽象是将数据的实现细节隐藏,只暴露必要的数据和操作接口。

通过数据抽象,用户可以使用数据的功能,而不需要关心其具体的实现细节。

4.2 函数抽象
函数抽象是将函数的实现细节隐藏,只暴露函数的功能和输入输出。

通过函数抽象,用户可以使用函数完成特定的计算或操作,而不需要关心函数的具体实现。

4.3 模块封装
模块封装是将相关的数据和函数封装在一起,形成一个独立的模块。

模块封装可以提高代码的可读性和可维护性,同时也可以降低模块之间的耦合度,提高代码的可复用性。

5. 错误处理和调试
错误处理和调试是结构化程序设计方法的一部分。

良好的错误处理和调试技巧可以帮助开发人员快速定位和解决程序中的错误,提高程序的健壮性。

5.1 错误处理
错误处理是在程序中检测和处理错误的过程。

常见的错误处理技术包括错误码返回,异常处理和断言。

错误处理应该根据不同的错误类型,采取适当的处理措施,如报错,恢复错误状态或进行错误修复。

5.2 调试技术
调试是识别和解决程序中的错误的过程。

常见的调试技术包括使用调试器进行单步调试,输出调试信息进行追踪,以及使用断点进行程序暂停。

调试技术有助于快速定位错误的原因,修复错误并验证修复的效果。

总结
结构化程序设计方法通过模块化、控制结构、数据结构、抽象和封装以及错误处理和调试等要点,帮助开发人员构建可读性强、可维护性好、运行效率高的程序。

程序的结构化设计可以提高开发效率、减少错误、降低维护成本。

在实际开发中,我们应该灵活运用结构化程序设计方法,根据具体需求和场景,选择合适的设计方法和技术,编写出高质量的程序。

相关文档
最新文档