软件工程复习资料【整理】

合集下载

软件工程复习资料精选全文完整版

软件工程复习资料精选全文完整版

可编辑修改精选全文完整版一、单选题(共20题,40分)1、使用数据流图,并不断细化的需求获取方法是()。

(2.0)A、简易的应用规格说明B、面向数据流自顶向下逐步求精C、访谈D、快速原型法正确答案: B2、Z语言是以()为基础的形式化规格说明语言。

(2.0)A、微积分B、概率C、图形D、一阶谓词演算正确答案: D3、HIPO是指(2.0)A、层次输入处理输出图或表B、层次功能结构图C、功能结构图D、输入处理输出图或表正确答案: A4、高铁调用系统最适宜采用()方法。

(2.0)A、有穷状态机B、 Petri网C、 Z语言D、一阶线性时态逻辑正确答案: B5、假设学生年龄的成绩输入范围为18-25,则根据等价类划分技术,下列划分正确的是()。

(2.0)A、可划分为2个有效等价类,2个无效等价类B、可划分为1个有效等价类,2个无效等价类C、可划分为2个有效等价类,1个无效等价类D、可划分为1个有效等价类,1个无效等价类正确答案: B6、用于并发系统,解决定时问题的形式化方法是()。

(2.0)A、 VDMB、 Z语言C、 Petri网D、一阶线性时态逻辑正确答案: C7、软件生命周期中所花费费用最多的阶段是(2.0)A、需求分析B、软件总体设计C、软件维护D、软件实现正确答案: C8、软件质量保证措施SQA不包括:(2.0)A、复审或评审B、软件测试C、程序正确性证明D、软件代码编写正确答案: D9、希望确定软件实现的功能是否与需求规格说明书一致,需进行()。

(2.0)A、单元测试B、有效性测试C、确认测试D、集成测试正确答案: C10、总体设计不包括:(2.0)A、体系结构设计B、数据库设计C、模块内算法设计D、逻辑数据结构设计正确答案: C11、关于类和对象的说法,正确的是(2.0)A、一个类只能有一个角色B、类的命名必须用动词C、类的所有对象都具有相同的属性和操作D、类是对象的实例,对象是类的抽象正确答案: C12、数据字典的基本功能是(2.0)A、数据库设计B、数据通信C、数据定义D、数据维护正确答案: C13、软件需求规格说明的内容不应该包括(2.0)A、主要功能B、算法的描述C、用户界面及其运行环境D、软件性能正确答案: B14、增量模型在添加新的模块时,有一个要求是()(2.0)A、需要更多的测试B、有足够的开发人员C、软件体系结构开放D、各个模块都要进行评审正确答案: C15、在软件详细设计过程中不采用的工具是(2.0)A、判定表B、PDLC、程序流程图D、DFD正确答案: D16、软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试(2.0)A、结构合理性B、软件外部功能C、程序正确性D、程序内部逻辑正确答案: B17、耦合是模块之间的相对独立性的度量。

软件工程复习资料

软件工程复习资料
8. 关于白盒法覆盖程度的论述中正确的是()
A、语句覆盖:选择测试用例使程序中每条语句至少被执行一次 B、判定覆盖:选择测试用例使程序中每个判定至少都获得一次“真”值和一次“假”值 C、条件覆盖:选择测试用例使每个条件都满足 D、条件组合覆盖:将所有的判定条件都组合起来执行 答案: A B
9. 以下()不属于结构化流程图
A、运行程序并分析运行结果 B、桌前检查与代码会审 C、数据流分析图 D、调用图
答案: B C D
15. 下面()属于可复用的软件级别。
A、代码的复用 B、设计结果的复用 C、分析结果的复用 D、测试信息的复用
答案: A B C D
16. 黑盒测试着重测试软件功能,下列测试法中属于黑盒测试技术的有()。
3. 面向对象方法学的出发点和基本原则是什么?
答案: 面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世 界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一 致。
3. 软件原型
答案: 软件原型是在软件系统开发过程中,可快速建立的,旨在演示目标系统主要功能的可运行的程序。
4. 继承
答案: 广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象的软件技术中,继承是子类自动 地共享基类中定义的数据和方法的机制。
5. 有穷状态机
答案: 在软件工程领域,有穷状态机可以准确地描述一个系统,它是表达规格说明的一种形式化说明方法。一个有穷状态机包含5 个部分:状态集、输入集、由当前状态和当前输入确定下一个状态的转换函数、初始态和终态集。
A、等价划分法 B、平行运行法 C、边界值分析法 D、错误推测法

软件工程复习资料

软件工程复习资料

一、单选题1. 为了提高测试的效率,应该( D )A、随机地选取测试数据B、取一切可能的输入数据作为测试数据C、在完成编码后制定软件的测试计划D、选择发现错误可能性大的数据作为测试数据2. 与设计测试数据无关的文档是( D ) A、需求说明书B、设计说明书C、源程序D、项目开发设计3. 结构设计是一种应用最广泛的系统设计方法,是以( B )为基础、自顶向下、逐步求精和模块化的过程A、数据流B、数据流图C、数据库D、数据结构4. 概要设计的结果是提供一份( A ) A、模块说明书B、框图C、程序D、数据结构5. 需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出( B )A、模块说明书B、软件规格说明书C、项目开发计划D、合同文档6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的( D )A、1/6 B、1/5 C、1/4 D、1/37. PAD(Problem Analysis Diagram)图是一种( B )工具。

