编辑
2025-09-07
计算机技术
00
请注意,本文编写于 34 天前,最后修改于 17 天前,其中某些信息可能已经过时。

目录

软件工程基础
一、软件工程体系框架
1.1 软件危机典型表现
1.2 工程化解决方案
二、过程模型全对比
2.1 六大模型特征矩阵
2.2 模型选择决策树
三、需求工程实战手册
3.1 结构化分析流程
四、系统设计质量
4.1 架构设计KPI
4.2 设计模式指南
五、测试技术大全
5.1 白盒测试标准
5.2 黑盒测试
六、CMMI实施路线
6.1 成熟度演进
6.2 过程域要求
7.2 易错点辨析
结构化开发方法
系统分析与设计概述
结构化方法组成
核心特征
系统分析步骤
系统设计基本原理
模块四要素
耦合类型(低→高)
内聚类型(低→高)
结构化分析方法
分析成果
数据流图元素
加工错误类型
数据字典内容
结构化设计方法
设计步骤
DFD类型对比
用户界面设计原则
全国计算机技术与软件专业技术资格(水平)考试 - 面向对象技术笔记
导学
面向对象技术
第1节 面向对象基础
核心概念
设计原则(SOLID)
第2节 UML建模
四类事物
四大关系
关键图表对比
第3节 设计模式
创建型模式(5种)
结构型模式(7种)
行为型模式(11种)
记忆口诀

软件工程基础

一、软件工程体系框架

1.1 软件危机典型表现


graph TD

A[软件危机] --> B[成本超支50%+]

A --> C[进度失控]

A --> D[质量缺陷]

A --> E[维护困难]

B --> B1[预算超支]

C --> C1[周期延误]

D --> D1[用户不满]

E --> E1[修改代价高]

1.2 工程化解决方案

核心原则:

  1. 📌 分阶段生命周期计划
  2. 🔍 阶段评审制度
  3. 💻 现代编程技术
  4. 🔄 持续改进机制

实施效果:

指标改进幅度说明
缺陷率降低60-80%千行代码缺陷数下降
生产率提升30-50%人均代码产出量提高
维护成本下降40-70%后期优化成本减少

二、过程模型全对比

2.1 六大模型特征矩阵

特性瀑布模型原型模型螺旋模型敏捷开发
需求明确度★★★★★★★☆☆☆★★★☆☆★★☆☆☆
风险控制☆☆☆☆☆★★★☆☆★★★★★★★★★☆
文档要求非常完整轻量级完整极简
适用规模中小型小型大型复杂任意

2.2 模型选择决策树

flowchart TD

Start{需求明确?}

Start -->|是| A{技术风险高?}

Start -->|否| B[原型模型]

A -->|是| C[螺旋模型]

A -->|否| D{团队规模>20?}

D -->|是| E[增量模型]

D -->|否| F[瀑布模型]

三、需求工程实战手册

3.1 结构化分析流程

journey

title 需求分析四阶段

section 获取

访谈: 5: 用户

观察: 4: 场景

section 分析

建模: 8: 分析师

验证: 6: 测试组

section 定义

文档: 9: 技术写作

基线: 7: 配置库

section 验证

演示: 6: 用户

签字: 5: 管理层

四、系统设计质量

4.1 架构设计KPI

pie

title 质量权重

"耦合度" : 35

"内聚性" : 30

"扇入数" : 15

"扇出数" : 20

4.2 设计模式指南

问题特征推荐模式适用场景
需求频繁变更策略模式算法需要灵活切换
复杂对象创建建造者模式对象构造过程复杂
接口不兼容适配器模式整合遗留系统

五、测试技术大全

5.1 白盒测试标准

覆盖级别测试强度用例数检测能力
语句覆盖20%1-2基本路径
条件覆盖70%6-10边界缺陷

5.2 黑盒测试

六、CMMI实施路线

6.1 成熟度演进


timeline

title CMMI升级路径

2024 Q1 : 初始级

2024 Q3 : 已管理级

2025 Q1 : 已定义级

2025 Q4 : 量化管理

2026 Q2 : 优化级

6.2 过程域要求

过程域L2要求L3要求L4要求
需求管理建立跟踪矩阵变更影响分析稳定性度量
质量保证执行过程审计缺陷根因分析质量趋势统计

7.2 易错点辨析

概念对区分要点记忆口诀
α测试 vs β测试开发场所 vs 用户环境"α在厂,β在家"
纠正性 vs 预防性维护修复缺陷 vs 预防优化"治已病 vs 防未病"

结构化开发方法

系统分析与设计概述

结构化方法组成

  1. 结构化分析
  2. 结构化设计
  3. 结构化程序设计

核心特征

  • 自顶向下,逐层分解
  • 适用领域:数据处理
  • 局限性:
    • 不适合大型复杂项目
    • 难以适应需求变化

系统分析步骤

  1. 详细调查当前系统,收集数据
  2. 建立当前系统逻辑模型
  3. 分析现状并提出改进目标
  4. 建立新系统逻辑模型
  5. 编写系统方案说明书


系统设计基本原理

模块四要素

  1. 输入输出
  2. 处理功能
  3. 内部数据
  4. 程序代码

耦合类型(低→高)

