当前位置:文档之家› 软件工程方法论期末复习

软件工程方法论期末复习

软件工程方法论期末复习
软件工程方法论期末复习

软件工程方法论(郑有才)

期末复习

一、软工概述

(一)软件定义:程序+数据+文档

软件特点:逻辑实体(不是物理实体)、开发出来的(不是制造出来的)、可能被废弃(不会用坏)、大多是定制的(不是装配的)、受计算机系统限制(p2两个图)

软件分类:系统、应用、支撑(工具)、可复用软件

(二)软件过程:使用适当的资源(人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)。

四个基本活动:软件规格说明、设计与实现、确认、演进

(三)生存周期:是软件产品的一系列相关活动的整个生命周期,即从形成概念开始,经过开发、交付使用、在使用中不断修改和演进,直到最终被废弃,让位于新软件产品为止的整个时期。通常被划分为软件定义、软件开发和运行维护3个阶段。(四)瀑布模型与增量模型(p14、15画图)

瀑布优点:

1)为项目提供了按阶段划分的检查点

2)当前一阶段完成后,只需要去关注后续阶段

3)可在迭代模型中应用瀑布模型

瀑布缺点:

1)各阶段划分固定,缺乏灵活性,阶段间产生的大量文档增加了工作量

2)开发模型基本是线性的,用户只有在项目生命周期的末期才能看到结果

3)早期的错误到后期测试才能发现,进而带来严重后果

增量优点:

1)客户不必等到系统全部完成就能得到他们所需要的的东西

2)客户可用较早增量构件做原型,取得经验后活得新的增量构建需求

3)项目失败风险较低,不会因为个别问题导致整项目不能交付

4)优先级最高的服务最先交付,然后逐次集成其他的增量构建

增量缺点:

1)加入构件必须不破坏已构造好的系统部分,需要软件具备开放式的体系结构

2)当需求频繁变化时,容易使软件过程的控制失去整体性

3)如果增量构件之间存在相交的情况且未很好处理,则必须做全盘系统分析

(五)软工定义:把系统化的、规范的和可度量的手段应用于软件开发、运行和维护中,即把工程化原则应用于软件中。

二、计算机系统

系统定义:某些元素的一个集合或排列,这些元素被组织起来以实现某种方法、过程或借助处理信息进行控制。

计算机系统元素:文档、过程、硬件、软件、数据库、人

可行性研究报告:技术、经济、社会(法律)、用户操作可行性

三、UML(不考)

四、需求工程(重点)

(一)需求定义:An expression of software behavior:用户所要求的系统应具有的外部行为;

开发者所要求的系统应具有内部特性

Behavior:即需求层次,包括:业务、用户、功能和非功能、系统需求

(二)过程

(三)表达

(四)建模方法(只考前两个)

1.数据建模(E-R图:图书馆、教务、学籍管理系统)

2.功能建模(数据流图)

3.行为建模(状态迁移图)

4.数据字典(定义式p137)

五、设计工程

(一)设计定义:设计是将问题转化为一个解决方案的创造性过程,解决方案的描述即为软件的《设计规格说明书》

(二)设计基础:

1.分而治之和模块化

2.模块的独立性

3.低耦合

4.高内聚

(三)面向过程设计方法:模块的概念

(四)处理过程的设计(p224,四种流程图)

六、体系结构

(一)体系结构概念(3C):构件、连接、约束

(二)构件类型(不考)

(三)设计风格

1.数据流风格(p242图管道过滤器)

(1)使软件具有良好隐秘性、高内聚、低耦合特点

(2)允许设计者将系统输入/输出行为看成多个过滤器行为的简单合成(3)支持软件复用

(4)系统维护和系统性能增强比较简单

(5)允许对一些比如吞吐量、死锁等属性的分析

(6)支持并行执行

缺点:

(1)通常导致进程成为批处理结构

(2)不适合处理交互的应用

(3)没有数据传输通用标准

2.调用-返回风格

(1)主程序/子程序体系结构(p244图):

优点:

a)可以自顶向下,逐步分解得到体系结构图

b)采用程序设计语言支持的单线程控制

缺点:

a)难以判断子程序正确性

b)子程序结构不清晰

(2)面向对象风格:系统的构件封装了数据和必须应用到该数据上的操作,构件间通过消息传递进行通信与合作

优点:

a)可以改变一个对象的表示而不影响其他对象

b)设计者可将数据存取操作问题分解为一些交互代理程序的集合

缺点

a)对象间过程调用交互,必须知道对象的标识

b)在修改显式调用它的其他对象的调用方式时可能带来一些副作用(3)层次结构(p245图)

优点:

a)支持基于抽象程度递增的系统设计

b)支持功能增强

c)支持复用

a)不是每个系统都能轻易划分为分层模式

b)很难找到一个合适、正确的层次抽象方法

3 仓库风格(p246图)

优点(黑板系统)

(1)对可更改性和可维护性的支持

(2)可复用的知识源

(3)支持容错性和健壮性

缺点(黑板系统)

(1)测试困难

(2)不能保证有好的求解方案

(3)难以建立好的控制策略

(4)低效

(5)昂贵的开发工作

(6)缺少对并行机制的支持

(四)分布式系统结构(C/S和B/S的结构与特点)

1. 三层C/S(p254、255图)

优点

(1)允许合理地划分三层结构功能,使之在逻辑上保持相对独立性,更易维护扩展(2)允许更灵活、有效地选用相应平台和硬件系统

(3)各层可并行开发,选择各自最合适的开发语言

(4)应用层能有效隔离表示层与数据层,增大安全性

2. B/S(三层C/S的一种实现方式)

优点

(1)系统安装、修改和维护均可在服务器端解决

(2)还提供了异种机、网、应用服务的联机、联网、统一服务的最现实开放性基础

缺点

(1)缺乏对动态页面支持能力

(2)系统扩展能力差

(3)数据查询能响应速度远远低于C/S体系结构

