软件工程复习提纲
软件工程重要考点复习提纲
CH11、软件危机概念软件危机是指在计算机软件开发和维护过程中所遇到的一系列严重问题。
2、软件危机体现在哪几方面?主要表现在软件的开发和维护两方面3、软件工程概念软件工程是知道计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
4、软件工程7条基本原理(1)用分阶段的生命周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用线代程序设计技术;(5)结果应能清楚地审查;(6)开发小组的人员应该少而精;(7)承认不断进取软件工程实践的必要性。
5、软件工程方法学包含的3个基本要素方法、工具和过程6、软件生命周期划分哪些阶段软件定义、软件开发和运行维护。
7、各阶段的基本任务软件定义:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。
软件开发:具体设计和实现定义的软件。
运行维护:使软件持久地满足用户的需要。
8、软件过程概念软件过程描述为了开发出客户需要的软件,什么人、什么时候、做什么事以及怎样做这些事以实现某一个特定的具体目标。
9、软件过程模型有哪些瀑布模型、快速圆形、增量模型、螺旋模型、喷泉模型10、瀑布模型有哪些特点(1)可强迫开发人员采用规范的方法;(2)严格地规定每个阶段必须提交的文档;(3)要去每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
11、在软件生产中为什么强调管理CH21、可行性研究的目的用最小的代价在尽可能短的时间内确定问题是否能够解决。
2、从那些方面进行可行性研究技术可行性、经济可行性、操作可行性、社会可行性。
3、系统流程图的作用4、数据流图的作用利用它作为交流信息的工具,作为分析和设计的工具。
软件工程复习提纲
软件质量的度量分类 成本-效应分析
第七章
掌握:
第11章
掌握: 软件质量保证的概念 软件质量保证的主要任务 软件配置管理的概念
1
2
演化模型 什么是演化模型? 首先针对一个不能完整定义需求的软件开发一个核心系统,然后用户使用该系统,提出精化系统郑家系统能力的需求,再根据用户反馈,实施开发的迭代过程。 特征: 多次迭代,每次迭代过程,需求分析→设计→编码→测试→集成。 优缺点:减少了软件需求不明确而该开发带来的风险性,但费时费力。 适用范围:适合于需求不能完整定义的某些项目。 螺旋模型 什么是螺旋模型? 将瀑布模型和演化模型结合起来,在此基础引入增加了风险分析。 特征:加入了风险分析。 优缺点:减少了软件开发的风险,但成本高,过程复杂。 适用范围:适合于大型软件的开发。
商务风商业计划书
CLICK HERE TO ADD A TITLECຫໍສະໝຸດ NTENTS目录壹
贰
叁
第五章
掌握: 结构化程序设计的思想 程序设计语言的选择因素 第六章
软件工程复习提纲总结3篇
软件工程复习提纲总结3篇七、软件维护1.软件维护的含义及类型?2.软件维护过程?3.◆需要把握的内容:4.1、面对对象分析(OOA)的任务?5.面对对象分析(OOA)过程中包括哪些活动?6.2、三种面对对象模型各自表示的内容?7.3、对象模型的表示工具?动态模型的表示工具?功能模型的表示工具?8.4、结合软件开发实例,理解三种面对对象模型之间的关系9.以及面对对象分析环节完成的主要工作。
10.11.---------------? 课堂练习题目一、填空题1.软件主要包括程序、和三部分内容。
2.软件可行性讨论的任务是从技术、和三个方面分析软件项目的可行性。
3.软件测试的目的是;通常把软件测试方法分为和两大类。
4.结构化分析方法中,功能模型用描述;数据模型用描述。
5.在类的继承结构中,不同层次的类共享同一个行为名称,但各个类可以根据自己的需要为同名行为设计不同的算法,此性质称为类的__。
二、选择题1.产生软件危机的主要缘由有(C)。
①软件本身的特点②用户使用不当③硬件牢靠性差④程序员水平⑤缺乏好的开发方法和管理手段A.③④B.①②④C.①⑤D.①③2.需求分析阶段,开发人员需从用户那里获得的最重要信息是(C)。
A.用户能接受的开发费用B.用户能接受的开发周期C.用户要让软件做什么D.软件应具有何种结构3.数据流图中的每个处理至少有(B)。
A.一个输入流或一个输出流B.一个输入流和一个输出流C.一个输入流D.一个输出流4.在面对数据流的设计方法中,一般把数据流图划分为(C)两种类型。
A.数据流和事务流B.变换流和数据流C.变换流和事务流D.掌握流和事务流5.数据流图所描述的是实际系统的(A)。
A.规律模型B.物理模型C.程序流程D.数据结构6.由变换型数据流图转换成模块结构图,其中包括变换模块,则(B)。
A.变换模块就是主模块B.变换模块的功能是将规律输入变换为规律输出C.变换模块没有下层模块D.变换模块只能有一个输入量、一个输出量7.为了提高软件测试的效率,应当(C)。
《软件工程》复习提纲
《软件工程》复习提纲一一、、 授授课课的的主主要要内内容容11.. 基基本本概概念念((11)) 有有关关““软软件件工工程程””的的基基本本概概念念11))软软件件工工程程的的诞诞生生那是1968……22))软软件件危危机机计计算算机机软软件件开开发发和和软软件件维维护护过过程程中中所所遇遇到到的的一一系系列列严严重重问问题题统统称称为为““软软件件危危机机””。
概括地说,软件危机包含两方面的问题:一是如何开发软件,怎样满足人们对软件日益增长的需求?二是如何维护软件,使它们持久地满足人们的要求。
33))软软件件包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作称为软件(计算机)。
文档是描述程序开发过程的,是智力创作的真实记录,是创作活动的历史档案和结晶。
软软件件由由计计算算机机程程序序,,数数据据结结构构和和文文档档组组成成。
计算机程序执行特定的功能;数据结构是程序运行所需的数据;文档是描述程序开发、使用和维护的资料。
44)) 软软件件工工程程的的概概念念采采用用工工程程学学的的原原理理来来管管理理和和从从事事软软件件的的开开发发和和软软件件维维护护,,称称为为软软件件工工程程。
(工程学:系统化、规范化、数量化)55))软软件件质质量量的的基基本本概概念念(a )软件质量的定义与软件产品满足规定的和隐含的需求能力有关的特征和特性的全体。
具体来说:1)软件产品中能满足给定需求的性质和特性的总体;2)软件具有所期望的各种属性的组合程度。
(b )软件质量特性(1)功能性:当软件在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力。
(2)可靠性:在指定条件下使用时,软件产品维持规定的性能级别的能力。
(3)易用性:在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。
(4)效 率:在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。
(5)维护性:软件产品可被修改的能力。
软件工程复习提纲
1.可行性分析,需求分析,概要设计,详细设计阶段的参与人员有哪些?需求分析用户、管理人员、分析人员、软件开发小组成员2.在软件详细设计过程中采用的工具有哪些?程序流程图、N-S图、PAD图(问题分析图)、判定表&判定树、PDL等、Jackson方法3.白盒技术测试技术有哪些?(5.3-5.4)a)单元测试b)逻辑覆盖i.语句覆盖ii.判定覆盖(分支覆盖)iii.条件覆盖iv.判定/条件覆盖v.条件组合覆盖c)控制结构测试i.基本路径测试ii.条件测试iii.数据流测试iv.循环测试4.黑盒技术测试方法有哪些?(5.5-5.6)a)等价划分b)边界值分析c)错误推测d)验收测试e)集成测试5.软件生存周期的活动中,哪个阶段要进行软件结构设计?(概要设计阶段)软件生命周期由软件定义、软件开发、和运行维护3个时期组成的软件定义:问题定义、可行性分析、务求分析软件开发:系统设计(概要设计、详细设计)、编码、测试6.什么是瀑布模型?瀑布模型是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈。
如果有信息未被覆盖或者发现了问题,可以“返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,7.什么是ER模型?实体联系模型,是概念数据模型的高层描述所使用的数据模型或模式图,它为表述这种实体联系模式图形式的数据模型提供了图形符号。
8.什么是螺旋模型?螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。
螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。
同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。
螺旋模型更适合大型的昂贵的系统级的软件应用。
9. 什么是喷泉模型?喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于采用对象技术的软件开发项目。
软件工程复习提纲
软件工程复习点一、判断题1.在分析用户需求时同时考虑维护问题。
(正确)2.测试完程序后,删去程序中的注解以缩短源程序长度。
(不正确)3.在软件开发过程中尽量保证各阶段文档的正确性。
(正确)4.编码时尽量多用全局变量。
(不正确)5.选用时间效率和空间效率尽可能高的算法。
(不正确)6.尽可能利用硬件特点以提高程序效率。
(不正确)7.尽可能使用高级语言编写程序。
(正确)8.进行总体设计时加强模块间的联系。
(不正确)9.尽量减少程序模块的规模。
(不正确)10.用数据库系统代替文件系统来存储需要长期保存的信息。
(正确)11.用CASE环境或程序自动生成工具来自动生成一部分程序。
(正确)12.尽量用可重用的软件构件来组装程序。
(正确)13.使用先进的软件开发技术。
(正确)14.采用防错程序设计技术,在程序中引入自检能力。
(正确)15.把与硬件及操作系统有关的代码放到某些特定的程序模块中。
(正确)二、简答题1.北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。
请定义上述的电话号码。
电话号码=[校内电话号码|校外电话号码]校内电话号码=非零数字+3位数字校外电话号码=[本市号码|外地号码]本市号码=数字零+8位数字外地号码=数字零+3位数字+8位数字非零数字=[1|2|3|4|5|6|7|8|9]数字零=03位数字=3{数字}38位数字=非零数字+7位数字7位数字=7{数字}7数字=[0|1|2|3|4|5|6|7|8|9]2.从供选择的答案中选出在下列叙述中括弧内字母应该代表的正确内容,把答案写在答案栏内。
(1)一组语句在程序的多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚度是(A)的。
(2)将几个逻辑上相似的成分放在一个模块中,该模块的内聚度是(B)的。
软件工程复习提纲
1 软件危机产生的原因和方法(1)原因:一方面与软件本身的抽象性和复杂性有关,这是客观原因;另一方面则与软件开发和维护过程中使用的技术和方法有关,这是主观原因.(2)方法:既要有技术措施(包括方法和工具),又要有组织管理措施2 软件生命周期阶段(1)可行性研究(2)需求分析(3)软件设计(4)编码(5)软件测试(6)软件维护3 常见软件开发模型(1)瀑布模型(2)原型模型(3)增量模型(4)螺旋模型(5)统一软件开发过程4 软件需求分析目标和任务(1)目标:研究用户需求,得到目标系统的需求定义(2)任务:1确定目标系统的具体要求2建立目标系统的逻辑模型5 需求分析步骤(1)获取需求,识别问题(2)分析和描述系统的逻辑模型(3)需求分析的复审6数据流图有四种基本符号:(1).正方形或立方体表示数据的源点或终点;(2).圆角矩形或圆形代表数据处理;(3).开口矩形或两条平行横线代表数据存储;(4).箭头表示数据流,即数据流动得方向.7 实体-联系图(E-R图)的三个基本组成部分:(1).实体。
用矩形框表示实体;(2).关系。
用菱形框表示实体之间的关系;(3).属性。
用椭圆形或圆角矩形表示实体(或关系)之间的属性。
8 软件设计基本原则(1)抽象与分解(2)模块化和信息隐藏(3)模块独立性9 耦合和类聚的分类:(1)耦合:1数据耦合,2控制耦合,3特征耦合,4公共环境耦合,5内容耦合(2)内聚:1偶然内聚,2逻辑内聚,3时间内聚,4过程内聚,5通信内聚,6顺序内聚,7功能内聚10数据流图中数据流的分类: 变换型数据流和事务型数据流11 如何高质量的完成详细设计的目标和任务?(1)目标:设计目标系统,得出新系统软件的详细规格,同时要求设计出规格简明易懂,便于下一阶段用某种程序语言在计算机上的实现(2)任务:①算法过程的设计,②数据结构的设计,③数据库物理设计,④信息编码设计,⑤测试用例的设计,⑥其他设计,⑦编写详细设计说明书12结构化程序设计通常采用自顶向下, 逐步求精的设计方法13 软件测试的分类(1)根据程序是否运行分为:静态分析,动态分析(2)测试数据的设计依据分为:黑盒测试,白盒测试14 黑盒测试含义及分类(1)含义:又称功能测试,,是以用户的观点,从输入数据与输出数据的对应关系出发测试的,不涉及程序的内部结构(2)分类:等价类划分法,边界值分析法,决策表法,因果图法15 白盒测试含义及分类(1)含义:按照程序内部逻辑结构测试程序,检验是否程序能够按照规定正常运行(2)分类:覆盖测试,功能性测试,结构性测试(3)16 软件测试步骤(1)单元测试(2)集成测试(3)确认测试(4)系统测试17 软件维护的种类(1).改正性维护(2)适应性维护(3)完善性维护(4)预防性维护18 软件维护的策略(1) 改正性维护(2)适应性维护(3)完善性维护19 软件维护的过程(1)建立维护机构(2)用户提出维护申请并提交维护申请报告(3)维护人员确认维护类型并实施相应的维护工作(4) 整理维护记录并对维护工作进行评审(5)对维护工作进行评价20 决定软件可维护性的因素(1)可理解性(2)可测试性(3)可修改性21 统一建模语言UML是用一组专用符号描述软件规模的语言,这些符号统一、直观、规范,可以用于任何软件开发过程22. UML分为结构图和行为图,其中共有六种结构图和七种行为图。
软件工程复习提纲(附答案)
软件工程第一章软件工程介绍1、软件的特性:P4软件是设计开发的,而不是传统意义上的生产制造;软件不会磨损;大多数软件仍是根据实际的客户需求制定的。
2、计算机软件的七大分类:P5系统软件、应用软件、工程/科学软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。
3、遗留系统发生系统演化的原因:P6软件需要修改其适应性,从而可以满足新的计算环境或技术的需求软件必须根据新的业务需求进行升级软件必须扩展以具有与更多现代系统和数据库的协作能力软件架构必须进行改建以适应多样化的网络环境4、软件神话:管理者,用户,从业者P105、软件的定义:P4软件是指令的集合,通过执行这些指令可以满足预期的特征,功能和性能需求;数据结构,它使得程序可以充分利用信息;描述程序操作和使用的文档。
第二章过程综述1、软件工程的三个要素:工具,过程,方法P17过程:软件过程将各个技术层次结合在一起,并实施合理地,及时地开发计算机软件方法:为建造软件提供技术上的解决方法。
工具:为过程和方法提供自动化或半自动化的支持。
2、通用软件过程框架:沟通,策划,建模,构建,部署P8沟通:这个框架活动包含了与客户之间大量的交流和协作,还包括需求获取以及其他相关活动策划:指为后续的软件工程工作制定计划。
建模:它包括创建模型和设计两方面。
创建模型有助于客户和开发人员更好得理解软件需求;设计可以实现它。
构建:它包括编码和测试。
部署:软件交付到用户,用户对其进行评测并给出意见3、能力成熟度模型:P22第0级:不完全级;第1级:已执行级;第2级:已管理级;第3级:已定义级;第4级:已定量管理级;第5级:优化级;第三章过程模型1、简述惯例框架包含的主要活动:P23沟通、策划、建模、构建、部署2、简述瀑布模型所包含的主要框架活动:P24沟通、策划、建模、构建、部署3、简述瀑布模型在实际运用中所面临的问题(缺点):P24实际的项目很少遵守瀑布模型提出的顺序客户通常难以清楚地描述所有的需求客户必须有耐心,因为只有在项目的后期,他们才能看到可执行的程序。
软件工程复习提纲
软件工程复习提纲第一章软件与软件工程1. 什么是软件工程?构成软件工程的要素是什么?2. 什么是软件危机?软件危机有那些表现?3.软件开发的三种最主要方法是什么?4.软件工程实践中的五个面向理论的含义是什么?5.用图表方式说明软件的生存周期6.结合软件生存周期理论,阐述几个重要的软件开发模型的特点及适用条件(如瀑布模型、快速原型模型、增量模型、迭代模型等)第四章需求分析基础1.什么是软件需求?软件需求的属性是什么?2.需求分析阶段的一般工作流程是什么?3.什么是需求分析?需求分析的任务、目的是什么?4.什么是需求定义?5.简述软件需求分析的任务与步骤,并以图书管理系统为例说明6.需求的分析的方法与切入点?(过程分析、对象分析;功能分析、对象分析、数据分析?)7.需求分析的描述工具?8.什么是业务流程图?业务流程图的主要绘图元素有哪几种?9.什么是数据流图?数据流图的绘图元素有哪几种?10.分别画出图书管理系统的业务流程图和数据流图11.画出图书管理系统的用例图12.画出一个网上招聘系统(招聘网站)的用例图第五章面向数据流的分析方法1. 阐述数据流图、数据字典和E-R图的构成2. 阐述基于数据流图进行需求分析的大致过程。
3. 归纳总结CASE工具的核心思想。
4. 如何判断数据流图的一致性和完全性?可否用CASE工具自动或半自动地完成这两类检查?如果可以,请给出相应的软件设施途径。
5. 设计一个简单图书信息系统上网E-R模型第六章面向对象的需求分析1. 基本概念:对象、类、消息、继承、聚集2. 简述利用UML尽心需求分析的主要步骤。
3. 简述面向对象的消息传递机制在程序设计语言中的实现过程。
4. 绘制表示“书籍”的UML类图,“书籍”可以描述为:一本书由许多部分组成,每一部分又由许多章组成,每一张由许多节组成。
部分、章和节都具有标题和序号属性。
第八章软件设计基础1.什么是软件设计?软件设计过程的输入和输出是什么?2.理解软件设计的原理3.什么是软件架构?理解软件的三层架构的内容及特点4软件设计有两大类方法是什么?5.面向过程设计的主要任务和内容和方法是什么?6.面向对象设计的内容和步骤是什么?第九章面向数据流的设计方法1. 简述SD方法将数据流图转换为软件结构的过程与步骤。
软件工程复习资料(提纲+答案)
软件工程复习资料(提纲+答案)第一章软件工程的实质1、什么是软件?由什么组成?软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档组成的完整集合。
可以写作为:软件=程序+数据+文档。
2、什么是软件危机?为什么会产生?(原因)软件危机:指的是在计算机软件的开发和维护过程中所遇到的一系列严重的问题。
原因:用户需求不明确、缺乏正确的理论指导、软件规模越来越大、软件复杂度越来越高3、为什么要进行软件开发?4、软件工程的三段论?三段论:软件项目管理论、软件项目开发论、软件过程改进论5、软件工程生存期模型概念、类型、每种类型的特点?答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。
常见的软件生存周期模型有瀑布模型、V模型、原型模型、增量式模型、螺旋式模型。
6、了解复用的原则第二章软件项目的需求分析1、需求分析的主要任务?(基本任务)答:需求分析阶段的基本任务是要准确的定义新系统的目标,满足用户需要,回答系统必须“做什么”的问题。
本阶段要主要有以下几方面工作:(1)问题识别,双方确定对问题的综合需求,包括:功能需求、性能需求、用户界面需求,以及可靠性、安全性、可维护性等方面的需求。
(2)建立模型,对获取的需求,进行分析细化,划分系统功能,确定系统构成,并建立系统的逻辑模型。
(3)编写文档,也就是完成“需求规格说明书”的编写工作。
2、需求分析分两大块(功能与非功能)功能需求描述系统所预期提供的功能或服务。
非功能需求是对系统提供的服务或功能给出的约束。
包括时间约束、开发过程的约束、标准等。
3、(P27)需求建模的基本方法?答:关联模型、行为模型(数据流模型和状态机模型)、数据模型、面向对象模型、结构化模型(技术:数据流图(DFD)、数据字典(DD)、系统流程图)以及其他方法(如原型法、功能列表等)4、结构化方法的代表?(P29)7状态图活动图8、理解好数据流图为什么要分层?9、UML中常用的9种图?(P32 把包图去掉)静态图:类图、对象图、构件图、实施图和包图。
软件工程复习纲要
软件工程复习纲要第一章、概述1、软件危机的概念与主要原因(1)软件危机是指在计算机软件开发与维护时所遇到的一系列问题。
(2)软件危机产生的原因:软件规模、方法、技术、软件开发人员;客观:规模,环境,需求变化;主观:开发技术,管理。
✓软件产品规模庞大,开发与维护带来客观困难✓软件使用同期相对较长,期间可能出现开发没料到的问题,需要与时维护✓软件开发技术落后,生产方式与开发工具落后✓软件开发人员忽视软件需求分析的重要性,轻视软件维护2、软件、软件工程、软件工程学的概念(1)软件是指计算机程序与其有关的数据与文档。
(2)软件工程(software engineering)是计算机软件开发、运行、维护与隐退的系统方法;是指导计算机软件开发与维护的工程学科;软件工程的目标是在规定的时间、开发费用内,开发满足用户需求的高质量的软件。
(3)软件工程学的主要内容是软件开发技术(包含软件工程方法学、软件工具与软件开发环境)与软件工程管理(包含软件工程经济学与软件管理学)。
更多内容请见P.4;3、软件生命周期与生命周期各阶段的任务(1)软件生命周期指从设计软件产品开始到产品不能使用为止的时间周期。
包括:定义,开发,使用,维护,淘汰。
(2)软件生命周期各阶段的任务✧软件计划、软件开发与软件运行维护三个时期。
✧软件计划时期:问题定义、可行性研究、需求分析✧软件开发时期:软件概要设计、软件详细设计、软件实现、综合测试等阶段。
✧软件运行维护时期:需要不断地进行维护,使软件持久满足用户需要4、软件开发模型的几种模型与各模型的特征(1)瀑布模型(Waterfall Model) :(规范的、文档驱动方法。
开发阶段按顺序进行,适合需求分析较明确、开发技术较成熟的情况。
)特点:阶段间具有顺序性与依赖性;推迟实现编码;质量保证。
(2)快速原型模型:(快速原型系统让用户试用并收集用户意见。
获取用户真实需求。
)特点:软件产品的开发基本上是线性顺序进行的;能减少软件的总成本,缩短开发周期。
软件工程复习提纲
软件工程复习提纲I. 软件工程概述A. 定义与目标B. 发展历程C. 软件工程原则与方法论II. 软件开发过程A. 瀑布模型1. 阶段划分与任务2. 优点与缺点B. 增量模型1. 阶段划分与任务2. 优点与缺点C. 喷泉模型1. 阶段划分与任务2. 优点与缺点III. 需求工程A. 需求获取与分析1. 用户需求调研2. 需求规格化B. 需求验证与确认1. 需求评审2. 需求跟踪与控制IV. 软件设计A. 结构设计1. 模块化设计原则2. 模块间接口设计B. 数据设计1. 数据建模2. 数据库设计C. 用户界面设计1. 人机交互原则2. 界面布局与设计规范V. 软件构建A. 编码规范与标准1. 命名规范2. 代码注释B. 单元测试与集成测试1. 测试用例设计2. 测试工具与技术VI. 软件质量保证与控制A. 质量特性及度量1. 功能性2. 可靠性3. 可维护性4. 可测试性B. 缺陷管理1. 缺陷跟踪与报告2. 缺陷分析与修复VII. 软件项目管理A. 项目规划与组织1. 范围管理2. 人力资源管理B. 项目进度与成本控制1. 进度计划与跟踪2. 成本估算与控制VIII. 软件配置管理A. 版本管理1. 版本控制工具2. 分支与合并策略B. 变更管理1. 变更控制流程2. 变更影响分析IX. 软件工程伦理与职业责任A. 代码所有权与知识产权B. 软件开发道德标准X. 结语以上是软件工程复习提纲的架构,通过对各个主题的概要介绍和论述,有助于理解软件工程的基本概念、方法和流程,并为考试或复习提供了一个清晰的框架。
在准备复习时,可以根据这个提纲,进一步深入学习和了解各个主题中的具体知识点和案例。
软件工程是一门重要的学科,对于软件开发和项目管理都有着重要的指导意义,希望通过这个提纲的复习,能够帮助你更好地掌握软件工程领域的核心知识。
软件工程复习提纲
一、选择题(20小题,每题1分)软件定义:软件是程序、数据和相关文档的完整结合,计算机系统中的程序及其文档。
瀑布模型:从可行性与计划入手,依次进行需求分析、设计、编码、测试,直到经用户确认得到最终的软件产品,并由此进入运行维护过程。
(17)可行性分析:包括技术可行性、操作可行性、经济可行性和法律可行性。
(14)逻辑覆盖:是指对程序设计中的逻辑判断条件所进行的测试。
(141)软件维护:指软件系统交付使用后,为了纠正系统错误或者满足用户需求变更而修改软件的过程。
(254)DFD(数据流图):结构建模中最流行的功能建模工具,描述了数据输入,数据转换到数据输出的全过程。
分层的DFD更进一步刻画了系统的功能分解。
(44)ER图:包括数据对象(实体)、属性、关系和基数。
(42)面向对象特征:1.抽象 2.封装 3.继承 4.多态性结构化设计:可分为面向数据流的设计方法和面向数据的设计方法,用于确定软件的结构(90)白盒测试:又称为结构测试、逻辑驱动测试或者程序的测试,是指用于测试代码是否按照设计正确运行的验证技术,它需要详细设计文档作为测试配置。
(140)黑盒测试:又称为功能测试或者行为测试,主要根据设计说明中的功能设计来测试程序是否按预期实现。
(目的:尽量发现系统功能中的错误。
)(148)软件测试的目的:发现错误,错误的定位和处理需要通过调试过程完成。
(167)面向数据流的设计方法:基于数据流图自顶向下、逐层分解的过程,他将各级数据流图映射为软件结构图中对应的各层次模块,体现了结构化设计与结构化分析的相互衔接,也体现了自顶向下的模块化设计思想。
(91)需求分析:准确回答“系统必须做什么”的问题,给出对目标系统完整、准确、一致的描述。
(32)数据字典:建模中定义的概念,术语,属性和逻辑过程进行了详细定义和解释。
(49)软件过程:是有组织或项目使用的,用以计划、管理、执行、监控和改进其软件相关活动的过程或过程的集合. (15)总体设计(概要设计):要完成体系结构设计(确定各子系统模块间的数据传递,调用关系)、界面设计(包括与系统交互的人机界面设计、以及模块间、系统与外部系统的接口关系)和数据设计(包括数据库、数据文件和全局数据结构的定义)。
软件工程复习提纲
1 软件开发模型,瀑布模型、原型、螺旋等。
说明它的构成和特点。
2 可行性研究内容(经济可行性、技术可行性、法律可行性)3 系统工程、软件开发、软件管理的概念和关系4 软件危机原因和现象(原因:缺乏有效的工程化方法的指导,现象:P2)5 CMM的几个级别构成,每级的主要特点(初始级→可重复级→已定义级→已管理级→优化级)6 基于面向对象、结构化的软件分析设计的基本步骤、制品(P153、P155)7 给出问题陈述,可以画出UC 、架构设计和类图8 用例图、时序图、活动图、类的定义和作用9 软件测试与调试概念(软件测试:P263、调试概念:P298)10 软件测试的基本任务;白盒测试、黑盒测试、α测试、β测试(白盒测试:逻辑覆盖测试、逻辑表达式错误敏感的测试、基本路径测试、数据流测试、循环测试;黑盒测试:等价类划分、边界值分析、比较测试、错误猜测、因果图)11 条件覆盖法、等价分类法、边界值分析法、错误推测法12 集成测试、自顶向下、自底向上步骤13 条件覆盖法设计测试用例14 给出一段程序(1)画出该程序的控制流图,并计算其环路复杂性。
(2)用基本路径覆盖法给出测试路径。
(3)为各测试路径设计测试用例。
15 软件项目管理的关注点概念16 软件质量17 一些,少人还是多人一组?(量化)18 程序复杂性19 计算FP(FP = CT *(0.65 + 0.01 * F))20 构建DFD元素;需要注意问题(数据流、数据源、数据存储、对数据的加工)21 数据字典,元素,概念和作用22 软件界面设计的黄金三原则(让用户拥有控制权、减少用户的记忆负担、保持界面一致)23 Macall、CoCoMo、Putnam、Macabe24 内聚、耦合,所有名称、每个含义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.什么是软件?是一系列按照特定顺序组织的计算机数据和指令的集合,包括程序、数据和文档。
附:软件的特征:成本高、风险大、维护困难2.什么是软件危机,其内容主要是指什么?原因:1、与软件本身的特点有关;2、与软件开发人员有关;定义:在计算机软件开发和维护过程中所遇到的一系列严重的问题。
1)对软件开发成本和进度的估计常常不准确。
2)用户对“已完成”系统不满意的现象经常发生。
3)软件产品的质量不可靠。
4)软件的可维护程度非常之低。
5)软件通常没有适当的文档资料。
6)软件的成本不断提高。
7)软件开发生产率无法满足人们对软件的生产要求,软件开发生产率的提高落后于硬件的发展。
3.什么是软件工程?开发、运行和维护软件的系统方法•软件工程主要研究软件生产的客观规律性,建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本、改进软件产品质量、提高软件生产率水平的目标。
4.软件工程的目标(PP.41 )及其组成部分。
方法、工具和过程。
•软件工程的目标是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。
方法: 是指产生某些结果的形式化过程,•工具: 是用更好的方式完成某件事情的设备或自动化系统,如各种集成开发环境、编译工具、测试工具等。
•过程: 生产特定产品的工具和技术的结合•软件工程方法学包含3个要素:方法、工具和过程。
5.软件开发方法的定义。
通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。
比如SASD方法、面向对象的软件开发方法。
6.好的软件的一些主要衡量指标。
例如McCall 的质量模型。
(1)质量,它的衡量:产品的质量、过程的质量、商业环境背景下产品的质量。
McCall 的质量模型:附:开发团队的成员•需求分析员: 与客户合作,确定并文档化客户需求•设计人员: 生成系统描述:系统要做什么•程序员: 编写事先指定需求的代码•测试人员: 发现错误•培训人员: 向用户说明如何使用这个系统•维护小组: 修复系统验收之后出现的错误•资料管理员: 准备和存储软件需求文档等•配置管理团队: 保持各工件之间的通信第二章1.什么是软件生命周期?主要分为哪些阶段?各个阶段的主要任务及产生的主要制品?定义:当过程是在开发软件产品时,把这种软件开发过程称为软件生命周期。
阶段:(1)可行性研究与计划任务:对于问题是否有行得通的解决方法(技术、经济、操作、社会)制品:可行性论证报告初步的项目开发计划(2)需求分析任务:为了解决这个问题,目标系统必须做什么制品:软件需求规格说明书(3)总体(概要)设计任务:概括地说,应该怎样实现目标系统制品:概要设计规格说明书数据库或数据结构设计说明书集成测试计划(4)详细设计任务:应该怎样具体地实现这个系统制品:详细设计规格说明书单元测试计划(5)实现任务:写出正确的容易理解、容易维护的程序模块制品:源程序代码(6)集成测试任务:根据概要设计规格说明书,将经过单元测试的模块逐步进行集成和测试制品:生成满足概要设计要求、可运行的系统源程序和系统集成测试报告(7)确认测试任务:根据软件需求规格说明书,测试软件系统是否满足用户的需求制品:可供用户使用的软件产品(文档,源程序)(8)使用和维护任务:通过各种必要的维护活动使系统持久地满足用户的需要制品:版本更新的软件产品2.需求分析的定义。
–确定用户对待开发软件系统的需求包括:•功能•性能•运行环境约束3.典型的软件开发过程模型的特点(优缺点)及要求,特别是原型法、瀑布模型、增量和迭代等(1)瀑布模型:需求分析->系统设计->程序设计->编码->单元测试和集成测试->系统测试->验收测试->运行和维护;优点:采用规范的方法;严格规定每个阶段提交的文档;要求每个阶段交出的产品必须经过验证;缺点:对如何处理开发中产品和活动的变化没有提供相关的指导•将软件开发视为制造而不是创造•创造一个产品没有迭代的活动•需要等待很长时间(2)V模型:•用单元测试验证程序设计•用系统测试验证系统设计•用验收测试验证需求•如果在验证和确认过程中发现了问题,那么在再次执行右边的测试步骤之前,重新执行左边的步骤以修正左边(3)原型化模型:•允许需求或设计反复调查•减少开发中的风险和不确定性••原型模型存在的问题•⑴为了使原型尽快的工作,没有考虑软件的总体质量和长期的可维护性。
•⑵为了演示,可能采用不合适的操作系统、编程语言、效率低的算法,这些不理想的选择成了系统的组成部分。
•⑶开发过程不便于管理。
(3)增量开发: 先定义一个小的功能子系统,再在每个新的发布中增加新功能迭代开发: 一开始就提交完整的系统,再在每一个新的发布中改变每个子系统的功能•减少循环时间•系统一部分一部分地交付•两个系统功能可以并行4. 原型法的特点以及分类:探索型原型、实验型原型和演化型原型法定义原型法是指在获取一组基本的需求定义后,利用高级软件工具可视化的开发环境,快速地建立一个目标系统的最初版本,并把它交给用户试用、补充和修改,再进行新的版本开发。
反复进行这个过程,直到得出系统的“精确解”,即用户满意为止。
•演化型原型–不仅帮我们回答问题,而且还要演变为最终产品–原型必须展现最终产品的质量需求,并且这些质量的要求不能改进5.极限编程的特点–交流: 保持客户和开发者的交换看法–简单性: 选择简单设计和实现–勇气: 尽早并经常性交付功能(敢于承诺并信守诺言)–反馈:开发过程中各种活动循环第三章1. 了解项目计划和管理的主要内容和常用的方法。
Ppt71到812.软件可行性研究的内容。
技术、经济、操作、社会四个可行性3. 估算工作量的主要方法:代码行、任务分解技术、自动估算成本技术。
1)代码行技术软件成本= 每行代码的平均成本×估计的源代码总行数估算方法:•由多名有经验的软件工程师分别做出估计。
•每个人都估计程序的最小规模(a)、最大规模(b)和最可能的规模(m),•分别算出这3种规模的平均值、和之后,再用下式计算程序规模的估计值:•L=(a的平均值+4*m的平均值+b的平均值)/6单位:LOC或KLOC。
代码行技术的优点:•代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数;•有大量参考文献和数据。
代码行技术的缺点:•源程序仅是软件配置的一个成分,由源程序度量软件规模不太合理;•用不同语言实现同一个软件所需要的代码行数并不相同;•不适用于非过程性语言。
•2)任务分解技术•软件开发项目分解为若干个相对独立的任务,分别估计每个单独任务的成本:•单独任务成本= 任务所需人力估计值×每人每月平均工资;•软件开发项目总成本估计= 各个单独任务成本估计值之和。
•3)自动估计成本技术采用自动估计成本的软件工具估计第四章1.了解需求的重要性及需求分析阶段的主要产物。
如果开发过程的早期没有检测到并修复需求错误,那么会造成很高的代价,甚至使项目失败。
产物:软件需求规格说明书2.需求的类型:功能需求、非功能需求或质量需求、设计约束、过程约束。
功能需求: 根据要求的活动描述需求行为质量需求或非功能需求: 描述软件必须拥有的质量特征设计约束: 已经做出的设计决策或对问题解决方案集的限制的设计决策过程约束: 对用于构建系统的技术和资源的限制3. 两种需求文档:需求定义文档和需求规格说明书。
需求定义: 用户想要得到的每一件事情的完整列表。
描述打算构建的系统将要安装的环境中的实体需求规格说明: 将需求重新陈述为关于要构建的系统将如何运转的规格说明4. 需求规格说明书的主要内容。
详细描述输入和输出,包括输入的源输出的目的地,有效范围输入输出的数据格式数据协议窗口格式和组织计时约束根据接口的输入输出重新陈述要求的功能对用户的质量需求,设计适配标准5. 常用的需求建模表示方法:ER图、事件跟踪、状态机、Petri 网、数据流图、用例图和原型法。
ER图:一种表示概念模型的流行图形表示法三个核心结构实体: 表示为矩形,代表具有共同性质和行为的现实世界对象构成的集合关系: 表示为两个实体之间的边,边中间有一个菱形,表示关系的类型属性: 是实体的注释,描述实体相关的数据或性质事件跟踪:•关于现实世界实体之间交换的时间序列的图形描述–垂直线: 不同实体的时间线,其名字出现在线的顶部–水平线: 两个实体之间的一个事件或交互–时间按从顶到下跟踪进展•每一个图描述一个跟踪,表示只是若干个可能行为中的一个•事件跟踪语义相对简单,易于理解状态机:•是一种图形描述,描述了系统与其环境之间的所有对话–点(状态) 表示存在于事件发生之间的一个稳定的条件集合–边(转移) 表示由于一个事件的发生而产生的行为或条件的变化•在表示动态行为方面,以及在描述在响应已经发生的历史事件时行为将如何变化方面很有用Petri网:•Petri 网是状态-转移表示法的一种形式,用于建模并发活动以及他们之间的交互。
•圆圈:位置•条:变迁•弧:箭头•点:令牌数据流图:•数据流图(DFD) 建模功能以及从一个功能到另一个功能数据流–一个泡泡表示:一个加工–箭头表示:数据流–平行线:数据存储: 正式的库或信息库–矩形:表示参与者: 提供输入数据或接受输出的实体用例图:•构成–大的方框: 系统边界–方框外的小人: 参与者,人或者系统–方框内的椭圆: 用例,表示必须的主要功能及其变种–参与者和用例之间的线: 参与者参与了该用例•用例不一定建模系统应该提供的所有任务,而是用于说明用户对重要系统行为的观察6.(1)UML的作用:是为软件系统的制品进行描述(specifying)、可视化(visualizing)、构造(constructing)、文档化(documenting)的一种语言。
(2)UML中的4+1视图:用例视图,设计视图,进程视图,实现视图,分布视图。
(3)UML中的三种扩展机制构造型Stereotype,标记值tagged value,约束contraint.(4)UML中所包含的10种图形及各自的作用。
(5)用例图的作用。
用例图用来描述软件需求模型中的系统功能,通过一组用例可以描述软件系统能够给用户提供的功能。
用例图可以作为整个系统开发过程中的开发依据,指导和驱动其他模型。
(6)用例图的主要构成部分。
执行者、系统边界和用例第五章5.获取需求•概念设计:告诉客户系统将做什么数据来自哪里?系统中数据会发生什么情况?对用户来说,系统将会是什么?向用户提供的选择是什么?事件的计时是什么?报表和屏幕是什么样的?)•技术设计:告诉变成这系统将做什么对主要硬件部分及其功能的描述软件构件的层次和功能数据结构数据流好设计的衡量:耦合和内聚耦合度:•高度耦合:当两个构件之间有大量依赖关系的时候•松散耦合:当两个构件具有某种程度的依赖,但他们之间的相互连接比较弱•非耦合:构件之间不存在相互连接耦合度的类型:•内容耦合:当一个构件修改了另一个构件的内部数据项时,或一个构件内的分支转移到另外一个构件中的时候,可能出现内容耦合•公共耦合:对公共数据的改变意味着需要通过反向跟踪所有访问过该数据的构件来评估该改变的影响•控制耦合•标记耦合•数据耦合•内聚:如果构件的所有元素都是直接面向执行同一个任务的并且必须的,那么该构件是内聚的6.细述对象1. OOM中的典型特征,其中特别是封装、继承和多态。