A、系统描述B、详细设计C、测试D、编程辅助8. 排错一般是在测试发现错误后进行,其中找到错误位置占排错总工作量的( A )。

A、95%B、5%C、50%D、20%9.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的( A ) 。

A、总貌B、细节C、抽象D、软件的作者10. 分析员是( B )。

A、用户中系统的直接使用者B、用户和软件人员的中间人C、软件的编程人员D、用户和软件人员的领导11.在软件开发中,有利于发挥集体智慧的一种做法是( A )。

A、设计评审B、模块化C、主程序员制D、进度控制12.在开发软件时,( A )可用来提高程序员的工作效率。

A、程序开发环境B、操作系统的作业管理功能C、编译程序的优化功能D、并行运算的大型计算机二、多选题1. 数据流图的3种成分为①、②和③,②是数据流中①的变换,③用来存储信息,④对①、②、③进行详细说明,用⑤对③进行详细描述。

软件工程复习资料

软件工程复习资料

1、 软件产品的概念、特征P1-3软件就是一个信息转换器,它的功能不外是产生、管理、获取、修改、显示或转换信息。

它是开发和运行产品的载体,是计算机控制(操作系统)、信息通信(网络)的基础,也是创建和控制其他软件(软件工具和开发环境)的基础。

软件产品的特征:(1) 软件是一种逻辑实体,具有抽象性。

(2) 软件的生产与硬件不同。

(3) 软件产品不会“磨损” 2、 软件危机的原因、解决的途经P5-7软件危机的原因:1)它的生产过程和产品都具有明显的“不可视”特征,这就导致在完成编码并且上机运行之前,对于软件开发过程的进展情况较难衡量;2)归于在计算机系统发展的早期,软件开发的“个体化”特点解决的途经:从管理层面上考虑,应当注意推广和使用在实践中总结出来的开发软件的成功的技术和方法,并且探索更好的、更有效的技术和方法,注意积累软件开发过程中的经验数据财富,逐步消除在计算机系统早期发展阶段形成的一些错误概念和做法。

3、 软件工程的定义、要素、基本原则P8-9 软件工程是指导软件开发和维护的工程学科。

将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程。

即将工程化方法应用于软件开发与维护过程中。

软件工程应当包括三个要素:方法、工具和过程。

基本原则:(1) 用分阶段的生命周期计划严格管理软件工程过程。

(2) 坚持在软件工程过程中进行阶段评审。

(3) 实行严格的产品控制。

(4) 采用现代的开发技术进行软件的设计与开发。

(5) 工作结果应当是能够清楚地审查的。

(6) 开发小组的人员应该“少而精”。

(7) 承认不断改进软件工程实践的必要性4、 软件工程过程的层次划分、软件工程的四种基本活动P10-11软件工程过程的层次划分: 软件工程的四种基本活动:(1) 软件规格说明(2) 软件开发(3) 软件确认(4) 软件演进5、 软件工程过程模型的概念及几种常见的软件过程模型P12-18软件工程过程模型的概念:用以覆盖软件开发过程中的基本活动,确定所涉及的过程、方法、工具的策略称为软件工程过程模型。

软件工程复习资料-完整版

软件工程复习资料-完整版

软件工程复习资料-完整版一、概述软件工程是一门关于开发、维护和管理软件的综合学科。

它涵盖了软件开发的各个阶段,包括需求分析、设计、编码、测试和维护。

软件工程的目标是提供高质量的软件,满足用户的需求,同时将开发过程控制在预定的时间和预算范围内。

二、软件生命周期1. 需求分析阶段在需求分析阶段,开发团队与用户沟通,了解用户的需求和期望。

通过需求分析,确定软件的功能和性能要求,制定详细的需求规格说明。

2. 设计阶段在设计阶段,团队根据需求规格说明,设计软件的整体架构和模块。

设计阶段包括概要设计和详细设计,概要设计主要确定软件的整体结构,详细设计则更加具体,包括模块的功能和接口设计。

3. 编码阶段在编码阶段,根据详细设计,实现软件的各个模块。

编码时应遵循编程规范,确保代码的可读性和可维护性。

同时,要进行单元测试,确保每个模块的功能正确。

4. 测试阶段在测试阶段,对软件进行不同层次的测试,包括单元测试、集成测试和系统测试。

单元测试测试各个模块的功能,集成测试测试模块之间的接口,系统测试测试整个系统的功能和性能。

5. 部署和维护阶段在软件开发完成后,需要将软件部署到目标环境中,并进行用户培训。

同时,还需要对软件进行维护和升级,以解决出现的问题和满足用户的需求变化。

三、软件工程的原则1. 模块化将软件划分为多个模块,每个模块负责特定的功能。