(4)数据动态交互性不强,不利于在线事务处理

七、软件实现

(一)实现的任务:软件实现是软件产品由概念到实体的一个关键过程,它将详细设计的结果翻译成用某种程序设计语言编写并最终可以运行的程序代码(二)编程风格与编码标准(四化)

1.程序文档化(重点)

(1)符号名的命名

(2)程序的注释(重要)

a)用于描述一段程序,而不是每一个语句

b)用缩进和空行,使程序与注释更容易区别

c)注释要正确

(3)视觉组织

a)用空格区分程序词汇

b)自然的程序段之间可用空行隔开

c)利用移行(向右缩格)突出程序层次感

2.数据说明规范化

3.程序代码结构化

4.输入输出可视化

八、测试工程

(一)定义、目标:测试是发现错误而执行一个程序或系统的过程

原则:

1.把“尽早地和不断地进行软件测试”作为座右铭

2.测试用例应由测试输入数据、执行条件和对应预期输出结果这两部分组成

3.程序员应避免检查自己程序

4.设计测试用例时应包括合理输入条件和不合理输入条件

5.所有测试都应当追溯到用户要求,程序不能满足用户要求的错误是严重的

6.充分注意测试中的群集现象

7.严格执行测试计划。排除测试的随意性

8.应对每个测试用例结果做全面检查

9.妥善保存测试计划、用例等,为维护提供方便

(二)软件错误的分类(可不记)

1.按错误影响和后果(微小、一般、较严重、严重、最严重)

2.按错误的性质和范围(功能、系统、加工、数据、代码错误)

3.按软件生存周期阶段(需求、功能与性能、程序结构、数据、实现和编码、

集成、系统结构、测试定义与测试执行错误)

(三)人工测试(定义、工作):

1.桌面检查:程序员自己检查自己写的程序以发现程序中缺陷。包括:桌面

检查的检查项目、补充文档。优点是省时,缺点是具有主观片面性,没有

约束过程,效率低。

2.代码检查:以小组为单位阅读代码,应用一系列规程和缺陷检查技术,检

查实际的产品,包括文档和程序代码,发现存在缺陷和缺陷的过程。在进

行检查时,主要包括:(1)由程序编写者逐条语句讲述程序逻辑结构(讲

述过程中小组其他成员提出问题,判断是否有缺陷)。(2)对照常见编码缺

陷表分析程序

3.走查:以小组为单位,主要目标是发现缺陷、遗漏和矛盾的地方,改进产

品,以及考虑可替换的现实方法。步骤为:(1)计划走查会议。(2)评审

产品。(3)执行走查。(4)解决缺陷。(5)走查记录。(6)产品返工。走

查的优点是:一旦发现错误就能精确定位,降低修改缺陷成本。这个过程

通常可以发现成批的错误,他们也能一同得到修正。

(四)集成测试:自顶向下:驱动模块,自底向上:桩模块

(五)系统测试:性能、压力、容量测试…

(六)调试

1.概念:程序调试是程序成功测试后才开始的工作。软件测试目的是尽可能

多地发现软件中的错误,调试则是经进一步诊断和修改程序中潜在的错误

2.步骤:

(1)根据错误外在表现形式确定出错位置

(2)研究有关部分的程序找出错误内在原因

(3)修改设计和代码,排除错误

(4)重复进行暴露了这个错误的原始测试或某些相关测试(回归测试),

以确认该错误是否被排除以及是否引进了新错误

(5)如果修正无效,则撤销此次修改,重复上述过程直到解决

3.方法:强行、回溯、归纳、演绎法调试

九、测试用例(重点)

(一)测试用例定义:测试用例是为了特定目的而设计的测试数据及与之相关的测试

规程的一个特定集合,或称为有效地发现软件缺陷的最小测试单元

(二)设计测试用例(大题:写一个实际的测试用例)

1.黑盒测试:系统外部功能测试

(p420)

等价类法:

边界值法:

2.白盒测试:系统内部结构测试

(p411)

语句覆盖:

判定覆盖:

条件覆盖:

基本路径:

十、软件维护

(一)定义:维护是在软件运行/维护阶段对软件产品进行的修改

(二)类型:改正、适应、完善、预防性维护

(三)副作用

修改代码的副作用:修改程序源代码时可能引入新的错误

修改数据的副作用:修改数据结构时可能造成软件设计与数据结构不匹配

文档的副作用:修改数据流、软件结构、逻辑模块等的同时要更新相关技术文

档,否则会导致文档与程序功能不匹配

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 2、软件生命周期划分为哪几个阶段 软件生命周期分为三个时期八个阶段: 软件定义:问题定义、可行性研究; 软件开发:需求分析、概要设计、详细设计、编码、测试; 软件运行:软件维护

《软件工程》期末复习题1

