软件工程期末复习大纲(2)

软件工程复习

分值分布:
1、选择题15个—30分
2、填空题20个—20分
3、分析题4个—50分

复习重点:
1、软件工程产生的原因选择题)
解决软件危机
软件危机:在计算机软件开发和维护过程中遇到的一系列严重问题

2、软件工程方法学的三要素选择填空)
过程:支持软件生命周期的所有活动
方法:开发软件的技术
工具:软件开发过程中所需要的环境等

3、软件生命周期划分、各阶段的主要任务、各阶段主要图形选择填空重点)
1、计划期:ER图,数据流图
1)问题定义:确定软件开发的总目标。
2)可行性研究:从技术,社会,经济等方面来考察软件开发的可行性。
3)需求分析 :编写软件需求规格说明书,提交部门审查。(影响最大)
结构化需求分析,面向对象需求分析
2、开发期:
1)概要设计:根据需求规格说明书确定软件的体系结构
2)详细设计:设计每个系统部件的实现算法、数据结构及接口等,编写软件设计说明书,并提交给相关部门审查。
3)编码:根据软件设计说明书进行程序设计,实现功能
4)测试:测试代码
3、运行期:
1)软件运行和维护:对系统进行改进,适应变化的需求

4、常见的软件过程模型及其特点选择填空)
瀑布模型:简单,分阶段进行,自上往下,文档驱动,每个阶段都要评审,允许反馈,不支持用户参加,要求先确定需求。
适用范围:需要容易完善,且不易变更的软件系统
快速原型模型:通过与客户交流来构造模型,适用客户的需求变化
适用范围:需求复杂难以确定的软件系统。
增量模型:软件增量式地开发,开发活动允许并行和重叠
适用范围:用户需求稳定,技术风险大的软件系统。
迭代模型:不需要一次性开发完成的软件系统,逐步迭代开发。
适用范围:需求难以确定,需要不断变更的软件系统。
螺旋模型:结合瀑布模型、快速原型模型和迭代模型的思想,引入风险分析活动。
适用范围;需求难以获取和确定、软件开发风险较大的软件系统。
统一软件开发过程模型(RUP):强调迭代开发,可以对其进行设计开发维护和发布,可扩展和剪裁。
使用范围:需求复杂且难以获取的软件系统,软件开发项目组拥有丰富的软件开发和管理经验。

5、模块独立性的度量指标,内聚和耦合的定义及各种类型选择填空)
度量指标:模块间的耦合和内聚。
内聚:模块内功能的联系
1)功能内聚(最高内聚)
2)信息内聚
3)通信内聚
4)过程内聚
5)时间内聚
6)逻辑内聚
7)偶然内聚(最低内聚)
耦合:模块之间联系
1)内容耦合(最高耦合)
2)公共耦合
3)外部耦合
4)控制耦合
5)标记耦合
6)数据耦合
7)非直接耦合(最低耦合)
8)顺序耦合

6、数据流图的基本要素及画法选择填空,不画图)
基本要素:
1)数据源点和终点:产生数据的地方,数据的最终消费者
2)数据处理:数据的加工过程
3)数据流:系统中流动的数据
4)数据存储:存储数据的地方

画图原则:
1)父图-子图平衡原则
2)数据守恒原则
3)守恒加工原则

画法:
1)画出基本系统模型,把软件系统看作一个整体单元,描述其与外部数据的交互
2)把系统划细分为几个主要的数据处理模块,描述数据内部的数据流动关系。
3)细化数据流图,形成更加详细的数据流图。

1、顶层数据流图

2、一层数据流图

3、二层数据流图

7、数据字典的作用br> 1)数据字典是各类数据描述的集合
2)数据字典是进行详细的数据收集和数据分析所获得的主要结果   
3)数据字典在数据库设计中占有很重要的地位
4)数据字典和数据流图共同构成系统的逻辑模型。没有流图数据字典难以发挥作用。没有数据字典,数据流图就不严格。

