软件工程方法与实践 期末考试复习资料(江理)

合集下载

软件工程期末考试重点

软件工程期末考试重点

《软件工程》期末复习重点第一章软件工程1.什么是软件工程。

A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。

2. 软件工程的三要素:方法、工具和过程。

第二章软件过程1.软件生命周期分为哪几个阶段?每个阶段的基本任务是什么?a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么b.软件开发:具体设计和实现在前一个时期定义的软件。

概要设计:怎样宏观地解决问题详细设计:应如何具体地实现这个系统编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。

c.运行维护:修正错误,使软件持久地满足用户需要。

改正性维护:诊断和改正使用中的错误适应性维护:修改以适应环境变化完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备2.常用的过程模型有哪些?各自的特点及不足。

如:瀑布模型的不足是不能适应需求的动态变更。

A.瀑布模型特点:可强迫开发人员采用规范化的方法。

严格地规定了每个阶段必须提交的文档。

要求每个阶段交出的所有产品都必须是经过验证(评审)的。

缺点:太理想化,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。

如果需求规格与用户需求之间有差异,就会发生这种情况。

只适用于项目开始时需求已确定的情况。

B.快速原型模型特点:快速软件产品开发基本上是线性顺序进行。

降低了规格说明文档变化的可能性。

减少了后续阶段错误的可能性。

c.增量模型优点:人员分配灵活,刚开始不用投入大量人力资源。

当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。

增量能够有计划地管理技术风险。

缺点:要求构件具备开放式的体系结构。

易退化为边做边改模型,从而使软件过程的控制失去整体性。

软件工程期末复习

软件工程期末复习

软件工程期末复习第一章概述1、软件工程方法学的三个要素:方法、工具和过程2、目前广泛使用的软件工程方法学是传统方法学(结构化范型)和面向对象方法学3、软件生命周期分成哪几个阶段?软件定义、软件开发、运行维护(软件维护)3个时期软件定义分为3各阶段:问题定义、可行性研究和需求分析软件开发:总体设计、详细设计、编码和单元测试、综合测试(系统设计和系统分析)4、典型的生命周期模型包括瀑布模型、快速原型模型、螺旋模型、喷泉模型、RUP等第二章可行性研究1、可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决3种解法的可行性:技术可行性、经济可行性、操作可行性2、什么是系统流程图?它包括哪些符号?基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件。

处理(能改变数据值或数据位置的加工或部件)输入输出(表示输入或输出)连接换页连接数据流3、什么是数据流图?它包括哪些符号?(符号:正方形、圆角矩形、开口矩形、箭头)4、数据流图为什么要分层?在一张数据流图中包含多少个元素合适?一般来说,如果一张数据流图中包含的处理多于9个,人们就难于领会它的含义,因此数据流图应该分层,并且在功能级数据流图细化后得到的处理超过9个时,应该采用画分图的方法,也就是把每个主要功能都细化为一张数据流分图,而原有的功能级数据流图用来描绘系统的整体逻辑概貌。

5、什么是数据字典?它的用途是什么?它包括哪四类元素的定义?(元素定义:数据流、数据流分量(即数据元素)、数据存储、处理)6、成本估计的三种技术代码行技术、任务分解技术、自动估计成本技术第三章需求分析1、需求分析的基本任务是什么?主要包括哪几项?(任务是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统“做什么”的问题)主要包括:确定对系统的综合要求、分析系统的数据要求、导出系统的逻辑模型、修正系统开发计划。

软件工程期末复习资料

软件工程期末复习资料

软件工程期末复习资料一、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

二、软件危机包括两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

三、软件危机具体表现:1、对软件开发成本和进度的估计常常很不准确;2、用户对“已完成的”软件系统不满意的现象经常发生;3、软件产品的质量往往靠不住;4、软件通常没有适当的文档资料;5、软件成本在计算机系统总成本中所占比例逐年上升;6软件开发生产率提高的速度,跟不上计算机应用迅速普及深入的趋势。

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

