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

《软件工程导论》实验报告三 需求分析建模(二)

目  录

一、实验目的

二、实验环境

三、实验内容与步骤

1、根据以下描述,绘制出图书预定系统的顶层数据流图及细化数据流图。

2、根据以下描述,绘制出某单位职工工资的层次方框图。

3、根据以下描述,绘制出图形用户界面(GUI)的状态转换图(STD)。

4、根据以下描述,绘制出操作系统进程的状态转换图。

四、实验问题及解决方法

五、实验心得


一、实验目的

        1. 了解软件需求分析的目的和任务,理解功能需求和非功能需求,了解需求工程过程,针对给定问题,能使用需求分析建模工具,绘制业务流程,描述系统需求。

        2. 掌握传统软件工程方法中需求分析建模技术,包括数据流图、数据字典、E-R图、状态转换图以及层次方框图,熟悉结构化分析建模的基本应用。

        3. 掌握应用Visio等业界常用的需求建模工具的基本使用方法和基本绘图操作,选择一种并熟练使用,会使用该工具针对具体问题建立需求分析模型。

二、实验环境

        1. 操作系统: Windows 操作系统。

        2. 操作软件: WPS 文档编辑器、建模工具 boardmix。

        3. 学时分配: 2 学时。

、实验内容与步骤

1、根据以下描述,绘制出图书预定系统的顶层数据流图及细化数据流图。

        书店向顾客发放订单,顾客将所填订单交由系统处理,系统首先依据图书目录对订单进行检查并对合格订单进行处理,处理过程中根据顾客情况和订单数目将订单分为优先订单与正常订单两种,随时处理优先订单,定期处理正常订单。最后系统根据所处理的订单汇总,并按出版社要求发给出版社。

        (1)通过题意可知与图书预定系统直接关联的数据实体分别为顾客和出版社,其中顾客是数据的输入方即数据源点,出版社是数据的接收方即数据终点,由此图书预定系统的顶层数据流图如图3-1所示:

图3-1 图书预定系统顶层数据流图

        (2)对题意进行细化分析后可将图书预定系统的精细化数据流图分为两层,第0层中的加工包括订单检查和订单处理,对应的图书预定管理系统0层数据流图如图3-2所示:

图3-2 图书预定系统0层数据流图

        (3)在图书预定管理系统0层数据流图的基础上再进行细分,可以得出具有订单检查、订单统计、订单分类、定期处理、随时处理、订单汇总、订单发送7个加工以及图书目录、订单数目、顾客情况、优先订单、正常订单、出版社要求6个数据存储,对应的图书预定管理系统1层数据流图如图3-3所示:

图3-3 图书预定系统1层数据流图

2、根据以下描述,绘制出某单位职工工资的层次方框图。

        某单位职工的实发工资由应发工资和扣款两部分组成,每部分又可进一步细分。如应发工资又可分为基本工资和奖金;基本工资又可分为国家工资、津贴、补贴;奖金也可分为出勤奖和业绩奖;津贴进一步细分为国家津贴、职务津贴;补贴进一步细分为交通补贴、部门补贴、其他补贴;扣款分为水电扣款、缺勤扣款、个人所得税扣款,绘制对应的单位职工工资层次方框图。

        由题意可知,单位职工的实发工资有应发工资和扣款两个模块构成,应发工资又由基本工资和奖金两个模块构成,在基本工资下又有国家工资、津贴和补贴三个模块,其中津贴又有国家津贴和职务津贴两个模块构成,补贴由交通补贴、部门补贴和其他补贴三个模块构成,奖金由出勤奖和业绩奖两个模块构成,最后扣款由水电扣款、缺勤扣款和个人所得税扣款三个模块构成,对应的单位职工工资层次方框图如图3-4所示:

图3-4 单位职工工资层次方框图

3、根据以下描述,绘制出图形用户界面(GUI)的状态转换图(STD)。

        该界面具有一个主菜单和一个带有文件打开命令的文件菜单,在每个菜单上都有一条退出命令。假设每次只有一个文件能够打开,试用状态转换图描绘图形用户界面的行为。

        由上述题意可知,此用户界面的初态为进入,终态为退出,其中有主菜单、文件菜单和文件打开三种状态,对应的用户界面状态转换图如图3-5所示:

图3-5 用户界面状态转换图

4、根据以下描述,绘制出操作系统进程的状态转换图。

        回顾并查找操作系统进程相关概念,了解进程执行的各种状态并画出进程的状态转换图。

        操作系统的进程由五态构成,其中包括创建态、就绪状态、运行状态、阻塞状态和终止态,对应的操作系统进程状态转换图如图3-6所示:

图3-6 操作系统进程状态转换图

四、实验问题及解决方法

        (1)实验问题:数据流图绘制不清晰。

解决方法:使用简洁、明确的图形符号和标准化的流程,以确保数据流图的准确性和易读性。

        (2)实验问题:如何确定状态转换图的状态。

解决方法:明确系统的各个状态后确定状态之间的转换条件和动作,最后根据这些信息绘制状态转换图。

        (3)实验问题:层次方框图过于复杂。

