软件工程主要知识点.docx
《软件工程主要知识点.docx》由会员分享,可在线阅读,更多相关《软件工程主要知识点.docx(8页珍藏版)》请在冰豆网上搜索。
软件工程主要知识点
YUKIwascompiledonthemorningofDecember16,2020
软件工程主要知识点
1.软件的定义(
P1)
计算机(程序)、(规程)以及运行计算机系统可能需要的相关(文档)和(数据)。
2.应用软件的分类(P2)
通用软件和定制软件
3.软件的本质特性(P3)
复杂性、一致性、可变性、不可见性
4.软件危机的表现(P5-7)
1、软件开发的成本和进度难以准确估计,延迟交付甚至取消项目的现象屡见不鲜。
2、软件存在错误多,性能低,不可靠,不安全等质量问题。
3、软件成本在计算机系统的整个成本中所占的比例越来越大
4、软件维护及其困难,而且很难适应不断变化的用户需求和使用环境。
5.软件工程的定义(P7)
①将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护,即工程化应用到软件上;②对①中所述方法的研究。
6.软件工程包括哪些基本要素简述它们的作用(P7-8)
7.
过程、方法、工具
方法:
为软件开发提供了“如何做”的技术、通常包含某种语言或图形的模型表示方法,设计实践和质量保证标准。
工具:
为软件工程的方法提供自动或半自动的软件支持环境辅助软件开发任务完成。
过程:
是管理和控制产品质量的关键,将人员、技术、组织与管理有机的结合起来。
8.软件的质量可以从哪些方面评价(P8-9)
可用性、有效性、可依赖性、可维护性
9.软件工程方法有哪些(P9-10)(传统方法<面向过程的方法、面向数据的方法等>、面向对象方法)
传统方法:
面向数据方法、面向过程方法
面向对象方法
10.CASE系统的三个层次(P10-11)
工具:
CASE工具支持单个过程的任务
工作台:
CASE工作台支持某一过程阶段的活动
环境:
CASE环境支持整个软件过程的所有活动或者大部分活动,通常是若干CASE工作台的集成
11.SWEBOK的10个知识域英文名称(P15-19)
12.
1软件需求(Softwarerequirements)→2软件设计(SoftwareDesign)→3软件构造(SoftwareConstruction)→4软件测试(SoftwareTesting)→5软件维护(SoftwareMaintenance)→6软件配置管理(SoftwareConfigurationManagement)→7软件工程管理(SoftwareEngineeringManagement)→8软件工程过程(SoftwareEngineeringProcess)→9软件工程工具与方法(SoftwareEngineeringToolsandMethods)→10软件质量(SoftwareQuality)
11.软件工程与其他相关学科的关系(P19-20)
软件工程将计算机科学,数学,工程学和管理学等基本原理应用于软件开发的工程实践中,并借鉴传统工程的原则和方法,以系统的,课控的,有效的方式产生高质量的软件。
1.软件工程目标(P23)
优质,高效
2.软件过程的定义(P24)
软件工程人员为了获得(软件产品)而在(软件工具)的支持下实施的一系列(软件工程)活动。
3.软件过程的基本活动(P25-26)
1、问题提出2、软件需求规格说明3、软件设计4、软件实现5、软件确认6、软件演化
4.软件过程的制品有哪些(P26-27)
1、软件需求制品2、软件设计制品3、软件实现制品4、软件测试制品5、软件实施制品
5.软件过程模型有哪些各有哪些特点适用的项目
瀑布模型:
规定需求、设计、实现、测试与维护这些基本活动,并固定次序。
快速原型:
迅速构件一个软件模型,进一步细化待开发的需求,逐步修改原型。
增量模型:
软件作为一系列的增量构件来设计、实现、集成和测试。
螺旋模型:
将瀑布和快速原型结合起来。
形式化方法模型:
将需求描述提炼成用数字符号表达的形式化描述。
然后形式化转换。
基于组件的开发模型:
依赖于可复用的组件和相应的集成环境,提高开发效率和产品质量。
1.软件项目管理活动有哪4个阶段(
P38-40)
项目启动→项目规划→项目实施→项目收尾
2.3种典型的开发组织方式(P40-41)
民主式、主程序员式和技术管理式
3.项目的沟通方式有哪些(P46-47)
1、直接交谈2、电话交谈3、电子邮件4、会议5、项目网站6、书面报告
4.软件规模估算的方法有哪些(P50-51)
代码行技术,功能点技术
5.软件成本估算有哪些技术(P54-55)
1、专家判断2、类比估算3、COCOMO模型
6.软件风险管理的过程有哪些基本活动(P58图)
1、风险识别2、风险分析3、风险规划4、风险监控
7.什么是配置管理(P65)
一种(标识、组织和控制)修改的技术,其作用于整个软件生命周期,其目的是是错误到达最小并最有效地提高生产率。
8.什么是基线(P65)
已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变
9.配置管理活动有哪些(P66-68)
1、配置项标识2、版本管理3、系统构建4、变更控制
1.软件需求的定义(P71)
1、用户解决问题或达到目标所需的条件或能力
2、系统或系统部件要满足合同、标准、规范化或其他正式规定文档所需具有的条件或能力3、一种反应上面1或者2所描述的条件或能力的文档说明
2.软件需求可分为哪些类型(P72图)
业务需求、用户需求、功能需求、非功能需求、系统需求
3.需求工程包括哪些基本活动每一项活动的主要任务是什么(P76,P77-86)
4.
1需求获取:
采集识别和提取用户需求,对问题和需求形成文档描述,是大家有过一个共同的认识和理解。
2需求分析:
分析和综合所持采集的信息,简历系统的详细逻辑模型。
3需求规格说明:
编写软件规格说明书,准确,完整的表达已确认的需求。
4需求验证:
评审软件规格说明,保证其正确,一致,完备,准确和清晰性。
5需求管理:
定义需求基线,在整个项目中跟踪需求状态及其变化。
5.需求分析的核心工作(P78)
建立分析模型是需求分析的核心工作
6.主要的需求获取技术有哪些它们的优缺点和适用场合(P87,P87-92)
7.
1面谈:
多种情况下使用的简单而直接的方法。
2需求专题研讨会:
很快产生系统初步定义,畅所欲言,降低风险,解决行政问题。
3观察用户工作流程:
开发人员很难通过面谈和回忆获取供求信息。
4原型化方法:
常用方法,系统可视化获取用户需求,解决早期系统需求不定的问题。
5基于用例的方法:
以任务和用户为中心,确定参与者与事物妆花为对象模型。
1.面向对象软件工程方法的活动有哪些英文名称及其简称(P134-135)
1、面向对象分析(ObjectOrientedAnalysis,OOA)
2、面向对象设计(ObjectOrientedDesign,OOD)
3、面向对象编程(ObjectOrientedProgramming,OOP)
4、面向对象测试(ObjectOrientedTesting,OOT)
5、面向对象维护(ObjectOrientedSoftwareMaintenance,OOSM)
2.面向对象的基本概念有哪些英文名称(P135-138)
3.
(1)对象(Object)
(2)类(Class)(3)封装(Encapsulation)(4)继承(Inheritance)(5)消息(Message)(6)关联(Association)(7)聚合(Aggregation)(8)多态性(Polymorphism)
英文全称(P140)
UnifiedModelingLanguage
4.UML用哪些视图英文名称(P142)
5.
用例视图(Use-caseView)设计视图(DesignView)进程视图(ProcessView)实现视图(ImplementationView)和分布视图(DeploymentView)
1.面向对象分析模型由哪些模型组成(P157)
(1)功能模型
(2)分析对象模型(3)动态模型
2.3种分析类的构造型类形式和图标形式?
(P157-159)
实体类边界类
图标形式:
控制类
图标形式:
3.面向对象需求分析有哪些活动应该建立哪些类型的模型(P159)
4.
理解用例模型、识别分析类、定义交互行为、建立分析类图、评审分析模型
模型:
实体类模型、边界类模型、控制类模型、
5.什么是实体类、边界类和控制类为什么将分析类划分成这3种类型(P159-163)
6.
实体类:
表示系统存储和管理的永久信息
边界类:
表示参与者与系统之间的交互
控制类:
表示系统在运行过程中的业务控制逻辑
为了识别分析类,通常需要充分理解系统内部的行为,因此需要在最初的用例模型中适当的补充说明系统内部是如何响应外部请求的,所以开发人员需要确定一组备选的且支持用例行为的一些分析类。
1.软件设计活动可分为哪两个阶段(P171)
系统设计和详细设计两个阶段
2.软件设计的原则有哪些英文(P172-174)
3.
模块化、耦合度和内聚性、复用性
4.典型的软件体系结构风格有哪些(4种体系机构的名称P175-178)
5.
仓库体系结构:
分层体系结构:
MVC体系结构:
客户机/服务器体系结构:
管道和过滤器体系结构:
6.软件三层体系结构(P178,或表示层、应用逻辑层、存储层)
7.详细设计的描述工具(详细设计常用的3种工具是图形,表格,语言)
第10章软件测试
1.软件验证和确认的区别(P222-223)
确认强调结果的检验,验证强调过程的检验。
确认证明所提供的产品符合预期的使用需求,而验证说明工作产品是否适当的反映了特定需求。
换言之,验证确保「你把事做对了」,而确认确保「你做了对的事」。
2.软件测试的定义软件测试的目的(P224)
3.
广义上讲,测试是指软件产品生存周期内所有的检查、评审和确认活动。
狭义上讲,测试是对软件产品质量的检验和评价,它一方面检查软件产品质量中存在的质量问题,同时对产品质量进行客观的评价。
目的:
在于以最少的时间和人力系统地找出软件中潜在的各种错误和缺陷。
4.什么是测试用例(P227)
数据输入和期望结果组成的对,其中“输入”是对被测软件接受外界数据的描述,“期望结果”是对于相应输入软件应该出现的输出结果的描述,测试用例还应明确指出使用具体测试案例产生的测试程序的任何限制。
测试用例可以被组织成一个测试系列,即为实现某个特定的测试目的而设计的一组测试用例。
5.驱动模块和桩模块的概念(P234)
驱动模块的作用是用来模拟被测模块的上级调用模块,功能要比真正的上级模块简单得多,它接收测试数据并将这些数据传递到被测试模块,被测试模块被调用后,打印“进入-退出”消息。
桩模块用来代替被测模块调用的模块,用以返回被测模块所需的信息。
6.黑盒测试和白盒测试的概念(P241-242)
黑盒测试:
也称功能测试或数据驱动测试,它是在已知产品所应具有的功能的情况下,通过测试来检测每个功能是否都正常使用。
白盒测试:
也称结构测试或逻辑驱动测试,它知道产品内部工作过程,,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都能按预定的要求正常工作,而不顾他的功能。
7.黑盒测试法中常用的设计测试用例的方法(P242-244)
(1)等价类划分:
是一种典型的黑盒测试方法,可将测试用例数量降到最少。
(2)边界值分析:
是等价类测试的特例,主要是考虑等价类的边界条件,在等价类的“边缘”选择元素。
(3)状态测试:
需要通过不同的状态验证程序的逻辑流程;
(4)失败条件测试:
主要有竞争条件、重复、压迫和重负。
(5)错误推测法:
根据经验积累和直觉判断,列出软件中所有可能存在的错误和容易发生错误的情况,针对这些情况选择测试用例。
8.白盒测试法中逻辑覆盖标准有哪些(P245)
语句覆盖、分值覆盖、条件覆盖
1.软件变更的处理可用什么策略(P266)
软件维护
2.软件维护的类型及其工作量(P266,P267)
(1)改正性维护17%
(2)适应性维护18%
(3)完善性维护65%
3.软件开发过程对软件维护有什么影响(P267,结构化维护和非结构化维护)
如果采用软件工程的方法进行软件开发,保证每个阶段都有完整且详细的文档,这样维护就相对容易,同城被称为结构化维护。
如果不采用软件工程方法开发软件,软件只有程序而欠缺文档,则维护工作会变的十分困难,通常被称为非结构化维护
4.软件再工程的概念(P270)
遗留系统通常对组织的核心业务提供关键性支持,因此需要采用先进的软件工程方法对整个软件和软件中的一部分重新进行设计,编写和测试,以提高软件的可维护性和可靠性、保证系统的正常运行,这就是软件再工程。