模块化能够提高软件的可维护性和复用性,同时有利于团队的协作开发。

2. 可伸缩性软件应该具备可伸缩性,能够满足不同规模和需求的用户。

在设计和实现软件时,需要考虑未来的扩展和升级,保证软件的灵活性。

3. 可测试性软件应该具备可测试性,方便进行各个阶段的测试。

在设计和编码时,需要考虑如何进行自动化测试,提高测试的效率和覆盖率。

4. 可维护性软件应该具备可维护性,方便对软件进行改进、修复和升级。

在设计和编码时,需要遵循良好的编程规范,提高代码的可读性和可维护性。

5. 文档化软件开发过程需要进行详细的文档记录,包括需求文档、设计文档、测试文档等。

软件工程复习资料-完整版

软件工程复习资料-完整版

一、选择题:1、用例图中,用来表示用例的符号为( B ) 。

2、协作图中包含的元素包括(A ) 。

A. 对象 B. 链 C. 激活 D. 消息3、在类图中,哪种关系表达整体与部分的关系( D ) 。

A .泛化 B. 实现 C. 依赖 D. 聚合4、下列各种图形符号中,用来表示组成关系的符号为 (B )。

A. B. C. D.5 、(A )工具在软件的详细设计中不能使用。

A . DFD B. N-S 图 C. 流程图 D. PDL6 、 “软件危机”是指 (C )。

A. 计算机病毒的出现B. 利用计算机进行经济犯罪活动C. 软件开发和维护中出现的一系列问题D. 人们过分迷恋计算机系统7 、 快速原型是利用原型辅助软件开发的一种新思想,它是在研究 (A )的方法和技术中产生 的。

A. 需求阶段B. 设计阶段C. 测试阶段D. 软件开发的各个阶段8、从严格意义上讲,下列 4 个选项中属于顺序图的元素是(ABCD ) 。

A.对象B. 参与者C. 消息D. 激活9、下列 UML 图形中, (ABCD )属于 UML 的动态视图。

A. 协作图B. 状态图C. 活动图D. 顺序图10、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是( D ) 。

A. 数据库设计B. 数据通信C. 数据关系描述D. 数据定义11、详细设计与概要设计衔接的图形工具是 (D )。

A. DFD 图B. 程序图C. PAD 图D. SC 图12 、UML 中,大多数建模者把节点分为(AC )A . 设备 B. 构件 C. 处理器 D. 显示器13 、(C)是一种特殊形式的状态机,用于对计算流程和工作流程建模。

A .时间图 B. 流程图 C. 活动图 D. 状态图14 、(A )描述从状态到状态的控制流程,常用来对系统的动态特征进行建模。

A. 状态图B. 序列图C. 协作图D. 活动图15、下列特点属于描述用例的特点的是( D ) 。

软件工程知识点

软件工程知识点

软件工程知识点1.软件工程概述1.1 软件工程定义1.2 软件工程的目标和原则1.3 软件工程的重要性1.4 软件工程发展历程2.软件过程模型2.1 瀑布模型a. 瀑布模型的特点b. 瀑布模型的优缺点c. 瀑布模型的应用场景2.2 敏捷开发模型a. 敏捷开发模型的特点b. 敏捷开发模型的优缺点c. 敏捷开发模型的应用场景2.3 增量模型a. 增量模型的特点b. 增量模型的优缺点c. 增量模型的应用场景3.软件需求工程3.1 软件需求定义与分类3.2 软件需求分析技术a. 面向对象分析b. 数据流图c. 数据字典3.3 软件需求规格说明3.4 软件需求验证与确认4.软件设计4.1 结构设计a. 结构设计的原则b. 结构设计的方法4.2 行为设计a. 行为设计的原则b. 行为设计的方法4.3 界面设计a. 界面设计的原则b. 界面设计的方法5.软件构建5.1 编码规范5.2 软件编码技术a. 面向对象编程b. 结构化编程c. 测试驱动开发5.3 软件测试a. 软件测试的基本概念b. 软件测试的方法5.4 软件集成与发布6.软件项目管理6.1 软件项目计划a. WBS(工作分解结构)b. 进度计划6.2 软件项目团队管理a. 组织结构b. 项目团队沟通与协作7.软件质量保证7.1 质量基础概念7.2 软件质量评估7.3 软件配置管理7.4 软件过程改进8.软件维护与升级8.1 软件维护类型8.2 维护阶段的活动8.3 软件升级与迭代附件:1.示例项目需求规格说明书2.示例项目设计文档3.示例代码库法律名词及注释:1.《著作权法》:保护软件著作权的法律法规。

2.《商标法》:保护软件商标权的法律法规。

3.《计算机软件保护条例》:明确了计算机软件的保护范围和保护措施。

软件工程复习资料

软件工程复习资料

软件⼯程复习资料《软件⼯程》复习资料1.解释什么是软件⼯程?运⽤⼯程学的原理和⽅法来组织和管理软件的⽣产和管理,以保证软件产品开发、运⾏和维护的⾼质量和⾼⽣产率。