考试时间: 16周周一5,6节 考试地点: 二教419 406 408 考试题型: 选择题:20分 简答题:30分 应用题:50分 各章内容及题型总结: 第1,2章本章的主要题型是选择题和简答题。 1. 软件危机的主要表现是什么?答:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。 2. 软件工程的定义?答:软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,来解决软件危机。 IEEE的定义:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。 3. 软件工程研究的主要内容是什么?答:软件开发技术和软件开发管理两个方面。软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和环境。软件开发管理方面主要研究软件工程管理学、软件工程经济学、软件工程心理学。 4. 软件工程的7条基本原理是什么?答:①用分阶段的生命周期计划严格管理②坚持进行阶段评审③实行严格的产品控制④采用现代程序设计技术⑤结果应能清楚地审查⑥开发小组的人员应该少而精⑦承认不断改进软件工程实践的必要性。 5. 什么是软件生命周期?答:指一个软件从提出开发要求开始到该软件报废为止的整个时期。通常将软件的生命周期划分为可行性研究、需求分析、设计、编码、测试、集成、维护阶段。 6. 软件过程的定义?答:软件开发过程、活动和任务的结构框架。它能够清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务。 7. 你能举出几个典型的软件过程模型吗?答:主要有瀑布模型、演化模型、喷泉模型、螺旋模型、智能模型。模型的选择是基于软件的特点和应用领域。 8. 目前,主流的软件开发方法有哪些?答:结构化方法和面向对象方法。 9. 软件工程师职业道德规范的8组关键词是什么?1999年由ACM/IEEE-CS软件工程师道德规范和职业实践(SEEPP)联合工作组制订了《软件工程师职业道德规范》,规范含有8组由关键词命名的准则:公众、客户和雇主、产品、判断、管理、专业、同行、自身。 10. 职业化软件工程师要注意的十大问题是什么?答:①高质量地完成任务②遵守行业标准,不能肆意按照自己的想象来发挥③积极帮助他人④版权意识敏感⑤严格遵守计划⑥公私分明⑦注意知识更新⑧善于沟通⑨遵守职业规则⑩诚实和正直。 第3章本章的题型主要是选择题。 1. 可行性研究的目的是什么?答:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2. 可行性研究的四大要素是:经济上可行,技术可行,法律允许、社会环境可行。 3. 可行性研究的实质:是要进行一次简化了的系统分析和设计过程。首先要分析和澄清问题定义,导出系统的逻辑模型,探索若可供选择的方案,对每种方案仔细研究它的可行性。推荐一个较好的解决方案和一个初步的计划。 第4,5章本章的题型有选择题。 2. 什么是需求工程?需求工程是指应用有效的技术和方法进行需求分析,确定客户需求,帮助分析人员理解问题,定义目标系统的外部特征的一门学科。需求工程中的主要活动有:需求获取、需求分析、需求规格说明、需求验证和需求变更管理。

软件工程期末试卷(A卷)

《软件工程》期末试卷(A卷) 一.单项选择题(每小题1分,共22分) 1.对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。 A.结合B.隐藏C.封装D.抽象 2.软件生命周期中所花费用最多的阶段是( D )。 A.详细设计B.软件编码C.软件测试D.软件维护 3.需求分析中开发人员要从用户那里了解( A )。 A.软件做什么B.用户使用界面 C.输入的信息D.软件的规模 4.测试的关键问题是( D )。 A.如何组织对软件的评审B.如何验证程序的正确性 C.如何采用综合策略D.如何选择测试用例 5.( D )是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。 A.软件过程B.软件测试 C.软件生命周期D.软件工程方法学 6.( A )意味着一个操作在不同的类中可以有不同的实现方式。 A.多态性B.多继承C.类的可复用D.信息隐藏 7.单元测试的测试用例主要根据( D )的结果来设计。 A.需求分析B.源程序C.概要设计D.详细设计 8.随着软硬件环境变化而修改软件的过程是( B )。 A.校正性维护B.适应性维护 C.完善性维护D.预防性维护 9.在白盒测试技术测试用例的设计中,( A )是最弱的覆盖标准。 A.语句覆盖B.路径覆盖 C.条件组合覆盖D.判定覆盖 10.结构化程序设计的一种基本方法是( C )。 A.筛选法B.迭代法 C.逐步求精法D.递归法11.不适合作为科学工程计算的程序设计语言是( D )。 A.Pascal B.C C.Fortran D.Prolog 12.只有单重继承的类层次结构是( C )层次结构。 A.网状型B.星型 C.树型D.环型 13.面向对象的开发方法中,( C )将是面向对象技术领域内占主导地位的标准建模语言。 A.Booch方法B.Coad方法C.UML语言D.OMT方法 14.瀑布模型本质上是一种( A )。 A.线性顺序模型B.顺序迭代模型 C.线性迭代模型D.及早见产品模型 15.软件维护产生的副作用,是指( C )。 A.开发时的错误B.隐含的错误 C.因修改软件而造成的错误D.运行时误操作 16.软件详细设计的主要任务是确定每个模块的( A )。 A.算法和使用的数据结构B.外部接口 C.功能D.编程 17.软件结构图的形态特征能反映程序重用率的是( C )。 A.深度B.宽度C.扇入D.扇出 18.为了提高模块的独立性,模块内部最好是( C )。 A.逻辑内聚B.时间内聚 C.功能内聚D.通信内聚 19.软件结构图中,模块框之间若有直线连接,表示它们之间存在( A )。 A.调用关系B.组成关系 C.链接关系D.顺序执行关系 20.“软件危机”是指( C )。 A.计算机病毒的出现 B.利用计算机进行经济犯罪活动 C.软件开发和维护中出现的一系列问题 D.人们过分迷恋计算机系统 21.具有风险分析的软件生命周期模型是( C )。 A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型 22.数据流图(DFD)中的每个数据处理至少需要( D )。 A.一个输入数据流 B.一个输出数据流 C.一个输入或者输出数据流 D.一个输入数据流和一个输出流

南京信息工程大学滨江学院李振宏《软件工程》期末复习 个考点完整版

