跳转至

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):

    1. 评估用例 (Evaluate use-cases): 理解系统内的交互顺序。
    2. 识别事件 (Identify events): 找出驱动交互序列的事件,并理解其与特定对象的关系。
    3. 创建序列 (Create a sequence): 为每个用例建立交互时序。
    4. 构建状态图 (Build a state diagram): 描述系统或对象的状态变迁。
    5. 评审模型 (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 的交互流程。

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)

  1. 行为建模 (Behavioral Modeling): 重点掌握 状态图 (State Diagram)序列图 (Sequence Diagram) 的区别。状态图关注“状态变迁”,序列图关注“时间顺序的消息传递”。
  2. 数据流图 (DFD): 熟悉四种基本符号(外部实体、过程、数据存储、数据流),并理解如何通过**分层 (Hierarchy)** 进行细化。
  3. SRS 文档 (Specification): 记住编写文档的几个关键原则:分层 (Layered)一致 (Consistent)清晰 (Clear)
  4. WebApp 建模: 注意 Web/移动应用特有的分析维度,特别是 导航建模 (Navigation Modeling)配置建模 (Configuration Modeling),这是传统软件工程中较少涉及的。
  5. 术语: 注意区分 State of class (类的状态) 和 State of system (系统的状态)。

这一章内容涵盖了从动态行为到文档化,再到特定应用领域的知识,非常全面。祝你复习顺利!

评论区

欢迎在评论区指出文档错误,为文档提供宝贵意见,或写下你的疑问