当前位置:文档之家› 2014-软件工程1

2014-软件工程1

软件工程

东北大学信息科学与工程学院印莹College of Information Science & Engineering, NEU,

课程简介

?软件工程?

–凌驾于编程语言之上

?课程性质:

–必修课

–专业基础课,类似:DB、DS、OS

–延伸一些课程群:软件组件技术、UML建模、–高级SE ……

?学时:40+16

?考察形式:考试+平时表现+实验成绩

?学习态度:热爱、认真

Chapter 1 软件工程概述

?1.1 软件的概念

?1.2 为什么学习软件工程

?1.3 什么是软件工程

?1.4 课程结构

?1.5 参考书目

?1.6 教材案例-在线宠物商店

1.1 软件的概念(1/4)

?软件: 新的驱动力

–In the early 1980s, a front page story in Business

Week magazine

Banking&Finance Government Insurance Manufacturing Media & Publishing Retail Travel Utilities

1.1 软件的概念(2/4)

?定义

–Program + Data Structure + Documents

─Wang Jiahua, 软件工程, pp.1?Program

?Data Structure

–数组、堆栈、队列、树、图…

?Documents

–开发文档:需求文档、设计文档、测试文档、数据

库文档…

–产品文档:产品简介、产品演示、使用说明、安装

手册…

–误区:软件=程序

?软件的分类-按功能分类

–系统软件:与计算机硬件紧密配合在一起,使高效地工作的软件。例如,操作系统、数据库管理系统、设备驱动程序以及通信处理程序等。

–支撑软件:是协助用户开发软件的工具性软件。

如:编辑程序、数据库系统、集成开发程序。

–应用软件:是指为特定应用领域服务的一类软

件。如:股票分析软件、航空售票软件、地理信息系统、OFFICE、科学计算软件等。

?软件的性质

–难以描述性

–不可见性

–复杂性

–变化性

–风险性

–强合作性

–易于副本的大批量生产

Crisis!?软件危机

–爆发时间

?1967年NATO的研究组首次提出

?1968年NATO软件工程会议首次提出软件工程

概念

?1968-现在, 近40多年

–“危机”一词

–软件危机依然存在

?软件危机面对的问题

–艺术vs. 标准化

–错误的发现

–软件需求获取

–软件支持和维护

–开发速度vs. 市场需求

–开发周期过长、开发成本过高

–研发风险

–软件Trouble

–软件开发中的复杂的协作(人员,问题,过程)

–不同角色的软件神话(管理者,用户,开发者,大众)

?采用什么方法缓解危机–硬件?

–建筑学?

–拍电影?

–……

–软件工程!

?挑战

缺乏中高级软件人才,软件人员缺乏软件工程化的概

?软件工程的基本目标:

–付出较低的开发成本;

–达到要求的软件功能;

–取得较好的软件性能;

–开发的软件易于移植;

–需要较低的维护费用;

–能按时完成开发工作,及时交付使用。

1.2 为什么学习软件工程(6/6)?软件工程目标之间存在的相互关系。其中有些目标之间是互补关系

?Fritz Bauer:

–“建立和应用完善的工程原理以便经济地得到在真实机器上可靠和有效运行的软件

–重原理、轻技术、无度量

?IEEE:

–(1)应用系统的有规则的定量的方法开发、

使用和维护软件;即应用工程于软件。(2)

研究(1)中的方法

–粗糙

?Definition

–软件工程是以质量为核心,为了经济地开发满足客户需求的软件而研究、建立和应用的系统化的、有规则的、可度量的和可控制的工程原则、方法,涉及到软件过程、项目管理、开发方法、软件复用、软件度量、开发工具,甚至企业文化等各个方面。

──Guo Jun

?发展历程(1)

?发展历程(2)

1.4 课程结构

?Chapter 1软件工程概述

?Chapter 2过程和活动

?Chapter 3软件过程模型

?Chapter 4问题定义和可行性研究的方法?Chapter 5 需求分析方法

?Chapter 6 软件设计方法

?Chapter 7软件实施和测试方法?Chapter 8项目管理方法

?教材

–软件工程及应用/东北大学出版社?2007年5月

?参考推荐

–软件工程/ 东北大学出版社/

王家华/ 中

–面向对象的软件工程/ 机械出

版社/ Timothy C.Lethbridge/ 加

全国2014年4月自考软件工程试题及答案