2.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的⼀系列严重的问题。

它包含两个⽅⾯的问题:如何开发软件,以满⾜对软件⽇益增长的需求,如何维护数量不断膨胀的已有软件。

3.简述软件与硬件的区别。

硬件是计算机系统中的物理部件,⽽软件则是计算机系统中的逻辑部件。

4.简述软件⼯程专家B.W.Boehm提出的软件⼯程七条原理。

七条基本原理:(1)⽤分阶段的⽣命周期计划严格管理;(2)坚持进⾏阶段评审;(3)实⾏严格的产品控制;(4)采⽤现代程序设计技术;(5)结果应能清楚地审查;(6)开发⼩组的⼈员应该少⽽精;(7)承认不断改进软件⼯程实践的必要性。

5.软件⼯程的三个要素的是什么?⽅法、⼯具和过程(其中⽅法是完成软件开发的各项任务的技术⽅法,回答“怎样做”的问题;⼯具是为运⽤⽅法⽽提供的⾃动或半⾃动的软件⼯程⽀撑环境;过程是为了获得⾼质量的软件所需要完成的⼀系列任务的框架,它规定了完成各项任务的⼯作步骤。

)6.⼀个软件的⽣命周期分为哪⼏个阶段?软件定义,软件开发和运⾏维护7.什么是软件过程?主要有那些过程模型?1)、软件过程是为了获得⾼质量软件所需要完成的⼀些列任务的框架,它规定了完成各项任务的⼯作步骤。

2)、主要有:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。

8.简述瀑布模型的特点。

1)、阶段间具有顺序性和依赖性,2)、推迟实现的观点,3)、保证质量的观点9.简述原型法的基本思想。

所谓快速原型是快速建⽴起来的可以在计算机上运⾏的程序,它能够完成的功能往往是最终产品能完成的功能的⼀个⼦集。

10.Rational统计过程的“最佳实践”指的是什么?迭代式开发、管理需求、使⽤基本构件的体系结构、可视化建模、验证软件质量、控制软件变更。

软件工程复习资料整理

软件工程复习资料整理

了解典型的普适性活动
适用于任何一个框架活动:
软件项目跟踪和控制;风险管理;软件质量保证;正式技术评审;测量;软件配置
管理;可复用管理;工作产品的准备和生产
了解什么是 CMMI 能力成熟度模型集成( 力
CMMI ),用于预测软件开发组织所开发的系统和软件工程能
(5 个能力成熟等级) CMMI 定义了每一个过程域的“特定目标” ,以及达到该目标所需的“特定实践” 。
问题。
产生软件危机的原因:
客观原因:
软件缺乏“可见性” ,管理和控制其开发过程相对困难
软件大多规模庞大,而复杂性随规模以指数速度上升
主观原因:
错误的认识和做法
忽视软件需求分析的重要性—急于求成,仓促上阵
认为软件开发就是写程序—编程只占全部工作量的
10%--20%,软件配置主要包括程序、
文档和数据
轻视软件维护—维护费用占总费用的 55%--70%
动态系统开发;
动态系统开发 (Dynamic System Development Method, DSDM )--- 通过在可控项目环
境中使用增量原型开发,模式完全满足对时间有约束的系统的构建和维护。
特点:在每个增量的环节,并不完全完成任务。留下
20%在以后完成。
Crystal 目的是开发一种提倡“机动性的”的软件开发方法 特征驱动开发
软件神话一些错误认识 管理神话: 我们已经有了一本写满软件开发标准和规程的宝典。它无所不包,囊括了我们可能 问到的所有问题 如果我们未能按时完成计划,我们可以通过增加程序员人数而赶上进度 如果将一个软件外包给另一家公司,则我们可以完全放手不管。 用户神话: 有了对项目目标的大概了解,便足以开始编写程序,我们可以在之后的项目开发过 程中逐步了解细节。 虽然项目需求不断变更,但是因为软件是弹性的,因此可以很容易地适应变化 从业者神话: 当我们完成程序并将其交付使用之后,我们的任务就完成了。 直到程序开始运行,才能评估其质量 对于一个成功的软件项目,可执行程序是惟一可交付的成果。 软件工程将导致我们产生大量无用文档,并因此降低工作效率。

软件工程复习资料整理

软件工程复习资料整理

试有很大帮助,而且能够更快、更有效地发现缺陷,确保软件测试的系统性和全面性,在测
试的广度和深度上达到所期望的目标。
12.请说明集成测试、系统测试和验收测试有什么不同?
集成测试集中于模块的组装;系统测试确保整个系统与系统的功能需求和非功能需求保
持一致;验收测试是用户根据验收标准,在开发环境或模拟真实环境中执行的可用性、功能
详细设计:详细设计阶段就是为每个模块完成的功能进行具体的描述,要把功能描述转变为 精确的、结构化的过程描述。
9.详细设计的基本任务是什么?有那几种描述方法?
详细设计的基本任务:(书)不是编写代码,而是要为编写程序代码设计“图纸”,由程序员
按“图纸”用某种高级程序设计语言编写程序代码。
详细设计的基本任务:(PPT)从软件开发的工程化观点来看,在使用程序设计语言编制程序
以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的
表达。
描述方法:程序流程图(框图)、盒图(N-S 图)、问题分析图(PAD 图)、判定表、过程设
计语言、模块开发文件夹
10.模块的内聚有哪几种?模块的耦合有哪几种?
内聚:

