1.4 软件工程
1.4.1 需求分析
需求的层次:业务需求、用户需求、系统需求
需求获取方式:用户访谈、问卷调查、采样、情节串联板、联合需求计划等
需求分析:核心是建立数据字典。三个层次模型为:数据模型(E-R图)、功能模型(数据流图)、行为模型(状态转换图)
需求规格说明书(SRS主要内容):
(1) 范围
(2) 引用文件
(3) 需求
(4) 合格性规定
(5) 需求可追踪性
(6) 尚未解决的问题
(7) 注释
(8) 附录
一般通过需求评审和需求测试来对需求进行验证。
1.4.2 软件架构设计
UML – 统一建模语言
关系:依赖、关联、泛化、实现
包含的图:类图、对象图、构件图、用例图、顺序图、状态图、活动图、部署图
UML视图:逻辑视图、进程视图、实现视图、部署视图、用例视图
类之间的关系有:关联、依赖、泛化、聚合、组合、实现
软件架构设计的一个核心问题是能否达到架构级的软件复用。
解决好软件的复用、质量和维护问题,是研究软件架构的根本目的。
评估方式:基于问卷调查、基于场景、基于度量
1.4.3 软件设计
OOD是OOA方法的延续,其基本思想包括抽象、封装和可扩展性。其中可扩展性主要通过继承和多态来实现。
1.4.4 软件工程的过程管理
1.4.5 软件测试及其管理
测试用例:每个测试用例应包括名称和标识、测试追踪、用例说明、测试的初始化要求、测试的输入、期望的测试结果(包括正确用例和错误用例)、评价测试的结果和准则、操作过程。前提和约束、测试终止条件。
静态测试:以检查为主(桌前检查、代码走查、代码审查)
动态测试:实际运行程序,分白盒测试和黑盒测试。
白盒测试:结构测试,用于单元测试中
黑盒测试:功能测试,用于集成测试,确认测试和系统测试中。包括等价类划分、边界值分析、判定表、因果图、状态图、随机测试、猜错法、正交实验法等。
测试的类型:
(1) 单元测试
(2) 集成测试
(3) 确认测试(内部确认测试[开发环境]、alpha测试和beta测试[实际环境]、验收测试[用户环境])
(4) 系统测试
(5) 配置项测试
(6) 回归测试(都要做单元测试)
1.4.6 软件集成技术
EAI(企业应用集成)包含表示集成、数据集成、控制集成、业务集成等多个层次和方面。
表示集成(界面集成):黑盒集成
数据集成:白盒集成
控制集成(功能集成或应用集成):黑盒集成
业务集成(过程集成):一系列基于标准的、数据流格式的工作流集成。
1.5 新一代信息技术
1.5.1 物联网
(1) 关键技术:传感器技术(RFID射频识别),嵌入式技术
(2) 架构层次:感知层、网络层、应用层
(3) 综合应用:智慧城市
(4) 功能层:物联感知层、通信感知层、计算与存储层、数据及服务支撑层(SOA)、智慧应用层
(5) 支撑体系:安全保障体系、标准规范体系
1.5.2 云计算
云计算:按需供给
(1) 特点:宽带网络连接;快速、按需、弹性
(2) 类型:IaaS、PaaS、SaaS
1) IaaS:基础设施即服务
2) PaaS:平台即服务
3) SaaS:软件即服务
1.5.3 大数据
大数据:指无法在一定时间内用常规软件工具进行捕捉、管理和处理的数据集合。
(1)5个V:Volume(大量)、Variety(多样)、Value(价值)、Velocity(高速)、Veracity(真实性)
(2)大数据是具有体量大、结构多样、时效性强等特征的数据
(3)主要环节:数据准备 -> 数据存储与管理 -> 计算处理 -> 数据分析 -> 知识展现
(4)涉及技术:数据模型、处理模型、计算理论、分布计算、分布存储平台技术、数据清洗、挖掘技术、流式计算、增量处理、数据质量控制等。
1.5.4 移动互联
移动互联:核心是互联网。
特点:终端移动性;业务使用私密性;终端和网络的局限性;业务与终端、网络的强关联性。