五、软件工程的7条基本原理:1、用分阶段的生命周期计划严格管理;2、坚持进行阶段评审;3、实行严格的产品控制;4、采用现代程序设计技术;5、结果应能清楚地审查;6、开发小组的人员应该少而精;7、承认不断改进软件工程实践的必要性。

六、软件工程方法学包含3个要素:方法、工具和过程。

七、软件定义时期的3个阶段:问题定义、可行性研究和需求分析。

八、软件生命周期的每个阶段的基本任务和成果:1、问题定义:确定要解决的问题是什么;2、可行性研究:研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法,其结果是客户作出是否继续进行这项工程的决定的重要依据;3、需求分析:确定目标系统必须具备哪些功能,其成果是需求分析报告;4、总体设计:应该设计出实现目标系统的几种可能的方案,设计程序的体系结构;5、详细设计:设计出程序的详细规格说明;6、编码和单元测试:写出正确的容易理解、容易维护的程序模块;7、综合测试:关键任务是通过各种类型的测试使软件达到预定的要求;8、软件维护:改正性维护、即诊断和改正正在使用过程中发现的软件错误,适应性维护、修改软件以适应环境的变化,完善性维护、根据用户的要求改进或扩充软件使它更完善,预防性维护、修改软件为将来的维护活动预先做准备。

九、软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

南京大学软件工程期末复习汇总

南京大学软件工程期末复习汇总

一、软件过程1(掌握软件生命周期的几个活动a) 目标 b) 任务 c) 输出例子:解释软件生命周期中的“设计”活动) 软件开发活动:(1) 需求分析(需求工程)目的:根据描述明确问题域特性E ,构建定义良好的系统行为S ,使得E 通过S ,达到预期的需求R需求工程的主要工作:(a) 研究问题背景,描述问题域特性E (b) 需求开发,确定 R(c) 构建解系统,描述解系统行为S ,使得 理解现实为第一目的,保证S 的质量为第二目的结果: SRS (Software Requirements Specification) 用户需求规格说明(2) 设计:目的:以软件实体为基础建立软件结构即整个将要开发的系统的模型或设计表示任务:(a)体系结构设计 (b)细节设计(c)用户界面设计=(HCI)? 结果:模型:体系结构模型,系统模型规格说明书:体系结构说明,系统构件说明,界面设计文档设计决策会极大的影响系统质量,所以要有多种选择和折中(3) 实现目的:用编程语言实现系统中单独的组件 任务: 程序设计、编程、调试 结果 :可执行的程序 (4) 测试目的:验证和确认软件质量任务:测试设计、单元测试、集成测试、系统测试|、确认测试、回归测试 结果:发现的缺陷和错误测试不一定要在实现结束后进行,可能并行进行,如果测试用例从需求确认中直接得出,可能影响需求分析 (5) 安装与维护目的:在系统向用户发布后保持系统的运行,包括完善型(Perfective)、调整型(Adaptive)、修正型(Corrective)、防止型维护(Preventive) 任务:安装,培训,维护 输出:正常运转的系统软件过程模型:2(要求 特征描述 优点 缺点 例子:解释软件开发的瀑布模型,并说明其优缺点 比较瀑布模型和螺旋模型)RS E ,(1) Build-fix(2) 瀑布模型又被称为“经典生命周期”,它提出了一个系统的、顺序的软件 开发方法,从用户需求规格说明开始,通过策划、建模、构建 和部署的过程,最终提供一个完整的软件并提供持续的技术支 持。

软件工程期末复习资料

软件工程期末复习资料

一、判断题1、成功的测试是没有发现错误的测试。

(×)2、软件是指程序设计语言编写的程序。

(×)3、程序设计语言中应绝对禁止使用GOTO语句。

(×)4、可行性研究的结果有可能将软件开发项目否定。

(√)5、类是关于对象性质的描述,由方法和数据组成。

(√)6、概要设计阶段完成的主要文档是概要设计说明书。

(√)7、软件维护的前提是不能失去原有软件的基本功能。

(√)8、用盒图和PAD图设计出来额算法必定是结构化的。

(√)9、面向对象技术的最大优点是减少软件的开发时间。

(×)10、白盒测试无需考虑模块内部的执行过程和程序结构。

