当前位置: 首页 > ai >正文

《软件工程》第 4 章 - 需求获取

   在软件工程中,需求获取是挖掘用户真实需求的关键步骤,它为后续的设计、开发和测试提供坚实基础。本章将围绕需求获取的流程、方法及工具展开,结合实际案例与 Java 代码,深入讲解这一重要环节。

4.1 软件需求的初始表示

4.1.1 用例

   用例是从用户角度描述系统提供的功能,它定义了系统与外部参与者之间的交互序列。一个用例代表系统的一个完整功能,例如在 “在线图书借阅系统” 中,“借阅图书”“归还图书” 都可视为独立用例。

4.1.2 用例图

   用例图是可视化展示用例的工具,通过图形化方式呈现参与者、用例以及它们之间的关系。以下是 “在线图书借阅系统” 的用例图:

4.1.3 用例的表示

   用例通常采用文本形式详细描述,包含用例名称、参与者、前置条件、后置条件、基本事件流、扩展事件流等。以 “借阅图书” 用例为例:

用例名称:借阅图书

参与者:读者

前置条件:读者已登录系统,图书存在库存

后置条件:图书库存减 1,生成借阅记录

基本事件流

  1. 读者选择要借阅的图书;
  2. 系统验证图书库存;
  3. 系统更新图书库存并生成借阅记录;
  4. 系统提示借阅成功。

扩展事件流:若图书库存不足,系统提示 “图书已借完”。

4.1.4 类图

   类图用于描述系统中的类、类的属性和方法,以及类之间的关系(如关联、继承、聚合等)。在 “在线图书借阅系统” 中,定义 “图书” 类和 “读者” 类的 Java 代码及对应的类图如下:

// 图书类class Book {private String title; // 书名private String author; // 作者private int stock; // 库存public Book(String title, String author, int stock) {this.title = title;this.author = author;this.stock = stock;}public boolean borrowBook() {if (stock > 0) {stock--;return true;}return false;}public void returnBook() {stock++;}// 省略getter和setter方法}// 读者类class Reader {private String name; // 姓名private String id; // 读者IDpublic Reader(String name, String id) {this.name = name;this.id = id;}public void borrow(Book book) {if (book.borrowBook()) {System.out.println(name + " 成功借阅 " + book.getTitle());} else {System.out.println(book.getTitle() + " 已借完");}}public void returnBook(Book book) {book.returnBook();System.out.println(name + " 成功归还 " + book.getTitle());}// 省略getter和setter方法}

类图:

4.1.5 活动图

   活动图用于描述系统中活动的流程,展示从一个活动到另一个活动的控制流,类似于流程图。“借阅图书” 的活动图如下:

4.2 需求获取的过程模型

需求获取的过程模型通常包括以下步骤:

  1. 与用户沟通,了解业务背景和需求意向;、
  2. 策划并实施需求调查(如访谈、问卷);
  3. 整理和分析收集到的信息;
  4. 定义软件系统的初步轮廓;
  5. 创建框架用例并评审。

其流程图如下:

4.3 定义软件问题

4.3.1 识别客户和用户

   在 “在线图书借阅系统” 中,客户可能是图书馆管理者(提出系统建设需求),用户包括读者(使用借阅功能)和管理员(管理图书和用户信息)。明确区分客户和用户,有助于精准获取不同角色的需求。

4.3.2 理解业务背景

   通过与图书馆工作人员交流,了解图书借阅的业务流程,如借阅规则(借阅期限、可借数量)、归还流程、逾期处理等,为后续需求分析提供依据。

4.3.3 策划并实施需求调查

   制定详细的调查计划,针对读者设计问卷,了解他们对借阅流程便捷性、图书检索功能的期望;对管理员进行访谈,获取图书管理、用户权限管理等方面的需求。