选择20题,每题1分;填空10题,每题1分;简答5题,每题8分;设计题3题,每题10分(流程图的设计、流图设计和环形复杂度的计算、语句覆盖和判定覆盖测试用例的设计)。 1.详细设计中,过程设计的工具,N-S图,PAD图及判定表和判定树各有何特点和适用情况?(第六章) (1)盒图(N-S图): 一种不允许违背结构程序设计精神的图形工具,又称为N-S图。它有下述特点: ①功能域(作用域)明确,可以从盒图上一眼就看出来。 ②盒图没有箭头,因此不允许随意转移控制。 ③很容易确定局部和全程数据的作用域。 ④很容易表现嵌套关系,也可以表示模块的层次结构。 适用:对大部分设计均有适用性,常用于软件工程详细设计中,提供一种结构化的方式,便于思考和解决问题。 (2)PAD图: PAD是问题分析图(problem analysis diagram) ,它用二维树形结构的图来表示程序的控制流。PAD图的主要优点如下: ①使用PAD符号设计的程序必然是结构化程序。 ② PAD图所描绘的程序结构十分清晰。最左面的竖线是程序的主线,即第一层结构。随着程序层次的增加,PAD图逐渐向右延伸。每增加一个层次,图形向右扩展一条竖线。图中竖线的总条数就是程序的层次数。 ③PAD图表现的程序逻辑,易读、易懂、易记。程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点。 ④容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成。 ⑤既可表示程序逻辑,也可描绘数据结构。 ⑥支持自顶向下、逐步求精方法的使用。 适用:为FORTTAN,COBOL,PASCAL等每种常用的高级程序设计语言提供了一套相应的图形符号。 开始时可以定义一个抽象的程序,随着设计的深入,使用def符号逐步增加细节,直至完成详细设计,如图6.6所示。 (3)判定表(P127有例子): 适于表示复杂的条件组合与应做的动作之间的对应关系。特点是: ①能够间接而又无歧义的描述处理故意则。 ②并不适用于作为一种通用的设计工具。 ③一张判定表由以下四部分组成:左上部列出所有条件,左下部是所有可能的动作,右

软件工程 期末复习笔记

软件工程期末复习笔记 胡丹 一.基本概念 1.什么是软件工程? 答:见作业 2.什么是参与者,角色? 答:所有参与到软件项目中的人员称为参与者。把项目或系统的一组职责称为角色。一个角色与一组任务联系在一起,且被派给一个参与者。一个参与者能充当多个角色。 3.系统和模型。系统指内部关联部分的集合。模型指系统的任何抽象。 4.软件工程开发活动:开发活动通过构造和验证应用域模型或系统模型处理复杂性问题,开发活动包括:需求获取、分析、系统设计、对象设计、实现、测试。 二.基本概念(2) 1.系统开发的主要内容集中在系统的3个不同模型上: 功能模型,在MUL中,使用用例图表示功能模型,以从用户观点描述系统功能。 对象模型,在MUL中,使用类图表示对象模型,使用对象、属性、关联和操作来描述系统的结构。 动态模型,在UML中,使用交互图、状态图和活动图表示动态模型,以描述系统的内部行为。 2.用例模型(功能模型) 2.1用例模型=用例文档+用例图 2.2用例间的关系:用例之间的关系关联(association )、包含(include)、扩展(extend)和泛化(generalization)这几种关系。 关系关联(association ):通信1.表示参与者用例之间进行通信。 2.不同的参与者可以访问相同的用例。 包含(include):把它所包含的用例行为作为自身行为的一部分。 扩展(extend):扩展用例被定义为基础用例的增量扩展。 基础用例提供扩展点以添加新的行为。 扩展用例提供插入片段以插入到基础用例的扩展点上泛化(generalization):继承 2.3 用例文档包括的内容:1.用例名。2.范围。 3.级别。 4.主要参与者。 5.涉众及其关注点。 6.前臵条件 7.后臵条件 8.主事件流 9.备用事件流。 3.类图(对象模型) 3.1类是面向对象系统组织结构的核心。对一组具有相同属性、操作、关系和语义的对象的抽象。包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation)。

软件工程期末考试参考试题

软件工程期末考试参考试题 一、填空题 1、软件生存周期一般可分为问题定义、可行性研究、需求分析、设计编码、测试、运 行与维护阶段。 2、按软件的功能进行划分,软件可以划分为系统软件、支撑软件和应用软件。 3、可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和抉择。 4、用户界面的可使用性是用户界面设计最重要的也是最基本的目标。 5、常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的结构化设计 方(SD),以数据结构为基础构造模块的Jackson方法,以对象、类、继承和通信为基础的面向对象设计方法(OOD)。 6、数据流图和数据字典共同构成系统的逻辑模型。 7、软件测试的方法有分析方法和非分析方法(即黑盒法)。 8、单元测试一般以白盒测试为主,黑盒测试为辅。 9、成本估计方法主要有自底向上估计、自顶向下估计和算法模型估计三种类型。 10. 文档(document)—一种数据媒体和其上所记录的(数据)。 11 机器语言、汇编语言:依赖于机器,面向(机器) 12. 软件有效性(efficiency),指软件系统的时间和(空间)效率。 13. 软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成。 14. 软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。 15. 为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。 16. 一个软件的深度是指其控制的(层数)。 17. 以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并 最终可运行的代码的过程叫(编码)过程。 18. 软件维护是软件生命周期的(最后)一个阶段 19. 软件工程由(方法)、工具和过程三部分组成,称软件工程的三要素。 20. 基于计算机系统的软件要素中的软部件由程序、数据和(文档)组成。 21. 数据流图就是用来刻画数据流和转换的信息系统建模技术。它用简单的图形记号分 别表示数据流、转换、(数据源)以及外部实体。 22. 被继承的类我们称之为基类(父类),在基类的基础上新建立的类我们称之为派生 类子类。 23. 流程图也称为程序框图是最常用的一种表示法,它有顺序、分支和(循环)三个基 本控制构件。 24. 机器语言和汇编语言,也称为(低级)语言。 25. 软件测试是执行程序发现并排除程序中潜伏的(错误)的过程。 26. 软件可维护性,是指软件产品交付使用后,在实现改正潜伏的错误、改进性能等属性、适应环境变化等方面工作的(难易)程度。 27. 软件可理解性,指系统具有清晰的结构,能直接反映问题的(需求)。 28 在实体-关系图简称E-R图中,数据对象实体用长方形、关系用(菱形)、属性用椭 圆表示。 29. 建立数据流模型要遵循的原则包括:每个加工至少应有一个输入数据流以反映被处 理数据的来源和一个(输出)数据流来反映加工的结果 30. 从工程管理的角度软件设计可分为概要设计和(详细)设计两大步骤。

软件工程期末复习

