夜雨聆风学习资料网

ARTICLE · 1179687

系统集成中级-第5章 软件工程 重要部分理解

系统集成中级-第5章 软件工程 重要部分理解

一、需求工程

1. 需求是多层次的,不同层次的需求从目标到具体,从整体到局部,从概念到细节。

1)业务需求是指反映组织机构或用户对系统,产品高层次的目标要求。

2)用户需求描述的是用户的具体目标,或用户要求系统必须能完成的任务和想要达到的结果。通常采取用户访谈和问卷调查等方式,构成原始的需求文档。

3)系统需求是从系统的角度来说明软件的需求,包括功能需求,非功能需求和约束等。

QFD 质量功能部署把需求分为三类

常规需求:系统理应具备功能,做得越好满意度越高

期望需求:用户默认该有,但说不清楚;缺失会明显不满

意外需求(兴奋需求):超出用户预期,开发方可控,不实现不影响决策。

需求获取:挖掘各干系人需求约束;手段:用户访谈、问卷调查、采样、情节串联板、联合需求计划。

2、需求分析

结构化分析 SA:核心为数据字典;配套三类模型:E‑R 图(数据模型)、DFD 数据流图(功能模型)、STD 状态转换图(行为模型);数据字典包含数据项、数据结构、数据流、数据存储、处理过程。

面向对象分析 OOA:原则:抽象(数据抽象为核心)、封装、继承、分类、聚合、关联、消息通信、粒度控制、行为分析。

SRS 需求规格说明书:需求分析输出文档,统一干系人认知;包含范围、引用文件、需求、合格性规定、需求可追踪性、尚未解决问题、注解、附录;通过需求评审、需求测试完成验证。

3、需求变更

建立需求基线,变更必须走变更控制流程,未批准变更不得实施,原始变更文档不可删除修改。

CCB 变更控制委员会:决策机构,不做执行,不输出变更方案,多方代表共同裁定变更。

需求跟踪:维护需求‑设计‑编码‑测试一致性;分正向跟踪、逆向跟踪,合称双向跟踪,使用需求跟踪矩阵。

二、软件设计

结构化设计 SD:面向数据流,自顶向下逐层分解、模块化,追求高内聚、低耦合。

模块属性:功能、逻辑、状态;信息隐藏、抽象封装内部细节。

耦合:模块之间联系强弱;内聚:模块内部元素联系紧密程度。

SC 系统结构图(模块结构图):概要设计工具,展示模块层次与通信。

详细设计图形工具:业务流程图、程序流程图、NS 盒图、PAD 图。

面向对象设计 OOD:OOA 的延续;依靠继承、多态实现可扩展性;七大原则:单一职责、开闭、里氏替换、依赖倒置、接口隔离、组合重用、迪米特(最少知识)原则。

UML 统一建模语言:建模语言,不是编程语言;包含构造块、规则、公共机制;5 大视图:逻辑视图、进程视图、实现视图、部署视图、用例视图。

三、软件配置管理、测试与调试

软件配置管理:核心是版本控制、变更控制;目的是有序管理变更。

软件测试:目标是发现错误,保障质量。

静态测试:程序不运行;文档检查、桌前检查、代码走查、代码审查。

动态测试:运行程序

白盒测试(结构测试):清楚内部逻辑,多用于单元测试;逻辑覆盖为常用技术。

黑盒测试(功能测试):不关心内部结构,依据 SRS 验证功能;方法含等价类划分、边界值分析、判定表等。

测试级别:单元测试、集成测试、确认测试、系统测试、配置项测试、回归测试。

软件调试:定位并修复测试发现的错误;策略:蛮力法、回溯法、原因排除法。

OO 系统三大特征:封装、继承、多态。

四、软件部署与持续交付

软件部署交付是持续过程,部署模式:单机、集中服务器、微服务分布式部署。

持续交付:自动化,可一键部署;缩短上线周期、快速反馈缺陷、版本随时可部署。

持续部署:常用容器技术 Docker+Kubernetes;部署原则:统一仓库、环境脚本一致、流水线管控、不可变服务器、蓝绿 / 金丝雀部署。

镜像部署三步:Build 编译打包→Ship 装配依赖→Run 启动运行。

两种发布策略

蓝绿部署:两套环境新旧并存,切换流量,故障快速切回旧版本。

金丝雀部署:新版本先面向少量用户验证,无问题再全量铺开。

五、软件质量管理 SQA

软件质量是软件与明确、隐含需求的符合程度;质量影响因素分为产品运行、产品修改、产品转移三组。

SQA 软件质量保证,第三方独立监控开发过程;主要任务:SQA 审计评审、SQA 报告、处理不合格问题。

六、软件过程能力成熟度(5 级,由低到高)

  • 初始级:过程结果不确定,依赖人员

  • 项目规范级:项目可按计划达成预期结果。

  • 组织改进级:组织层面稳定达成项目目标。

  • 量化提升级:组织可以量化管理项目目标。

  • 创新引领级:依靠技术、管理创新,持续提升业务目标,引领行业发展。

相关学习资料