模块内聚性

巧合内聚 逻辑内聚 时间内聚 过程内聚 通信内聚 顺序内聚 功能内聚
2.什么是软件工程?软件工程的目标是什么?软件工程的内容是什么? 软件工程:(书)采用工程的概念、原理、技术、方法来开发与维护软件,把经过时间考验 而证明正确的管理方法和先进的软件开发技术结合起来,运用到软件开发和维护过程中,来 解决软件危机。 软件工程:(1983 年 IEEE)对软件开发、运行、维护、消亡的系统研究方法。 软件工程:(1993 年 IEEE)①将系统化的、规范的、可度量的方法应用于软件的开发、运行 和维护过程,也就是说将工程化应用于软件中;②研究①中提到的途径。 软件工程目标:软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件, 其主要目标如下:

软件工程复习资料(同等学力硕士)

软件工程复习资料(同等学力硕士)

第一章软件工程概论一、填空题⑴软件是计算机系统中与硬件相互依存的部分,它是包括(A)、(B)、及(C)的完整集合。

其中,(A)是按事先设计的功能和性能要求执行的指令序列,(B)是使程序员能够正确操纵信息的数据结构,(C)是与程序开发、维护和使用有关的图文材料。

①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表⑵开发软件时,对于提高软件开发人员工作效率至关重要的是(A)。

软件工程中描述软件生存周期的瀑布类型一般包括计划、(B)、设计、编码、测试、维护等几个阶段。

其中,设计阶段在管理上可以依次分成(C)和(D)两个步骤。

A:①程序开发环境②操作系统的资源管理功能③开发程序人员数量④计算机的并行处理能力B:①需求分析②需求调查③可行性分析④问题定义C、D:①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计⑶有人将软件的发展过程划分为四个阶段,第一阶段(20世纪50年代),称为程序设计的“原始时期”。

这时既没有(A),也没有(B),程序员只能用机器指令编写程序。

第二阶段(20世纪60年代),称为“基本软件期”。

出现了(A),并逐渐普及。

随着(B)的发展,编译技术也有较大的发展。

第三阶段(20世纪60年代末至70年代中期)称为“程序设计方法时代”。

这一时期,与硬件价格下降相反,软件开发费用急剧上升。

人们提出了(C)和(D)等程序设计方法,设法降低软件的开发费用。

第四阶段(20世纪70年代中期至今),称为“软件工程”时期。

软件开发技术不再仅仅是程序设计技术,而是包括了软件开发的各个阶段。

如(E)、(F)、编码、单元测试、综合测试、(G)及其整体有关的各种管理技术。

A、B、C、D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构化程序设计⑥数据库概念⑦固件⑧模块化程序设计E、F、G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图像处理二、简答题⑴软件工程过程有哪几种基本活动,试加以说明。

软件工程复习资料(整理)(精)

软件工程复习资料(整理)(精)

什么是软件?什么叫软件工程?它的目标是什么?软件:程序与文档。

定义一:应用于计算机软件的定义,开发和维护的一整套方法、工具、文档、实践标准和工序。

定义二:在软件设计、实现、检查、运行、维护各个过程中适用的立足于科学基础上的实用方法。

软件工程目标:用较少的投资获得高质量的软件。

什么是软件危机?主要表现?软件危机:在计算机软件的开发和维护过程中,所遇到的一系列严重问题,这一系列问题使软件产生了危机。

表现在:⑴对软件开发成本和进度的估计常常很不准确。

⑵用户易对“已完成的”软件系统产生不满。

⑶软件质量不可靠。

⑷软件常常是不可维护的。

⑸软件通常没有适当的文档资料。

⑹软件成本越来越高。

⑺软件开发生产率提高速度慢,跟不上发展。

可行性研究的目的是什么?用最小的代价在尽可能短的时间内确定问题是否能够解决。