(×)11、如果通过软件测试没有发现错误,则说明软件是正确的。

(×)12、螺旋模型是在瀑布模型和增量模型的基础上增加风险分析活动。

(√)13、可行性研究的根本的目的不是解决问题,而是确定问题是否值得去解。

(√)14、在面向对象方法学中,“事件”是瞬时完成的,而“状态”是有持续性的(√)15、模块化、信息隐蔽等软件设计原则有助于得到高内聚低耦合度的软件产品√二、选择题1、软件工程的概念是1968年提出的2、对象的操作是对象的特征3、各种不同的软件维护中,以预防性维护所占的维护量最小4、准确的解决“软件必须做什么”是需求分析阶段的任务5、数据字典中,一般不包括源点和终点6、软件可行性研究实质上是要进行一次简化、压缩的需求分析、设计过程。

7、为高质量地开发软件项目,在软件结构设计时,必须遵循信息隐蔽原则。

8、研究开发所需要的成本和资源是属于可行性研究中的经济可行性研究的一方面。

9、软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试程序内部逻辑。

10、在确定属性时,所有修饰性名词词组和形容词是候选的属性。

11、下列的开发一个简单的问题解决方案不是分析建模的目的。

12、确认测试主要涉及的文档是需求规格说明书。

13、软件需求规格说明书的内容不应包括对算法的详细过程的描述。

软件工程期末复习(超详细!!!)

软件工程期末复习(超详细!!!)

软件工程期末复习(超详细!!!)一:软件工程概述软件工程学的存在价值:促进软件项目成功。

软件的概念:软件(software):软件是计算机系统中与硬件相互依存的另一部分。

它包括程序、数据及其相关文档的完整集合。

(1)能够完成预定功能和性能的可执行指令(program)(2)使得程序能够适当地操作信息的数据结构(data)(3)描述程序的操作和使用的文档(document)软件危机:软件危机定义:软件在开发和维护过程中遇到的一系列严重问题。

软件危机包含两层含义:如何开发软件。

如何维护数量不断膨胀的已有软件。

软件工程(Software Engineering):是研究和应用功能如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。

软件生存周期:是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程。

一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。

计划阶段确定待开发系统的总体目标和范围。

研究系统的可行性和可能的解决方案,对资源、成本及进度进行合理的估算。

分析阶段分析、整理和提炼所收集到的用户需求,建立完整的分析模型,将其编写成软件需求规格说明和初步的用户手册。

设计阶段(总体设计和详细设计)设计阶段的目标是决定软件怎么做。

软件设计主要集中于软件体系结构、数据结构、用户界面和算法等方面。

实现阶段(编码)实现阶段是将所设计的各个模块编写成计算机可接受的程序代码。

测试阶段设计测试用例,对软件进行测试,发现错误,进行改正。

运行和维护阶段应当在软件的设计和实现阶段充分考虑软件的可维护性。

维护阶段需要测试是否正确实现了所要求的修改,并保证在产品的修改过程中,没有做其他无关的改动。

维护常常是软件生命周期中最具挑战性的一个阶段,其费用是相当昂贵的。

软件工程三要素:工具、方法、开发过程瀑布模型:问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试、运行与维护。

软件工程期末考试复习(精)

软件工程期末考试复习(精)

第一章软件工程的概述软件工程的三要素:过程: 为建造高质量的软件所需完成的任务框架方法: 为软件开发提供了“如何做”的技术工具: 为软件工程方法提供了自动的或半自动的软件支撑环境软件生命周期的概念:软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件生存周期.软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。