全国2014年4月高等教育考试 软件工程试题 课程代码:02333 一、单项选择题(本大题共l5小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。错涂、多涂或未涂均不得分。 1.能“标识系统要解决的问题”的模型是 A.部署模型 B.设计模型 C.概念模型 D.实现模型 2.初始需求发现技术中,可能导致超出项目成本和进度限制的是 A.自悟 B.交谈 C.提炼 D.观察 3.销售系统,应能产生销售报表,这是软件的 A.功能需求 B.性能需求 C.设计约束 D.外部接口需求 4.详细设计工具中,盒图是指 A.PAD图 B.HIPO图 C.程序流程图 D.N-S图 5.题5图为一个飞机票预定系统的数据流图,图中“旅客”是

A.数据流 B.加工 C.数据存储 D.数据潭 6.在下列耦合中,耦合度最弱的是 A.内容耦合 B.数据耦合 C.公共耦合 D.控制耦合 7.下列的内聚类型中,按关联程度从低到高的顺序给出的是 A.逻辑内聚、过程内聚、功能内聚 B.过程内聚、功能内聚、逻辑内聚 C.过程内聚、逻辑内聚、功能内聚 D.功能内聚、过程内聚、逻辑内聚 8.题8图中,扇出为3的模块是 A.模块A和G B.模块C和G C.模块A和C D.模块C和H 9.UML表达关系的术语中,关联是一类特定的 A.扩展 B.细化

C.依赖 D.泛化 10.根据RUP测试活动,输入为测试用况、测试过程、实现模型,活动为实现测试,则输出为 A.测试计划 B.测试过程 C.测试评价 D.测试构件 11.希望确定软件实现的功能是否与需求规格说明书一致,需进行 A.单元测试 B.有效性测试 C.系统测试 D.集成测试 12.在《ISO/IEC软件生存周期过程12207-1995》中,属于组织过程的是 A.文档过程 B.验证过程 C.维护过程 D.管理过程 13.瀑布模型是一种 A.适用于需求被清晰定义的项目 B.快速构造产品第一版本的好方法 C.适合于大型团队迭代开发的模式 D.支持面向对象技术的创新模型 14.在软件生存周期模型中,可减少用户需求变更的软件开发模型是 A.演化模型 B.增量模型 C.喷泉模型 D.螺旋模型 15.CMMI能力等级中,第0级为最低等级,其第2级是 A.已执行级 B.已定量管理级 C.已定义级 D.已管理级 非选择题部分 注意事项: 用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。 二、填空题(本大题共10小题,每小题2分,共20分)

软件工程复习题复习重点及答案

软件工程复习重点 一、选择题 1、软件工程三要素是指( B )P8 A、技术、方法和工具 B、方法、工具和过程 C、方法、对象和类 D、过程、模型、方法 2、瀑布模型本质上是一种( A )。P23 A、线性顺序模型 B、顺序迭代模型 C、线性迭代模型 D、及早见产品模型 3、结构化设计是一种应用最广泛的系统设计方法,是以( B )为基础,自顶向下,求精和模块化的过 程。P79 A、数据流 B、数据流图 C、数据库 D、数据结构 4、概要设计的任务是设计系统的( B物理模型)P70 A、逻辑模型 B、物理模型 C、概念模型 D、程序流程图 5、描述软件结构的工具有( A模块结构图) A、模块结构图 B、PAD图 C、数据流程图 D、程序 6、进行需求分析可以使用多种工具,但( C )是不适用的。 A、数据流程图 B、判定表 C、PAD图(详细设计) D、数据字典 7、可行性研究要进行的需求分析和设计应该是( C )。 A、详细的 B、全面的 C、简化的、压缩的 D、彻底的 8、软件生命周期由( C )三个时期组成。 A、概要设计、详细设计和系统实现 B、可行性分析、系统设计和编码 C、定义、开发和运行维护 D、分析、设计和测试 9、以下( D )不是模块。对象是一个实体 A、过程 B、程序 C、函数 D、对象 10、程序流程图、N-S图和PAD图是( B )使用的算法表达工具。 A、设计阶段的概要设计 B、设计阶段的详细设计 C、编码阶段 D、测试阶段 11、一个模块直接控制(调用)的下层模块的数目称为模块的( B扇出)P78 A、扇入数 B、扇出数 C、宽度 D、作用域 12、下列工具哪一个是需求分析阶段常用工具?( D ) A、PAD B、PFD C、N-S D、DFD数据流程图 需求分析常用的是数据流程图和数据字典 13、为了提高测试的效率,应该( D) A、随机地选取测试数据 B、取一切可能的输入数据作为测试数据库 C、在完成编码后制定软件的测试计划 D、选择发现错误可能性大的数据作为测试数据 14、成功的测试是指( B发现程序的错误) A、运行测试实例后未发现错误项 B、发现程序的错误 C、证明程序正确 D、改正程序的错误 15、软件工程中只根据程序的功能说明而不关心程序内部的逻辑结构的测试方法,称为( C黑盒测试)

《软件工程》经典考试例题复习题-重点知识点(含答案)

1.某旅馆的电话服务如下:可以拨分机号和外线号码。分机号是从7201至7299。外线号码先拨9,然后是市 话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成。局号可以是455,466,888,552中任意一个号码。分局号是任意长度为4的数字串。 要求:写出在数据字典中,电话号码的数据流条目的定义即组成。 电话号码=[分机号|外线号码] 分机号=7201 (7299) 外线号码=9+[市话号码|长话号码] 长话号码=区号+市话号码 区号=100 (300) 市话号码=局号+分局号 局号=[455|466|888|552] 分局号=4{数字}4 数字=[0|1|2|3|4|5|6|7|8|9] 2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。 (1)语句覆盖测试用例 令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。 (2)判定覆盖 可以设计如下两组数据以满足判定覆盖: x=3,y=0,z=1(1分)(通过路径abce); x=2,y=1,z=2(1分)(通过路径acde)。 或者 x=2,y=1,z=1;覆盖路径acde x=1,y=1,z=1;覆盖路径ace x=3,y=0,z=1;覆盖路径abce (注意:本题也还可以有其他答案)3.请用判定表画出以下问题的行为逻辑。 人们往往根据天气情况决定出门时的行装。天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也

4. procedure example(y,z: real; var x: real) begin if (y>1) and (z=0) then x:=x/y; if (y=2) or (x>l) then x:=x+l; end. 该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。完成下列各题: (1)画出程序流程图。 (2)用条件组合覆盖设计测试用例,并写出其中一组测试用例。 答:(1)程序流程图 (2)用白盒法中条件组合覆盖设计测试用例: ① y=2, z=0, x=4; ② y=2, z=1, x=1; ③ y=1, z=0, x=2; ④ y=1, z=1, x=1. (注:也可有其它答案) 5.选择排序的伪代码如下,请根据代码画出其PAD图。 select_sort(a[1],a[2],…,a[n]) { for(i=1;i

2014软件工程各章节重要知识点(按考试大纲总结)

2014软件工程各章节重点知识点(按考试大纲总结) 第1章:软件工程的范畴 THE SCOPE OF SOFTWARE ENGINEERING 1掌握软件工程、软件危机、生命周期的概念 1% Software engineering is a discipline学科 aim is the production生产 of software. fault-free;delivered on time ;within budget;satisfies the client’s needs;be easy to modify when the needs change Software crisis:the quality of software was unacceptably low,deadlines and budgets were not being met. Life-cycle model:The steps to follow遵循 when building构建 software,A theoretical description 理论描述 of what should be done. Life cycle:The actual steps实际步骤 performed执行 on a specific具体 product. 2掌握维护的3种分类并能够结合具体例子进行判断 1% Postdelivery maintenance:Corrective纠错性 maintenance;Perfective完善性 maintenance;Adaptive 适应性 maintenance Corrective纠错性maintenance:removal去除of residual faults残留错误;leaving the specifications规格说明文档 unchanged Perfective完善性 maintenance:additional functionality额外功能;decreased response time减少响应时间 Adaptive适应性 maintenance:changes made in response to changes in the environment 3掌握为什么没有计划、文档和测试阶段 1% Why There Is No Planning Phase计划阶段, Testing Phase测试阶段 or Documentation Phase文档阶段? Planning, continual持续的 testing and documentation activities活动 are carried out执行throughout贯穿于 the life cycle.There is no separate独立的 planning, testing or documentation phase.This testing is the responsibility职责 of Every software professional专业人员, and The software quality assurance group软件质量保证小组(SQA group) Documentation Must Always be Current:Key individuals may leave before the documentation is complete.We cannot perform a phase without having the documentation of the previous phase.We

2014软件工程重点答案

1、软件危机定义、发生原因、常见表现,如何避免软件危机? (1)软件危机定义:课本Page 8(开发和维护过程) (2)发生原因、常见表现:课本Page 8-9,练习册Page 1 (3)如何避免:Page 10 (采用软件工程的方法) 答案(由于大部分答案参考ppt,故仅供参考,下同) 软件危机定义:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 表现在: (1)对于软件开发的成本和进度的估计很不准确。 (2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。 (3)开发的软件可靠性差。 (4)软件通常没有适当的文档。 (5)软件的可维护性差。 (6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。 原因: (1)软件的规模愈发庞大; (2)软件开发的管理困难。 (3)软件本身的独有特点确实给开发和维护造成一些客观困难。 (4)软件开发和维护中千金错误认识和方法的形成可以归结与计算机发展早期软件开发的个体化特点。 (5)软件开发技术落后。 (6)生产方式落后。 (7)开发工具落后,生产率提高缓慢。 如何避免(参考,可以自己总结): 从软件开发的工程化方法入手,即用现代工程的概念原理、技术和方法去指导软件的开发、管理和维护,这就是软件工程思想和方法。具体措施: (1)使用好的软件开发技术和方法; (2)要有良好的组织、严密的管理,各类人员协同配合,共同完成任务; (3)使用好的软件开发工具,提高软件生产率; (4)建立严格的文档资料,重视软件开发过程的阶段评审。 2、软件生命周期模型(软件生命周期?)的组成,每个阶段的内容? (1)组成:Page 21 (2)内容:Page 22—25) 答案: 软件生存周期定义: 一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。 软件生存周期一般可分为以下阶段: (1)问题定义(2)可行性研究(3)需求分析(4)概要设计(总体设计) (5)详细设计(6)编码(7)测试(8)维护 也可以分为四个大的阶段:软件分析、软件设计、编码与测试、运行与维护 (1)软件分析时期; 任务:确定软件项目的目标,软件应具备的功能和性能,构造软件的逻辑模型,并制定验收标准。在此期间,要进行可行性论证,并做出成本估计和经费预算,制定进度安排。进

武汉大学2013级本科软件工程试卷

武汉大学计算机学院 2014-2015学年度第二学期 2013级 《软件工程》期末考试试卷(A卷) 专业:________________________ 姓名:______________ 学号:__________________ ??????????注意:请将所有答案均写在答题纸上,并标明题号??????????一.选择(单选)填空题(共30分,第1-28题为每小题1分;第29题为2分) 软件生产的复杂性和高代价,使大型软件的生产出现危机,下述都是软件危机的主要表现,除了 1. 。产生软件危机的原因主要有 2. 。为解决软件危机,人们提出了软件工程的方法,即用工程化的原则指导软件的生产、维护和管理,以达到 3. 的目标。 1. (A)生产成本过高(B)开发进度难以控制 (C)质量难以保证(D)硬件发展滞后,使软件产品的性能达不到用户要求 2. (A)不重视需求,需求获取困难(B)开发过程的管理困难 (C)生产过程缺乏科学的方法和工具(D)以上都是 3. (A)节省开发成本(B)缩短开发周期 (C)提高软件质量(D)经济地开发出高质量软件产品 为便于进行有效地软件开发和管理,项目开发一般采用特定的软件过程模型。瀑布模型是利用 4. 方法控制开发过程复杂性的软件过程模型,它适用于 5. 的项目。而 6. 模型的优势在于快速完善和确定用户需求,从而降低了由于需求问题带来的软件开发风险,是一种实用的开发技术。 4. (A)项目划分(B)阶段划分(C)团队划分(D)成本划分 5. (A)需求难以获取(B)需求经常变动(C)需求比较熟悉(D)风险很大 6. (A)原型(B)增量(C)迭代(D)喷泉 可行性研究是 7. 阶段的重要步骤,其目的是 8. 。它的主要任务有 9. 。为此,通常需要计算投资回收期,它是指 10. 。 7. (A)软件定义(B)软件计划(C)需求分析(D)软件管理 8. (A)证明软件开发项目可行(B)证明软件开发项目不可行 (C)确定软件开发项目要不要做(D)深入调研项目的用户需求 9. (A)成本—效益分析(B)资源分析和风险分析 (C)分析比较各种解决方案(D)以上都是 10.(A)项目投资开始到停止投资的时间区间(B)项目开始到产生经济效益的时间区间 (C)项目开始到完成所需的时间(D)项目的累计经济效益等于投资额所需的时间结构化分析(SA)、结构化设计(SD)、Jackson方法,都是传统的软件开发过程中常用

软件工程课后答案完整版

软件工程课后答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

《软件工程》作业及答案 1-1 什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 答: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。 软件危机典型表现:对软件开发成本和进度的估计常常很不准确。用户对“已完成的”软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件常常是不可维护的。软件通常没有适当的文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。管理和控制软件开发过程相当困难。软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。1-2 假设你是一家软件公司的总工程师,当你把图给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”你怎么反驳他? 1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? 答: 软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。 软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。 消除软件危机的途径:为了消除软件危机,首先应该对计算机软件有一个正确的认识。必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法。应该开发和使用更好的软件工具。为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 1-6 什么是软件过程?它与软件工程方法学有何关系? 答: 软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件工程方法学包含软件过程。 1-7 什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。 答: 生命周期模型简洁地描述软件过程,规定了把生命周期划分成哪些阶段及各个阶段执行顺序。 瀑布模型历史悠久、广为人知,它的优势在于它是规范的、文档驱动的方法;这种模型的问题是,最终开发出的软件产品可能并不是用户真正需要的。 快速原型模型正是为了克服瀑布模型的缺点而提出来的。它通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的办法,获取用户的真实需求。 增量模型具有可在软件开发的早期阶段使投资获得明显回报和较易维护的优点,但是,要求软件具有开放的结构是使用这种模型时固有的困难。 风险驱动的螺旋模型适用于内部开发的大型软件项目,但是,只有在开发人员具有风险分析和排除风险的经验及专门知识时,使用这种模型才会获得成功。 快速原型模型:适合小型软件; 螺旋模型:适合内部开发的大规模软件项目。 2-1 在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性? 答: 可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。至少应该从下述三方面研究每种解法的可行性:(1)技术可行性;(2)经济可行性;(3)操作可行性。 2-5 北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。 请用2.5.2小节讲述的定义数据的方法,定义上述的电话号码。 答:电话号码=[校内电话|本市电话|外地电话] 非零数字字符=[1|2|3|4|5|6|7|8|9] 校内电话=非零数字字符+3{数字}3 本市电话=0+非零数字字符+7{数字}7 外地电话=0+区码+非零数字字符+7{数字}7 3-1 为什么要进行需求分析?通常对软件系统有哪些需求? 答: 为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼。 确定对系统的综合要求:1、功能需求;2、性能需求;3、可靠性和可用性需求;4、出错处理需求;5、接口需求;6、约束;7、逆向需求;8、将来可以提出的要求,分析系统的数据要求。 3-2 怎样与用户有效地沟通以获取用户的真实需求?

软件工程复习题及答案(完整)

一、选择 1、文档是软件产品的一部分,没有文档的软件就不称其为软件。对 2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。错 3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。错 4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。错 5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。错 6、软件配置管理是一组标识、组织和控制修改源程序的活动。错 7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。错 8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。对 9、边界值分析方法是取输入/输出等价类的边界值作为测试用例。对 10、面向对象的分析是面向计算机系统建立软件系统的对象模型。错 11、(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。 A 软件过程 B 软件测试 C 软件生存周期 D 软件工程 12、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。 A 质量控制 B 质量管理 C 质量策划 D 质量改进 13、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。除第1级外,每个等级都包含了实现该成熟度等级目标的若干 (B)。 A 关键实践 B 关键过程域 C 软件过程能力 D 软件过程 14、在软件开发的各种资源中,(D)是最重要的资源。 A 开发工具 B 方法 C 硬件环境 D 人员 15、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A 固有的 B 人为的 C 可消除的 D 不可降低的 16、在各种不同的软件需求中,(D)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。 A 业务需求 B 功能需求 C 非功能需求 D 用户需求 17、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。 A 需求不确定的 B 需求确定的 C 管理信息 D 决策支持 18、(A)意味着一个操作在不同的类中可以有不同的实现方式。 A 多态性 B 多继承 C 类的可复用 D 信息隐蔽 19、时序图反映对象之间发送消息的时间顺序,它与(D)是同构的。 A 用例图 B 类图 C 活动图 D 协作图 20、单元测试的测试用例主要根据(D)的结果来设计。 A 需求分析 B 源程序 C 概要设计 D 详细设计 二、填空题 1、在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是关联关系。 2、类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是依赖关系。 3、用例及其协作之间是实现关系。 4、接口及其实现类或构件之间是实现关系。 5、动物与老虎之间是泛化关系。 三、问答题 1、软件复用的范围不仅仅涉及源程序代码,请至少列出5种可能复用的软件元素。 可复用的软件元素包括(选5种):项目计划、成本估计、体系结构、需求模型和规格说明、设计、用户文档和技术文档、用户界面、数据结构、测试用例。 2、传统"瀑布模型"的主要缺陷是什么?试说明造成缺陷的原因。

软工重点的答案

1.1 什么是软件工程?构成软件工程的主要要素是什么?影响软件工程技术进步的动力是什么? ①将系统的、规范的、可量化的方法应用于软件开发、运行、维护的过程 ②包括①中的方法的研究 五要素:人、过程、项目、方法和工具、软件制品(红色字为方法学) 硬件能力、软件技术、社会需求和科学技术水平 1.2 阐述软件的正确性、可用性、可靠性、有效性、安全性、可维护性、可移植性和可复用性的概念,并指明这些概念的重要性。 正确性,软件满足需求规约和用户目标的程度 可用性,学习和使用软件的难易程度,包括操作软件、为软件输入数据、解释软件 输出结果等。 可靠性软件完成预期功能,成功运行的概率 有效性软件系统利用计算机的时间资源和空间资源完成系统功能的能力 1.10 阐述通用软件开发过程的五项活动,分析通用软件开发过程的优点。 通用软件过程模型用“沟通、策划、建模、构建、部署” 5项活动构建软件过程模型。在软件项目管理等普适性活动的支持下进行软件开发,增强了软件的开发能力、突出了软件工程特色,具有较大的灵活性和适应性。 2.4 研究图2.1(课本60,61页)所示的面对对象的迭代式软件开发过程,描述在立项,初始,细化,构造和移交阶段分别可能使用哪些UML图形机制,为什么? 初始阶段 用例图描述软件需求 活动图表示业务处理过程 交互图表示用例内部实现过程 细化阶段 包图、构件图和部署图表示软件体系结构 构造阶段 类图交互图活动图状态图构件图 表示软件详细设计模型 移交阶段 部署图 3.1 以下陈述哪些是有效的用户需求?请说明理由。 答案: ⑴目标软件应该用java语言实现。 ⑵软件系统必须在5秒内响应并处理外部事件 ⑶目标软件应该由一些特定的模块构成。

2014年哈工大835软件工程专业课真题

C语言 1.流程图: 有计算机产生一个随机数magic,由用户输入一个数guess,如果guess大于magic,输出“Wrong!Too big!”,如果guess小于magic,输出“Wrong!Too small!”,如果guess等于magic,输出“Right!”,程序结束! C程序设计(苏小红版)118页流程图 2.程序改错: 是C程序设计(苏小红版)310页10.9答案书的第三种方法的那个程序,一共有5个错误,8分,估计找到四个就能满分,五个错误是 1没有加#include 2#define N=40;改成#define N40 3for(...);改成for(...)后边加了一个; 4if()之中的两个字符串要用strcmp()函数 5字符串不能直接赋值,要用stringcpy()函数 3.读程序结果是很简单的,一个大概是这样的 #include int main(){ int i; for(i=2;i<6;i++){ if(i%2==0) continue; printf("**%d\n",i); } return0; } 结果是**3 **5 第二个是一个字符串指针,答题时这样 #include #include int main(){ char a[20]="ABCDE"; char b[20]="abc"; char*p=a; char*q=b; p+=3; strcat(q,p); printf("%s",q); } 结果是abcDE 4.程序设计

前两个特别简单,特别基础, (1)输出1到键盘输入n之间的所有数的平方和立方 (2)计算1!+2!+ (10) (3)某班级有40个人,用键盘输入学生的学号和某门课成绩,然后由用户输入一个学号,查找该学号学生的成绩,找到返回成绩,如果没找到打印NOT FOUND! 1名词解释 抽象类用例 2.简答 MVC架构每层的含义作用和他们的关系 3.设计(UML) 一个是类图题,考的是微博,微博分原创和转发,用户可以有多个微博,有一个微博列表,用户可以评论微博,要求把对应关系和关联标示清楚 另一个是部署图,完全没复习,唉!考的也是微博,用户可以通过web或者手机app访问典型B/S的微博系统,为了提高效率,控制层用分布式, 3用例题 用等价类划分法完成测试用例,写出测试用例包括期望数据,是否合法并且写出覆盖的路径, 用户输入一个数,这个数包括两部分,月和日,月有1和2,如果月为1,日范围是(25-30),如果月为2,日范围是(1-18),输入测试用例,

《软件工程》经典考试例题复习题-重点知识点(含答案)

《软件工程》经典考试例题复习题-重点知识 点(含答案) https://www.doczj.com/doc/9c14200756.html,work Information Technology Company.2020YEAR

1.某旅馆的电话服务如下:可以拨分机号和外线号码。分机号是从7201至 7299。外线号码先拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成。局号可以是455,466,888,552中任意一个号码。分局号是任意长度为4的数字串。 要求:写出在数据字典中,电话号码的数据流条目的定义即组成。 电话号码=[分机号|外线号码] 分机号=7201 (7299) 外线号码=9+[市话号码|长话号码] 长话号码=区号+市话号码 区号=100 (300) 市话号码=局号+分局号 局号=[455|466|888|552] 分局号=4{数字}4 数字=[0|1|2|3|4|5|6|7|8|9] 2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行 (1)语句覆盖测试用例 令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。 (2)判定覆盖 可以设计如下两组数据以满足判定覆盖: x=3,y=0,z=1(1分)(通过路径abce); x=2,y=1,z=2(1分)(通过路径acde)。 或者 x=2,y=1,z=1;覆盖路径acde

x=1,y=1,z=1;覆盖路径ace x=3,y=0,z=1;覆盖路径abce (注意:本题也还可以 有其他答案)3.请用判定表画出以下问题的行为逻辑。 人们往往根据天气情况决定出门时的行装。天气可能下雨,也可能不下雨; 下雨或不下雨天气可能变冷,也可能不变冷。如果天气要下雨,出门时带上雨伞;如果天气变冷,出门时要穿上大衣。 4.对下列子程序进行调试: procedure example(y,z: real; var x: real) begin if (y>1) and (z=0) then x:=x/y; if (y=2) or (x>l) then x:=x+l; end. 该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。完成下列各题: (1)画出程序流程图。 (2)用条件组合覆盖设计测试用例,并写出其中一组测试用例。 答:(1)程序流程图

广州大学2015软件工程试卷A及答案

院、系领导 A 卷 审批并签名 ` 广州大学2014—2015 学年第一学期考试卷课程软件工程导论考试形式(闭卷,考试)学院计算机科学与教育软件班级学号姓名 题次一二三四五六七八九十总分评卷人分数10 16 25 49 100 评分 一、单选题(每小题1分,共10分,答案写在下表中) 1 2 3 4 5 6 7 8 9 10 B A C D C C A B A D 1.研究开发所需要的成本和资源是属于可行性研究中的( )研究的一方 面。 A.技术可行性 B.经济可行性 C.社会可行性 D.法律可行性 2.结构化分析方法是在软件开发过程中常用的方法。这个方法采用的基本手段是()。 A.分解与抽象 B.分解与综合 C.归纳与推导 D.试探与回溯 3.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0], 现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( ) 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.不同的对象收到相同的消息时产生不同的动作 B.不同的对象收到相同的消息时产生相同的动作 C.相同的对象收到相同的消息时产生不同的动作 D.相同的对象收到相同的消息时产生相同的动作 10.软件测试方法中的()属于静态测试方法。 A.黑盒法 B.路径覆盖 C.错误推测 D.人工检测 二、填空题(每空1分,共16分) 1、用户关注软件质量的外部属性,如软件的正确性、可靠性、有效性、完整性、可用性、可维护性、可移植性、可复用性等。(顺序可互换)

软件工程-习题及答案---第四章

一、判断题 1、(√)如果在需求分析阶段采用了结构化分析方法,则软件设计阶段就应采用结构化设计方法。 2、(√)概要设计与详细设计之间的关系是全局和局部的关系。 3、(×)一个模块的作用范围应该大于该模块的控制范围。 4、(√)模块间的耦合性越强,则模块的独立性越弱。 5、(×)在设计模块时,应使一个模块尽量包括多个功能。 6、(√)软件结构图可以利用数据流图映射出来。 7、(×)结构化设计是一种面向数据结构的设计方法。 8、(√)在结构化设计过程中首先要确认DFD。 二、选择题 1、软件结构图的形态特征能反映程序重用率的是(C)。 A、深度 B、宽度 C、扇入 D、扇出 2、概要设计的目的是确定整个系统的(B)。 A、规模 B、功能及模块结构 C、费用 D、测试方案 3、耦合是对软件不同模块之间互连程度的度量。各种耦合从强到弱的排列为(C)。 A、内容耦合,控制耦合,数据耦合,公共环境耦合 B、内容耦合,控制耦合,公共环境耦合,数据耦合 C、内容耦合,公共环境耦合,控制耦合,数据耦合 D、控制耦合,内容耦合,数据耦合,公共环境耦合 4、当一个模块直接使用另一个模块的内部数据时,这种模块之间的耦合为(D)。 A、数据耦合 B、公共耦合 C、标记耦合 D、内容耦合 5、数据耦合和控制耦合相比,则(B)成立。 A、数据耦合的耦合性强 B、控制耦合的耦合性强 C、两者的耦合性相当 D、两者的耦合性需要根据具体情况分析

6、衡量模块独立性的标准是(D)。 A、耦合的类型 B、内聚的类型 C、模块信息的隐藏性 D、耦合性和内聚性 7、如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内聚为(A)。 A、时间内聚 B、逻辑内聚 C、通信内聚 D、信息内聚 8、为了提高模块的独立性,模块内部最好是(C)。 A、逻辑内聚 B、时间内聚 C、功能内聚 D、通信内聚 9、在结构化设计方法中,下面哪种内聚的内聚性最弱(C)。 A、逻辑内聚 B、时间内聚 C、偶然内聚 D、过程内聚 10、软件设计是把(A)转换为软件表示的过程。 A、软件需要 B、系统分析 C、数据库 D、软件代码 11、概要设计的主要成果是(C)。 A、用户的界面需求 B、用户的分析方案 C、概要设计说明书 D、系统总体方案 12、数据结构设计也是概要设计的重要内容,主要是进行数据的(A)设计。 A、逻辑 B、存取 C、用户视图 D、索引 13、概要设计与详细设计衔接的图形工具是(B)。

软件工程分析题解答

分析设计 1.分析图3和表1,其中模块p、t、u更新同一个数据库,其它模块的关系如表1所示,请确定模块之间的耦合类型。 表 1 模块间的接口描述 p-q:数据耦合 p-s:标记耦合 q-r:控制耦合 q-s:标记耦合 r-t:数据耦合 s-u:数据耦合 p-t-u:公共环境耦合 2.分析图4所示程序流程图,请分析采用条件覆盖进行测试的测试用例,将测试数据写入对应单元格内。

T2 B>0 , F2 B<0 T3 C>A , F3 CB 测试用例: A=1,B=1,C=2,D=0 覆盖了 T1,T2,T3,T4 A=0,B=1,C=1,D=1 覆盖了 F1,T2,T3,F4 A=1,B=0,C=1,D=1 覆盖了 T1,F2,F3,F4 3.分析图5所示程序流程图,画出对应的流图,采用McCabe 方法计算其复杂度。

计算复杂度有三种办法: V (G )=D ;D 代表区域数 V (G )=E-N+2;E 为流图中的边的条数,N 是流图中结点数 V (G )=P+1;P 为判定结点的数目。 先 画 出 控 制 流 图 , 任意选一种方法就行, 复杂度为 4.

4. 分析图6所示的公文提交时序图,用文字描述对象间的交互过程。 答:访问者访问浏览器,提交自己的访问请求,并且向服务器提交公文,服务器解析访问者的请求参数,获取公文提交方法(),服务器进行业务处理,调用数据库进行数据更新,更新公文状态(),向数据库返回更新结果()和返回公交结果(),对浏览器发送Response 响应(),最后,访问者获得公文提交结果。

北方工业大学软件工程期末复习题(含答案)

北方工业大学 《软件工程》课程期末复习题 A 卷 2014年春季学期 开课学院:信息工程学院 考试方式:闭卷 考试时间:120 分钟 班级 姓名 学号 题 号 一 二 三 四 五 六 七 八 九 十 总 分 得 分 阅卷人 一.简要回答下列各问题(共40分,每个小题5分) (1) 阐述软件工程的定义。 答: 是指导计算机软件开发和维护的一门工程学科; 采用工程的概念、原理、技术和方法来开发和维护软件; 把证明正确的管理技术和最好技术综合运用到软件开发中; 研究经济地开发出高质量的软件方法和技术; 研究有效维护软件的方法和技术。 (2) 简述软件危机的原因。 答: 缺乏软件开发的经验和有关软件开发数据的积累,使得开发计划很难制定。 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误 。 软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。 随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作,不仅涉及技 术问题,更重要的是必须有科学严格的管理。 缺少有效的软件评测手段,提交用户的软件质量不能完全保证。 序号 订 线 装

(3) 画出软件生存周期的瀑布模型的示意图,并简单评述其优缺点。 优点: 可强迫开发人员采用规范化的方法。 严格地规定了每个阶段必须提交的文档。 要求每个阶段交出的所有产品都必须是经过验证 的。 缺点 由于瀑布模型几乎完全依赖于书面的规格说明,很 可能导致最终开发出的软件产品不能真正满足用户 的需要。如果需求规格说明与用户需求之间有差异, 就会发生这种情况。 瀑布模型只适用于项目开始时需求已确定的情况。 1-2 瀑布模型示意图(4) 画出软件生存周期的增量模型的示意图,并简述其优点。 能在较短时间内向用户提交可完成一些有用的 工作产品,即从第1个构件交付之日起,用户就 能做一些有用的工作。 逐步增加产品的功能可以使用户有较充裕的时 间学习和适应新产品,从而减少一个全新的软件 可能给用户组织带来的冲击。 项目失败的风险较低,虽然在某些增量构件中可 能遇到一些问题,但其他增量构件将能够成功地 交付给客户。 优先级最高的服务首先交付,然后再将其他增量 构件逐次集成进来。因此,最重要的系统服务将 接受最多的测试。

(附答案)软件工程重点大题

1. 软件产品的特性是什么? 答:●软件是一种逻辑产品,具有无形性; ●软件产品的生产主要是研制;主要是脑力劳动; ●软件不存在磨损和老化问题,但存在退化问题; ●软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式; ●软件具有“复杂性”,其开发和运行常受到计算机系统的限制。 6. 软件生存周期各阶段的主要任务是什么? 答:软件生存周期按瀑布模型分为6个阶段: ●可行性研究与计划(确定系统的目标和规模,分析项目的可行性); ●需求分析与规格说明(明确系统的规格和要求); ●设计(包括概要设计和详细设计,将系统分解为模块); ●编程(用程序语言实现每个模块,简单容易); ●测试(发现并改正错误,分为模块测试、集成测试和系统联调三级); ●运行维护(扩充功能、纠错等)。 5. 如何画分层数据流图?有哪些基本原则? 答:总的原则是:至顶而下,逐层分解(画分层数据流图)。逐层分解的画法可以控制每一层的复杂度。 顶层:将整个系统作为一个加工,描述系统边界(输入与输出)。 中间层:将某个加工分解为一组子加工,其中的子加工还需进一步分解。 底层:由不再进行分解的基本加工组成。 画分层数据流图的基本原则有:①数据守恒与数据封闭原则。②加工分解的原则。③子图与父图“平衡”的原则。④合理使用文件的原则。 2. 集中式模型和分布式模型相比各有什么优缺点? 答:以集中式的仓库模型为例。其主要优点: (1)数据由某个子系统产生,并且被存储到仓库中,以便为另外一些子系统共享; (2)由于中央集中控制的缘故,共享数据能得到有效的管理,各子系统之间不需要通过复杂的机制来传递共享数据; (3)一个子系统不必关心其他的子系统是怎么使用它产生的数据; (4)所有的子系统都拥有一致的基于中央数据仓库的数据视图。如果新子系统也采用相同的规范,则将它集成于系统中是容易的。 但这种系统也有明显的缺陷: (1)虽然共享数据得到了有效的管理,但随之而来的问题是各子系统必须有一致的数据视图以便能共享数据,换句话说,就是各子系统之间为了能共享数据必须走一条折中的路线,这不可避免地会影响整个系统的性能。 (2)一个子系统发生了改变,它产生的数据也可能发生结构上的改变。问题随之而来,其他的子系统如何能正确解析这些数据呢?所以为了达到共享的目的,数据翻译系统会被引入到整个系统当中。但这种翻译的代价是很高的,并且有时是不可能完成的。 (3)中央数据仓库和各子系统的私有数据库必须有相同的关于备份、安全、访问控制和恢复的策略,这可能会影响子系统的效率。 (4)集中式的控制使数据和子系统的分布变得非常困难甚至成为不可能。这里分布指的是将数据或子系统分散到不同的机器上。 分布式结构有这样的一些优势: (1)资源共享:系统中每个服务节点上的资源都可以被系统中的其他节点访问; (2)开放性高:系统可以方便地增删不同软硬结构的节点; (3)可伸缩性好:系统可以方便地增删新的服务资源以满足需要; (4)容错能力强:分布式系统中的信息冗余可以容忍一定程度的软硬故障; (5)透明性高:系统中的节点一般只需知道服务的位置而不必清楚系统的结构。

相关主题
文本预览
相关文档 最新文档