若值得解,则推荐一个较好的方案,并制定一个初步的计划;若无可行解,则建议停止开发工程(以免浪费时间、人力、和金钱数据流图的基本要点是什么?描绘“做什么”,而不考虑“怎样做”。

软件生成期分几个阶段?几阶段的主要工作是?生命周期各阶段的基本任务:1、问题定义:要解决的问题是什么?2、可行性研究:问题是否有行得通的解决办法?3、需求分析:确定目标系统必须具备哪些功能。

4、总体设计:应如何解决这个问题。

5、详细设计:如何具体实现这个系统?6、编码和单元测试:写出正确的、容易理解的、容易维护的程序模块,并测试编写出的每一个模块。

7、综合测试:通过各种类型的测试使软件达到预定的要求。

8、软件维护:通过各种必要的维护活动使系统持久地满足用户的需要。

何为功能模块?设计模块?功能模块:在分析阶段由系统分析员对该系统应完成的功能进行规定的模块。

设计模块:在后面设计阶段对如何实现这些功能进行描述的模块。

HIPO PSL PAD SADT 中文意思SADT:结构分析设计方法。

PSL:问题说明。

PSA:问题说明分析器。

HIPO:H图加IPO,即层次图加输入/处理/输出图。

软件工程复习资料

软件工程复习资料

软件工程复习资料第一章:软件工程概述1. 计算机软件定义:计算机软件指计算机系统中的程序及文档。

程序是计算任务的处理对象和处理规则描述软件的发展:第一台计算机→高级语言→软件工程软件的特点:逻辑实体、被开发、无磨损和老化、硬件依赖、未自动化、成本昂贵、涉及社会因素现代软件 = 程序 + 软件工程现代软件企业 = 软件 + 商业模式软件构建管理、源代码管理、软件设计、测试、项目管理等是软件工程的核心,用户体验与用户界面是优化程序(算法,数据结构等)是基本功软件工程决定了软件的质量商业模式决定企业成2. 软件工程现代计算机软件的特殊性①非连续性人类通常容易理解连续事件,但软件系统不具备该特性②易变性修改软件代码相对容易,但代码的更改会带来意想不到的问题,如何正确地修改软件是一件很困难的事情③服从性软件不独立存在,需服从系统中其它组成部分的要求现代计算机软件的特殊性(对软件工程师而言)①许多不同的程序设计语言,软件工具和开发平台②许多不同的软件开发流程③软件团队中存在许多不同的角色软件工程定义:1968年NATO(北大西洋公约组织)会议上首次提出定义IEEE:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;②对在①中所述方法的研究《计算机科学技术百科全书》中定义:应用计算机科学、数学及管理科学等原理,开发软件的工程软件工程框架软件工程:创造“足够好”的软件目标:生产具有正确性、可用性、开销合宜的产品过程:如何生产满足需求且达到目标的软件产品原则:适宜的开发模型、合适的设计方法、工程支撑、软件工程管理生命周期(6个阶段):系统工程、需求分析、设计、编码、测试、运行和维护3. 软件过程及其模型能力成熟度模型CMM/CMMI卡内基梅隆软件工程研究所(SEI)瀑布模型(P16)优点结构简单明了;历史较长(70年代W. Royce提出)、应用面广泛、为广大软件工作者所熟悉;已有与之配套的一组十分成熟的开发方法和丰富的支撑工具缺点缺乏灵活性,难以适应需求不明确或需求经常变化的软件开发开发早期存在的问题往往要到交付使用时才发现,维护代价大原型模型(P18)设计者为了及早发现系统难点,或从用户处取得反馈意见,而构造的一个工作演示。

软件工程复习资料(整理)

软件工程复习资料(整理)

什么是软件?什么叫软件工程?它的目标是什么?软件:程序与文档。

定义一:应用于计算机软件的定义,开发和维护的一整套方法、工具、文档、实践标准和工序。

定义二:在软件设计、实现、检查、运行、维护各个过程中适用的立足于科学基础上的实用方法。

软件工程目标:用较少的投资获得高质量的软件。

什么是软件危机?主要表现?软件危机:在计算机软件的开发和维护过程中,所遇到的一系列严重问题,这一系列问题使软件产生了危机。

表现在:⑴对软件开发成本和进度的估计常常很不准确。

⑵用户易对“已完成的”软件系统产生不满。

⑶软件质量不可靠。

⑷软件常常是不可维护的。

⑸软件通常没有适当的文档资料。

⑹软件成本越来越高。

⑺软件开发生产率提高速度慢,跟不上发展。

可行性研究的目的是什么?用最小的代价在尽可能短的时间内确定问题是否能够解决。

若值得解,则推荐一个较好的方案,并制定一个初步的计划;若无可行解,则建议停止开发工程(以免浪费时间、人力、和金钱)数据流图的基本要点是什么?描绘“做什么”,而不考虑“怎样做”。

软件生成期分几个阶段?几阶段的主要工作是?生命周期各阶段的基本任务:1、问题定义:要解决的问题是什么?2、可行性研究:问题是否有行得通的解决办法?3、需求分析:确定目标系统必须具备哪些功能。

4、总体设计:应如何解决这个问题。

5、详细设计:如何具体实现这个系统?6、编码和单元测试:写出正确的、容易理解的、容易维护的程序模块,并测试编写出的每一个模块。

7、综合测试:通过各种类型的测试使软件达到预定的要求。

8、软件维护:通过各种必要的维护活动使系统持久地满足用户的需要。

何为功能模块?设计模块?功能模块:在分析阶段由系统分析员对该系统应完成的功能进行规定的模块。

设计模块:在后面设计阶段对如何实现这些功能进行描述的模块。

HIPO PSL PAD SADT 中文意思SADT:结构分析设计方法。

PSL:问题说明。

PSA:问题说明分析器。

HIPO:H图加IPO,即层次图加输入/处理/输出图。

软件工程复习资料

软件工程复习资料

1.什么是软件工程?他的基本原理是什么?1)软件工程是指导计算机软件开发和维护的工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济地开发出高质量的软件并有效地维护它。

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