8、ER图的基本要素及画法必考分析题)
给一段文字描述业务需求,找出实体,属性以及之间的关系等等
要素:
1)实体:矩形
2)属性:椭圆
3)属性-实体:直线
4)实体间的联系:菱形
5)实体间的映射
画法: 画概念模型
1)确定所有的实体集及其属性
2)确定实体集的关键字,用下划线标出
3)确定实体之间的联系,用菱形表示,并标出实体之间的映射基数。

9、数据库逻辑设计内容及做法分析题)
逻辑设计就是将ER图转换为关系模式
1)画ER图(概念模型)
2)将ER图转成关系模型
3)用范式来修改模型
每一个实体都能转为一个关系模式,每一个关系也能转为一个关系模式

10、面向数据流的设计方法分析题,考概念)
方法:把数据流转换成结构图
而数据流分为:变换型,事务型
变换型分析的设计步骤:映射为三个部分:传入路径 变换中心 传出路径
1)确定DFD的变换中心、逻辑输入和逻辑输出
2)设计软件结构的顶层和第一层
3)设计中,下层模块,对第一层模块自顶向下逐级分解
4)设计优化

事务分析的设计步骤: 接收路径。。。
1)确定事务中心和加工路径
2)设计顶层和第一层
3)设计中下层模块并优化

11、面向对象思想、抽象类与接口,对象之间的6种关系分数多,填空选择分析必考)
1)面向对象程序设计模拟自然界认识和处理事物的方法,将数据和对数据的操作方法放在一起,形成一个相对独立的整体——对象(object)(面向对象的程序设计就是由这些对象构造程序),同类对象还可以抽象出共性,形成类(class)。一个类中的数据通常通常只能通过本类提供的方法进行处理,这些方法成为该类与外部的接口。对象之间通过消息(message)进行通讯。
三大特征:封装 继承 多态
四要素:对象,类,继承,通信(消息)
2)抽象类与接口
相同点:
1.都不能被实例化
2.接口的实现类或者抽象的子类都必须实现类接口或者继承了抽象才可以被实例化
区别:
1.接口只能定义方法不能实现,实现接口的类要实现接口中的所有方法;抽象类既可以定义也可以实现方法。
2.接口要实现,抽象要继承,一个类可以实现多个接口,但只能继承一个抽象类。
3. 接口的变量必须赋予初值,所有实现类中不能重新定义和改变其值。抽象类中的变量可以在子类中重新定义和赋值。
3)对象之间的6种关系
从弱到强,依次为依赖,关联,聚合,组合,泛化,实现,抽象程度越来越高。
1、依赖,虚线箭头,描述一种临时关系,例如,人与交通工具,人依赖交通工具。
2、关联,实线箭头,描述一种比较固定的关系,例如,人与住址。
3、聚合,实线空心菱形箭头,描述一种整体和部分的关系,强调部分可脱离整体而存在,例如,学校和老师,老师可脱离学校而存在。
4、组合,实线实心菱形箭头,描述一种整体和部分的关系,强调部分不可脱离整体而存在,例如,头与眼睛,眼睛不可与头分割。
5、泛化,实线空心三角箭头,描述一种特殊与一般的关系,例如,人类与科学家,科学家是人类的一种。
6、实现,虚线空心三角箭头,描述一种具有关系,例如,飞翔之于鸟,鸟具有飞翔能力。

12、领域建模的任务析类图的画图法分析题必考)
任务:识别分析类,画分析类图
考大题,给一个业务描述,识别出里面的几个类,画图
类的识别方法:分析类、边界类、控制类、实体类
画分析类图
题目: 汽车和自行车都是交通工具。一辆自行车只能归一个人拥有,但一辆汽车可归一个人或者两个人拥有。一个人可能没有自行车或汽车.也可能拥有多辆自行车或汽车。人分男人和女人两类,每个人都具有年龄和名字。在任何时候,一辆汽车上可能载有0个多个乘客。每辆汽车都有自己的颜色和商标。特别地,每辆汽车都只有两个前灯和一台发动机。请画出类图。

