软件工程 作业
作业及参考答案.doc软件工程
作业及参考答案(第一、二章)一、填空题1. 软件工程学的内容可包括(理论)、结构、(方法)、(工具)、环境、管理、规范等。
2. 软件生存周期一般可分为问题定义、(可行性研究)、(需求分析)、设计、(编码)、测试、运行与维护阶段。
3. 可行性研究的目的是(用最小的代价在尽可能短的时间内确定问题是否能够解决)。
4. 系统流程图是(描绘物理系统)的传统工具。
5. 在可行性研究中,(技术可行性)是系统开发过程中难度最大,最重要的一个环节。
二、判断题1. 软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。
(√ )2. 螺旋模型是利用笛卡尔坐标的四个象限上分别代表四个方面的活动来表示。
(√ )3. 原型模型适用于嵌入式软件。
(╳)4. 面向对象技术是构件组装模型的基础。
(√ )5. 在可行性研究中最难决断和最关键的问题是经济可行性。
(╳)6. 系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。
(╳)7. 自底向上成本估计不是从整体开始,而是从任务单元开始。
(√ )三、单项选择题1. 下列哪个阶段不是软件生存期三个阶段中的内容( C )。
A.计划阶段B.开发阶段 C.编码阶段 D.维护阶段2. 下列关于瀑布模型的描述正确的是( C )。
A. 瀑布模型的核心是按照软件开发的时间顺序将问题简化。
B. 瀑布模型具有良好的灵活性。
C. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。
D. 利用瀑布模型,如果发现问题修改的代价很低。
四、简答题1. 软件的定义与特点。
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据结构及其相关文档的完整集合。
它包括三个方面的内容:⑴程序:在运行时,能提供所希望的功能和性能的指令集。
⑵数据结构:使程序能够正确运行的数据结构。
⑶文档:描述程序研制过程、方法及使用的图文材料。
软件产品具有以下一些特性:①软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
软件工程作业
作业1.第1题概要设计与详细设计衔接的图形工具是()。
A.数据流图B.结构图C.程序流程图D.PAD图您的答案:B题目分数:3此题得分:3.02.第2题需求分析()。
A.要回答“软件必须做什么?”B.要求编写软件需求说明书C.系统分析员可以采用访谈、简易的应用规格说明技术获取用户需求D.以上都对您的答案:D题目分数:3此题得分:3.03.第3题PDL是下列()语言。
A.高级程序设计语言B.伪码C.中级程序设计语言D.低级程序设计语言您的答案:B题目分数:3此题得分:3.04.第4题Jackson图上下层之间的关系是()。
A.调用关系B.组成关系C.继承关系D.嵌套关系题目分数:3此题得分:3.05.第5题()着重测试软件功能。
A.黑盒测试B.白盒测试C.功能测试D.循环测试您的答案:C题目分数:3此题得分:3.06.第6题软件设计一般分为总体设计和详细设计,它们之间的关系是()。
A.全局和局部B.抽象和具体C.总体和层次D.功能和结构您的答案:A题目分数:3此题得分:3.07.第7题模块内的某成分的输出是另一成分的输入,该模块的内聚度是()的。
A.功能性B.顺序性C.逻辑性D.瞬时性您的答案:B题目分数:3此题得分:3.08.第8题软件项目管理是()一切活动的管理。
A.需求分析B.软件设计过程C.模块控制D.软件生命周期您的答案:D题目分数:39.第9题Alpha测试是()。
A.由用户在开发者的场所进行B.由软件的最终用户在开发者的一个或多个客户场所进行C.是在不受开发者控制的环境中进行的D.是软件在开发者不能控制的环境中的“真实应用您的答案:A题目分数:3此题得分:3.010.第10题好的软件结构应该是()。
A.高耦合,高内聚B.低耦合,高内聚C.高耦合,低内聚D.低耦合,低内聚您的答案:B题目分数:3此题得分:3.011.第11题以下说法,错误的是()。
A.面向对象不仅支持过程抽象,而且支持数据抽象B.某些面向对象的程序设计语言还支持参数化抽象C.信息隐蔽通过对象的封装性来实现D.在面向对象方法中,类是最基本的模块。
软件工程作业
软件工程-作业一、判断(共计50分,每题2.5分)1、测试计划、测试用例和有关的分析报告一般不用长期保存。
()A. 正确B. 错误参考答案:B2、类封装比对象封装更具体,更细致。
()A. 正确B. 错误参考答案:B3、用黑盒法测试时,测试用例是根据程序内部逻辑设计的。
()A. 正确B. 错误参考答案:B4、面向对象设计的结果,既可以用面向对象语言,也可以用非面向对象语言实现。
()A. 正确B. 错误参考答案:A5、数据流图是结构化设计的最基本的工具。
()A. 正确B. 错误参考答案:B6、良好的面向对象程序设计风格,既包括传统的程序设计风格,也包括为适应而面向对象方法所特有的概念(如继承性)而必须遵循的一些新准则。
()A. 正确B. 错误参考答案:A7、模块化程序设计中,模块越小,模块化的优点越明显。
()A. 正确B. 错误参考答案:B8、软件测试的目的是证明软件是正确的。
()A. 正确B. 错误参考答案:B9、在软件开发中采用原型系统策略的主要困难是成本问题。
()A. 正确B. 错误参考答案:A10、结构化分析是面向数据流进行需求分析的方法。
()A. 正确B. 错误参考答案:A11、质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动。
()A. 正确B. 错误参考答案:A12、白盒测试无需考虑模块内部执行过程和程序结构,只要了解模块的功能即可。
()A. 正确B. 错误参考答案:B13、软件测试目的是尽可能多地发现软件中存在的错误,将它作为纠错的依据。
()A. 正确B. 错误参考答案:B14、UML是一种面向对象的建模方法。
()A. 正确B. 错误参考答案:B15、类是指具有相同或相似性质的对象的抽象,类的具体化就是对象。
()A. 正确B. 错误参考答案:B16、开发一个软件项目总存在某些不确定性,即存在风险。
有些风险如果控制得不好,可能导致灾难性的后果。
()A. 正确B. 错误参考答案:A17、软件维护的目的就是修改程序中的错误。
软件工程课后作业
1路松峰_20140062 2018-07-29 10:32:40一、简答题1.什么是软件工程?软件工程是关于软件生产的各个方面的工程学科。
二、判断题1、软件危机的主要表现是软件需求增加,软件价格上升。
正确2、软件就是程序,编写软件就是编写程序。
错误三、选择题1、用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为软件开发工具,通常也称为( A )工具。
A. CASEB.CAIC. CAMD. CAD2、在下列选项中,( C )不是软件的特征。
A.系统性与复制性B.可靠性与一致性C.有形性与可控性D.抽象性与智能性3、软件工程的三要素是( B )A.技术、方法和工具B.方法、工具和过程C. 方法、对象和类D.过程、模型和方法1、快速原型模型的主要优点是什么?软件产品的开发基本上是线性顺序进行的。
2、什么是模型?模型是认识客观事物时,用文字、符号或者图表等进行简化问题描述的一种方式。
二、判断题1、在软件开发中采用原型系统策略的主要困难是成本问题。
正确2、软件过程改进也是软件工程的范畴。
正确三、选择题1、包含风险分析的软件工程模型是( D )。
A.喷泉模型B.瀑布模型C.增量模型D.螺旋模型2、软件过程是( C )。
A.特定的开发模型B.一种软件求解的计算逻辑C.软件开发活动的集合D.软件生命周期模型3、CMM模型将软件过程的成熟度分为5个等级。
在(B )使用定量分析来不断地改进和管理软件过程。
A.管理级B. 优化级C. 定义级D.可重复级面向数据结构方法是一类侧重从数据结构方面去分析和表达软件需求,进行软件设计的开发方法。
该方法从数据结构入手,分析信息结构,并用数据结构图来表示,再在此基础上进行需求分析,进而导出软件的结构。
二、判断题1、需求评审人员主要由开发人员组成,一般不包括用户。
错误2、非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的要求。
正确三、选择题1、增量模型本质上是一种( C)。
《软件工程》在线作业
一.单项选择题答题要求:下列各题,只有一个符合题意的正确答案,多选、错选、不选均不得分。
1.(2分)软件生命周期一般被划分为若干个独立阶段,其中占用精力和费用最多的是()。
A.运行和维护阶段B.设计阶段C.代码实现阶段D.测试阶段参考答案:A2.(2分)软件危机具有下列表现()。
I.对软件开发成本估计不准确:II.软件产品的质量往往靠不住:III.软件常常不可维护:IV.软件成本逐年上升A.I、II 和IIIB.k III 和IVC.Ik III和IVD.以上都正确参考答案:D3.(2分)下列属于软件的特点的是()。
A.软件是一种逻辑实体,具有抽象性B.软件在使用过程中没有磨损、老化的问题C.软件不同于一般程序,它的一个显箸特点是规模庞大,复杂程度髙D.以上都正确参考答案:D4.(2分)软件开发技术不包含()。
A.软件开发方法学B.软件工程环境C.软件工具D.软件质量度量参考答案:D5.(2分)(?)分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。
A.增量模型B.喷泉模型C.原型模型D.螺旋模型参考答案:A6.(2分)产生软件危机的原因可能有()。
I .用户的需求描述不精确、不确肚:II.对大型软件项目的开发往往缺乏有力的组织和管理;III.缺乏有力的方法学和工具的支持;IV.软件产品的特殊性和人类智力的局限性A」和IIB.I、II和1VC.IL III和1VD.以上都正确参考答案:D7.(2分)软件工程的出现是由于()。
A.软件危机的出现B.汁算机硬件技术的发展C.软件社会化的需要D.汁算机软件技术的发展参考答案:A8.(2分)下列不属于软件工程方法学三要素的是()。
A.方法B.工具C.过程D.操作参考答案:D9.(2分)在E-R模型中,包含以下基本成分()。
A.数据、对象、实体B.控制、联系、对象C.实体、对象、属性D.实体、属性、联系参考答案:D10.(2分)系统技术可行性研究所涉及的技术应该是()技术。
软件工程习题(附答案)
软件工程习题(附答案)软件工程习题 (附答案)1、软件需求工程1.1 问题描述给定一个学生管理系统,要求实现以下功能:添加学生信息、查询学生信息、修改学生信息、删除学生信息。
1.2 解决方案通过用户界面收集学生信息,使用数据库存储学生信息,编写相应的查询、修改和删除功能实现。
1.3 测试与验证编写测试用例,包括正常情况和异常情况的输入,测试系统是否正确执行学生信息的增删改查操作,并验证结果是否正确。
2、软件设计2.1 模块划分将学生管理系统划分为以下模块:用户界面模块、数据存储模块、查询模块、修改模块、删除模块。
2.2 模块接口设计用户界面模块接收用户输入的学生信息,数据存储模块负责将学生信息存储到数据库中,查询、修改和删除模块通过调用数据库接口实现相应功能。
2.3 系统架构采用三层架构,将用户界面、业务逻辑和数据存储分离,提高代码的可维护性和可扩展性。
3、软件实现3.1 开发工具选择选择合适的开发工具,如Java编程语言、Eclipse开发环境和MySQL数据库。
3.2 编码规范遵循公司制定的编码规范,保证代码的可读性和一致性。
3.3 数据库设计设计学生信息表,包括学生ID、姓名、性别、年龄等字段,并建立适当的索引以提高查询性能。
4、软件测试4.1 单元测试针对每个模块编写相应的单元测试,确保模块的各个功能都能正常工作。
4.2 集成测试将各个模块按照设计要求进行集成测试,验证系统的功能完整性和正确性。
4.3 系统测试对整个学生管理系统进行全面的系统测试,包括正常场景和异常场景的测试,确保系统能够满足需求并稳定可靠。
5、软件部署5.1 环境准备部署系统所需的软件和硬件环境,包括操作系统、数据库等。
5.2 安装部署将开发完成的系统安装到目标机器上,配置必要的参数,确保系统能够正常运行。
5.3 系统发布将系统发布到生产环境,对外提供服务。
6、软件维护6.1 问题定位与修复对用户反馈的问题进行定位和修复,确保系统的稳定性和可用性。
《软件工程》作业与参考答案
一、填空(15分)1、需求分析的任务:1)。
确定目标系统的综合要求A。
目标系统的功能要求B。
目标系统的性能要求C。
目标系统运行的环境要求D。
目标系统的扩展要求2)。
分析目标系统的数据要求A。
需要哪些数据?B。
数据之间有什么联系?C。
数据有什么属性及数据结构?D。
对数据的处理逻辑?3)。
导出目标系统的逻辑模型4)。
修正系统流程图5)。
修正系统开发计划6)。
开发原型系统2、模块设计准则1)、改进软件结构提高模块独立性(低耦合高内聚)2)、模块规模要适中3)、深度、宽度、扇入及扇出要适当4)、设计单入口单出口的模块5)、模块功能应该可以预测6)、降低接口的复杂性7)、模块的作用域应该在控制域之内3、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面?1)、无法开发复杂程度高的软件2)、成本和进度估计不准3)、无统一科学的规范,软件不可维护4)、无质量保证,可靠性差5)、软件常不能满足用户的需求6)、无适当的文档资料7)、软件生产率太低4 、总体设计的任务1)、设计系统的物理实现方案2)、设计软件的整体结构,划分程序功能模块,决定模块间的接口关系和传递信息; 3)、设计系统全局的存贮数据结构4)、设计系统I/O的方式和格式;5)、设计系统安全性、出错处理及代码等6)、设计组装测试计划。
5、从下列关于结构化程序设计的叙述中选出5条正确的叙述。
①程序设计比较方便,但比较难以维护。
②便于由多个人分工编制大型程序。
③软件的功能便于扩充。
④程序易于理解,也便于排错。
⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。
⑥模块之间的接口叫做数据文件。
⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。
⑧模块间的单向调用关系叫做模块的层次结构。
⑨模块越小,模块化的优点越明显。
一般来说,模块的大小都在10行以下。
答:正确的叙述有②、③、④、⑦、⑧。
软件工程作业含答案
软件⼯程作业含答案软件⼯程第⼀章作业 (1)1.1什么是计算机软件?软件的特点是什么? (1)1.2 简述软件的分类,并举例说明。
(1)1.4 什么是软件⼯程? (1)1.5 简述软件⼯程的基本原则。
(1)1.6 软件⽣存周期分哪⼏个阶段?分别简述各个阶段的任务。
(1)1.9 简述各类软件过程模型的特点。
(2)1.10 敏捷软件开发的特点是什么? (2)1.12 简述敏捷软件开发的原则。
(2)第2、3章 (3)2.1简述系统⼯程的任务。
(3)2.2基于计算机的系统由哪些元素组成? (3)2.3简述可⾏性分析的任务。
(3)3.1需求⼯程的重要性是什么?举出⾝边由于需求分析失败⽽造成整个项⽬失败的例⼦。
(3)3.2需求⼯程具体包括哪些步骤?每个步骤的具体任务是什么? (3)3.3⼀个系统分析员应该具备哪些思想素质和基础知识?请说明理由。
(4)3.4列出在制定需求获取策略时的3种主要考虑因素。
(5)3.6举例说明⼀个系统的3个不同类型的⾮功能需求 (5)3.8软件需求分析的操作性原则和需求⼯程的指导性原则是什么? (5)3.9软件需求规约主要包括哪些内容?⾃⼰寻找⼀个实例,亲⾃写⼀个需求规约。
(5)3.10需求验证应该有哪些⼈参加?画出⼀个过程模型,说明需求评审应该如何组织。
5第4章 (5)4.1 简述软件设计阶段的基本任务 (5)4.2 软件设计与质量的关系是怎么样的? (6)4.4 简述模块、模块化及模块化设计的概念。
(6)4.6 耦合和软件可移植性的概念有何关系?举例说明⾃⼰的结论。
(6)4.7⽤⾃⼰的话描述信息隐蔽概念,并讨论信息隐藏与模块独⽴两概念之间的关系。
(6)4.8什么是模块独⽴性?设计中为什么模块要独⽴?如何度量独⽴性?模块功能独⽴有何优点? (6)4.9软件设计规约主要包括哪些内容? (7)第5章结构化分析与设计 (7)5.1 简述数据流图的主要思想,概述使⽤数据流图进⾏需求分析的过程。
(完整版)《软件工程》作业及答案.
《软件工程》作业及答案1-1 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机典型表现:对软件开发成本和进度的估计常常很不准确。
用户对“已完成的”软件系统不满意的现象经常发生。
软件产品的质量往往靠不住。
软件常常是不可维护的。
软件通常没有适当的文档资料。
软件成本在计算机系统总成本中所占的比例逐年上升。
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
管理和控制软件开发过程相当困难。
软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。
1-2 假设你是一家软件公司的总工程师,当你把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”你怎么反驳他?1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?答:软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。
软件工程作业
第一章1.什么是软件危机?它有哪些典型表现?为什么会出现软件危机?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件工程主要有以下一些典型表现:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
产生软件危机原因主要有:(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?答:软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。
其本质特征:(1)软件工程关注于大型程序的构造(2)软件工程的中心课题是控制复杂性(3)软件经常变化(4)开发软件的效率非常重要(5)和谐的合作是开发软件的关键(6)软件必须有效的支持它的用户(7)在软件工程领域中通常由具有一种文化背景的人替代具有另一种文化背景的人创造产品用软件工程消除软件危机:(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
软件工程作业含答案解析
软件工程第一章作业 (1)1.1什么是计算机软件?软件的特点是什么? (1)1.2 简述软件的分类,并举例说明。
(1)1.4 什么是软件工程? (1)1.5 简述软件工程的基本原则。
(1)1.6 软件生存周期分哪几个阶段?分别简述各个阶段的任务。
(1)1.9 简述各类软件过程模型的特点。
(2)1.10 敏捷软件开发的特点是什么? (2)1.12 简述敏捷软件开发的原则。
(2)第2、3章 (3)2.1简述系统工程的任务。
(3)2.2基于计算机的系统由哪些元素组成? (3)2.3简述可行性分析的任务。
(3)3.1需求工程的重要性是什么?举出身边由于需求分析失败而造成整个项目失败的例子。
(3)3.2需求工程具体包括哪些步骤?每个步骤的具体任务是什么? (3)3.3一个系统分析员应该具备哪些思想素质和基础知识?请说明理由。
(4)3.4列出在制定需求获取策略时的3种主要考虑因素。
(5)3.6举例说明一个系统的3个不同类型的非功能需求 (5)3.8软件需求分析的操作性原则和需求工程的指导性原则是什么? (5)3.9软件需求规约主要包括哪些内容?自己寻找一个实例,亲自写一个需求规约。
. 53.10需求验证应该有哪些人参加?画出一个过程模型,说明需求评审应该如何组织。
5 第4章 (5)4.1 简述软件设计阶段的基本任务 (5)4.2 软件设计与质量的关系是怎么样的? (6)4.4 简述模块、模块化及模块化设计的概念。
(6)4.6 耦合和软件可移植性的概念有何关系?举例说明自己的结论。
(6)4.7用自己的话描述信息隐蔽概念,并讨论信息隐藏与模块独立两概念之间的关系。
64.8什么是模块独立性?设计中为什么模块要独立?如何度量独立性?模块功能独立有何优点? (6)4.9软件设计规约主要包括哪些内容? (7)第5章结构化分析与设计 (7)5.1 简述数据流图的主要思想,概述使用数据流图进行需求分析的过程。
软件工程作业
《软件工程》作业班级2000(春)计算机本科姓名罗国南学号001000490 成绩____________一、判断题1.可行性研究的最根本的任务是对以后的行动方针提出建议。
√2.PDL语言是详细设计的重要工具,可方便地实现程序的自动生成。
√3.模块的控制域应该在作用域之内。
4.面向对象方法把对象作为数据及可以施加在这些数据上的操作所构成的统一体。
√5.软件是一种逻辑实体,而不是具体的物理实体。
√6.软件测试时经常要输入无效的,不合理的数据进行测试。
√7.高级程序设计语言从应用的角度看,可以分为基础语言、结构化语言和专用语言三大类。
√8.软件维护的前提是不能失去原有软件的基本功能。
√9.Gantt图可以明确地表示出各子任务之间的依赖与制约关系。
×10.与其它开发的方法相比较,结构化方法的主要优点之一是对用户需求的变更响应迅速。
×11.适应性维护的目的是为了适应计算机软、硬件环境的变化。
√12.系统流程图可以描述系统的逻辑模型,它的基本思想是用图形符号以黑盒子形式描绘系统里的每个部件。
×13.工程网络图可以描绘各子任务作业的工作时间和可以机动(延长)时间。
√14.在面向对象方法中,对象是进行处理的主体。
√15.调试是在测试出错误之后,找到错误的位置并改正的过程。
√16.不允许使用GOTO语句是结构程序的特征。
×17.面向对象技术的最大优点是减少了软件的开发时间。
×18.用盒图和PAD图设计出来的算法必定是结构化的。
√19.逻辑输入数据流是离物理输入端最远,且沿同一输入路径输入的数据流。
√20.可行性研究的结果有可能将软件开发项目否定。
√21.在面向对象方法学中,使用“对象”不仅需要知道它向外界提供的接口形式,而且必须知道它的内部实现算法。
×22.传统的流程框图不能用来进行结构化程序设计。
×23.一个模块执行时,必须引用另一个模块的某些数据,则这个模块的独立性不强。
软件工程作业及参考答案
软件工程作业1.什么是软件工程?产生软件工程的原因有哪些?答:软件的定义:软件工程是借助工程化的方法进行软件开发(先对软件进行设计再开发)。
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
产生软件工程的原因:(1)当时无法在预算内开发出高质量软件;(2)软件开发者无法制定具体目标,无法实现预测所需的资源,无法实现客户的期望;(3)软件工程的重点既在软件,也在工程;(4)软件开发具有复杂性和多变性的特征;(5)软件产品必须随着终端用户需求和目标环境的变化而变化。
2.常见的软件体系结构有哪些?分析它们的优缺点?答:2.1 管道/过滤器风格在管道/过滤器风格中,每个构件都有一组输人和输出,构件读输人的数据流,经过内部处理,然后产生输出数据流。
这里的构件被称为过滤器。
连接件被称为管道。
此风格特别重要的过滤器必须是独立的实体,它不能与其它的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。
这种风格的优点:(1)使得软构件具有良好的隐蔽性和高内聚、低藕合的特点;(2)有助于设计者将整个系统的输人/输出行为看成是多个过滤器的行为的简单合成;(3)支持软件重用;(4)易于系统维护和增强系统性能;(5)允许对一些如吞吐量、死锁等属性的分析;(6)支持并行执行。
这种风格的缺点:(1)通常导致进程成为批处理的结构;(2)不适合处理交互的应用;(3)数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,导致了系统性能下降,增加了编写过滤器的复杂性,使数据传输量增加。
这种风格经常应用在UnixS hell中编写的应用系统中。
2.2 仓库风格在仓库风格中,有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存贮上执行,仓库与外构件间的相互作用在系统中会有大的变化。
按控制策略的选取分类,可以产生两个主要的子类。
若输人流中某类时间触发进程执行的选择,则仓库是传统型数据库;另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是黑板系统。
软件工程作业及参考答案(最新版)
软件工程一、软件危机与软件工程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。
质量保证②A。
需求分析B。
可行性研究C总体设计D模块化设计③ A.文档编制B。
运行维护C。
测试 D.验收8。
软件开发中常采用得生命周期方法,由于其特征而一般称其为()。
A。
层次模型B。
瀑布模型 C.螺旋模型D.对象模型9。
描述软件生存周期得瀑布模型包括计划、(A)、设计、编码、测试、维护等阶段.其中,设计阶段又可以分成(B)与(C)两个步骤。
A:①需求分析②可行性研究③需求调查④问题定义B,C:①方案设计②代码设计③概要(总体)设计④数据设计⑤详细设计10。
什么就是软件危机?软件危机产生得原因?11。
生命周期阶段得划分?每个阶段得任务?二、可行性研究1.可行性研究得任务?步骤?对于各种可能得方案,从哪几个方面进行可行性研究?参考答案:任务:在尽可能短得时间内确定该软件项目就是否能够开发,就是否值得开发。
软件工程 作业
软件工程作业在当今数字化的时代,软件工程已经成为了一门至关重要的学科。
它不仅仅是关于编写代码,更是关于如何有效地设计、开发、测试和维护高质量的软件系统。
对于学习软件工程的学生来说,作业是巩固知识、提升技能的重要途径。
软件工程作业通常涵盖了多个方面,从需求分析到代码实现,再到软件测试和维护。
在需求分析阶段,学生需要与客户或者假想的用户进行沟通,了解他们的需求和期望。
这可不是一件简单的事情,因为用户往往并不能清晰地表达自己想要什么,这就需要学生具备敏锐的洞察力和良好的沟通技巧,去挖掘出用户潜在的需求。
比如说,假设要开发一个在线购物网站。
学生在做需求分析时,不能仅仅满足于用户说“我想要能买东西的网站”。
而是要进一步询问,比如用户对于商品分类、搜索功能、支付方式、订单跟踪等方面有哪些具体的要求。
是希望有热门商品推荐,还是更注重个性化的推荐?支付时是倾向于常见的在线支付方式,还是对货到付款有特殊需求?只有把这些问题都搞清楚了,才能为后续的设计和开发打下坚实的基础。
接下来是软件设计阶段。
这就像是给房子搭建框架,要考虑软件的架构、模块划分、数据库设计等。
一个好的设计能够让软件易于扩展、维护和升级。
以刚才的在线购物网站为例,可能需要设计用户模块、商品模块、订单模块、支付模块等。
每个模块之间的关系要清晰,接口要明确,这样在后续的开发过程中,不同的开发人员才能高效地协同工作。
然后就是代码实现阶段,这是很多学生觉得最有挑战性也是最有趣的部分。
在这个阶段,学生需要根据设计文档,用选定的编程语言将软件实现出来。
这要求学生具备扎实的编程基础,熟悉语言的语法和特性,能够熟练运用各种数据结构和算法。
同时,还要注意代码的规范和风格,让代码易于阅读和理解。
写完代码并不意味着作业就完成了,软件测试也是至关重要的一环。
测试可以帮助发现代码中的错误和缺陷,确保软件的质量和稳定性。
测试包括单元测试、集成测试、系统测试等多种类型。
单元测试是针对每个函数或者模块进行的测试,确保其功能的正确性;集成测试是测试不同模块之间的交互是否正常;系统测试则是从整体上测试软件是否满足用户的需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 为了把握软件开发各个环节的正确性和协调性,人们需要进行( A 2)和( B 3 )工作。
( A )的目的是想证实在一给定的外部环境中软件的逻辑正确性。
它包括( C 2 )和( D 3 ),( B )则试图证明在软件生存期各个阶段,以及阶段间的逻辑( E 3 )、( F 4 )和正确性。
供选择的答案:
A, B. ①操作②确认③验证④测试⑤调试
C, D. ①用户的确认②需求规格说明的确认
③程序的确认④测试的确认
E, F. ①可靠性②独立性③协调性④完备性⑤扩充性
2. 软件测试是软件质量保证的主要手段之一,测试的费用已超过( A 1)的30%以上。
因此,提高测试的有效性十分重要。
“高产”的测试是指( B 3 )。
根据国家标准GB 8566–88《计算机软件开发规范》的规定,软件的开发和维护划分为8个阶段,其中,单元测试是在( C 5)阶段完成的,集成测试的计划是在( D 3)阶段制定的,确认测试的计划是在( E 2 )阶段制定的。
供选择的答案:
A. ①软件开发费用②软件维护费用③软件开发和维护费用
④软件研制费用⑤软件生存期全部
B. ①用适量的测试用例运行程序,证明被测程序正确无误
②用适量的测试用例运行程序,证明被测程序符合相应的要求
③用少量的测试用例运行程序,发现被测程序尽可能多的错误
④用少量的测试用例运行程序,纠正被测程序尽可能多的错误
C ? E. ①可行性研究和计划②需求分析③概要设计
④详细设计⑤实现⑥集成测试
⑦确认测试⑧使用和维护
3. 集成测试也叫做( A 3)或( B 6)。
通常,在( C 1)的基础上,将所有模块按照设计要求组装成为系统。
子系统的集成测试特别称为( D 2 ),它所做的工作是要找出子系统和系统需求规格说明之间的( E 6)。
需要考虑的问题是:在把各个模块连接起来的时候,穿越模块接口的数据是否会( F 2);一个模块的功能是否会对另一个模块的功能产生不利的影响;各个( G 1 )组合起来,能否达到预期要求的(H 3);( I 5 )是否有问题;单个模块的误差累积起来是否会放大。
供选择的答案:
A ? D. ①单元测试②部件测试③组装测试
④系统测试⑤确认测试⑥联合测试
E ? I. ①子功能②丢失③父功能④局部数据结构
⑤全局数据结构⑥不一致⑦一致
4. 软件测试可能发现软件中的(B),但不能证明软件()。
A. 所有错误、没有错误
B. 错误、没有错误
C. 逻辑错误、没有错误
D. 设计错误、没有错误
5. 调用算法是解决问题的关键步骤之一。
算法的计算工作量大小和实现算法所需的存储单元多少,分别称为计算的(A2)和(B3)。
编写程序时,(C1)和(D1)是应采纳的原则之一。
(E4)是调试程序的主要工作之一。
供选择的答案:
A、B:
①可实现性②时间复杂度③空间复杂度④困难度
⑤计算有效性
C:①程序的结构化②程序越短越好
③尽可能节省存储单元④尽可能减少注释行
D:①使用有实际意义的名字②使用长度短而无实际意义的名字
③表达式中尽量少用括号④尽量使用简化了的逻辑表达式
E:①调度②证明程序正确③人员安排④排错
6. 软件测试是为了检查出并改正尽可能多的错误,不断提高软件的(A3),一个成功的测试则是发现了至今未被发现的(B2)的测试。
至于软件维护则是指(C1)。
A:①功能和效率②设计和技巧③质量和可靠性④质量和效能
B:①因素②错误③规律④问题
C:①对软件的改进、适应、完善②维护正常运行
③配置新软件④软件开发期的一个阶段
7. 软件测试的目的是(D)。
A. 证明软件的正确性
B. 找出软件系统中存在的所有错误
C. 证明软件系统中存在错误
D. 尽可能多地发现软件系统中的错误
8. 从已经发现故障的存在到找到准确的故障位置并确定故障的性质,这一过程称为( D)。
A. 错误检测
B. 故障排除
C. 调试
D. 测试
9. 软件测试是软件质量保证的主要手段之一,测试的费用己超过(A )的30%以上,因此提高测试的有效性非常重要。
A. 软件开发费用
B. 软件维护费用
C. 软件开发和维护费用
D. 软件研制费用
10.软件测试是软件开发过程中重要和不可缺少的阶段,其包含的内容和步骤甚多,而测试过程的多种环节中基础的是(B)。
A. 集成测试
B. 单元测试
C. 系统测试
D. 验收测试
上机题
1.下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。
算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey ( ),一是交换两数组元素内容的操作Swap( )::
void SelectSort ( datalist & list ) {
ey到[n-1].key中找具有最小关键码的对象
for ( int j = i+1; j < ; j++)
if ( [j].getKey ( ) < [k].getKey ( ) ) k = j; 设要对一个自动饮料售货机软件进行黑盒测试。
该软件的规格说明如下:
“有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。
若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。
若投入的是2元硬币,在送出饮料的同时退还5角硬币。
”
(1) 试利用因果图法,建立该软件的因果图;
(2) 设计测试该软件的全部测试用例。