这个过程即为计算机软件的生命周期生命周期阶段的划分原则: 各阶段的任务相对独立;同一阶段任务的性质相同;软件的生存期划分的几个阶段:1、软件定义:问题定义可行性研究(软件计划需求分析2、软件开发:系统设计软件实现软件测试3、软件使用、维护和退役软件工程的过程模型(4 个瀑布模型(生存周期模型就是传统的生命周期方法学(既自顶向下结构化开发模型方法。

优点:奠定了软件工程方法的基础;流水依赖;便于分工协作;推迟实现;文档易修改;有复审质量保证。

缺点:用户需求明确困难;用户见面晚;纠错慢;难于克服系统分析员不懂专业领域的知识,用户不懂计算机的困难,成功率低。

适合于系统要求明确的小系统。

原型模型(rapid prototype model是为了确定需求而提出的实际模型。

打破传统的自顶向下结构化开发模型方法,在计划和需求分析后,把系统主要功能接口做为设计依据,快速开发出软件样机,及时征求用户意见,正确确定系统需求,然后再进一步准确地进行系统设计与实现。

优点:与用户见面快;开发成功率高,适合于需求不确定的大系统。

缺点:周期长,开发成本高。

螺旋模型(spiral model沿着螺线旋转(一个螺旋式周期,在四个象限上分别表达四个方面的活动制定计划:确定软件目标,选定实施方案,弄清项目开发的限制,选定完成目标的策略风险分析分析所选方案,考虑如何识别和消除风险,风险角度分析该策略实施工程实施软件开发,启动一个开发阶段客户评估评价前一步开发工作,提出修正建议,计划下一轮的工作特点:瀑布模型+快速原型+风险分析迭代过程统一过程过程模型RUP 的特点:用例驱动基于用例模型,开发人员可以创建一系列实现这些用例的设计和实现模型。

软件工程期末考试重点整理

软件工程期末考试重点整理

软件工程的基本概念:研究软件生产和软件管理的工程学科。

主要内容:软件工程的基本概念。

软件开发模型。

软件开发各阶段的任务、技术、方法。

传统方法、面向对象方法。

软件工程管理。

软件质量保证。

软件工程环境。

软件工程三要素:方法、工具和过程什么是软件生命周期?定义一个软件从开始计划起,到废弃不用为止,称为软件的生存周期。

软件生存周期包括:计划(主要任务:调查和分析,调查用户需求,分析新系统的主要目标,分析开发该系统的可行性)、开发(主要任务:系统分析、设计和实现)与运行(主要任务:做好软件维护,使软件在整个生存周期内保证满足用户的需求和延长使用寿命)3个时期,每一时期又可细分为若干更小的阶段。

将软件开发过程划分生存周期的目的:把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够简化每一步的工作内容,使因为软件规模增长而大大增加了的软件复杂性变得较易控制和管理需求分析的主要任务是1通过对问题及其环境的理解、分析和综合,建立分析模型;2在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求不大出来。

需求分析的步骤通过对现实环境的调查研究,获得当前系统的具体模型;去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型;分析当前系统与目标系统的差别,建立目标系统的逻辑模型;对目标系统进行完善和补充,并写出完整的需求说明;对需求说明进行复审简述衡量模块独立性的两个准则。

选择程序设计语言的原则有哪些?简述你对程序设计风格的理解。

程序设计阶段的特点:生产方式:个体手工劳动。

生产工具:机器语言、汇编语言。

开发方法:追求编程技巧,追求程序运行效率。

程序难读、难懂、难修改。

硬件特征:价格贵、存储容量小、运行可靠性差。

软件特征:只有程序、程序设计概念,不重视程序设计方法。

“软件测试不能证明程序的正确性”,谈谈你对这句话的理解。

“软件维护是软件运行时期的工作,与软件开发各阶段联系较少,该阶段工作是简单的,难度也要小得多。

软件工程与实践考试题及答案

软件工程与实践考试题及答案

《软件工程与项目管理》复习资料一、选择题1、经济可行性研究的范围包括( C )。

A.资源有效性B.管理制度C.效益分析 D.开发风险2、结构化设计方法在软件开发中用于( A )。

A.概要设计B.详细设计C.程序设计D.测试用例设计3、程序的三种基本控制结构是( B )。

A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移4、软件测试中,白盒法是通过分析程序的( B )来设计测试用例的。

A. 应用范围B. 内部逻辑C. 功能D. 输入数据5、软件开发生命周期中,( D )耗费的工作量最大。

A. 需求阶段B. 设计阶段C. 测试阶段D. 维护阶段6、模块的内聚性最高的是( D )。

A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚7、原型化方法是用户和设计者之间执行的一种交互构成,适用于( A )系统。

A.需求不确定性高的 B.需求确定的C.管理信息D.实时8、( D )是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。

A. 软件过程B. 软件工具C. 质量保证D. 软件工程9、下列关于瀑布模型的描述正确的是( D )。

A.利用瀑布模型,如果发现问题修改的代价很低B.瀑布模型的核心是按照软件开发的时间顺序将问题简化C.瀑布模型具有良好的灵活性D.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开10、总体设计的目的是确定整个系统的( B )。

A.规模 B.功能及模块结构C.费用 D.测试方案11、快速原型模型的主要特点之一是 ( D )。

A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件12、两个模块彼此传递的信息中有控制信息,这种耦合称为( D )。

A. 数据耦合B. 公共环境耦合C. 内容耦合D. 控制耦合13、为了提高模块的独立性,模块之间最好是( D ) 。

软件工程复习题广东海洋大学附部分答案版

软件工程复习题广东海洋大学附部分答案版

软件工程总复习一、选择题1. 在()模型中是采用用例驱动和架构优先的策略,使用迭代增量建造方法,软件“逐渐”被开发出来的。

A.快速原型 B. 统一过程C.瀑布模型 D. 螺旋模型2. 软件工程是研究软件( )的一门工程学科。

A. 数学B. 开发及管理C. 运筹学D. 工具3. 需求分析可以使用许多工具,但()是不适合使用的。

A.数据流图 B.判定表 C.PAD图 D.数据字典4. SD方法衡量模块结构质量的目标是()。

A. 模块间联系紧密,模块内联系紧密B. 模块间联系紧密,模块内联系松散C. 模块间联系松散,模块内联系紧密D. 模块间联系松散,模块内联系松散5. 程序的三种基本结构是()。

A. 过程、子程序、分程序B.顺序、条件、循环C.递归、堆栈、队列D.调用、返回、转移6.为提高软件测试的效率,应该( C )。

A.随机地选取测试数据B.取一切可能的输入数据作为测试数据C.在完成编码后制定软件测试计划D.选择发现错误可能性大的数据作为测试数据7.软件可移植性是用来衡量软件的( D )的重要尺度之一。

A.效率 B. 质量 C. 人机关系 D. 通用性8.面向对象的分析方法主要是建立三类模型,即( D )。

A. 系统模型、ER模型、应用模型B. 对象模型、动态模型、应用模型C. ER模型、对象模型、功能模型D. 对象模型、动态模型、功能模型9.软件配置管理是在软件的整个生存周期内管理(C )的一组活动。

A.程序 B.文档 C.变更 D.数据10. 结构化分析的主要描述手段有( )。

A. 系统流程图和模块图B. DFD图、数据词典、加工说明C. 软件结构图、加工说明D. 功能结构图、加工说明11. 用于表示模块间的调用关系的图叫()。

A.PAD B.SC C.N-S D.HIPO12. 常用的软件开发方法有面向对象方法、面向( )方法和面向数据方法。

A. 过程B. 内容C. 用户D. 流程13. 从工程管理的角度来看,软件设计分两步完成( )。

软件工程期末考试试题answer

软件工程期末考试试题answer

江西理工大学考卷(A卷)考试时间年月日(120分钟)课程软件工程教师签名_一、单项选择题(每小题2分,共30分)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、对在数据流图中每一个命令的图形元素均给以定义是(B)A、条目定义B、数据字典C、数据定义D、数据说明7、软件的可行性研究中不包括(D)A、法律可行性B、技术可行性C、经济可行性D、政治可行性8、根据用户在软件使用过程中提出的建设性意见而进行的维护活动称为(C)。

A。

纠错性维护B. 适应性维护C. 改善性维护D. 预防性维护9、人机界面的风格大致经过了(B)代的演变。

A. 三B. 四C. 五D. 六10、以下不属于白盒测试技术的是(D)A。

逻辑覆盖B。

基本路径测试C。

循环覆盖测试D。

等价类划分11、为改正软件系统中潜藏的错误而进行的维护活动称为(A)。

A。

纠错性维护B。

适应性维护 C.改善性维护 D.预防性维护12、从事物的组成部件及每个部件的属性、功能来认识事物。

这种方法被称为(A)的方法.A、面向对象B、面向数据C、面向过程D、面向属性13、判定表由四部分组成:左上部列出(B).A。

条件组合与动作之间的对应关系B。

所有条件C. 所有可能的动作D. 可能的条件组合14、面向对象的分析和设计(OOA&OOD)方法出现在20世纪(C)年代中期.A. 50B. 60C. 70D。

南京理工大学2019-2020学年第二学期期末软件工程考试试题

南京理工大学2019-2020学年第二学期期末软件工程考试试题

南京理工大学2019—2020学年第二学期期末。

A. I、II和IIIB. I、III和IVC. II、III和IVD. 以上都正确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. 画软件结构图时应注意调用关系只能是()。

A. 从下到上B. 从上到下C. 从左到右D. 从右到左17. 程序流程图中的“→”代表()。

A. 数据流B. 控制流C. 顺序流D. 调用18. DFD中的“→”代表()。

A. 数据流B. 文件C. 处理D. 控制流19. DFD中的“○”代表()。

A. 数据流B. 文件C. 处理D. 控制流20. DFD中的“_”代表()。

A. 数据流B. 文件C. 处理D. 控制流二、填空题(只有一个正确答案,每空2分,共20空,共40分)1.计算机软件不仅仅是程序,还应该有一整套。

2.传统的软件生存期模型是。

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

软件工程的定义:软件工程是一门研究如何用系统化、规范化、数量化等工程化思想和方法去进行软件开发、维护和管理的学科。

软件危机的定义:软件开发和维护过程中所遇到的如软件规模越来越大,复杂度不断增加,软件的需求量日益增大等的严重问题我们称之为软件危机。

软件工程有哪些基本的思想:a.推迟实现的观点b.逐步求精的观点c.分解与抽象的观点d.信息隐蔽的观点e.质量保证的观点CMM(Capability Maturity Model)能力成熟度模型,是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。

极限编程(Extreme Programming , XP)是一种软件工程方法学是敏捷软件开发中最富有成效的几种方法学之一。

它的的核心有四个要点:交流、简单、反馈、勇气软件生命周期模型:通常把软件生命周期中各项开发活动的流程用一个合理的框架——开发模型来规范描述,这就是软件过程模型,或者称为软件生命周期模型。

软件需求分类:功能需求、非功能需求和领域需求结构化分析(Structured Analysis, SA) 结构图(Structure Chart ,SC)面向对象的一些概念:类是具有相同或相似性质的对象的抽象。

实例是类的具体化。

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

消息是指对象间相互联系和相互作用的方式数据流类型:变换型数据流、事务型数据流、混合型数据流Jackson图:Jackson图是Jackson方法分析和设计最有效的表达手段,用它既可以描述问题的数据结构,也可以描述软件的程序结构。

Jackson图的优点是便于表示层次结构,利于结构自顶向下分解,形象直观,可读性好。

Jackson方法用某种形式的伪码给出程序的过程性描述。

伪码一般采用结构化形式的英语描述,例如,用”select”语句描述选择结构,用”until”或”while”语句描述重复结构。

结构化程序设计的三种基本逻辑结构是:顺序结构、选择结构和循环结构。

类与类之间的关系:关联、泛化、聚集软件设计的三类活动:软件设计的第一类活动是软件结构设计,也称为总体设计、概要设计或高层设计。

第二类活动是软件详细设计,也称为(模块)过程设计或底层设计。

第三类活动是设计测试。

软件模块化设计的指导思想:分解、抽象、逐步求精、信息隐蔽和模块独立性。

软件模块化设计的定义:把一个大型软件系统的全部功能,按照一定的原则合理地划分为若干个模块,每个模块完成一个特定子功能,所有的这些模块以某种结构形式组成一个整体。

模块独立性的定义及控制标准:模块独立性是模块化、抽象、信息隐蔽概念的直接结果,也是判断模块化结构是否合理的标准。

模块独立性可以由两个定性标准度量,即模块自身的内聚和模块之间的耦合。

内聚性、耦合性和抽象的定义:内聚性是从功能的角度对模块内部聚合能力的量度,耦合性是对一个软件结构内不同模块之间互连程度的度量。

抽象是一种从一般的观点看待事物的方法,它要求我们集中于事物的本质特征(内部状态和运动规律),而非具体细节或具体实现。

信息隐蔽定义:每个模块对其他所有模块都隐蔽自己的设计决策,也就是说,模块应该详细说明且精心设计以求在某个模块中包含的信息不被不需要这些信息的其他模块访问。

按耦合度从低到高依次有7种耦合方式:a.非直接耦合(独立运行)b.数据耦合(用参数表传递简单数据)c.标记耦合(传递数据结构或者一部分)d.控制耦合(传递的信息包括控制模块的信息)e.外部耦合(模块与软件之外的环境有关)f.公共耦合(多个模块引用同一全局的数据区)g.内容耦合(访问内部数据,代码重叠或者多个入口)按内聚度从低到高依次有7种内聚种类:a.偶然内聚(模块完成的多个任务,任务之间的关系松散)b.逻辑内聚(模块完成逻辑相关的一组任务)c.瞬时内聚(模块的所有任务必须在同一时间间隔内执行)d.过程内聚(模块的处理元素相关而且按照特定的次序执行)e.通信内聚(模块的所有元素集中在一个数据结构区域上)顺序内聚(模块的处理元素相关,必须顺序执行)f.功能内聚(模块完成单一的功能,各个部分协调工作,而且不可缺少)结构化设计方法(SD)是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础上发展起来的。

软件维护类型及对应方向的维护:纠错性维护:对在测试阶段未能发现的,在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错以及验证、修改的回归测试过程。

纠错性维护占整个维护工作的21%完善性维护:为了满足这些日益增长的新要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性等。

完善性维护所占的比重最大,大约占总维护量的50%以上适应性维护:为了适应计算机的飞速发展,使软件适应外部新的硬件和软件环境或者数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)发生的变化,而进行修改软件的过程。

适应性维护占整个维护工作的25%预防性维护:为了提高软件的可维护性和可靠性等,主动为以后进一步维护软件打下良好基础的维护活动。

大约占总维护量的5%编码语言的目的与分类:编码的目的是实现人和计算机的通信,指挥计算机按人的操作意图正确工作。

程序设计语言是人和计算机之间进行通信的最基本的工具,其特性会影响人的思维和解决问题的方式。

分为两大类:低级语言:这两种语言都依赖于相应的计算机硬件。

机器语言属于第一代语言汇编语言属于第二代语言高级语言:第三代程序设计语言利用类英语的语句和命令,尽量不再指导计算机如何去完成一项操作,如BASIC、COBOL和FORTRAN等。

第四代程序设计语言比第三代程序设计语言更像英语但过程更弱,与自然语言非常接近,它兼有过程性和非过程性的两重特性,如数据库查询语言、程序生成器等。

人机界面设计的任务,就是根据对用户在使用交互式系统时的所作所为,或者是用户想象中的所作所为,或者是他人想象中用户的所作所为的抽象,创建或导出一致的表示界面。

面向对象实现主要包括两项工作:(1)把面向对象设计结果翻译成用某种程序语言书写的面向对象程序;(2)测试并调试面向对象的程序。

请描述图书馆系统的借书的一个常规场景。

用例名称:借书范围:图书管理图书流通应用级别:用户需求主要参与者:借阅者涉众及其关注点:(1)浏览者:希望能够不需要登录系统即可快速地浏览图书和查询信息。

(2)借阅者:希望在登录系统后可以借书,能查查询自己信息和借书情况(3)普通管理员:希望能够协助借书者完成借书功能,形成借书报表给借阅者查看确认。

前置条件:借书者要登录系统或者验证借书证成功保证:创建借书记录,更新借书信息,形成借书报表。

主成功场景:(1)普通管理员扫描借书证。

(2)检查是否可以借书(3)若可借,则扫描图书(4)显示已借书数,显示借书成功…重复(2)-(4)(5)借书结束请描述银行客户从ATM机上取一笔钱的场景。

答:客户插入银行卡后输入密码。

客户选择“取款”项,屏幕跳出选择取款金额菜单以及一次性可取出的最大金额,客户根据自身需要选择预设金额或者自己输入想要取出的金额。

机器根据客户输入的金额进行出钞,如果余额不足,则屏幕提示客户无法提取相应金额。

客户选择提取较小金额或者选择退出系统,取卡。

否则在正常情况下按客户所需输出相应钞票。

屏幕提示在30秒内取走钞票。

完成交易,客户退出系统,取卡。

可行性分析要如何入手?从技术可行性、经济可行性、操作可行性和时间可行性四个方面研究每种方案的可行性。

软件工程两大范型分别是什么?他们有什么不同?答:分别是传统的结构化范型和面向对象范型。

结构化范型要么面向行为要么面向数据,但没有既面向数据又面向行为的;而面向对象范型把数据和行为看成同等重要,即将对象视作一个融合了数据及在其上操作的行为的统一的软件组件。

面向对象相对于结构化技术,无论对象的内部细节如何变化,只要对象提供的方法即接口保持不变,则整个软件产品的其他部分就不会受到影响,不需要了解对象内部的变化。

结构化分析要创建哪些模型?答:结构化的需求分析模型有数据流模型、状态转换模型、实体—关系模型等。

数据流模型集中在数据的流动和数据转换功能,而不关心数据结构的细节。

实体—关系模型关心的是寻找系统中的数据及其之间的关系,却不关心系统中包含的功能。

系统的行为模型包括两类模型:一类是数据流模型,用来描述系统中的数据处理过程;另一类是状态转换模型,用来描述系统如何对事件做出响应。

软件生命周期的定义是什么?它分为几个阶段?分别是什么?答:软件从生到死的过程称之为软件生命周期。

它分为六个阶段,分别是:a.问题的定义及规划b.需求分析c.软件设计d.程序编码e.软件测试f.运行什么是瀑布模型?什么是增量模型?它们有什么区别?答:瀑布模型是从上一项活动接受该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容,给出该项活动的工作成果,并作为输出传给下一项活动。

增量模型是在项目的开发过程中以一系列的增量方式开发系统。

他们的主要区别是瀑布模型的开发过程是通过一系列阶段顺序展开的,而在增量模型中,软件被作为一系列的增量组件来设计、实现、集成和测试,每一个组件是由多种相互作用的模块所形成的提供特定功能的代码片段构成。

维护用户需求和系统需求各有什么特点?答:用户需求是从用户角度来描述系统功能和非功能需求,以便让不具备专业技术方面知识的用户能看懂。

用户需求是描述系统的外部行为,用自然语言、图表和直观的图形来叙述。

系统需求是比用户需求更详细的需求描述,是系统实现的基本依据,因此,是一个完全的、一致的系统描述,是软件工程人员系统设计的起点。

系统需求描述可能包括许多不同的模型,如对象模型和数据流模型。

需求分析过程主要有哪几个步骤?答:需求分析过程主要有沟通、导出需求、分析与精化、可行性研究、协商与沟通、规格说明、需求验证、变更管理等步骤。

数据字典的概念?数据字典包含哪些内容?答:数据字典是分析模型中出现的所有名字的一个集合,还包括有关命名实体的描述。

如果名字是一个复合对象,它还应有对其组成部分的描述。

一般说来,数据字典应该由四类元素的定义组成:数据流、数据流分量、数据存储和处理。

结构化分析主要手段有哪些?答:数据流图、数据字典、状态转换图、实体—关系图等面向对象模型有哪些?答:面向对象提供了三个基本模型:对象模型、动态模型和功能模型。

面向对象模型有哪几个模型,各自的任务和各自的定义?答:面向对象建模技术所建立的三种模型,即对象模型、动态模型和功能模型。

对象模型是对模拟客观世界实体的对象以及对象彼此间关系的映射,描述了系统的静态结构。

动态模型表示瞬间的、行为化的系统“控制”性质,它规定了对象模型中对象的合法变化序列。

功能模型表示变化的系统的“功能”性质。

相关文档
最新文档