软件工程复习提纲

合集下载

软件工程重要考点复习提纲

软件工程重要考点复习提纲

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篇

软件工程复习提纲总结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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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中的典型特征,其中特别是封装、继承和多态。

相关文档
最新文档