山东建筑大学计算机学院软件工程复习概要
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程复习概要
1.3 软件工程包含哪些基本要素?简要说明这些要素及其作用?
方法:为软件开发提供了“如何做”的技术、通常包含某种语言或图形的模型表示方法,设计实践和质量保证标准。
工具:为软件工程的方法提供自动或半自动的软件支持环境辅助软件开发任务完成。
过程:是管理和控制产品质量的关键,将人员、技术、组织与管理有机的结合起来。
1.7 软件工程面临的问题与挑战?
遗留系统问题、高可信软件开发要求、软件开发方式的转变。
1.8 描述SWEBOK所包含的的师哥只是领域?
1软件需求→2软件设计→3软件构造→4软件测试→5软件维护→6软件配置管理→7软件工程管理→8软件工程过程→9软件工程工具与方法→10软件质量
2.1 简要说明软件过程的概念和基本要素?
传统:用户需求→过程→产品
Now:将软件开发任务看作是一个可控的,可度量的和可改进的过程。
2.3 软件开发过程模型
瀑布模型:规定需求、设计、实现、测试与维护这些基本活动,并固定次序。
快速原型:迅速构件一个软件模型,进一步细化待开发的需求,逐步修改原型。
增量模型:软件作为一系列的增量构件来设计、实现、集成和测试。
螺旋模型:将瀑布和快速原型结合起来。
形式化方法:将需求描述提炼成用数字符号表达的形式化描述。然后形式化转换。
基于组件:依赖于可复用的组件和相应的集成环境,提高开发效率和产品质量。
3.1 简要说明软件项目管理的过程。
项目启动→项目规划→项目实施→项目收尾(人员组织与管理、项目沟通管理、项目规划、软件风险管理、软件配置管理)
4.3 软件工程包含哪些基本活动,每一项活动的主要任务是什么?
1需求获取:采集识别和提取用户需求,对问题和需求形成文档描述,是大家有过一个共同的认识和理解。
2需求分析:分析和综合所持采集的信息,简历系统的详细逻辑模型。
3需求规格说明:编写软件规格说明书,准确,完整的表达已确认的需求。
4需求验证:评审软件规格说明,保证其正确,一致,完备,准确和清晰性。
5需求管理:定义需求基线,在整个项目中跟踪需求状态及其变化。
4.4 试比较本章的集种主要的需求获取技术,说明每一种技术的额优缺点和使用场合?
1面谈:多种情况下使用的简单而直接的方法。
2需求专题研讨会:很快产生系统初步定义,畅所欲言,降低风险,解决行政问题。
3观察用户工作流程:开发人员很难通过面谈和回忆获取供求信息。
4原型化方法:常用方法,系统可视化获取用户需求,解决早期系统需求不定的问题。
5基于用例的方法:以任务和用户为中心,确定参与者与事物妆花为对象模型。
6.1 试解释下列词语。
1 对象;客观事物的一个实体,系统的基本单位。
2类:具有相同属性和服务的一组对象的集合。
3属性:用来描述对象静态特征的一个数据项。
4操作:
5关联:对象属性之间的静态联系,通过属性来表现对象之间的依赖关系。
6泛化:
7聚合:对象之间的组成关系,一个对象是另一个对象的组成或部分。
8依赖:
6.4 UML关系包含关联、泛化、聚合、实现、依赖五种关系。
关联是一种结构关系,说明一个事物的对象与另一个事物的对象的联系。类A调用类B的方法。
泛化是一种一般事物(父类)和特殊事物(子类)之间的关系,例如学生与研究生。
聚合是对象之间的组成关系,一个对象是另一个对象的组成或部分。学生选修课多对多。
实现是一个类元指定了由另一个类元保证执行的契约,例如接口和实现他们的类
依赖是一种使用关系,她描述了一个事物的变化会影响到另一个使用它的事物。例如汽车类和汽车轮子类
7.1 面向对象分析包括哪些活动?应建立哪些类型的模型?
继承多态封装
® 封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部。® 继承:子类拥有父类的所有数据和操作。
® 多态:一个程序中同名的不同方法共存的情况。
有两种形式的多态–重载与重写
8.2 什么是三层体系结构?他们的优缺点是什么?
三层体系机构划分为表示层、应用逻辑层、和数据存储层,其中表示层有用户浏览器处理,应用逻辑层交给独立的应用服务器处理,数据存储层则放在数据服务器上。
优点:浏览器与应用服务器同过HTML标准语言相结合,客户端的维护代价几乎是零
应用服务器与数据服务器通过标准的数据接口灵活的访问各种平台的数据库。
应用逻辑层可以部署在由多个服务器节点组成的集群上,集群可以提供复制、负载平衡和故障切换等功能,保证了应用的性能、可靠性和可伸缩性。
缺点:是应用服务器与技术平台耦合紧密,因此基于不同平台的应用服务器依然是信息孤岛。
10.1 用自己的话说明验证与确认的区别?
确认注重结果,验证注重过程。确认证明所提供的产品符合预期的使用需求,而验证说明工作产品是否适当的反映了特定需求。换言之,验证确保「你把事做对了」,而确认确保「你做了对的事」。
10.2 软件测试包括哪些类的测试?这些测试之间的区别是什么?
软件测试的分类
从是否关心软件内部结构和具体实现的角度划分
A.白盒测试
B.黑盒测试
C.灰盒测试
从是否执行程序的角度
A.静态测试
B.动态测试
从软件开发的过程按阶段划分有
A.单元测试
B.集成测试
C.确认测试
D.系统测试
E.验收测试
* 测试过程按4个步骤进行,即单元测试、集成测试、确认测试和系统测试及发版测试。
* 开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实