2. 是什么导致了软件工程?主要是软件危机的出现导致了软件工程3. 通常我们所见的软件工程模型有哪些?瀑布模型、快速原型模型、增量模型(渐增模型)、螺旋模型、喷泉模型。

21.软件危机的现象:1)经费超出预算,项目一再拖延。

ﻩ2)不重视需求,开发的软件不能满足用户的要求,项目成功率低。

3)没有规范的软件工程方法,软件可维护性差,软件质量差,可靠性差。

ﻩ3)开发工具落后,手工方式,开发效率低。

22.软件工程的三要素1)“过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质量开发出软件。

2)“方法”为软件开发提供“如何做”的技术。

它涵盖了项目计划、需求分析、系统程序()实现、测试与维护灯一系列活动的做法。

3)“工具”可为过程和方法提供自动的或半自动的支持。

这些工具既包括软件,也包括硬件,软件工具包括编程、建模、管理等开发工具。

通过网络环境把这些软件工具集成起来搭建一个能够支持团队开发的平台,称为计算机辅助软件工程,即CASE。

C ASE集成了软件、硬件和()存放开发过程信息的软件工程数据库,形成了一个软件工程环境。

23.简述软件工程的目标,过程和原则ﻩ1)目标、过程和原则是一切工程的三维框架,,这里是以工程的观点来看待软件开发。

软件工程的目标:降低成本,及时交付高质量的软件产品。

ﻩ 实现目标的过程即完成产品加工的过程:包括:基本过程、支持过程和组织过程进行过程应遵守的原则:原则就是过程中的轨道约束,包括:选取适宜的开发范型、适合的设计方法、提供高质量的工程支持、重视开发过程的管理。

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

第一章:软件工程是:研究和应用如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即将工程化应用到软件上。

软件工程是一类求解软件的工程,它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量,降低成本的目的。

问答:①什么是软件危机?答:指的是计算机软件的开发和维护过程中所遇到的一系列严重问题。

这些问题不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件在不同程度地存在这些问题。

主要包含两方面的问题:1.如何开发软件来满足对软件日益增长的需求。

2。

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

②产生软件危机的原因?答:⑴项目没有被很好地理解;计划不周,最终导致进度拖延。

⑵没有充分的文档资料(documentation)⑶软件可靠性(reliability)缺少度量的标准,质量无法保证。

⑷软件难以维护(maintainability) 、不易升级(evaluability).③软件危机的典型表现:1.对软件开发成本和进度的估计常常很不准确。

2.用户对“已完成的”软件系统不满意的现象经常发生。

3.软件产品的质量往往靠不住。

4.软件常常是不可维护的。

5.软件通常没有适当的文档资料。

6.软件成本在计算机系统总成本中所占的比例逐年上升。

7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

③简述软件生命周期和各阶段的任务。

答:1.问题定义:明确“要解决的问题是什么?”【对客户进行访问调查,系统分析员写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要修改等到客户的确认】2.可行性研究:研究问题的范围,探索这个这个问题是否值得去解,是否有可行的解决办法。

3.需求分析:确定目标系统必须具有哪些功能。

系统分析员必须和客户进行配合交流,得出用户确认的系统逻辑模型,写出需求规格说明书。

4.总体设计:设计实现目标系统的几种可能性方案,分析优缺点,推荐最佳方案;制定出实现最佳方案的详细计划;设计程序的体系结构(确定模块组成和模块间的关系)。

5.详细设计:也称为模块设计。

把解法具体化,设计出程序的详细规格说明书。

详细设计每个模块,确定实现模块功能的算法和数据结构。

6.编码和单元测试:写出正确的容易理解、容易维护的程序模块。

7.综合测试:通过各类测试使软件达到预定的要求。

【集成测试和验收测试】8.软件维护:通过必要的维护活动使系统持久地满足用户的需要。

④维护活动有哪些?【选择题】1.改正性维护2.适应性维护3.完善性维护(最多)4.预防性维护(最少)⑤常用的软件模型及其特点。

【选择&填空&问答】1.瀑布模型:特点:⑴顺序性、依赖性⑵推迟程序的物理实现⑶质量保证的观点——阶段文档与评审的要求,利于尽早发现错误。

优点:每个阶段必须提供文档,且要求每个阶段的所有产品必须由SQA小组验证。

缺点:在开发早期,用户难以清楚地确定需求,需求的错误很难在开发后期纠正。

(因此,实际的瀑布模型是带“反馈环”的)这种模型几乎完全依赖规格说明文档,而客户无法理解和阅读这些文档,容易导致不能满足客户需求。

线性模型太理想化,太单纯,已不再适合现代软件的软件开发模式,几乎被业界抛弃。

但我们应该认识到,“线性”是人们最容易掌握并能熟练应用的思想方法。

2.快速原型:所谓快速原型是快速建立起来的可以在计算机上运行的程序,在功能上等价于产品的一个子集。

