选择题3-4分,案例题考过概率较小
软件工程
- 软件工程目的是提高软件生产率、提高软件质量,降低软件成本。
- 软件工程有方法、工具和过程三个部分组成。
设计架构
- 软件架构研究的主要内容涉及软件架构描述、软件架构风格、软件架构评估和软件架构的形式化方法等。
- 软件架构研究的根本目的是解决好软件的复用、质量和维护问题。
- 软件架构的风格包括:数据流风格、调用/返回风格、独立构建风格、仓库风格。
架构风格 | 包括 |
---|---|
数据流风格 | 包括批处理序列(顺序执行)和管道/过滤器(输入输出数据流)两种风格 |
调用/返回风格 | 包裹主程序/子程序(过程调用)、数据抽象和面向对象(对象及封装),以及层次结构(分层调用) |
独立构建风格 | 包括进程通信(消息传递、远程调用)和事件驱动(事件触发调用)的系统 |
虚拟机风格 | 包括解释器(解释引擎)和基于规则(规则集)的系统 |
仓库风格 | 包括数据库系统(中央共享数据源)、黑板系统(知识源、黑板及共享数据和控制)和超文本系统(非线性交叉引用) |
- 软件架构的评估,可以归纳为三类主要的评估方式,分别是基于调查问卷的方式、基于场景的方式、基于度量的方式。基于场景的方式最为常用。
- 基于场景的方式主要包括:架构权衡分析法、软件架构分析法和成本效益分析法。在架评估中,一般采用刺激、环境和响应三方面来对场景进行描述
需求分析
-
软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。
-
需求层次:需求是多层次的,包括业务需求、用户需求和系统需求。
1)业务需求:指反映企业或客户对系统高层次的一个目标追求
2)用户需求:描述的是用户的具体目标
3)系统需求:是指从系统角度来说明软件的需求,包括功能需求、非功能需求和设计约束。 -
质量功能部署(QFD)是一种将用户要求转化成软件需求的技术,其目的是最大限度地提升软件工程过程中的用户的满意度
-
QFD将软件需求分为常规需求、期望需求和意外需求。
-
需求过程主要包括需求获取、需求分析、需求规格说明书编制、需求验证与确认等。
-
常见的需求获取方法:用户访谈、问卷调查、采样、情节窜连扳、联合需求计划等。
-
一个好的需求应具有无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特征。
-
使用结构化方法进行数据分析,其建立的模型的核心是数据字典。围绕这个核心,有三个层析的模型,分别是数据模型、功能模型和行为模型。在实际工作中,一般使用实体关系图(E-R)图表示数据模型,用数据流图(DFD)表示功能模型,状态转化图(STD)表示行为模型。
UML
- 统一建模语言(UML)是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
- UML中的关系
关系 | 说明 |
---|---|
依赖 | 一个事物发生改变会影响到另一个事物的语义 |
关联 | 关联描述一组对象之间连接的结构关系 |
泛化 | 泛化是一般化和特殊化的关系,描述特殊元素的对象可替换的一般元素的对象 |
实现 | 实现是类与类之间的语义定义关系,其中一个类指定了由另外一个类保证执行的契约 |
UML2.0中的图
关系 | 说明 |
---|---|
类图 | 类图描述一组类、接口、协作和它们之间的关系,类图给出系统静态设计视图,活动类的类图给出了系统的静态进程试图 |
对象图 | 对象图描述一组对象及他们之间的关系 |
构件图 | 构件图描述一个封装的类和它的接口、端口。以及由内嵌的构件和连接件构成的内部结构 |
组合结构图 | 组合结构图描述结构化类的内部结构,暴扣结构化类与系统其余部分的交互点 |
用例图 | 用例图描述一组用例、参与者及他们之间的关系 |
顺序图(时序图、序列图) | 顺序图是强调消息的时间次序的交互图 |
通信图 | 通信图强调的对象之间组织机构关系 |
定时图(计时图) | 强调消息跨越不同对象或参与者的实际时间 |
状态图 | 描述一个状态机 |
活动图 | 强调对象间的控制流程 |
部署图 | 描述对运行时处理节点及在其中生存的构建配置 |
制品图 | 描述计算机中一个系统的物理结构 |
包图 | 描述模型由模型本身分解而成的组织单元,以及他们之间的依赖关系 |
交互概览图 | 是活动图与顺序图的混合物 |
- UML视图
视图 | 说明 |
---|---|
逻辑视图 | 逻辑视图也成为设计视图,表示设计模型中在架构方面具有重要意义的部分 |
进程视图 | 进程视图是可执行线性与进程作为活动类的建模,是逻辑视图的一次执行实例 |
实现视图 | 实现视图对组成基于系统的物理代码的文件和构建进行建模 |
部署视图 | 部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构 |
用例视图 | 用例视图是最基本的需求分析模型 |
面向对象分析
- 面向对象分析阶段的核心工作是建立系统的用例模型和分析模型。
- 类之间的关系
关系 | 说明 |
---|---|
关联 | 提供了不同类的对象之间的结构关系 |
依赖 | 两个类A和B,如果B的变化可能会引起A的变化,则称A依赖于类B |
泛化 | 描述了一般事物与该事物中的特殊种类之间的关系们也就是父类与子类之间的关系。 |
共享聚集 | 简称聚合关系,标识整体与部分的关系 |
组合聚集 | 简称组合关系,组合关系中的部分只能属于一个整体,部分与整体的生命周期相同,部分随着整体的创建而创建,也随着整体的消亡而消亡 |
实现关系 | 将说明和实现联系起来。 |
软件设计
- 软件设计分为结构化设计与面向对象设计
结构化设计
- 结构化设计(SD)是一个自顶向下、逐步求精和模块化的过程。
- 在SD中,需要遵循一个基本原则:高内聚,低耦合。
面向对象设计
- 面向对象设计OOD三大特征:封装、继承、多态。
- OOD的主要任务是对类和对象进行设计。
- 常用的面向对象设计原则:单职原则、开闭原则、李氏替换原则、依赖倒置原则、接口隔离原则、组合重用原则、迪米特原则(最少知识法则)。
- 根据处理范围不同,设计模式可分为类模式和对象模式。
- 根据目的和用途不同,设计模式可分为创建型模式、结构型模式和行为型模式。
软件实现
软件测试
- 软件测试的方法可分为静态测试和动态测试。
- 对代码的静态测试一般采用桌前检查、代码走查和代码审查。
- 动态测试一般采用白盒测试和黑盒测试方法。
- 白盒测试也成为结构测试,主要用于软件单元测试中。白盒测试方法中,最常用的技术是逻辑覆盖。主要的覆盖标准有语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、修正的条件/判定覆盖和路径覆盖等。
- 黑盒测试也称为功能测试,主要用于集成测试、确认测试和系统测试中。一般包括等价类划分、边界值分析、判定表、因果图、状态图、随机测试、猜错法和正交验证法等。
过程管理
《软件过程能力成熟度模型》团体标准,简称CSMM。
数据工程
数据模型
- 根据模型应用的目的不同,数据模型可以分为:概念模型、逻辑模型和物理模型。
数据模型 | 说明 |
---|---|
概念模型 | 也称信息模型, |
逻辑模型 | 逻辑模型是在概念模型的基础上确定确定模型的数据结构,目前主要的数据模型有层次结构模型、网状模型、关系模型、面向对象模型对象关系模型。其中,关系模型是目前最重要的一种逻辑数据模型。 |
物理模型 | 物理数据模型是在逻辑数据模型的基础上,考虑各种具体的技术实现因素,进行数据库体系结构设计,真正实现数据在数据库中存放 |
数据开发利用
- 数据开发利用包括数据集成、数据挖掘和数据服务、数据可视化、信息检索。
系统集成
集成基础
- 系统集成的内容包括技术环境的集成、数据环境的集成和应用程序的集成。在技术需要遵循的基本原则:开放性、结构化、先进性和主流化。
应用集成
- 如果一个系统支持位于同一层次上的各种构建之间的信息交换,那么称该系统支持互操作性。
- 应用集成或组织应用集成(EAI)是指将独立的软件应用连接起来,实现协同工作。
- 对于应用集成的技术要求大致有:互操作性、可移植性、透明性。
- 可以帮助协调连接各种应用的组件有:应用编程接口(API)、事件驱动型操作、数据映射。
安全工程
安全系统
- 信息系统的三维模型:X轴是安全机制、Y轴是OSI网络参考模型、Z轴是安全服务。
- 安全空间的五大属性:认证、权限、完整、加密、不可否认
- 安全技术主要涉及:加密、数字签名技术、访问控制、数据完整性、认证、数据挖掘等。