解决方法:尽量减少层次,并使用简化的方框和箭头来表示绘制不同层次之间的关系。

        (4)实验问题:层次方框图中的并发绘制不准确。

解决方法:使用并发模块来表示并发事件。在层次方框图中,将并发模块与其他模块连接,表示并发事件的发生和结束。

        (5)实验问题:优化状态转换图、数据流图和层次方框图的设计。

解决方法:通过简化状态转换图中的状态和转换条件,简化数据流图中的过程和数据流,以及简化层次方框图中的模块和通信,来优化设计。

        (6)实验问题:数据流图与实际业务场景绘制不匹配。

解决方法:深入了解实际业务场景,并与相关人员沟通,确保数据流图与实际业务场景相符合。

        (7)实验问题:层次方框图与实际业务层次绘制不匹配。

解决方法:深入了解实际业务层次,并与相关人员沟通,确保层次方框图与实际业务层次相符合。

        (8)实验问题:数据流图中的循环依赖。

解决方法:仔细检查数据流图的循环依赖关系,并尝试通过拆分或简化流程来消除循环依赖。

        (9)实验问题:层次方框图中的冗余方框。

解决方法:仔细检查每个方框的必要性,并尝试通过合并或简化方框来消除冗余。

        (10)实验问题:数据流图与实际业务流程的时间绘制不一致。

解决方法:根据实际业务流程调整数据流图的绘制时间,以便更好地反映实际情况。

        (11)实验问题:层次方框图与实际业务流程的层级绘制不一致。

解决方法:根据实际业务流程调整层次方框图的层级结构,以便更好地反映实际情况。

、实验心得

        1、在绘制数据流图时,要明确数据流动的方向和顺序,以及每个节点的输入和输出数据。同时,要用简洁、明确的图形符号表示数据流动的不同类型和特点。

        2、绘制层次方框图时,要确定好层次结构和每个层次的功能模块,并用方框图来表示每个层次的功能模块之间的关系。同时,要注意层次的清晰度和可读性。

        3、在绘制状态转换图时,要先明确系统的各个状态,这有助于理清系统的逻辑流程。

        4、状态转换图中的状态转换条件和动作要尽量简洁明了,避免过于复杂和冗长的表达。

        5、在绘制数据流图和层次方框图时,要特别注意数据流和功能模块之间的逻辑关系。只有正确地理解数据流和功能模块之间的关系,才能准确地表达实验中的问题。

        6、数据流图的绘制需要准确地捕捉系统的输入、输出和过程,要仔细考虑数据的流向和处理过程。

        7、层次方框图能够直观地展示系统的模块结构和模块间的关系,要合理划分模块和确定模块间的通信方式。

        8、在绘制层次方框图时,需要准确表示功能模块之间的依赖关系。如果不清楚功能模块之间的依赖关系,需要请教老师或与同学进行交流,以保证层次方框图的正确性。

        9、绘制状态转换图、数据流图和层次方框图时,要使用合适的工具和软件,以提高绘图的效率和质量。

        10、在绘制图表时要注重图表的逻辑性和连贯性,使得图表中的信息能够有机地连接起来。

http://www.dtcms.com/a/331144.html

相关文章:

  • SQL LEFT JOIN 与 WHERE 条件的隐藏坑
  • anaconda创建pytorch1.10.0和pytorch2.0.0的GPU环境
  • iOS 26 一键登录失效:三大运营商 SDK 无法正常获取手机号
  • 装个 Oracle 23ai 本地版玩玩~
  • 短剧小程序系统开发:赋能创作者,推动短剧艺术创新发展
  • SpringBoot+Vue线上部署MySQL问题解决
  • CPP模板编程
  • AI驱动的智能爬虫架构与应用
  • openvsx搭建私有插件仓库
  • 设计模式有哪些
  • 2022_ISG_CTF-rechall详解(含思考过程)
  • MixOne在macOS上安装碰到的问题
  • 上网行为安全概述
  • 【跨越 6G 安全、防御与智能协作:从APT检测到多模态通信再到AI代理语言革命】
  • 数据结构:用链表实现队列(Implementing Queue Using List)
  • python批量爬虫实战之windows主题爬取
  • 移位操作符技巧
  • 8. 函数简介
  • DeepSeek补全IBM MQ 9.4 REST API 执行命令的PPT
  • Mac chrome浏览器下载DevEco Studio 6.0.0 Beta2失败
  • 分布式锁—Redisson的公平锁
  • 线上故障定位:从报警到根因的实战指南
  • Eureka故障处理大汇总
  • 使用 Git Submodules 管理前后端分离项目
  • scikit-learn/sklearn学习|广义线性回归 Logistic regression的三种成本函数
  • Docker 核心技术:Namespace
  • Java毕业设计选题推荐 |基于SpringBoot的健身爱好线上互动与打卡社交平台系统 互动打卡小程序系统
  • 2019 GPT2原文 Language Models are Unsupervised Multitask Learners - Reading Notes
  • [激光原理与应用-274]:理论 - 波动光学 - 光是电磁波,无线电磁波可以通过天线接收和发送,为什么可见光不可以?
  • Visual Studio2019/2022离线安装完整教程(含闪退解决方法)