13、面向对象设计的七大原则必考分析题)
1)开闭原则 :一个软件程序应该对扩展开发,对修改关闭。提高扩展性,便于维护。
2)里氏代换原则 :所有引用父类的地方必须能透明地使用其子类的对象。避免继承体系被破坏。
3)最少知道原则:只与其有联系的类进行通信,而对其他对象保持较少的耦合。
4)单一职责原则
定义:类的职责单一,一个类只负责一项职责
分析:一个类承担的职责越多,其复用性越差,其中一个职责变化时,也会影响其他职责的运作。
5)接口隔离原则 :把一个大的接口划分为更小的接口
6)依赖倒转原则 :程序要依赖抽象的类,而不是具体的类,要针对接口和抽象类编程。
7)合成复用原则:尽量使用对象组合来实现复用,而不是通过继承。防止类的体系过于庞大。

14、MVC模型定义,作用br> MVC模型:是一种架构型的模式,本身不引入新功能,只是帮助我们组织更加合理的结构,提高开发和维护效率。
Model(模型):数据模型,提供要展示的数据。因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据) 和 服务层(行为)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。
View(视图):负责进行模型的展示,一般就是我们见到的用户界面。
Controller(控制器):接收用户请求,并将请求转发给模型处理,处理完毕后把模型数据返回给视图,由视图负责展示。 也就是说控制器做了个调度员的工作。 在标准的MVC中模型能主动推数据给视图进行更新(观察者设计模式,在模型上注册视图,当模型更新时自动更新视图),但在Web开发中模型是无法主动推给视图(无法主动更新用户界面),因为在Web开发是请求-响应模型
15、状态图的组成元素及画法必考)
给一段文字描述,画出状态图
状态图(State Diagram)用来描述一个特定对象的所有可能状态及其引起状态转移的事件,述哪些状态之间可以转换,不同的状态下有不同的行为
组成元素:初始状态、终止状态、状态、转移、守护条件、事件、动作

16、用例图的组成元素及画法必考)
由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。要在用例图上显示某个用例,可绘制一个椭圆,然后将用例的名称放在椭圆的中心或椭圆下面的中间位置。
  要在用例图上绘制一个参与者(表示一个系统用户),可绘制一个人形符号。参与者和用例之间的关系使用带箭头或者不带箭头的线段来描述,箭头表示在这一关系中哪一方是对话的主动发起者,箭头所指方是对话的被动接受者。
了解参与者期望什么,期望系统干什么,有意义的目标为用例 参与者用小人,用例用椭圆形表示,系统边界框起来
组成元素:参与者,参与者之间的关系,系统边界

17、用例描述的几种方式br> 文本描述:通过编写用例文档来实现
简单描述:直接描述用例
详细描述:包括用例名称,参与者,前置条件,事件流,后置条件,其他需求。

图形描述:活动图,多个参与者用泳道图
活动图

多种情况就需要分叉
泳道图

18、时序图的组成元素及画法必考,可能和16题一起考)
对象与对象之间发送数据顺序,
时序图(Sequence Diagram),亦称为序列图、循序图或顺序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。 时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。

组成元素:角色,对象,消息,生命线,控制焦点,自关联消息,组合片段

19、黑盒测试(功能测试)的主要方法br> 1)边界值法
2)等价类划分法
3)错误推测法
黑盒测试:黑盒测试仅需知道系统的【输入】和【输出】,不需要知道代码是怎么写的。又被称为功能测试、数据驱动测试或基于规格说明的测试,是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。

※ 黑盒测试的优点有: 1)比较简单,不需要了解程序内部的代码及实现; 2)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题; 3)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能; 4)在做软件自动化测试时较为方便。

※ 黑盒测试的缺点有: 1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的 30%; 2)自动化测试的复用性较低。

20、白盒测试(源码测试)的主要方法形复杂度的计算立路径必考)
1)逻辑覆盖测试
2)独立路径测试

标红的必出分析题

来源:猿来是你呀&

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月17日
下一篇 2022年1月17日

相关推荐