类型特征示例
无直接耦合模块间无信息传递不同部门员工
数据耦合传递简单数据值水电费计算模块
标记耦合传递数据结构住户信息处理
控制耦合传递控制变量选择计算平均/最高分
外部耦合通过外部环境联结设备驱动程序
公共耦合共享公共数据环境多线程访问全局变量
内容耦合直接访问内部数据直接操作类成员变量

内聚类型(低→高)

类型特征示例
偶然内聚元素无逻辑关联三条无关语句组合
逻辑内聚相似功能组合多种数据类型加法
时间内聚需同时执行的动作原子性操作组合
过程内聚按指定流程执行信息录入流程
通信内聚操作相同数据结构员工年龄计算
顺序内聚前序输出作为后续输入数据处理流水线
功能内聚所有元素完成单一功能完整排序算法


结构化分析方法

分析成果

  1. 数据流图(DFD)
  2. 数据字典
  3. 加工逻辑说明
  4. 补充材料

数据流图元素

  • 加工:
  • 数据流:
  • 数据存储:
  • 外部实体:

加工错误类型

  1. 黑洞(有输入无输出)
  2. 奇迹(无输入有输出)
  3. 灰洞(处理逻辑不完整)

数据字典内容

  • 数据项
  • 数据流
  • 数据存储
  • 加工处理过程

结构化设计方法

设计步骤

  1. 复审数据流图
  2. 确定DFD类型(变换/事务型)
  3. 映射为软件结构
  4. 优化模块结构

DFD类型对比

类型特征结构特点
变换型输入→处理→输出线性处理结构
事务型中心调度多路径分支选择结构


用户界面设计原则

  1. 用户控制原则:操作主动权交给用户
  2. 记忆减负原则:减少用户记忆负担
  3. 一致性原则:保持界面交互逻辑统一

全国计算机技术与软件专业技术资格(水平)考试 - 面向对象技术笔记

导学

  • 考试特点:概念性质题目为主,分值约10分(选择题)
  • 难度评估:适中
  • 学习重点
    • 设计模式分类与应用
    • UML图的特点与使用场景

面向对象技术

第1节 面向对象基础

核心概念

  1. :封装属性和方法的模板

    • 实体类(业务实体)
    • 边界类(系统接口)
    • 控制类(业务逻辑)
  2. 继承:父子类关系

java class Animal {} class Dog extends Animal {}
  1. 多态
  • 参数多态(泛型)
  • 包含多态(子类型)
  • 过载多态(重载)
  1. 绑定
  • 静态绑定(编译时)
  • 动态绑定(运行时)

设计原则(SOLID)

原则定义示例
单一职责一个类只负责一件事用户管理 vs 订单管理分离
开闭原则对扩展开放,对修改关闭通过继承扩展功能
里氏替换子类可替换父类正方形继承矩形需保证行为一致
依赖倒置依赖抽象而非实现数据库操作依赖接口
接口隔离多个专用接口优于单一总接口打印机功能拆分
迪米特法则最少知识原则通过中介类交互


第2节 UML建模

四类事物

  1. 结构事物:类、接口、构件
  2. 行为事物:交互、状态机
  3. 分组事物:包
  4. 注释事物:注解

四大关系

关系符号示例
依赖┄┄>临时使用关系
关联───长期持有引用
泛化───▷继承关系
实现┄┄▷接口实现


关键图表对比

图类型视角典型元素
类图静态结构类、接口、关系
用例图用户视角参与者、用例、关系
序列图时序交互生命线、消息
状态图对象生命周期状态、转移
活动图业务流程活动、分支


第3节 设计模式

创建型模式(5种)

  1. 工厂方法
java interface Product {} class ConcreteProduct implements Product {} abstract class Creator { abstract Product factoryMethod(); }
  1. 抽象工厂
    创建产品族(如GUI组件套件)

  2. 单例模式

java class Singleton { private static Singleton instance; private Singleton() {} public static Singleton getInstance() { if(instance == null) { instance = new Singleton(); } return instance; } }

结构型模式(7种)

  1. 适配器模式
    转换接口(如SD卡读卡器)

  2. 装饰器模式

java interface Component { void operation(); } class Decorator implements Component { private Component component; public Decorator(Component c) { this.component = c; } public void operation() { component.operation(); } }
  1. 代理模式
    控制访问(如远程代理)

行为型模式(11种)

  1. 观察者模式
java interface Observer { void update(); } class Subject { private List<Observer> observers = new ArrayList<>(); public void attach(Observer o) { observers.add(o); } public void notifyAll() { for(Observer o : observers) o.update(); } }
  1. 策略模式
    封装算法族(如支付方式)

  2. 模板方法
    定义算法骨架

java abstract class AbstractClass { final void templateMethod() { primitiveOperation1(); primitiveOperation2(); } abstract void primitiveOperation1(); abstract void primitiveOperation2(); }


记忆口诀

  1. 创建型:单抽元件(建)厂
    (单例、抽象工厂、原型、建造者、工厂方法)

  2. 结构型:外侨(桥)组员(元)戴(代)配饰
    (外观、桥接、组合、享元、代理、适配、装饰)

  3. 行为型:观摩(模)对(迭)策,责令解放(访),戒(介)忘台(态)
    (观察、模板、迭代、策略、责任链、命令、解释器、访问者、中介者、备忘录、状态)

本文作者:枣子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!