软件工程期末复习

软工考点整理.pdf

一、概述

1. 软件特性

  • 复杂性

  • 一致性

  • 可变性

  • 不可见性

    (复一变不见)

  • 演化性

2. 系统

本质

  • 相互联系的一组元素的集合
  • 有特定功能的有机整体
  • 有边界
  • 需要与其他系统交互
  • 可能包含另一个系统
  • 是逐渐演变形成的

3. 软件工程

定义

① 将系统的、规范化的、可定量的方法应用于软件的开发、运行和维护

② 对①中所述方法的研究

基本目标

  • 低成本
  • 按时交付
  • 实现功能
  • 良好性能
  • 较高可靠性、可扩展性、可移植性
  • 维护费低

软件开发活动

  1. 问题定义
  2. 需求分析
  3. 软件设计
  4. 软件实现
  5. 软件测试
  6. 软件演化

软件需求

  • 功能需求
  • 性能需求
  • 可靠性需求
  • 约束性需求

4. 常用模型

  • 瀑布模型——适用于有明确需求、规范化的过程
  • 原型化模型——迅速建造一个可运行的软件原型,它使用户和开发人员对系统的相关方面进行检查,以决定是否合适和恰当。
  • 阶段化开发
    • 增量模型——在每一个新的发布中逐步增加功能直到构造全部功能。
    • 迭代模型——一开始提交一个完整系统,在后续发布中补充完善各子系统功能。
  • 可转换模型——采用形式化的数学方法描述系统,并利用一系列转换将形式化的需求规格 说明变为可交付使用的系统。

二、 需求获取与UML建模

UML概述

UML为面向对象软件设计提供统一的、标准的、可视化的建模语言

UML模型图构成

  • 事物
  • 关系

分类

  • ①用例图image-20260101214428279
  • ②类图image-20260101214451128
  • ③对象图——类图的实例(写出了具体数据)image-20260101214534124
  • ④顺序图image-20260101214614069
  • ⑤协作图——类操作的实现image-20260101214814899
  • ⑥状态图——一个类对象可能经历的所有历程的模型图image-20260101214826533
  • ⑦活动图
  • ⑧构件图

image-20260101215517146

用例图

四种关系:

  • 关联 包含 扩展 泛化

image-20260101215731415

类图

类图主要有类、接口、各种关系组成,是其他图的基础

主要作用有:

  • 对系统词汇、简单协作、逻辑数据库模式建模
image-20260101172720474

从上到下:类的名称、属性、操作

可见性

image-20260101173605482

公有属性-保护属性-默认(包内可见)-私有属性

关系

  • 关联

    • 一般的关联关系image-20260101220539777
    • 聚合关系
    image-20260101220524702
    • 组合关系(语义更强的聚合,离不开)
    image-20260101220649515
  • 泛化

    image-20260101220807559
  • 实现

    image-20260101220823321

  • 依赖

    image-20260101220851405

顺序图

组成

  • 参与者
  • 对象
  • 生命线
  • 消息

image-20260101223504981

image-20260101221239832

状态图

三、用户故事

如何开展需求抽取

  • 识别干系人
  • 抽取方式
  • 输出

如何撰写用户故事(3C + 验收)

  • 3C

    • ① Card

      As a [role], I want [function], so that [value]

    • ② Conversation

    • ③ Confirmation

  • 验收标准:描述在什么条件下系统应表现什么行为

四、软件体系结构

1.分层体系结构

  • 表示层
  • 控制层
  • 实体层
  • 持久层

2.循环依赖

A 依赖 B,B 又依赖 A

消除方法:

  • 抽取公共接口
  • 引入中间层
  • 依赖倒置

3.耦合&内聚

耦合:模块彼此联系有多紧密

内聚:模块内部是否专一(围绕一个目标展开)

架构设计目标:高内聚,低耦合

4.体系结构风格

  • 分层体系结构
  • 仓库体系——编译器
  • 客户端-服务器
  • 瘦客户机/服务器——网站系统