软件工程期末复习 一、选择题 1、软件工程的研究者将软件开发和维护过程概括为(c)大活动。 A.5 B.7 C.8 D.3 2、(a)是职业软件工程师的必要条件。 A.自律、善于沟通、具有一定的软件技能 B.编程速度快 C.熟悉众多的软件环境 D.语言天赋 3、计算机病毒是指(b)。 A.计算机系统的漏洞 B. 一组自我复制和自动执行的具有 破坏能力的代码 C.一种细菌 D. 程序中的BUG 4、软件需求具有(d)。 A.主观性 B.不确定性 C.多变性 D.以上全部 5、描述软件需求通常不用哪个工具(c)。 A.数据流程图 B.数据字典 C.模块结构图 D.E-R图 6、软件结构图中没有(d)元素。 A.模块 B.调用参数 C.返回结果 D.判断 7、程序流程图与数据流程图的关系(a)。 A.不确定 B.数据流程图可以转换成程序流程图 C.数据调用关系 D.程序流程图可以转换成数据流程图 8、包含关系用于构造多个用例(b)。 A. 关系 B.共性的部分 C.角色 D.特殊活动 9、如果说用例F被用例T扩展,意思是(a)。 A.F是一个一般用例,T是一个特殊用例 B.F是一个特殊用户,T是一个一般用例 C.都是一般用例 D.都是特殊用例 10、用(c)对需要长久保存的信息进行建模。 A.实体类 B.数据库表 C.E-R图 D.对象类 11、美国卡内基﹒梅隆大学制定的SW-CMM是(c)。 A.软件工作规范 B.软件工作流描述 C.软件成熟度模型 D.软件描述的一般方法 12、螺旋模型是一种将(d)结合起来的软件开发模型。 A.原型化模型和增量模型 B.风险判断和瀑布模型 C.瀑布模型和原型化模型 D.瀑布模型和增量模型 13可行性研究的四大要素是(a)。 A.经济、技术、法律和社会环境 B.经济、技术、开发组织能力和领导者水平 C.经济、技术、计算机硬件环境和网络带宽 D.经济、技术、软件开发工具和人员的稳定性 14、软件调研报告是在(b)提交的。 A. 可行性分析之前 B. 需求分析之前 C.签合同之前 D. 设计的时候 15、系统流程图的主要作用(a). A.描述系统的物理模型 B.业务流程 C.系统处理过程 D. 数据处理过程 16、PDL是一种(d)语言。 A.低级程序设计语言 B.建模语言 C.高级程序设计语言 D.过程设计语言 17、结构化设计方法划分模块的原则是(c)。 A.模块扇出小于5 B.模块扇入小于5 C.低耦合,高内聚 D.模块深度小于7 18、配置视图体现了系统的实现环境,反映系统的(b)。 A. 逻辑架构 B. 物理架构 C.组成结构 D.体系结构 19、角色可以有四种类型:系统的使用者,硬件设备,外部系统和(d)。 A.数据库 B.接口 C.对象 D. 时间 20、功能模型用于表达系统的需求,为软件的进一步分析和设计打下基础。在面向对象方法中,由(c )实现。 A. 场景描述 B.活动图和场景描述 C. 用例图和场景描述 D.交互图和场景描述 21、下面的哪个选项不是软件工程的宗旨(b)。 A.开发满足用户需求的软件 B.研究算法 C.及时交付软 件 D.生产无故障软件 22、针对需求不确定的软件开发,比较好的模型是(a)。 A. 快速原型化模型 B. 瀑布模型 C.软件成熟度模型 D.系统化模型 23、可行性分析研究的费用大约是项目总经费的(b)。 A.2% B.6% C.20% D.5‰ 24、业务需求描述的是(d)。 A.功能需求 B.用户需求 C.用户的具体业务流程 D.软件的目标、规模和范围 25、一个数据流程图中的图形符号有且仅有(c)种。 A.3 B.5 C.4 D.7 26、非直接耦合的模块独立性最强,(a)的模块独立性最弱。A.内容耦合 B.数据耦合 C.控制耦合 D.外部耦合 27、信息隐藏的核心内容是(c)。 A.把数据都放在公共的区域B.数据不能被其他模块访问 C.一个模块的内部信息不允许其他模块直接访问 D.把信息加密,只能让有密钥的模块访问 28、面向过程的方法最关心的是(a),而过程实施的对象是作为过程参数传递的。 A.参数 B.主体 C.过程 D.数据结构 29、(c)用于描述系统的功能集。 A. 组件视图 B.逻辑视图 C. 用例视图 D.对象视图 30、用(d)模型建立系统组织结构。 A.组织 B.CMM C.数据 D.静态 31、对象模型描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。在面向对象方法中,由(b)实现。 A.顺序图 B.类图 C.状态图 D.组件图 32、如果对象之间的耦合是通过(a)来实现的,则这种耦合就是交互耦合。 A.消息机制 B.参数 C.方法 D.公共数据区 33、定义类的属性类型时尽量使用已有类型,太多自定义类型会降低系统的(c)指标。 A.有效性 B.安全性 C. 可维护性 D. 开发效率 34、在设计测试用例时,应该包括(d)测试用例。 A. 可能产生无效输出的输入情况 B.无效的和不期望的输入情况 C.有效的和期望的输入情况 D.上面所有情况 35、(b)属于功能测试方法。 A.等价类划分和判定覆盖 B.边值分析和等价类划分 C.边值分析和判定覆盖 D.判定覆盖和回归测试 36、一个软件项目大约(a)的工作量在开发阶段,()的工作量在维护阶段。 A.30%,70% B. 70%,30% C. 30%,30% D. 70%,70% 37、软件项目管理的内容不包括(b)。 A.人员的组织与管理 B. 技术和算法 C.软件配置管理 D.软件开发进度计划 38、通俗的说,软件项目管理中常说的基线是(d)。 A.管理的基本思路 B. 一种软件开发的基本策略 C.基本的技术路线 D. 通过正式复审的文档 39、科学计算领域一般选择(b)语言。 A.HTML B.C C.汇编语言 D.XML 40对于嵌套的循环和分支程序,层次不要超过(c)层。 A.1 B.2 C.3 D.5 41、在分析模型内表示协调、顺序、事务处理以及控制其他对象的类是(a)。 A.控制类 B.组件类 C.主函数 D.事务类 42、继承耦合是(b)之间的一种关联形式,设计时应该适当使用这种耦合。 A. 虚类与实体类 B. 一般化类与特殊化类 C.控制类与界面类 D.数据类与处理类 43、构架设计的主要目的是(d),这项工作由经验丰富的构架设计师主持完成。 A.类图 B.确定系统数据结构 C.处理流程 D. 确定系统总体结构 44、测试用例是一组(a)。 A.测试用的输入数据以及对应的预期结果 B.测试驱动程序 C.测试数据 D.测试程序及数据 45、由于面向对象中的继承和消息机制,使得软件测试(b)。 A.更加简单 B.更加复杂 C.没变 D.不确定 46、软件维护过程中产生的副作用,一般是由(b)引起的。 A.算法说明 B.修改程序 C.优先级 D.环境要求 47、项目计划活动的主要任务是(d)。 A.估算项目的进度 B.分配工作量 C.计划资源使用 D.以上全部 48、如果程序代码的(c)好,则调试的成本就可以大幅度降低。 A.性能比 B. 可扩充性 C. 可读性 D.可移植性 49、两个浮点数X0和X1比较相等时,应该用(c)比较。 A.X0==X1 B.X1-X0<ε C. |X0-X1|<ε D.X0=X1 50、瀑布模型存在的问题是(d )。 A.用户容易参与开发B.适用可变需求 C.用户与开发者易沟通 D.缺乏灵活性 51、( b)不是分析建模的目的。 A. 定义可验证的软件需求 B. 开发一个简单的问题解决方案 C. 描述客户需求 D. 建立软件设计的基础 52、对用例进行设计,发现实现用例功能的(d),确定类之间的关系。 A. 算法 B.业务流程 C.数据结构 D. 关键类 53、框架是一组可用于不同应用的(a)的集合。 A.类 B.数据结构 C.函数 D.过程