优点软件产品的开发基本上是线性顺序进行的。

(不带反馈环的)原因1.原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。

2.开发人员通过建立原型系统已经学到了许多东西(只少知道了“系统不应该做什么,以及怎样不去做不该做的事情”),因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。

用途判断客户的真正需求是什么一旦需求确定了,往往快速原型将被抛弃。

快速原型的内部结构并不重要,重要的是迅速构建原型,并迅速修改,以反映客户需要。

3.增量模型软件被作为一系列的增量构件来设计、实现集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成。

操作系统-调度程序可能形成一个构件,文件管理系统可能是一个构件;优点能在较短时间内向用户提交可完成部分工作的产品。

逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。

可维护性好。

困难每个附加的构件在并入现有的软件体系结构时,必须不破坏原来已构造好的东西。

软件体系结构必须是开放的。

(需要更精心的设计)4.螺旋模型螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动即:制定计划──确定软件目标,选定实施方案,弄清项目开发的限制条件;风险分析──分析所选方案,考虑如何识别和消除风险;实施工程──实施软件开发;客户评估──评价开发工作,提出修正建议。

优点对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险;更重要的是,在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。

限制只适用于大规模软件项目,特别是内部项目;软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险。

5.喷泉模型【迭代】--------迭代无缝的特性特点:面向对象范型中较多。

整个开发过程中都使用统一的软件概念“对象”。

每次反复都会增加或明确一些目标系统的性质,但却不是对先前工作结果的本质改动,这样就减少了不一致性,降低了出错的可能性。

为避免使用喷泉模型开发软件时开发过程过分无序,应该把一个线性过程作为总目标。

但是,同时也应该记住,面向对象范型本身要求经常对开发活动进行迭代或求精。

*****几种模型的优缺点比较******第二章:可行性分析是要决定“做还是不做”。

需求分析是要决定“做什么,不做什么”。

可行性研究:目标:用最小的代价在尽可能短的时间内确定问题是否能够解决。

有哪些步骤:①复查系统规模和目标②研究目前正在使用的系统③导出新系统的高层逻辑模型④进一步定义问题⑤导出和评价供选择的解法⑥推荐行动方针⑦草拟开发计划⑧书写文档提交审查数据流图数据自动第三章:需求分析①软件需求:需求分析是软件定义时期的最后一个阶段,他的基本任务是准确地回答“系统必须做什么”。

需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。

②需求分析的任务(过程)1.确定要求(1)功能要求系统必须做什么?(2)性能要求做得怎样?(3)运行要求运行环境、软硬件配置等。

(4)未来可能的扩充要求如3维虚拟现实的效果等等。

2.分析数据⑴建立概念模型(conceptual models):E-R Diagram⑵形象描绘数据结构:Data Hierarchy, Warnier Diagram, IPO⑶数据结构规范化(Normalization)3.导出逻辑模型DFD + DD + IPO4.修正计划:重估成本、进度等5.开发原型系统②需求错误的原因:1.缺乏足够的用户参与2.用户需求不断增加3.规格说明过于简单4.忽略了用户分类5.需求模棱两可6.添加不必要的特性③常用的需求获取方法:向系统相关者进行问卷调查主持与用户的面谈和讨论需求专题讨论会复查现在的报表、表格和过程描述观察商业过程和工作流应用用例建立原型③软件需求规格说明书的主要内容:⑴系统规格说明:系统概貌功能要求性能要求运行要求可能增加的要求DFD IPO ⑵数据要求:DD Hierarchy 或Warnier Diagram⑶用户系统描述——初步用户手册:从用户的观点考虑系统系统功能、性能使用与步骤等⑷修正的开发计划:成本估计资源使用计划进度计划④需求分析中用到的工具实体-联系图(ER图)数据字典数据流图状态转换图,即状态图层次方框图Warnier DiagramIPO图,即输入、处理、输出图判定表判定树⑤分析模型第五章总体设计①总体设计原理(原则)有哪些?1.模块化2.抽象3.逐步求精4.信息隐蔽和局部化5.模块独立②启发规则【选择题】尽可能减少高扇出结构,随着深度增大扇入。

如果一个模块的扇出数过大,就意味着该模块过分复杂,需要协调和控制过多的下属模块。

应当适当增加中间层次的控制模块【PPT5】③总体设计工具【应用题】结构图层次图④面向数据流的设计方法⑴变换流(Transform Flow) :事实上所有信息流都可归结为变换流⑵事务流(Transaction Flow) :当信息流具有明显的“发射中心”时,可归结为事务流。

第一步:DFD的分界,先分出I、P、O三块第二步:映射第三步:修改——本着高内聚、低耦合的原则。

第六章详细设计目标:确定应该怎样具体地实现所要求的系统,还不是具体的编写程序。

①详细设计的任务是?②有哪些描述方法(工具)?程序流程图盒图PAD图判定表判定树过程设计语言第七章①软件测试目标?②什么是集成测试?③不同集成测试策略的比较?。

相关文档
最新文档