《软件工程》自考 重点难点汇集
(完整word版)软件工程复习重点
三大块内容:软件危机与软件工程传统软件开发方法面向对象方法一、软件危机与软件工程:软件、软件危机、软件生存期、软件开发模型、软件管理1、软件:软件是能够完成预定功能和性能的可执行的计算机程序+使程序正常运行所需要的数据+描述软件开发过程及其管理、程序的操作和使用的有关文档。
文档:分开发、管理、用户、维护文档,作用是记录及解决不可视性、通信与交流、管理与维护、用户服务2、软件危机a)表现:软件成本高、难于控制开发进度、软件工作量估计困难、软件质量低、软件修改维护困难b)原因:需求问题(描述不精确、理解不一致)、管理问题、方法和工具问题、软件本身的特点3、软件生存期:a)三个时期:定义时期(软件计划、需求分析)—>开发时期(软件设计、编码实现、测试)—>使用和维护时期(维护)b)六个阶段:软件计划需求分析设计编码测试使用与维护c)生命周期方法特点:顺序性、依赖性,推迟程序的物理实现、质量保证的观点(利于尽早发现错误,如阶段文档、评审)4、软件开发模型a)瀑布模型:文档驱动i.阶段划分、分而治之、控制开发过程的复杂性ii.自顶向下、由抽象到具体,顺序进行优点:规范管理开发过程、文档驱动缺点:初期系统的需求难以完全确定、文档驱动、周期长b)原型模型:i.针对:软件开发初期需求难以确定ii.基本思想:快速建立原型,完善用户需求iii.优点:用户参与、快速iv.缺点:快速弱功能、对开发环境要求高c)螺旋模型(风险驱动)d)增量模型(模块、功能驱动)e)迭代模型f)喷泉模型5、软件管理a)区别于其他工业产品生产管理的特点b)主要内容:开发计划与进度管理、文档管理、人员组织管理、成本管理、质量管理二、传统软件工程方法:a)软件计划i.问题定义ii.可行性研究1.经济可行性2.技术可行性3.法律可行性b)需求分析i.结构化分析SAii.面向数据流的分析方法1.DFD四个组成部分(表示方法、命名)2.DFD作图:需求描述DFD3.层次分解法(保持父图和其子图的平衡)4.数据字典(符号)c)软件设计i.总体设计1.模块独立性:高内聚2.作用域是控制域的子集3.单入单出4.规模、深度、宽度、扇入、扇出适当ii.传统设计方法1.面向数据流的设计方法(数据流图)a)结构化设计SD-对应有SD结构化需求分析、SP结构化实现b)DFD软件结构(层次图)i.变换设计ii.事务设计c)优缺点2.面向数据结构的设计方法a)Jackson方法b)Jackson图i.三种元素间的逻辑关系:顺序、选择、重复ii.可描述两种数据结构:数据结构、程序结构c)思想:数据结构与程序处理过程相互转换d)步骤:I/O DS对应关系Program Structure细化求精e)优缺点:i.数据入手ii.简化数据处理程序的设计iii.模块与独立性原则没有给予应有的重视iv.求提供对复杂系统设计过程的支持3.Parnas方法iii.详细设计1.结构化程序设计SPa)高效率---良结构b)三种基本控制结构、单入单出2.过程设计的工具d)实现/编码i.语言1.功能等价2.描述问题方便性有差异a)例如:OOPL---非OOPLii.程序设计风格e)软件测试i.目标ii.方法1.正确性证明2.静态测试3.动态测试a)黑盒(功能)测试i.等价类划分ii.边界值分析iii.错误推测b)白盒(结构)测试i.语句覆盖ii.判定覆盖iii.条件覆盖iv.判定—条件覆盖v.条件组合覆盖iii.步骤f)软件维护i.四种类型1.校正性2.适应性3.完善性4.预防性ii.提高可维护性的措施三、面向对象方法(Object-oriented Method)a)OOM与CM对比:区别—优点i.思维方式iv. 稳定性ii.可重用性v. 可维护性iii.大型软件b)OOSE方法i.三个阶段、五个模型、E CASE第二章.传统软件工程方法:软件计划具体任务:项目定义、可行性分析、软件计划其中:可行性分析:1、可行性研究实质:可行性研究试一次大大压缩和简化了的系统分析和设计过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计过程。
《软件工程》-重点考试知识点,简答
第一章1、软件概念:由计算机程序,数据,软件文档组成软件的特点:无法直接观察它的物理形态,只能通过观察他的是实际运行情况来了解他的功能特性和质量等;人们在分析设计开发测试过程以及软件开发项目的管理过程中渗透了大量的人类的脑力劳动;不存在磨损和老化但存在缺陷维护和技术更新的问题;开发运行依赖一定的计算机系统环境;具有可复用性软件的分类:按功能分:系统支撑应用软件;按服务对象:通用定制软件;按规模:大中小型软件;按工作方式:实时分时交互式批处理2、软件危机:是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件的开发与维护过程中出现一系列严重问题的现象。
主要表现:●开发人员开发的软件产品不能完全满足用户的需求;●软件产品的质量难以得到保障;●开发周期开发经费和维护费用很难被准确估计从而给项目的管理带来很多麻烦;●随着技术的更新,用户的扩大,已有的软件产品不能灵活地适应环境的改变;●软件文档不完备并且存在文档内容与软件产品不符的情况。
原因:①软件开发是一项复杂的工程,需要用科学的工程化思想来组织和指导软件开发的各个阶段②没有完善的质量保证体系③软件文档的重要性没有得到软件开发人员和用户的足够重视④从事软件开发的专业人员对这个产业认识不够充分缺乏经验⑤软件独有的特点也给软件的开发和维护带来困难3、软件工程是指应用计算机科学与技术,数学和管理学的原理,运用工程学理论方法和技术,研究和指导软件开发和演化的一门交叉学科。
软件工程的目标:●使软件开发的成本控制在预计的合理范围内;●使软件产品的各项功能和性能能够满足用户需求;●提高软件产品的可靠性;●使生产出来的软件产品易于移植维护升级和使用;●使软件产品的开发周期能够控制在预计的合理时间范围内。
软件工程学科内容:●软件工程原理过程方法模型管理度量环境应用。
软件工程的基本原则:●将软件的生命周期划分为多个阶段,对各个阶段实施严格的项目管理;●坚持阶段评审制度已确保软件产品的质量;●实施严格的产品控制以适应软件规格的变更;●采用现代程序设计技术;开发出来的产品应该能够清楚地被审查;●合理地安排软件开发小组人员并且开发小组的人员要少而精;●不断改进软件工程的实践。
自学考试《软件工程》复习重点及试验指导(1)
自学考试《软件工程》复习重点及试验指导(1)
《软件工程》是计算机应用专业(本科)非常重要的一门专业课,该课程包括笔试和试验两部分,并且也是课程设计的科目之一。
学习《软件工程》,考生不仅需要掌握至少一门程序设计语言,还需要对数据结构、数据库、操作系统等课程有一定的了解,可以说综合性很强。
第一章软件工程概论
1. 软件工程的目的:
倡导以工程的原理、原则和方法进行软件开发,以解决当时出现的软件危机。
2. 软件危机:
在计算机软件开发和维护过程中所遇到的一系列问题。
3. 软件及组成:。
自考软件工程第3章知识点总结
2
第3章 软件需求分析
需求分析在软件开发中所处的地位愈加突出,从而也愈加 困难,它的难点主要体现在以下几个方面:
(1) 问题的复杂性。 (2) 交流障碍。 (3) 不完备性和不一致性。 (4) 需求易变性。
软件需求分析与说明的方法的基本原则:
(1) 必须能够表达和理解问题的数据域和功能域。 (2) 可以把一个复杂问题按功能进行分解并可逐层细化。 (3) 建模。
结构化分析(Structured Analysis,简称SA),是面向数 据流进行需求分析的方法。根据软件内部数据传递、变换的关 系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
3.2.1自项向下逐层分解的分析策略
面对一个复杂的问题,采取分解的策略,把一个复杂的问
题划分成若干小问题,然后再分别解决。分解可分层进行,在
(3) 环境需求。 (4) 用户界面需求。
4
第3章 软件需求分析
2. 分析与综合, 导出软件的逻辑模型 分析人员对获取的需求,进行一致性的分析检查,在 分析、 综合中逐步细分软件功能,划分成各个子功能。 3. 编写文档 编写文档的步骤如下: (1) 编写“需求说明书。 (2) 编写初步用户使用手册。 (3) 编写确认测试计划。 (4) 修改完善项目开发计划。
3. 数据项条目 数据项条目是不可再分解的最小数据单位, 其定义格 式及举例如下: 数据项名称: 货物编号 别名: G-No, G-num, Goods-No 简述: 本公司的所有货物的编号 类型: 字符串 长度: 10
取值范围及含义: 第1位: 进口/国产
第2~4位: 类别 第5~7位: 规格
第8~10位: 品名编号
1. 数据流条目
数据流条目给出了DFD中数据流的定义,通常列出该数 据流的各组成数据项。
软件工程重点与难点
软件工程重点与难点(2012)第1章1.什么是软件危机,为什么会产生软件危机?答:软件=程序+数据+文档。
软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
软件维护费用急剧上升,直接威胁计算机应用的扩大;软件生产技术缓慢,是加剧软件危机的重要原因。
原因:客观:软件本身特点1.逻辑部件2.规模庞大;主观:不正确的开发方法1.忽视需求分析2.错误认为软件开发=程序编写3.轻视软件维护。
2.软件的特征?答:软件是逻辑的,而不是物理的。
1.软件开发和人密切相关2.软件开发成本大3.软件生产是简单的拷贝4.软件不会磨损和老化5.软件受环境影响大6.软件维护易产生新的问题。
第2章1.软件生存周期的定义,包含的阶段?答:一个软件从开始立项起,到废止不用止,统称为软件的生存周期(life cycle)。
从软件立项到废弃,软件生存周期一般被划分为计划、开发与运行3个时期。
主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护。
2.传统的开发模型、软件演化模型、面向对象开发模型、形式化开发模型各自包含哪些具体的模型,各自的基本思想是什么?答:传统的开发模型:1.瀑布模型:是一种基于软件生存周期的线性开发模型;2.快速原型模型(rapid prototype model)。
软件演化模型:1.增量模型(incremental model):是瀑布模型的顺序特征与快速原型法的迭代特征相结合的产物;2.螺旋模型(spiral model):目前软件开发中最常用的一种软件开发模型,是在结合瀑布模型与快速原型模型基础上演变而成的,尤其适用于大型软件的开发。
面向对象开发模型:构建集成模型。
形式化开发模型:1.转换模型(transformational model):是将形式化软件开发和程序自动生成技术相结合的一种软件开发模型。
;2.净室模型(cleanroom model):是一种形式化的增量开发模型,其基本思想是力求在分析和设计阶段就消除错误,确保正确,然后在无缺陷或‘洁净’的状态下实现软件的制作。
软件工程_自考_复习资料总结1
第1章●软件:计算机程序及说明程序的各种文档。
“程序”是计算任务的处理对象和处理规则的描述;“文档”是有关计算机程序功能、设计、编制、使用的文字或图形资料。
●软件的特点:(1)软件是一种逻辑产品,具有无形性,以程序和文档的形式出现(2)(软件产品)的生产主要是研制(3)~不会用坏,不存在磨损、消耗问题(4)~的生产主要靠脑力劳动,还未摆脱手工开发方式(5)费用不断增加,成本昂贵●软件生产的发展:a程序设计时代45~56生产方式是个体手工劳动,机器语言、汇编语言,方法是追求编程技巧,追求程序运行效率 b程序系统时代(56~68)作坊式的小集团合作生产,工具高级语言,方法:个人技巧开始提出结构化方法 c软件工程时代(68至今)工程化的生产,使用数据库、开发工具及环境,网络,分布式,面向对象技术来开发软件●“软件危机”硬件技术进步,软件不能满足发展的要求,在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
危机表现a经费预算经常突破,完成时间一再拖延b开发的软件不能满足用户要求、可维护性差、可靠性差●危机原因a软件的规模越来越大,结构越来越复杂b软件开发管理困难而复杂、费用不断增加、技术落后、生产方式落后、开发工具落后,生产率提高缓慢●软件工程68北大西洋公约组织用科学知识和技术原理来定义、开发、维护软件的一门学科。
●~性质:它涉及计算机科学、工程科学、管理科学、数学等领域,计算机科学着重于原理和理论,而~着重于如何建造一个软件系统。
~要用工程科学中的观点来进行费用估算、制定进度、制定计划和方案。
~要用管理科学中的方法和原理进行软件生产的管理。
~要用数学的方法建立~中的各种模型和各种算法,如可靠性模型,说明用户需求的形式化模型等。
●~目标:付出较低的开发成本、达到要求的软件功能、取得较好的软件性能、开发的软件易移植、需要的较低的维护费用、能按时完成开发任务,及时交付使用、开发的软件可靠性高●软件工程内容:软件开发技术、~管理。
2024年10月《软件工程》全国自考考题含解析
2024年10月《软件工程》全国自考考题一、单项选择题1、CMMI组织过程改善的成熟度等级中的2级是______。
A.已执行级B.已定义级C.已管理级D.已定量管理级2、软件测试中,白盒测试技术依据的是程序的______。
A.逻辑结构B.输入数据C.状态D.功能3、RUP中,用于捕获系统语境中的一些重要领域对象,其中领域对象表达系统工作环境中存在的事物或发生的事件,领域模型一般采用______。
A.PAD图B.流程图C.类图D.N-S图4、“与所规约的系统执行之间的偏差”是指______。
A.错误B.失效C.故障D.误差5、面向对象方法源于面向对象______。
A.分析B.设计C.建模语言D.编程语言6、下列可用于概念模型和软件模型的动态结构的是______。
A.类图B.对象图C.部署图D.用况图7、下列不属于需求规约的基本性质是______。
A.可重复的B.重要性和稳定性程度C.完整的D.一致的8、在教师科研方案中规定对教授、副教授和讲师分别计算分数,做相应的处理,则根据黑盒测试中的等价类划分技术,下列划分正确的是______。
A.3个有效等价类,3个无效等价类B.3个有效等价类,1个无效等价类C.1个有效等价类,1个无效等价类D.1个有效等价类,3个无效等价类9、软件生存周期是指______。
A.开发软件的全部时间B.使用软件的全部时间C.开发和使用软件的全部时间D.从形成概念开始到最后淘汰让位于新的软件产品的时间10、RUP设计阶段的主要活动不包含______。
A.程序设计B.体系结构设计C.用况设计D.类设计11、指一个模块内部各成分之间相互关联程度的度量是______。
A.耦合B.内聚C.扇入D.扇出12、有效性测试的目标是发现软件实现的功能与下列哪个选项不一致,正确的是______。
A.需求规格说明书B.概要设计说明书C.详细设计说明书D.测试计划13、结构化分析方法给出了一种能表达功能模型的工具是______。
《软件工程》-经典考试例题复习题,重点知识点(含答案)
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;覆盖路径acdex=1,y=1,z=1;覆盖路径acex=3,y=0,z=1;覆盖路径abce(注意:本题也还可以有其他答案)3.请用判定表画出以下问题的行为逻辑。
人们往往根据天气情况决定出门时的行装。
天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。
如果天气要下雨,出门时带上雨伞;如果天气变冷,4.对下列子程序进行调试:procedure example(y,z: real; var x: real)beginif (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. 需求的详细描述:详细描述需求是确保软件工程师对客户需求理解的关键。
软件工程师需要与客户多次沟通,确保完全理解客户的需求,并将其准确地记录下来。
在这个过程中,软件工程师还需注意提出问题,主动向客户了解背后的意图,避免遗漏重要信息。
3. 验证需求的可行性:在需求分析阶段,软件工程师需要评估和验证客户的需求是否可行。
这包括技术可行性、资源可行性和时间可行性等方面的考虑。
软件工程师需基于自身的知识储备对需求进行合理评估,并向客户提供建议和解决方案。
二、软件架构设计软件架构设计是软件开发过程中的又一关键环节。
一个良好的软件架构能够保证软件的稳定性、扩展性和可维护性。
在软件架构设计中,软件工程师需要关注以下几个难点。
1. 模块化设计:模块化设计是将软件系统分解为多个相对独立的模块,使得每个模块负责不同的功能且能够互相配合工作。
软件工程师需要合理划分模块,确保各模块之间的接口设计合理、内聚性高,并使得模块之间的依赖尽可能降低。
这样可以提高软件的可维护性和可扩展性。
2. 技术选型:在软件架构设计中,软件工程师需要选择适合项目的技术栈。
这包括数据库技术、编程语言、框架等方面的选择。
北大自考软件工程考试重点
北大自考软件工程考试重点第1章 绪论(1)软件系统模型分类:概念模型和软件模型。
概念模型描述了系统是什么。
(2)分层:基本动机是为控制开发的复杂性;在需求层上创建的系统概念模型是对客观事物系统的抽象,称问题定义。
(3)软件工程概念的提出是为了解决日益严重的软件危机。
任何软件工程项目的基础是软件需求。
(4)在软件开发领域中,“描述了实现概念模型的软件解决方案”的系统模型被称为软件模型。
第2章 软件需求和软件需求规约1.需求分类:功能需求和非功能需求,功能需求是整个需求的主体,非功能需求又包括性能需求、外部接口需求、设计约束和质量属性需求。
2.需求阶段的主要任务一般包括需求发现、需求分析和需求验证,最终形成系统的软件需求规格说明书。
2.需求规约(简答题)(1)概念:一个软件项/产品/系统所有需求陈述的正是文档,它表达一个软件产品/系统的概念模型。
(2)基本性质:重要性和稳定性程度、可修改的、完整的、一致的4个。
(3)结构:包括引言、总体描述、特定需求3个部分,特定需求是文档的核心技术。
3.需求分析的首要任务是建立系统的功能模型。
数据流图(DFD)是一种常用的表达工具。
第3章 结构化方法1.基本术语(1)数据流:数据的流动,带箭头的线条,要给出标识,一般是一个名词或名词短语。
(2)加工:数据的变换单元,接收数据→处理→输出,用椭圆表示,一般也要给标识,采用动宾结构。
(3)数据存储:数据的静态结构,表达在分析中所使用的、表达“结构化客体”的信息,用两根长直线表示,一般也要给出标识,采用名词或名词短语。
(4)数据源和数据潭:数据源是数据流的起点,数据潭是数据流的归宿地。
表示系统的环境,可以使用它们和相关数据流来定义系统的边界。
用长方形表示,要给出标识,一般是名词或名词短语。
2.建模过程(1)建立系统环境图,确定系统环境(2)自顶向下,逐步求精,建立系统的层次数据流图(3)定义数据字典:包括数据流条目、数据存储条目和数据项条目(4)描述加工:采用结构化自然语言、判定表和判定树【综合题】3种表达工具结构化设计分为总体设计和详细设计。
软件工程知识(软考备考要点汇总)
软件工程知识(软考备考要点汇总)软件工程知识 (软考备考要点汇总)软件工程是一门涉及软件开发、维护和演化的学科,它旨在提高软件开发过程的效率和质量。
对于准备参加软考考试的人来说,了解软件工程的知识点至关重要。
本文将对软件工程的关键知识点进行汇总,帮助考生更好地备考。
1. 软件过程模型软件过程模型是指描述软件开发过程的模型,常见的模型包括瀑布模型、迭代模型、增量模型、螺旋模型等。
在备考软考时,需要了解不同模型的特点、适用场景以及优缺点。
2. 软件需求工程软件需求工程是指对软件系统进行需求分析、需求获取和需求管理的过程。
备考软考时,需要掌握需求工程的主要术语和概念,如用户需求、功能需求、非功能需求等,以及需求获取和需求变更的方法和技巧。
3. 软件设计模式软件设计模式是指在软件设计过程中经常遇到的问题和解决方法的总结和抽象。
备考软考时,需要了解常见的软件设计模式,如单例模式、工厂模式、装饰器模式等,以及它们的应用场景和实现方式。
4. 软件测试与质量管理软件测试是保证软件质量的重要手段,它包括单元测试、集成测试、系统测试等多个层次。
备考软考时,需要了解各种测试方法和技术,如黑盒测试、白盒测试、自动化测试等,以及软件质量管理的基本原理和方法。
5. 软件项目管理软件项目管理是指对软件开发项目进行计划、组织、协调和控制的过程。
备考软考时,需要了解项目管理的基本概念和流程,如项目计划、需求管理、进度管理等,以及常用的项目管理工具和技术。
6. 软件配置管理软件配置管理是指对软件开发过程中的软件配置项进行版本控制和变更管理的过程。
备考软考时,需要了解配置管理的基本原理和方法,如版本控制、变更管理、发布管理等,以及常用的配置管理工具和技术。
7. 软件维护与演化软件维护与演化是指对已经投入使用的软件系统进行修复、改进和升级的过程。
备考软考时,需要了解维护与演化的基本原理和方法,如问题分析、改进计划、版本迭代等,以及常见的维护与演化模式和技术。
软件工程自考知识点
软件工程自考知识点
嘿,朋友们!今天咱来聊聊软件工程自考的那些知识点呀!就好像建房子,软件工程可不就是那个设计蓝图和施工过程嘛!
先说说需求分析吧,这就好比你要去一个没去过的地方,你得先搞清楚自己到底要啥吧!比如做一个购物网站,那用户想要啥功能,爱怎么操作,这不就得细细琢磨嘛!就好像你开个小店,不得想想顾客喜欢啥东西来进货呀!
然后就是设计啦!这可是关键的一步呢!就像给房子搭框架,得稳固又合理。
系统设计得考虑好各个模块怎么配合,界面设计得让人看着舒服好用呀!比如说设计个手机 APP,界面简洁漂亮,操作一目了然,那用户用着多开心呀!
再说说编码,这就是实实在在的盖房子啦!得用合适的材料,按照设计来一砖一瓦地盖。
用啥编程语言,怎么把代码写得高效又整洁,这可都有讲究呢!就跟工匠盖房子一样,得认真细致呀!
测试也不能少呀!你不能房子盖好了都不检查一下吧!得看看有没有漏洞,有没有问题。
软件测试就是找出那些小毛病,让软件更完美呀!比如说上线前多测试几遍,就不会出现大问题啦!
嘿,软件工程自考的这些知识点可都是很重要的呀!少了哪个环节都不行,就像做菜少了调料一样没味道!只有把每个知识点都掌握好了,才能做出厉害的软件呀!我的观点就是,软件工程自考知识点就像是一串珍珠,把它们串起来,就能创造出璀璨的成果!加油去学吧,朋友们!。
2023年10月自考02333软件工程
2023年10月自考02333软件工程1. 引言软件工程是指在系统化的原理和方法的指导下,将工程化的原则和方法应用于软件的开发、运行和维护的学科。
随着信息技术的飞速发展,软件工程在现代社会中扮演着至关重要的角色。
本文将探讨2023年10月自考02333软件工程课程的学习内容及相关知识点。
2. 课程概述软件工程课程主要包括软件工程概述、软件需求工程、软件设计与构造、软件测试与维护、软件工程管理等方面的内容。
2.1 软件工程概述在软件工程概述中,我们将了解软件工程的基本概念、原则和目标。
了解软件工程的起源和发展历程,以及软件工程在实际应用中的重要性。
2.2 软件需求工程软件需求工程是软件工程的重要组成部分。
在这一部分,我们将学习如何分析用户需求,编写需求文档,并学习各种需求获取和分析的技术和方法。
2.3 软件设计与构造软件设计与构造是软件工程的核心环节。
在这一部分,我们将学习软件设计的原则和方法,掌握常见的设计模式和架构,学习如何进行软件构造和编码。
2.4 软件测试与维护软件测试与维护是软件工程中至关重要的一环。
在这一部分,我们将学习软件测试的基本方法和技术,以及如何进行软件维护和升级。
2.5 软件工程管理软件工程管理是软件项目成功的关键。
在这一部分,我们将学习软件项目的组织和管理,包括项目计划、进度管理、人力资源管理等内容。
3. 学习方法和技巧为了更好地掌握软件工程课程,以下是一些建议的学习方法和技巧:3.1 制定学习计划制定一个合理的学习计划,合理安排每天的学习时间,并根据课程大纲分配好每个知识点的学习时间。
3.2 多做实践软件工程是一个实践性很强的学科,多做实践是掌握软件工程的关键。
可以通过参与项目实践或者自己动手完成一些小项目来加深对知识的理解。
3.3 多做习题课后习题是巩固知识、检验学习效果的重要途径。
多做习题可以帮助加深对知识点的理解和运用。
3.4 参考学习资料除了教材,还可以参考一些好的学习资料,如相关的书籍、学术论文、技术博客等,扩宽对软件工程的认知和理解。
(完整word)《软件工程》自考02333_重点难点汇集
《软件工程》串讲讲义应考指导一、课程介绍1、课程性质《软件工程》是全国高等教育自学考试计算机及应用(独立本科段)的一门专业课。
软件工程是研究软件开发的一门课程,其主要内容包括:软件开发所需要的过程、活动和任务,以及这些活动和任务的组织、实施和管理。
2、指定教材本课程指定教材为《软件工程》,全国高等教育自学考试指导委员会组编,王立福主编,机械工业出版社出版,2011年版。
新版教材与2000年版相比,无论是内容还是内容的组织,都有了很大的变化。
整个知识体系、章节安排、内容选取都不一样,这是考生一定要注意的。
新版教材的内容组织特点主要体现在:基于对软件开发本质的认识,讲解软件工程的两大技术问题:一是开发逻辑,二是开发途径。
开发逻辑涉及软件生存周期过程、软件生存周期模型(有关过程、活动和任务的组织框架)以及项目软件生存周期的规划与监控。
开发途径涉及结构化方法和面向对象方法,以及支持软件评估所需要的软件测试技术等。
3、章节体系本课程共有8章:第1章:回答什么是软件开发的本质第2章:软件需求与软件需求规约第3章:结构化方法第4章:面向对象方法—UML第5章:面向对象方法-RUP第6章:软件测试。
第7章:软件生存周期过程及管理第8章:集成化能力成熟度模型CMMI二、考情分析1.历年真题的分布情况由于教材刚刚经过改版,新教材刚经过2011年10月、2012年01月、2012年10月三次考试. 通过对2011年10月、2012年01月这两次真题的分析,各章所占分值的分布情况如下表所示:25%左右.第1章和第8章的考核知识点相对较少.2.题型分析本课程的考试题型分为:(1)单项选择题,共15小题,每小题2分,共30分(2)填空题,共20个空,每空1分,共20分(3)简答题,共6小题,每小题5分,共30分(4)综合应用题,共2题,每题10分,共20分3.复习方法(1)以教学大纲为准绳。
自学考试的原则是:考试范围既不超出大纲又不超出教材范围。
软件工程复习重点总结
软件工程复习重点总结第一篇:软件工程复习重点总结第一章软件过程:需求设计实现发布软件过程三要素: 过程+方法+工具瀑布rup scrum IconixScrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。
Product Owner、Scrum Master、Team Product Backlog、SprintBacklog、Burndown Chart、Sprint、Sprint Planning Meeting、Daily Standup Meeting、Review Meeting、Retrospective Meeting ICONIX软件开发过程愿景、业务建模、需求分析、健壮性分析、系统设计……思想是重点;过程是方式;方法和工具是载体第二章敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。
敏捷是一种思想•Scrum是一个框架敏捷开发过程知多少?•Scrum、•极限编程(XP)、•Crystal Methods(水晶方法族)•特性驱动开发(FDD)•动态系统开发(DSDM)•轻量型统一过程(RUP)调查结果:敏捷开发方法—Scrum最流行!Scrum的适用场景•7人,+or-2•偏小一些会更适合•最好能坐在一起•客户参不度高•快速移动互联网项目•自主性研发的产品第三章软件项目是为了改善某个组织的某些方面–老大就是要改善的组织中最有权力的干系人。
用户建模四步曲列出尽可能多的用户识别关键用户(购买决策者/主要使用者)分类,合并次要用户4添加虚拟和极端用户第四章•产品backlog是Scrum的核心产品功能列表格式•ID(标示符)–统一标识符•Name(标题)–简短的、描述性的故事名•Story(故事)–故事内容描述•Priority(重要性)–产品负责人评出一个数值,指示这个故事有多重要•Initial estimate(初始估计)–团队的初步估算,表示不其他故事相比,完成该故事所需的工作量•How to demo(如何做演示)–它大略描述了这个故事应该如何在sprint 演示上进行示范•Notes(注解)–相关信息、解释说明和对其它资料的引用等等产品功能列表由谁来写?•思考:由谁来写?–主要是Product Owner–Team也有权利,但最终由PO进行取舍。
(完整word版)软件工程考试重点(灰常重要)
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)软件分析时期;任务:确定软件项目的目标,软件应具备的功能和性能,构造软件的逻辑模型,并制定验收标准.在此期间,要进行可行性论证,并做出成本估计和经费预算,制定进度安排。
(专升本)自考《软件工程》备考知识点汇总
《软件工程》备考知识点汇总第一章绪论1.软件工程这一术语首次出现在1968年的NATO会议上.2.软件危机:随着计算机的广泛应用,软件生产率、软件质量远远满足不了社会开展的需求,成为社会、经济开展的制约因素,人们通常把这一现象称为“软件危机”.3.软件工程:软件工程是应用计算机科学理论和技术以及工程管理原那么和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的学科.4.软件工程概念的提出,其目的是倡导以工程的原理、原那么和方法进行软件开发,以期解决出现的“软件危机”.5. 20世纪60年代末到80年代初,提出了瀑布模型,试图为开发人员提供有关活动组织方面的指导;开发了诸多过程式语言C例如,Pascal语言、C语言、Ada语言等)和开发方法(例如,Jackson方法、结构化方法等),试图为开发人员提供好的需求分析和设计手段,并开发了一些支持工具,如调试工具、测试工具等.在这一时期,开始出现各种管理方法(例如,费用估算、文档复审〉,开发了一些相应支持工具(例如,计划工具、配置管理工具)等.6. 20世纪80年代以来,这一时期的主要成果是提出了《软件生存周期过程》等一系列软件工程标准;大力开展了计算机辅助软件工程(CASE)的研究与实践(例如,我国在“七五”、“八五”、“九五”期间,均把这一研究作为国家重点科技攻关工程〉,各类CASE产品相继问世.与此同时,在工程技术方面,出现了最引人注目的面向对象语言,例如Smalltalk、c+ +、Eiffel等;提出了面向对象软件开发方法;在工程管理方面,开展了一系列过程改进工程,其目标是在软件产业的实践中,建立一种量化的评估程序,判定软件组织和过程的成熟度,提高组织的过程能力.7.计算机软件一般是指计算机系统中的程序及其文档.8.软件开发的本质概括为:不同抽象层术语之间的“映射”,以及不同抽象层处理逻辑之间的“映射”.9.模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述、对系统内各模型元素以及它们之间关系的语义描述.10.软件系统模型大体上可分为两类:概念模型和软件模型11.实施软件开发的基本途径:实施软件开发的基本途径是系统建模.所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构一一系统模型.12.软件开发所涉及的两大类技术:一是求解软件的开发逻辑(过程方向),二是求解软件的开发手段(过程途径).第二章软件需求与需求规约1. 一个需求是有关一个“要予构造”的陈述,描述了待开发产品/系统(或项)功能上的能力、性能参数或其他性质.2.对于单个需求,必须具有如下5个基本性质:•必要的(Necessary ),该需求是用户所要求的.•元歧义的(Unambiguous ),该需求只能用一种方式解释.与对象、接口、协作、用况、主动类、构件、节点和制品,并给出了它们的含义和表示.UML把它们统称为类目,作为元信息,以便对客观世界的一切事物进行模型化.3.为了描述事物之间的相互依赖和相互作用,即为了表达各类事物之间的关系,UML给出了 4个术语,即关联、泛化、实现和依赖.4.除了这两类术语之外,为了控制信息组织的复杂性,LML还引入了用于组织特定对象结构的包,一个包相当一个可管理的“预制块”.5.最后,为了使建造的系统模型容易理解,UML引入了表达注释的术语一一注解,用于对模型增加一些辅助性说明.6.类是一组具有相同属性、操作、关系和语义的对象的描述.对象是类的一个实例.7.类的属性是类的一个命名特性,该特性是由该类的所有对象所共享、用于表达对象状态的数据.8.所谓信息隐蔽是指在每个模块中所包含的信息(包括具有特定语义的数据和处理过程)不允许其他不需要这些信息的模块访问.信息隐蔽是实现模块低耦合的一种有效途径.但是,如果一个模块中的所有信息都是不可见的,即该模块是“绝对”信息隐蔽的,那么这种模块对系统而言也是亳无意义的.9.所谓类范围的属性是指该属性被该类所有对象所共享.10.操作是对一个类中所有对象要做的事情的抽象.leaf指明该操作是“叶子”操作.abstract指明该操作是抽象操作.query指明该操作的运行不会改变系统状态,即是完全没有副作用的纯函数.sequential指明在该类对象中,一次仅有一个控制流.当出现多个控制流时,就不能保证该对象的语义和完整性.guarded指明执行该操作的条件,实现操作调用的顺序化,即•次只能调用对象的一个操作,以保证在出现多控制流的情况下,对象具有的语义和完整性.concurrent指明来自并发控制流的多个调用可以同时作用于一个对象的任何一个并发操作,而所有操作均能以正确的语义并发进行.并发操作必须设计成,在对一个对象同时进行顺序的或监护的操作情况下仍能正确地执行.static指明该操作没有关于目标对象的隐式参数,其行为如同传统的全局过程.11.关于类语义的进一步表达:①详细表达类的职责.②通过类的注解和/或操作的注解,以结构化文本的形式和/或编程语言,详述注释整个类的语义和/或各个方法.③通过类的注解或操作的注解,以结构化文本形式,详述注释各操作的前置条件和后置条件,甚至注释整个类的不变式.④详述类的状态机.⑤详述类的内部结构.⑥类与其他类的协作.由此可见,类的语义表达,其详细程度取决于所采用的描述手段.应用中到底需要表到达何种程度,这取决于建模的意图.•如果是为了与最终川户和领域专家沟通,那么就可以采用较低的形式化手段.•如果是为了支持正向和逆向工程,即需要在模型和代码之间进行转换,那么就应该采用较高的形式化手段.•如果是为了对模型进行推理,证明其正确性,那么就应该采用很高的形式化手段.12.,类的作用主要有3个.①模型化问题域中的概念(词汇).②建立系统的职责分布模型.③模型化建模中使用的基本类型.13.接I 1是操作的一个集合,其中每个操作描述了类、构件或子系统的一个服务.14.在系统/产品建模中,接口的主要作用可概括为一句话,即对系统/产品中的“接缝”予以模型化.15.协作是一个交互,涉及交互的三要素:交互各方、交互方式以及交互内容.16.用况是对一组动作序列的描述,系统执行这些动作应产生对特定参与者有值的、可观察的结果.17.制品是系统中包含物理信息(比特)的、可替代的物理部件.18.关联是类目之间的一种结构关系,是对一组具有相同结构、相同链 (links )的描述.19.类是一组具有相同属性、操作、关系和语义的对象的描述;而关联是一组具有相同结构和语义的链的描述.20.聚合(Aggregation).分类是增强客观实际问题语义的一种手段.通过“ 一个类(类目〉是另一类〈类目)的一局部”这一性质,对关联集进行分类,凡满足这一性质的关联,都称为一个聚合.显然聚合是关联的一种特殊形式,表达的是一种“整体/局部”关系聚合是对象之间的一种结构关系,不是类(类目)之间的局部一种结构关系.21.组合(Composition ).组合又是聚合的一种特殊形式.如果在一个时间段内,整体类的实例中至少包含一个局部类的实例,并且该整体类的实例负责创立和消除局部类的实例,特别是如果整体类的实例和局部类的实例具有相同的生存周期,那么这样的聚合称为组合.22.泛化是一般性类目(称为超类或父类)和它的较为特殊性类目(称为子类) 之间的一种关系,有时称为 is-a-kind-of,关系.23.为了进一步表达泛化的语义,UML给出了 4个约束.①完整(Complete ):说明已经在模型中给出了泛化中的所有子类,尽管在表达的图形中有所省略,但也不允许增加新的子类.②不完整(Incomplete ):说明在模型中没有给出泛化中的所有子类,因此可以增加新的子类.③互斥(Disjoint ):说明父类的对象最多允许该泛化中的一个子类作为它的类型.例如,如果父类为Person,有两个子类Woman和Man,显然父类的一个对象,其类型或是子类Man,或是子类Woman④重叠(Overlapping):说明父类的对象可能具有该泛化中的多个子类作为它的类型.例如,类“交通工具”的一个对象可能是两栖工具,既是水上的又是陆地的.24.细化是类目之间的语义关系,其中一个类目规约了保证另一个类目执行的契约.25.依赖是一种使用关系,用于描述一个类目使用另一类目的信息和服务.26.按照CML的观点,客观世界一切事物之间的关系都可用依赖来规约,但为了对各种关系赋予特定的语义,采用分类手段将它们分为4类,如图4-49所示. 关联、泛化和细化都是一类特定的依赖.如此处理,可以保证UML提出的4个术语能够表达客观世界中各种各样的关系,即概念体系的完备性.因此,在系统建模中,为了模型化其中所遇到的关系,应首先使用关联、泛化和细化这3个术语,只有在不能使用它们时,再使用依赖.27. UML的图形化工具分为两类,一类是结构图,用于表达系统或系统成分的静态结构模型,给出系统或系统成分的一些说明性信息;一类是行为图,用于表达系统或系统成分的动态结构模型,给出系统或系统成分的一些行为信息,例如行为的功能性信息,行为的交互信息以及行为的生存状态信息.28.类图是构件图和部署图的基础.29.创立一个系统的类图,依赖于•所使用的方法学,但一般来说要涉及以下4 方面的工作.(1 )模型化待建系统中的概念(词汇),形成类图中的基本元素.(2 )模型化待建系统中的各种关系,形成该系统的初始类图.(3 )模型化系统中的协作,给出该系统的最终类图.(4 )模型化逻辑数据库模式.30.实践经验告诉人们,认识行为的一个有效途径是要从多个视角对其进行抽象一般来说,一是从(行为)功能的视角,二是从(行为)交互的视角,三是从(行为)生存周期的视角.为了支持从以上3个视角来认识系统(或系统成分)行为,对行为进行抽象,UML提供了7种图形工具,其中USE CASE图支持系统功能的建模,交互图支持系统交互的建模,状态图支持系统生存周期的建模.31.在一个用况图中,用况之间可以具有3种关系,即泛化、扩展和包含.注意笳头方向.32.一个用况图通常包含6个模型元素,它们是主题(Subject )、用况(Use cases )、参与者(Actor)、关联、泛化、依赖.33.使用用况图可以为系统建模,描述软件系统行为的功能结构;也可以对业务建模,描述企业或组织的业务过程结构.业务模型和系统模型之间具有“整体/ 局部”关系,即业务模型是“整体”,而系统模型是业务模型的•个组成局部.不论是对系统建模还是对业务建模,都涉及两方面的模型化工作,一是系统/业务语境的模型化,二是系统/业务需求的模型化.1)关于对系统/业务语境的模型化.在对系统语境的模型化中,应研究以下4个问题.①系统边界确实定,即确定哪些行为是系统的一局部,哪些行为是由外部实体执行的,同时定义主题.②参与者与用况的交互,即在用况图中说明参与者与系统用况之间的关联.③参与者的语义表达,在需要加深理解的地方,为每个参与者提供•个衍型.④参与者的结构化处理,即将一些相似的参与者组织为一肋特殊结构.2)关于系统/业务需求的模型化.①确定系统/业务的基本用况,即考虑每个参与者所期望或需要的系统行为,并把这些行为规约为相应的用况,如图4-63所示.②用况的结构化处理,即分解行为,形成必要的泛化结构和扩展、包含结构,并在用况图中给出各种已确定的关系.③用况的语义表达,即通过注解和约束来修饰用况,特别应给出用况的一些非功能需求.第四章面向对象方法-RUP1. RUP是一种软件开发过程框架,基于面向对象符号体系给出了有关软件开发过程组织及实施的指导.该框架表达了 3个突出特征,即以用况驱动、体系结构为中心以及迭代、增量式开发.2. RUP和UML是一对“姐妹”,它们构成.了一种特定的软件开发方法学.其中,UML作为一种可视化建模语言,给出了表达事物和事物之间关系的基本术语给出了多种模型的表达工具;而RUP利用这些术语定义了需求获取层、系统分析层、设计层、实现层,并给出了实现各层模型之间映射的基本活动以及相关的指导.3.RUP的突出特点是,它是一种以用况(Use Case )为驱动的、以体系结构为中心的迭代、增量式开发.4.在RUP中,规定了 4个开发阶段:初初始阶段(the Inception Phase )、精化阶段(the Ekiboration Phase )、构造阶段(由 e Construction Phase )和移交阶段(th。
软件工程重点
软件工程知识点汇总(大题自备)软件危机是指计算机软件的开发和维护过程中所遇到的一系列严重问题,不仅仅是正常运行的软件才具有的,几乎所有软件都有。
文档是软件开发过程中所产生的,而且应该是“最新式的”,软件开发的组织管理人员可以使用这些文档资料作为”里程碑”来管理和评价软件开发工程的进展状况,软件开发人员可以利用它们作为通信工具,在软件开发过程中准确的交流信息,对软件维护人员来说,是必不可少的,缺乏必要的文档资料或者文档资料不合格,必然给软件开发带来许多严重的问题和困难。
在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
许多错误认识和做法的形成,可以归因于在计算机系统发展的早期阶段软件开发的个体化特点。
错误的认识和做法主要表现为忽视软件需求分析的重要性,认为软件开发就是写程序并设法使之运行,轻视软件维护等软件是程序、数据及相关文档的完整集合。
其中,程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料软件工程方法学包含3个要素:方法、工具邗过程,,分别是传统方法学和面向对象方法学,软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,每个时期又进一步划分成若干个阶段:1.问题定义,2.可行性研究,3.需求分析,4.总体设计,5.详细设计,6.编码和单元测试,7.综合测试,8.软件维护Rational统一过程:技术可行性、经济可行性、操作可行性,社会可行性模块独立:模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果耦合是对一个软件结构内不同模块之间互连程度的度量。
耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。
5种耦合:数据耦合,控制耦合,特征耦合,公共环境耦合,内容耦合尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件工程》串讲讲义应考指导一、课程介绍1、课程性质《软件工程》是全国高等教育自学考试计算机及应用(独立本科段)的一门专业课。
软件工程是研究软件开发的一门课程,其主要内容包括:软件开发所需要的过程、活动和任务,以及这些活动和任务的组织、实施和管理。
2、指定教材本课程指定教材为《软件工程》,全国高等教育自学考试指导委员会组编,王立福主编,机械工业出版社出版,2011年版。
新版教材与2000年版相比,无论是内容还是内容的组织,都有了很大的变化。
整个知识体系、章节安排、内容选取都不一样,这是考生一定要注意的。
新版教材的内容组织特点主要体现在:基于对软件开发本质的认识,讲解软件工程的两大技术问题:一是开发逻辑,二是开发途径。
开发逻辑涉及软件生存周期过程、软件生存周期模型(有关过程、活动和任务的组织框架)以及项目软件生存周期的规划与监控。
开发途径涉及结构化方法和面向对象方法,以及支持软件评估所需要的软件测试技术等。
3、章节体系本课程共有8章:第1章:回答什么是软件开发的本质第2章:软件需求与软件需求规约第3章:结构化方法第4章:面向对象方法-UML第5章:面向对象方法-RUP第6章:软件测试。
第7章:软件生存周期过程及管理第8章:集成化能力成熟度模型CMMI二、考情分析1.历年真题的分布情况由于教材刚刚经过改版,新教材刚经过2011年10月、2012年01月、2012年10月三次考试。
通过对2011年10月、2012年01月这两次真题的分析,各章所占分值的分布情况如下表所示:25%左右。
第1章和第8章的考核知识点相对较少。
2.题型分析本课程的考试题型分为:(1)单项选择题,共15小题,每小题2分,共30分(2)填空题,共20个空,每空1分,共20分(3)简答题,共6小题,每小题5分,共30分(4)综合应用题,共2题,每题10分,共20分3.复习方法(1)以教学大纲为准绳。
自学考试的原则是:考试范围既不超出大纲又不超出教材范围。
所以考生一定根据教学大纲规定的考试内容和考核要求,认真学习教材,要全面、系统了解教材中的基本概念、基本知识。
(2)有的放矢。
在学习的过程中,为了达到“事半功倍”,要学会“舍”。
要用有限的时间去抓重点,对重点内容要进行深入细致的学习。
(3)注意学习方法,理论联系实际,注重理解重视理论联系实际,训练并逐渐提高运用所学理论分析和解决实际案例的能力。
考生应当注意在全面系统学习教材的基础上,尽可能多地了解和分析实际案例,以便更深刻地领会教材的内容,提高分析和解决实际问题的能力。
(4)合理安排时间,抓住学习重点根据实际情况自己安排,利用平时空余时间观看网络课件,形成基本的了解。
接下来认真地做一些练习题,不清楚的地方再回过头去看看书,并注意对不同的知识点进行比较,加深印象。
第一章绪论复习建议:本章内容较少,主要是让大家了解软件工程的提出的背景-软件危机以及软件工程研究的内容。
考试题目类型主要是单项选择题、填空题,题量在3%~5%之间。
第一节软件工程概念的提出与发展1.软件危机(1)速度:软件的发展水平远远滞后于硬件的发展水平,生产率低下,软件制造仍然是一种人工集约生产方式(2)质量:软件的质量低下,不能满足用户的需求、适应性差(3)成本:软件开发成本居高不下软件开发的速度、软件制品的质量、软件开发成本是软件工程的三个核心问题。
2.软件工程的发展(1)20世纪60~80年代瀑布模型;过程化语言;支持工具(2)20世纪80年代~今软件复用技术;软件生产管理;面向对象语言(3)近几年软件复用技术:构件技术、平台技术、需求工程技术、领域分析技术、应用集成技术等。
第二节软件开发的本质1.软件软件=程序+文档2.软件开发的本质:“映射”,即实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。
3.系统建模运用所掌握的知识,通过抽象,给出系统的一个结构。
4.模型模型是一个抽象。
模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述、对系统内各模型元素以及它们之间关系的语义描述。
5.系统模型的类型(1)概念模型:描述软件是什么(2)软件模型:实现概念模型的软件解决方案。
包括设计模型、实现模型和部署模型。
第二章需求获取复习建议:正确定义问题,是解决问题的基础。
需求获取是软件开发的第一步,它的工作质量决定了整个软件开发工作的成败,因此本章的内容是考核的重点内容。
考核的题目类型主要有:单项选择题、填空题、简答题,分值在10%左右。
内容以基本概念、基本原理为主。
第一节需求与需求获取1.需求的定义一个需求是有关一个“要予构造”的陈述,描述了待开发产品/系统功能能力、性能参数或其它性质。
2.需求的基本性质(1)必要的(2)无歧义的(3)可测的(4)可跟踪的(5)可测量的3.需求的分类★(1)功能需求,是整个需求的主体。
(2)非功能需求:性能需求、外部接口需求、设计约束和质量属性需求。
能够区分哪些是功能需求,哪些是性能需求。
4.接口需求的类别(1)用户接口(2)硬件接口(3)软件接口(4)通信接口(5)内存约束(6)运行(7)地点需求5.设计约束需求(1)法规政策(2)硬件限制(3)与其它应用的接口(4)并发操作(5)审计能力(6)控制功能(7)高级语言要求(8)握手协议(9)应用的关键程度(10)安全和保密6.质量属性(1)可靠性(2)存活性(3)可维护性(4)用户友好性7.需求发现的技术(1)自悟(2)交谈(3)观察(4)小组会(5)提炼第二节需求规约(SRS)1.需求规约的定义★是一个软件/产品/系统所有需求陈述的正式文档,它表达了一个软件/产品/系统的概念模型。
2.需求规约的基本性质★(1)重要性和稳定性程度:对需求进行分级(2)可修改的(3)完整的:没有被遗漏的需求(4)一致的:不存在互斥的需求3.需求规约的格式IEEE标准830-1998(IEEE 1998)描述的需求规格说明书模板。
4.需求规约(规格说明书)的表达(1)非形式化的需求规约(2)半形式化的需求规约(3)形式化的需求规约5.需求规约的作用★(1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现(2)需求规约是一个管理控制点(3)对于产品/系统的而设计,需求规约是一个正式的、受控的起始点(4)需求规约是创建产品验收计划和用户指南的基础第三章结构化方法复习建议:自顶向下,逐步求精。
本章是整个课程的重点内容,其基本思想、基本原理和基本方法是软件工程理论体系中最经典的内容,考核题型涉及单项选择题、填空题、简答题、综合应用题所有题目类型,占分值25%左右。
建议考生在牢记基本概念、基本原理的基础上,对综合应用题多下工夫,多做练习。
第一节结构化需求分析1.需求分析面临的挑战(1)问题空间理解(2)人与人之间的通信,“有效沟通”(3)需求的变化性2.结构化分析中的基本术语及表示方法(1)数据流(2)加工(3)数据存储(4)数据源和数据潭3.数据流图DFD图★用于建立系统功能模型。
是一种描述数据变换的图形化工具,其中包含的元素可以是数据流、数据存储、加工、数据源和数据潭等。
4.建模过程(绘制流程图的过程)自顶向下、功能分解(1)建立系统环境图(2)0层图:从0层图开始对流程图中的要素编号(3)1层图(4) ……【例题】绘制数据流程图(2008年10月真题) 41.某个学生成绩管理系统的部分功能如下:(1)基本信息管理:教务管理人员输入或修改学期教学执行计划、学生名单和教师名单;(2)学生选课:学生根据教学执行计划进行选课;(3)分配任课教师:教务管理人员为符合开课条件的课程分配教师,并打印任课通知单给教师;(4)成绩管理:每门课程的教师在考试评分结束后将考试成绩交给教务管理人员,教务管理人员输入、维护成绩,系统可生成成绩单(发给学生)、成绩统计分析表(发给教务管理人员)。
请根据要求画出该问题的分层数据流图(要求画出顶层和0层数据流图)。
【解析】顶层图:只包含数据源/数据潭以及相关的数据流和一个处理。
学生名单学生选课结果 教师信息成绩单学生成0层图要注意的问题:黑洞(black hole),即只有输入而没有输出。
②只有输出而没有输入。
③灰洞(gray hole),即输入不足以产生输出。
灰洞是经常也是不易被察觉的错误。
④加工处理只用来表示数据的处理和变化,避免将计算机命令作为处理。
⑤数据流必须起于且/或止于处理,即每一个数据流必须有一个处理与之有关,数据流不能起于数据存贮且止于一个数据源/数据潭或另一个数据存贮;也不能起于某个实体且止于另一个数据源/数据潭或数据存贮。
5.数据字典定义数据流程图中所有数据流和数据存储的数据结构。
顺序结构:+选择结构:|重复结构:{ }子界:m..n6.加工的描述★(1)判定表判断表(Decision Table)也称为决策表,是一个二维表,它说明了每一种条件组合所产生的结果。
该表分为四个象限(quadrants)。
a)左上限代表所有的条件b)左下限代表可能的结果c)右上限代表每一种条件的取值(用Y和N来表示)d)右下限用X表示所对应的条件组合所产生的结果【例题】画出顾客购货的折扣政策的决策表。
销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。
若付款日期在10天以内(含10天),则当交易额超过¥10,000时,给予5%的折扣;当交易额在¥5,000到¥10,000之间(含¥5,000)时,给予3%的折扣;当交易额低于¥5,000时,没有折扣。
若付款日期超过10天,则无论交易额多少,均不给任何折扣。
【解析】(2)判定树判断树(Decision Tree)也称为决策树,是用来描述在一组不同的条件下,决策的行动是根据不同条件及其取值来选择的处理过程。
业务规则的描述通常可以使用判断树这一过程描述工具。
【例题】画出顾客购货的折扣政策的决策树。
销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。
若付款日期在10天以内(含10天),则当交易额超过¥10,000时,给予5%的折扣;当交易额在¥5,000到¥10,000之间(含¥5,000)时,给予3%的折扣;当交易额低于¥5,000时,没有折扣。
若付款日期超过10天,则无论交易额多少,均不给任何折扣。
解析:(3)结构化语言【例题】用结构化语言表达:顾客购货的折扣政策。
销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。
若付款日期在10天以内(含10天),则当交易额超过¥10,000时,给予3%的折扣;当交易额在¥5,000到¥10,000之间(含¥5,000)时,给予2%的折扣;当交易额低于¥5,000时,没有折扣。
若付款日期超过10天,则无论交易额多少,均不给任何折扣。