软件工程期末复习填空题

软件工程填空题 1、软件危机是指在计算机软件的_开发和维护_过程中所遇到的一系列严重问题。 2、软件危机包含下述两个方面的问题:一是 _如何开发软件,以满足对软件日益增长的需求;二是_如何维护数量不断膨胀的已有软件_。 3、软件不同于硬件,它是计算机系统中的_逻辑部件_而不是物理部件。 4、一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把这个漫长的时期称为__生命周期__。 5、软件配置主要包括 __程序、文档_和_数据_ 等成分。 6、软件工程学的一个重要目标就是提高软件的 _可维护性、减少 _软件维护_ 的代价。 7、软件工程是指导计算机软件 __软件开发_ 和 __维护_ 的一门工程学科。 8、软件工程包括 _技术_ 和 __管理__ 两方面的内容,是技术与管理紧密结合所形成的工程学科。 9、通常把在软件生命周期全过程中使用的一整套技术方法的集合称为 _方法学_ ,也称为范型。 10、软件工程方法学包含_方法、工具和_过程_ 三个要素。 11、目前使用最广泛的软件工程方法学,分别是 _传统方法学和面向对象方法学 __ 。 12、概括地说,软件生命周期由 _软件定义_ 、 __软件开发_ 和 __运行维护(软件维护)__ 3个时期组成,每个时期又进一步划分为若干个阶段。 13、软件定义时期通常进一步划分为3个阶段,即 _问题定义__ 、 __可行性研究__ 和需求分析。、 14、螺旋模型将 _瀑布、_ 模型和 __快速原型_ 模型结合起来,加入了两种模型均忽略了的风险分析,弥补了这两种模型的不足。 15、瀑布模型 _不能_ 适应需求可变的软件开发,只有到 _开发结束_ 才能见到整个软件系统。 16、可行性研究阶段当从系统逻辑模型出发,探索若干种可供选择的主要解法,对每种解法都应该从 __技术可行性、经济可行性_和 _操作可行性__ 这三个方面研究每种解法的可行性。

天津科技大学软件工程期末考试试题(样卷)

天津科技大学软件工程期末考试试题 (样卷) 一、单项选择题 1.程序设计属于软件开发过程( C )阶段。 A.设计B.编程 C.实现D.编码 2. 产生软件危机的原因主要与两个方面的问题有关:( C ) A.软件在计算机中很难识别,存在磁盘中也看不到。 B.软件设计对人的智商要求很高,也要求很高的资金投入。 C.软件产品本身的特点与其它工业产品不一样,而且在软件的开发和 维护过程中用的方法不正确。 D.软件很难理解,硬件也很复杂。 3.结构设计是一种应用最广泛的系统设计方法,是以( A )为基础、自顶向下、逐步求精和模块化的过程。 A.数据流B.数据流图 C.数据库D.数据结构 4. 下列关于瀑布模型的描述正确的是( C )。 A. 瀑布模型的核心是按照软件开发的时间顺序将问题简化。 B. 瀑布模型具由于良好的灵活性。 C. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。 D. 利用瀑布模型,如果发现问题则修改的代价很低。 5.在软件结构化设计中,好的软件结构设计应该力求做到( B )。

A.顶层扇出较少,中间层扇出较高,底层模块低扇入 B.顶层扇出较高,中间层扇出较少,底层模块高扇入 C.顶层扇入较少,中间层扇出较高,底层模块高扇入 D.顶层扇入较少,中间层扇入较高,底层模块低扇入 6. 需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是( A ) 需求。 A.功能B.性能 C.数据D.环境 7.软件结构图的形态特征能反映程序重用率的是( C )。 A.深度B.宽度 C.扇入D.扇出 8. 在数据流图中,○(椭圆)代表( C )。 A.源点B.终点 C.加工D.模块 9.为了提高模块的独立性,模块内部最好是( C )。 A.逻辑内聚B.时间内聚 C.功能内聚D.通信内聚 10.软件需求分析的主要任务是准确地定义出要开发的软件系统是( C )。A.如何做B.怎么做 C.做什么D.对谁做 11.软件的( A )设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。 A.概要B.抽象 C.逻辑D.规划

