11 需求建模:行为、模式与 Web/移动应用¶
说明
本文档由 AI 生成
这一章(Chapter 11: Requirements Modeling: Behavior, Patterns, and Web/Mobile Apps)的内容非常丰富,它将需求建模的视角从“结构”转向了“行为”,并拓展到了当下的热点领域——Web和移动应用。
这一章的逻辑非常清晰,首先讲解如何通过**行为建模 (Behavioral Modeling)** 来描述系统对外部事件的响应,然后回顾了**基于流的建模 (Flow-Oriented Modeling),接着强调了**软件需求规格说明书 (SRS) 的重要性,最后将所有这些理论应用到了**Web/移动应用 (Web/Mobile Apps)** 的特定场景中。
以下是为你整理的详细笔记(Markdown格式),专有名词后均已附上英文对照:
📚 软件工程 Chapter 11: 需求建模 - 行为、模式与 Web/移动应用¶
1. 行为建模 (Behavioral Modeling)¶
行为建模用于描述软件如何响应外部事件或刺激 (Stimuli)。它关注系统在不同状态下的动态行为。
-
创建模型的步骤 (Steps to create the model):
- 评估用例 (Evaluate use-cases): 理解系统内的交互顺序。
- 识别事件 (Identify events): 找出驱动交互序列的事件,并理解其与特定对象的关系。
- 创建序列 (Create a sequence): 为每个用例建立交互时序。
- 构建状态图 (Build a state diagram): 描述系统或对象的状态变迁。
- 评审模型 (Review the model): 验证准确性和一致性。
-
状态的两种视角 (Two characterizations of states):
- 类的状态 (State of each class): 系统执行功能时,每个类内部的状态。
- 系统的状态 (State of the system): 从外部观察到的系统整体状态。
-
核心图表 (Key Diagrams):
- 状态图 (State Diagram): 展示状态、事件和动作。例如 PPT 中的
Locked(锁定),Reading(读取),Comparing(比较) 等状态及其转换条件 (Password correct,Timer > lockedTime)。 - 序列图 (Sequence Diagram): 展示对象之间按时间顺序的消息传递。例如
Homeowner(房主) ->Control panel->System->Sensors的交互流程。
- 状态图 (State Diagram): 展示状态、事件和动作。例如 PPT 中的
2. 基于流的建模 (Flow-Oriented Modeling)¶
这是一种经典的需求建模方法,侧重于数据在系统中的流动和处理。
- 核心图表:数据流图 (Data Flow Diagram, DFD)
- 元素符号:
- 外部实体 (External Entity): 数据的来源或去向。
- 过程 (Process): 对数据的处理或变换。
- 数据存储 (Data Store): 数据的静态存储位置。
- 数据流 (Data Flow): 数据的移动路径。
- 分层细化 (Refinement): 通过层级分解(Level 0, Level 1...)逐步细化功能。例如将
Get a book(取书) 细化为Find book position(查找书位) +Get a book(取书)。 - 应用案例: PPT 以公共图书馆信息系统为例,展示了借书、查书等流程。
- 元素符号:
3. 编写软件需求规格说明书 (Writing the Software Specification)¶
这是将需求模型转化为正式文档的过程,是开发团队与客户之间的合同。
-
编写指南 (Guidelines):
- 分层格式 (Layered format): 提供的信息应随着层级加深而越来越详细。
- 一致性 (Consistency): 使用一致的图形符号和术语,避免别名 (Aliases)。
- 清晰性 (Clarity): 定义所有缩写词,包含目录、索引或词汇表 (Glossary)。
- 换位思考 (Empathy): 站在读者的角度思考:“如果我不熟悉这个系统,我能理解吗?”
- 简单直接 (Simple style): 使用简单、无歧义的语言。
-
文档示例结构 (Example Structure):
- 引言 (Introduction)
- 用户场景 (User Scenarios)
- 数据流图 (Data Flow Diagram)
- 状态图 (State Diagrams)
- 类图 (Class Diagrams)
- CRC 卡片 (CRC Cards)
- 验证标准 (Validation Criteria)
4. Web/移动应用的需求建模 (Requirements Modeling for WebApps/Mobile Apps)¶
当应用规模大、干系人多、团队成员是新手或应用对业务成功至关重要时,必须进行严格的需求分析。
-
分析维度 (Analysis Dimensions):
- 内容分析 (Content Analysis): 描述文本、图形、视频、音频等静态或动态内容。
- 交互分析 (Interaction Analysis): 使用用例来描述用户与系统的交互。
- 功能分析 (Functional Analysis): 定义对 WebApp 内容的操作(如增删改查)及其他处理功能。
- 配置分析 (Configuration Analysis): 定义运行环境和基础设施。
- 导航分析 (Navigation Analysis): 重点关注整体导航需求。
-
配置模型 (Configuration Model):
- 服务端 (Server-side): 硬件、操作系统、互操作性、通信协议。
- 客户端 (Client-side): 浏览器配置、测试需求。
-
导航建模 (Navigation Modeling):
- 核心问题: 哪些元素应该更容易到达?如何处理导航错误?是使用链接还是搜索?
- 设计决策: 是否在每个页面都提供完整的导航地图?是否允许用户保存导航路径?
- 上下文相关: 是否根据用户之前的动作呈现不同的导航选项?
💡 复习重点总结 (Key Takeaways for Exam)¶
- 行为建模 (Behavioral Modeling): 重点掌握 状态图 (State Diagram) 和 序列图 (Sequence Diagram) 的区别。状态图关注“状态变迁”,序列图关注“时间顺序的消息传递”。
- 数据流图 (DFD): 熟悉四种基本符号(外部实体、过程、数据存储、数据流),并理解如何通过**分层 (Hierarchy)** 进行细化。
- SRS 文档 (Specification): 记住编写文档的几个关键原则:分层 (Layered)、一致 (Consistent)、清晰 (Clear)。
- WebApp 建模: 注意 Web/移动应用特有的分析维度,特别是 导航建模 (Navigation Modeling) 和 配置建模 (Configuration Modeling),这是传统软件工程中较少涉及的。
- 术语: 注意区分
State of class(类的状态) 和State of system(系统的状态)。
这一章内容涵盖了从动态行为到文档化,再到特定应用领域的知识,非常全面。祝你复习顺利!