软件工程复习提纲总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“软件工程复习重点总结”。
第1部分:软件工程概论
要求掌握:
● 软件的概念,软件的本质特征是什么?
软件:是相对硬件而言的,是计算机系统中的程序、数据,及其相关文档的总称。软件的本质是:对人的意识的反映
软件的特征: 抽象性、智能性、无形性、依附性、复杂性、泛域性、非损性、复制性、演化性 ● 软件工程概念
软件工程是采用工程概念、原理、技术和方法来指导计算机软件开发和维护的工程学科,该学科运用到计算机科学、数学、管理学等原理和方法,遵循系统化的思想,运用工程化方法,指导软件开发和维护工作。
● 软件工程提出的原因,软件危机的主要表现形式
答:
因软件危机提出了软件工程
表现形式:◆ 软件开发不能按照计划进行控制和完成,普遍存在拖延工期的现象;◆ 软件开发生产率满足不了巨大的市场需要;◆ 开发出来的软件满足不了用户的需求;◆ 软件投资严重超出预算;◆ 软件可靠性和可用性差。
● 软件工程学科的发展过程,各阶段的时间范围,以及在每一个发展阶段突出的特征 软件工程学科的发展可以粗略划分为四个时期: 1.软件工程准备期:20世纪40年代中-60年代末
特征: 程序是软件的核心内容; 强调程序的艺术化和个性化;软件概念出现;软件危机出现。2.软件工程形成期:20世纪60年代末-80年代中
特征:软件工程概念出现;没有形成完整软件工程学科体系; 以软件开发方法研究带动整个软件工程的发展,出现了典型的结构化方法,JSD方法等经典软件开发方法;程序设计方法深入研究:程序设计=算法+数据结构;数据结构,操作系统,数据库技术发展 3.软件工程发展期:20世纪80年代末-90年代中
特征:软件需求旺盛,软件产业形成;微机、网络等技术出现并飞速发展;软件开发集成环境; 面向对象方法开始受到重视;文件服务器模式,C/S模式出现。4.软件工程纵深期:20世纪90年代末-今天
特征: WWW技术出现并趋于成熟; 软件体系结构; 软件工程过程 以UML为代表的软件建模语言和软件建模技术出现;云计算和物联网。
● 软件工程学科的基本内容,在什么时间提升为一级学科?
答:内容:软件工程理论,软件工程技术,软件工程管理,软件服务工程,在2011年.● 软件生存期模型,都有哪些形式,每一种模型的特征及优缺点
答:1.瀑布模型 :各阶段明确任务、自上而下、顺序固定、逐级过渡的结构模式,各阶段的联系就象瀑布流水一样自上而下、不可逆返。
特点:软件各阶段之间具有顺序性和依赖性的观点;问题放大效应的观点;推迟实现的观点;质量保障的观点
缺点:开发过程不允许往返,缺乏灵活性;在软件开发出来之前,用户无法知道软件的真实面目。2.演化模型
特点:针对事先不能完整地定义需求; 针对用户的核心需求,开发核心系统;根据用户的反馈,实施活动的迭代。
优点:解决了瀑布模型不允许阶段返回的问题; 适合不能及时确定需求的开发场景;
缺点: 每一个迭代期,仍然以瀑布模型为基础。3.增量模型
优点:每个阶段交付一个可用的产品;减少一个全新产品给客户带来的心理上的影响;分阶段地交 1 付产品不需要大的资金支出;需求经常变化,增量模型的灵活性使其具有更加优越的适用性。
缺点:需要一个开放的结构,方便构件的加入;增量模型本身就是一个矛盾的名词。4.螺旋模型:分步推进、逐步深化的螺旋方式
优点:更符合人们的认知规律;容易确定某个软件产品何时测试完成。
缺点:开发和维护的界限变得不十分清晰;仅适应于大型软件开发。5.喷泉模型
特点:软件生存期需要划分成为多个相对独立的阶段,但各个阶段之间的界限并不是十分明确,相邻阶段之间存在明显的重迭和交叉。6.智能模型
●什么叫软件工程过程,国际标准化组织规定了有哪些过程?RUP的含义是什么?它有哪些典型特征? 答:软件工程过程:是指软件在其生命周期中,一系列相关活动按照确定的次序演绎变化的进程.包括:◆ 获取过程 ◆ 运作过程 ◆ 供应过程 ◆ 维护过程 ◆ 管理过程
◆ 支持过程◆ 开发过程
◆ 裁剪过程
统一软件开发过程RUP
时间维:
初始、细化、构建、移交4个阶段。
工作维:领域分析、需求分析、系统设计、实现和测试等核心工作。第2部分:软件建模技术概论
要求掌握: ● 软件模型的概念
答:软件模型:是指通过软件建模语言,对软件的功能和性能等外特性,软件的要素和结构,以及软件的动态行为特性所给出的抽象和规范描述。
● 软件模型的基本内容
答:1)从软件反映的侧面看软件模型的内容:功能模型、对象模型、数据模型、过程、交互、状态、架构、界面。
2)从软件开发的工作看软件模型的内容:业务、需求、分析、测试、设计。● UML的中文含义是什么?
答:统一建模语言(Unified Modeling Language)● 在2.0版本之后,UML共定义了哪些图? 答:
●用例图、类图、活动图、顺序图、状态图的画法,这些图的作用是什么
答:1.用例图:用例图用来描述软件的功能,作用是: 展现软件功能;展现软件使用者和软件之间的关系;展现软件功能相互之间的关系。
2.类图:作用:描述一组类之间的关系。用于结构和静态建模.3.活动图:作用:描述活动流过程。
4.顺序图:作用:描述一个交互,强调消息之间的时间顺序。
5.状态图:作用:描述一个模型要素所处的状态及其变化。
第3部分:软件策划 ● 软件为什么要进行策划?
答:软件策划的含义:是在开发一个软件之初,所进行的谋划、打算和计划。
工作包括:提出软件开发的问题;定义和描述问题;可行性分析; 软件规划; 软件计划。● 可行性分析的主要内容是什么? 答:经济、技术、社会。● 如何进行软件规划?
答: 软件的背景、环境及性质;软件的基本需求; 软件的目标和范围;软件的框架和构成; 软件建设的长期发展设想;软件开发的近期计划安排。●如何制定软件计划?
答:1.软件项目总述:包括软件项目的名称、项目提出的背景、软件目标、软件的性质、范围、基本需求、基本环境、基础条件和时限要求等.2.软件的工作任务:按工作阶段,工作任务把分解出来的具体任务列出来。3.软件的资源需求(1)人力资源:
(2)环境资源:计算机及相关设备、网络、支撑软件、场地资金等其他资源进度计划
第4部分:软件需求分析
要求掌握: ● 什么叫软件需求?
答:需求是指明系统能为用户做什么,能够给用户解决什么问题的说明。它描述了系统能够给用户提供什么功能和服务,并且以怎样方式来完成这些功能和服务,以及的系统性质、行为和特性
● 软件需求的基本内容
答:总体需求; 功能需求;非功能需求; 环境性需求
● 结构化方法的基本思想,结构化方法用什么工具进行需求分析? 答:模块化、自顶向下、结构化程序设计的思想
结构化需求模型的主要内容:数据模型:采用E-R图描述; 功能模型:采用数据流图描述; 行为模型:采用状态迁移图描述。● 掌握用例图的画法
泛化关系: 参与者与参与者之间,用例与用例之间存在一般与特殊的泛化关系,例如:
包含关系: 两个用例之间,一个用例(基用例)的行为要用到另外一个用例(包含用例)的行为。包含关系用依赖关系的>构造型来表示。
扩展关系:表示基本用例在扩展点要增加新的行为或功能,以扩展到新用例。扩展关系用依赖关系的>构造型来表示。
● 能够对一个应用需求采用用例图进行需求分析
第5部分:软件设计
● 软件设计与需求分析有什么区别?
答:软件设计:是根据需求分析的结果,考虑软件实现环境,通过对软件的结构、构件、数据、界面等方面的设计,得到优化的软件设计方案的工作。
需求分析回答软件“做什么”,软件设计回答软件“怎么做”的问题。
● 软件体系结构设计的基本内容是什么?
答:软件体系结构设计:从信息需求中综合出数据结构、程序结构、接口特征和过程细节。
● 如何进行实体类的设计,类优化有哪些方法?
答:经历建立业务对象模型、PIM类模型设计和PSM类模型设计等工作。
类优化方法:利用数据库规范化理论来优化类模型;善用事务模式;根据类的优化准则来优化类模型;去除派生属性;合并性质相同的属性; 属性转化为类;多对多关联的优化。● 掌握用事务模式建立类模型的方法
● 掌握用MVC模式进行功能用例设计的方法 ● 掌握以类图为基础的数据库设计方法 ● 能够对一个应用进行设计工作 第6部分:软件测试 ● 软件测试的概念
答:用人工或自动的方法执行并评价软件产品或其部件的过程,以验证它是否满足规格的要求,或是识别期望结果和实际结果之间有误差别。
● 软件测试的基本方法(黑盒测试,白盒测试)
答:1)黑盒测试2)白盒测试3)静态测试4)动态测试 5)人工测试6)自动测试 ● 软件测试的工作
答:1测试的组织和管理、建立测试队伍、小组,对测试用例、软件缺陷、文档等进行管理; 2 编制测试计划:编制测试计划和说明; 3 设计测试用例:测试实施:按照测试计划与测试说明的定义对测试对象进行相应的测试,填写测试报告中相应的表格 5 测试报告分析:定性分析,以检查测试工作执行状态; 6 测试评审与报告:提交完整的测试文档。
****************************************************************************** 6 软件是计算机系统中的(程序)、数据及其(文档)的总称。
软件的类型按作用可以分为:(系统软件)、应用软件和(支撑软件)三种类型 软件工程的概念是在(1968)年,在(北大西洋公约组织一次会议)被首次提出来的。下面(B)不是软件的特征:
A 系统性与复制性 B 有形性与可控性 C 抽象性与智能性 D 依附性与泛域性 下面说法正确的是(B)
A 20世纪50年代提出软件工程概念 B 20世纪60年代提出软件工程概念 C 20世纪70年代提出客户机/服务器技术 D 20世纪80年代软件工程学科达到成熟 下面(D)不是系统软件:
A BIOS B Windows C 设备驱动程序 D 办公软件
下面(A)不是软件危机的原因: A:软件生产能力不足 B:对软件内涵认识不够 C:不重视软件工程化 D:软件工具落后
从现实生活中找一个例子来说明硬件、软件和计算机语言的关系。
软件工程生存周期模型有瀑布模型、(喷泉模型)、螺旋模型和(演化模型)等。UML是(Rational)提出来的,他的中文含义是(统一软件建模语言)。下面(B)不是软件生存周期中,某一阶段的工作:
A:问题定义 B:程序安装 C:系统测试 D:软件设计 下面(A)不属于RUP的工作:
A:构建 B:测试 C:需求 D:实现 可行性分析包括(经济)、技术和(社会)几个方面。对可行性分析而言,正确的是(C):
A:可行性分析有可行和不可行两种结果 B:投资也就是软件的开发总成本 C:效益包括经济效益和社会效益 D:社会可行性也就是软件操作的可行性 1.软件需求分析的主要任务是()。
A.给出软件解决方案
B.给出系统模块结构 C.定义模块算法 D.在一个特定的抽象层上建立系统模型
2.为了表达系统的静态结构,可用的图形化工具有()。
A.类图、构件图、部署图
B.类图、状态图、顺序图。
C.协作图、活动图、PAD图
D.交互图、状态图、USE CASE图。
3.主要的项目管理活动包括计划项目、组织项目、()和终止项目。
协调项目
B.风险管理
C.监督项目
D.控制项目
4.若对象A可以给对象B发送消息,那么()。
A.对象B可以看见对象A
B.对象A可看见对象B C.对象A、B相互不可见
D.对象A、B相互可见
5.软件设计的主要任务是设计软件的结构、过程和模块,其中软件结构设计的主要任务是要确定()。A.模块间的操作细节B.模块间的相似性 C.模块间的组成关系D.模块的具体功能 6.随着软硬件环境变化而修改软件的过程是()。
A.校正性维护 B.适应性维护
C.完善性维护
D.预防性维护
7.在系统测试中,()是在一个实际环境中使用真实数据运行系统。
A.验证测试
B.审计测试
C.确认测试
D.模块测试 8.当使用DFD对一个工资系统进行建模时,()可以被认定为外部实体。
A.接收工资单的银行
B.工资系统源代码程序
C.工资单
D.工资数据库的维护 9.在UML提供的图中,()用于描述系统与外部系统及用户之间的交互。
A.用例图
B.类图
C.对象图
D.部署图
10.在面向数据流的设计方法中,一般把数据流图中的数据流划分为()两种
A.数据流和事务流B.变换流和数据流
C.变换流和事务流 D.控制流和事务流
二、填空题:
1.如果一个模块被n个模块调用,其中直接的上级模块的个数是m个(m
2.软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了___________。3._________是一项已经定义得很好的工作,是管理有关项目工作的最小的单元。
4.在设计人机界面时用户技能对用户进行分类,可分为新手用户、平均用户、专家用户和_______。5.一般在程序起始部分,表明程序用途的注释是___________。
三、简答题:
1. 增量模型的主要特点是什么?它有哪些优缺点?
2. 软件设计中,模块之间的数据耦合与特征耦合的有何区别?请举例说明。3. 请简述UML部署图的作用,并举例说明。
4. 简述类的聚集关系,共享聚集和组合聚集有什么区别,请举例说明。
四、设计题:
1.请画出以下系统的分析阶段的类图。一幢有m层楼的大厦中需要一套控制n部电梯的产品,要求n部电梯根据下列约束在楼内移动。C1:每部电梯有m个按钮,每个按钮代表一层,当按下按钮是指示灯亮,电梯驶向相应楼层,当到达楼层时指示灯灭。C2:除最低和最高层外每层楼有两个按钮分别指示电梯上行和下行,当这两个按钮之一被按下时相应的灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。C3:当电梯无升降动作时,关门并停在当前楼层。
2.设计下列伪码程序的语句覆盖和基本路径测试的测试用例。INPUT(A,B,C)IF A>5 THEN X=10 ELSE X=1 IF B>10 THEN Y=20 ELSE Y=2IF C>50 THEN Z=30 ELSE Z=3 3.用户可以通过电信的计费系统查询话费,用户既可以是个人用户,也可以是集团用户。查询由电信计费人员完成。用户话费查询包括查询通话记录、短消息记录和月租费,集团用户还可以查询集团定制服务费用。请画出用例图。
五、应用题:
为方便储户,银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并打印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。
请设计出系统的数据流图(画顶层,0层和1层)(10分),软件结构图(10分)。