软件工程期末复习

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

在一张数据流图中包含多少个元素合适?一般来说,如果一张数据流图中包含的处理多于9个,人们就难于领会它的含义,因此数据流图应该分层,并且在功能级数据流图细化后得到的处理超过9个时,应该采用画分图的方法,也就是把每个主要功能都细化为一张数据流分图,而原有的功能级数据流图用来描绘系统的整体逻辑概貌。 5、什么是数据字典?它的用途是什么?它包括哪四类元素的定义?(元素定义:数据流、数据流分量(即数据元素)、数据存储、处理) 6、成本估计的三种技术 代码行技术、任务分解技术、自动估计成本技术 第三章需求分析 1、需求分析的基本任务是什么?主要包括哪几项? (任务是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统“做什么”的问题)主要包括:确定对系统的综合要求、分析系统的数据要求、导出系统的逻辑模型、修正系统开发计划。 2、需求分析的结果以软件需求规则说明书的形式提交 3、需求分析应该建立三种模型,分别是数据模型、功能模型和行为模型。 4、实体-联系图是用于建立数据模型的图形。 5、数据模型包括三种相互关联的信息:数据对象、数据对象的属性及数据对象彼此之间相互连接的关系。

软件工程期末复习知识点整理

复习整理 一、绪论 1.软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 ●是指导计算机软件开发和维护的一门工程学科; ●采用工程化的原理及方法对软件进行计划、开发和维护; ●把证明正确的管理技术和最好技术综合运用到软件开发中; ●研究经济地开发出高质量的软件方法和技术; ●研究有效维护软件的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。

⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1) 过程式编程范型:把程序理解为一组被动的数据和一组能 动的过程所构成;程序=数据结构+算法;着眼于程序的过程和基本控制结构,粒度最小 (2) 面向对象编程范型:数据及其操作被封装在对象中;程序 =对象+消息;着眼于程序中的对象,粒度比较大 (3) 基于构件技术的编程范型:构件是通用的、可复用的对象 类;程序=构件+架构;眼于适合整个领域的类对象,粒度最大 二、软件生存周期及软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么, 有哪几个主要活动 ●定义:一个软件从开始立项起,到废弃不用止,统称为软件的 生存周期 ●目的:软件生存周期划分为计划、开发和运行3个时期;把整 个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的 任务,就能够化简每一步的工作内容,使因为软件规模而增长 而大大增加了软件复杂性变得较易控制和管理。 ●主要活动:需求分析、软件分析、软件设计、编码、软件测试、 运行维护(P19) 2、软件生命周期划分为哪几个阶段

辽师软件工程期末复习题

说明: 以下试题虽然经过多次整理,但由于时间有限,存在错误或不足之处在所难免。同学们在阅读和使用过程中如发现问题,请你在课程评价的“建议”中指出,具体方法是: 写明大小题号:问题所在;正确内容。 在此谢谢你提供的方便和指正。 一、概念题 1、软工程:是1)将系统性的、规范化的、可定量的方法应用于软件的开发、 运行和维护,即将工程化应用到软件上;2)对1)中所述方法的研究。 2、软件:是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。 3、软件危机:是指在计算机软件的开发和维护过程中遇到的一系列严重问题。 4、软件过程:是软件工程人员为了获得软件产品而在软件工具的支持下实施的 一系列软件工程活动。 5、基线:是已经通过了正式复审的规格说明或中间产品,它可以作为进一步开 发的基础,并且只有通过正式的变化控制过程才能改变。 6、软件配置项:是为配置管理而作为单独实体处理的一个工作产品或软件。 7、对象:是系统中用来描述客观事物的一个实体,它是构成系统给的一个基本 单位,有一组属性和对这组属性进行操作的一组服务组成。 8、软件过程模型:是描述软件过程的整体框架,它是软件过程的一种抽象表示。 9、类:是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提 供了统一的抽象描述,其内部包括属性和服务两个主要部分。 10、实体类:用于描述必须存储的信息及其相关行为,它是对系统核心信息的建 模,通常这些信息需要长久地保存。 11、版本:是确定在明确定义的时间点上某个配置项的状态。

12、耦合度:是表示两个子系统之间的关联程度。当一个子系统发生变化时对另 一个子系统的影响很小,则称它们是松散耦合的;反之,如果变化的影响很大时,则称它们是紧密耦合的。 13、软件需求:1)用户解决问题或达到目标所需要的条件或能力。2)系统或系 统部件要满足合同、标准、规范或其他正式规定文档所需要具有的条件或能力。3)一种反映上面1)或2)所描述的条件或能力的文档说明。 14、软件实现:是软件产品由概念到实体的一个关键过程,它将详细设计的结果 翻译成用某种程序设计语言编写的并且最终可以运行的程序代码。 15、内聚性:是子系统内部的相关程度。当子系统中彼此相关的多个对象执行类 似的任务时,则认为该子系统是高内聚的;反之,当子系统内的多个对象彼此不相关时,则认为是低内聚的。 16、软件验证:是指试图证明在软件生存期各个阶段,软件产品或中间产品是否 能够满足客户需求,包括逻辑协调性、完备性和正确性。 17、软件测试:广义上讲,测试是指软件产品生存周期内所有的检查、评审和确 认活动。狭义上讲,测试是对软件产品质量的检查和评价,它一方面检查软件产品中存在的质量问题,同时对产品质量进行客观的评价。 18、软件再工程:是以系统理解为基础,结合逆向工程、重构和正向工程等方法, 将现有系统重新构造成为新的形式。 19、软件确认:是一系列的活动和过程,其目的是保证软件产品能够符合其描述 要求。 20、软件维护:是指在软件运行或维护阶段对软件产品所进行的修改,做这些修 改时可能改正软件中的错误,也可能是增加新的功能以适应新的需求,但是