4.3.4 定义软件系统的轮廓

   根据调查结果,确定系统核心功能为图书借阅、归还、库存管理和用户信息管理,明确系统边界,如不涉及图书采购、财务结算等功能。

4.4 创建框架用例

4.4.1 策划并实施用例调查

   对系统主要功能进行梳理,确定 “借阅图书”“归还图书”“查询库存”“管理用户” 等用例,通过与用户沟通,细化每个用例的基本操作流程。

4.4.2 以框架用例记录调查结果

以文本形式记录框架用例,例如 “借阅图书” 框架用例:

参与者:读者

主要操作:选择图书、提交借阅请求、获取借阅结果

4.4.3 创建用例图

根据框架用例,绘制用例图(参考 4.1.2 小节的用例图),直观展示系统功能与参与者的关系。

4.4.4 整合并评审框架用例

   组织客户、用户和开发团队对框架用例进行评审,收集反馈意见,如读者提出希望增加 “续借图书” 功能,根据意见对框架用例进行调整和完善。

4.5 精化用例

4.5.1 用例交互动作序列的描述方法

  使用顺序图详细描述用例中对象之间的交互动作序列。以 “借阅图书” 为例,顺序图如下:

4.5.2 分解或合并用例

  若 “管理用户” 用例包含 “添加用户”“修改用户信息”“删除用户” 等复杂操作,可将其分解为多个子用例,便于理解和实现;若 “查询图书” 和 “查询期刊” 用例流程相似,可考虑合并为 “查询资料” 用例,减少冗余。

   本章通过理论结合案例、代码与图表的方式,系统讲解了需求获取的关键内容。需求获取是一个反复沟通和迭代的过程,实际项目中需灵活运用这些方法,确保获取到准确、完整的需求。如果对某个知识点想进一步深入了解,或希望补充更多案例,欢迎随时交流!

  上述内容全面覆盖了需求获取相关知识。若你觉得案例、代码或表述方式需要调整,欢迎提出,我会进一步优化。

http://www.xdnf.cn/news/8975.html

相关文章:

  • XBench:重塑AI能力评估范式,红杉中国如何定义下一代智能体度量标准?
  • RAGFlow源码安装操作过程
  • Android studio进阶开发(六)--如何用真机通过okhttp连接服务器
  • idea中使用Maven创建项目
  • 深入研究Azure 容器网络接口 (CNI) overlay
  • 十四、【鸿蒙 NEXT】如何更改har包的版本号
  • 【React-rnd深度解析】- 01 看看核心逻辑
  • 汽车零部件行业PLM案例:得瑞客汽车(Dereik) 部署国产PLM
  • OpenHarmony平台驱动使用(三),DAC
  • pyqt中添加资源文件
  • STM32 RTC实时时钟\BKP备份寄存器\时间戳
  • 2025 年开源 LLM 发展趋势细致解读
  • Unity中partial的作用
  • MSSQL + SMB 捕获 NTLM 哈希和中继攻击
  • OpenSSL 签名验证详解:PKCS7* p7、cafile 与 RSA 验签实现
  • 康师傅的“价值战”答卷:一碗面的创新与担当
  • Trae中使用mcp连接MariaDB
  • 第五十二节:增强现实基础-简单 AR 应用实现
  • 55页 @《人工智能生命体 新启点》中國龍 原创连载
  • RISC-V 开发板 MUSE Pi Pro RTSP 串流 CSI ov5647 摄像头
  • OS:进程管理中
  • Git Push 失败:HTTP 413 Request Entity Too Large
  • Linux输出命令——echo解析
  • 实现安卓端与苹果端互通的方案多种多样,以下是一些主要的方案
  • 离轴全息记录与再现
  • 【Unity3D】将自动生成的脚本包含到C#工程文件中
  • 海量数据查询加速:Presto、Trino、Apache Arrow 实战指南
  • 一台手机怎样实现多IP上网?方法有多种
  • 【前端】使用HTTPS
  • js实现生成随机验证码