东北大学计算机(842)复试知识点
2005年、2006年软工
名词解释
-
软件工程
软件工程是以质量为核心,为了经济地开发满足客户需求的软件而研究、建立和应用的系统化的、有规则的、可度量的和可控制的工程原则、方法,涉及到软件工程、项目管理、开发方法、软件度量和开发工具等各个方面。
UML类图
- 类与类之间的关系
面向对象思想
多态性,继承性,封闭性(封装)
封装:信息隐藏,利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。
继承:使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
多态:程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。
数据流程图【不是UML中用的图】
-
数据流程图主要使用的阶段是用户需求分析阶段
-
分为三个层次:总体图、零级图、细节图
-
软件的层次结构
深度:模块的层数/系统的大小
宽度:一层中最大的模块个数
扇出:一个模块直接下属模块数
扇入:一个模块直接上属模块数
内聚与耦合
目标:高内聚、低耦合
内聚:度量一个模块内部各个元素彼此结合的紧密程度。
耦合:度量模块之间互相连接的紧密程度。
信息隐蔽:模块内部细节对调用者不可见,内部数据也不可见
分类和排序
- 内聚(偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚)
- 耦合(无直接耦合、数据耦合【传递值】、标记耦合【传递数据结构】、控制耦合【传递控制变量】、外部耦合【在软件外的环境联结】、公共耦合【公共数据环境】、内容耦合【直接使用】)
结构化程序思想
- 三种基本结构
只有一个入口
只有一个出口
结构中无死循环,程序中三种基本结构(顺序、选择、循环)之间形成顺序执行关系
- 分割功能模块
- 自顶向下,逐步细化
优点
结构良好,各模块间的关系清晰简单,每一模块内都由基本单元组成这样设计出的程序清晰易读,可理解性好,容易设计,容易验证其正确性,也容易维护同时,由于采用了“自顶向下、逐步细化”的实施方法,能有效地组织人们的智力,有利于软件的工程化开发。
分类
-
编码复制技术
-
状态变量方法
图7到图8
- 布尔标志技术
while P do
begin
...
if q then go to L1;
A;
B;
end;
L1: ...
转化为
bool:=true;
while P and bool do
begin
...
if q then bool:=false
else begin
A;
B;
end;
end;
...
UML用例图/文档
-
用例图:只画一个扩展、包含,不要多画
-
用例文档【以登录为例】:
用例编号:Login1 用例名:登录 用例描述: 用于用户的登录 参与者: 学生、管理员、任课教师、教学主管 前置条件(必须是系统在用例开始之前能检测到的): 登录账号已存在 后置条件(用例执行后对系统有所改变): 无 涉众利益: 学校——担心系统被暴力破解(建议采用验证码方式) 事件路径: 1. 系统显示登录界面 2. 用户填写登录信息 3. 系统验证登录信息 4. 系统导向主页 扩展点: 4a. 登录信息不正确 4a1. 验证码错误:系统提示验证码错误 4a2. 账号不存在:系统提示账号不存在 4a3. 密码错误:系统提示密码错误 补充说明: 字段列表: 账号、密码、验证码 业务规则: 账号、密码、验证码必填,且正确 非功能需求: 无 设计约束(即描述访问这个用例的所有约束): 无