软件工程期末复习题参考答案

软件工程期末复习题 选择题 1.软件设计中划分模块的一个准则是(C)。 A低内聚低耦合 B低内聚高耦合 C高内聚低耦合 D.高内聚高耦合 2.(A)是用户和设计交换最频繁的方法。 A、原型化方法 B、瀑布模型法 C、螺旋模型方法 D、构件组装模型 3.试判断下列叙述中,哪个些是正确的(C)。 a、软件系统中所有的信息流都可以认为是事务流 b、软件系统中所有的信息流都可以认为是变换流 c、事务分析和变换分析的设计步骤是基本相似的 A、a B、b C、c D、b和c 4.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C) A、硬件环境 B、软件开发的环境 C、软件开发工具和软件开发的环境 D、开发人员的素质 5.20世纪50年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言(D) A、PASCAL B、VISUAL BASIC C、C++

D、汇编语言 6.软件测试的目的是?(D) A.软件的正确性 B.找出软件系统中存在的所有错误 C.证明软件系统中存在错误 D.尽可能多的发现软件系统中的错误 7.使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。 A、程序的内部逻辑 B、程序的复杂程度 C、该软件的编辑人员 D、程序的功能 8.软件维护工作的最主要部分是(C)。 A、纠正性维护 B、适应性维护 C、完善性维护 D、预防性维护 9.PDL是(B)语言。 A.高级程序设计语言 B、伪码式 C、中级程序设计语言 D、低级程序设计语言 10.软件的结构化设计(SD)方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是要建立(C)。 A、软件结构 B、软件过程 C、软件模型 D、软件模块 11.在数据流图中,○(椭圆)代表(B) A、数据流 B、转换 C、数据源 D、外部实体

软件工程期末复习重点

1、什么是软件工程 在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。 2、软件生存周期分哪几个阶段分别简述各个阶段的任务。 答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。 A 计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机 系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。 B 需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界 面等要求,生成软件需求规约。 C 软件设计只要解决待开发软件“怎么做”的问题。软件设计通常可分为系统设计和详细 设计。系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构。详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等。 D 编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。 E测试阶段的任务是发现并纠正软件中的错误和缺陷。测试主要包括单元测试、集成测试、确认测试和系统测试。 F软件完成各种测试后就可交付使用,在软件运行期间,需对投入运行的软件进行维护,即可发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时,对软件进行修改。 3、简述各类软件过程模型的特点。 答:典型的软件过程模型有:瀑布模型、演化模型(增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。 A瀑布模型中,上一阶段的活动完成并经过评审后才能开始下一阶段的活动,其特征是: 接受上一阶段活动的结果作为本阶段活动的输入; 依据上一阶段活动的结果实施本阶段应完成的活动; 对本阶段的活动进行评审; 将本阶段活动的结果作为输出。 B 增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件 的一个可发布的增量版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。 C 原型方法从软件工程师与客户的交流开始,其目的是定义软件的总体目标,标识需求。然 后快速制定原型开发的计划,确定原型的目标和范围,采用快速设计的方式对其建模,并构建模型。被开发的原型应交付给客户使用,并收集客户的反馈意见,这些反馈意见可在下一

河北工业大学软件工程期末复习

软件工程期末复习总结 第一讲概述(选择U填空U简答) 1.1 软件工程的研究内容 软件工程要考虑专业软件开发所需要的理论、方法和工具----工程技术问题 软件工程要考虑如何有效的在软件开发中利用有限的成本资源----工程管理的问题 1.2 什么是软件? 软件包括:---软件的内涵 ①能够提供客户所需功能与性能的计算机程序; ②使程序能够适当的操作信息的数据结构; ③用以描述程序开发过程及使用的文档。 软件产品可以为一个特定的用户设计开发,也可以为某一类通用的市场设计开发。 软件产品可以分成: 一个新的软件并不一定是全新开发,可以由现有软件或可复用软件成分配置形成。 1.3 什么是软件工程? 软件工程是涉及软件生产各个方面的一门工程学科 软件工程涉及软件生命周期的各个方面,从软件需求的确定到软件退役。 软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件;(2)研究(1)中的方法. ——IEEE[IEE93] 1.4 什么是成功的软件项目 一个成功软件项目的三个要素包括: 按时交付不超预算满足用户要求。 1.5 软件过程与软件生命周期的相关概念 软件过程是指开发或制作软件产品的一系列活动及其成果. 所有的软件过程中都包括四个基本活动:(填空) 1. 描述( Specification)- 系统应该提供的功能及其开发约束; 2. 开发( Development)- 软件产品的生产过程; 3. 有效性验证(Validation )- 检验软件产品是否满足了客户的需要; 4. 进化( Evolution )- 按照用户的变更要求不断的改进软件。 软件生命周期是软件过程的另一种形象描述,通常包括需求定义、分析与描述、软件设计、实现、测试、维护与退役等活动。 1.6什么是优良软件的属性? P8 (填空U选择) 优良的软件应能交付相应的功能与性能,而且应具有良好的可维护性、可依赖性、有效性和可用性:(选择题,考法内涵匹配) 可维护性(Maintainability) Software must evolve to meet changing needs; 可依赖性(Dependability) Software must be trustworthy;

软件工程期末复习资料非常全

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.购买大多数计算机系统所需的硬件比软件更昂贵 8.Ariane 5火箭发射失败的事例告诉我们 A.(2)软件后备系统可以通过复制生成 B.(3)软件重用必须重新进行系统论证和系统测试 C. 选项(1)和(3) D.(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制 9.软件危机的主要原因是 A.软件本身的特点及开发方法。 B.软件工具落后。 C.软件生产能力不足。 D.对软件的认识不够。 10.下面的描述正确的是 A.软件质量是在开发过程中逐渐构建起来的。

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