【软件工程】实验1

news2025/8/3 12:46:57

文章目录

  • 实验一 软件需求分析
    • 实验目的
    • 实验内容
  • 「软件开发文档管理」软件开发过程涉及的文档
    • 软件开发阶段
    • 开发过程文档
  • 「软件开发文档管理」需求获取
    • 1. 功能需求
    • 2. 非功能需求
  • 「软件开发文档管理」需求分析、需求规格说明
    • 1. 需求概述
      • 1.1 功能需求
      • 1.2 非功能需求
    • 2. 用例模型
      • 2.1 用例图
      • 2.2 用例规格说明
        • 2.2.1 UC01 ****用例
        • 2.2.2 UC02 ****用例
    • 3. 概念类分析
      • 3.1 UC01 ****用例的概念类分析
        • 3.1.1 候选类及筛选
        • 3.1.2 概念类图
      • 3.2 UC02 ****用例的概念类分析
        • 3.2.1 候选类及筛选
        • 3.1.2 概念类图
    • 4. 交互行为分析
    • 5. 附录


实验一 软件需求分析

实验目的

  • 了解软件需求开发阶段相应活动及其目的;
  • 了解常见的软件需求分析方法;
  • 逐步熟悉UML建模工具的使用;
  • 熟悉需求文档的撰写。

实验内容

  • 在整个软件生命周期中涉及到大量的"文档"工作,现假设需要开发相应的软件开发过程文档管理系统,根据软件需求工程方法,请完成需求分析
    • 根据软件工程的基本思想:
      • 自行讨论分析软件开发过程可能涉及的文档
      • 完成软件开发文档管理的需求获取,包括功能需求和非功能需求;
    • 选择合适的UML建模工具完成需求分析,并形成相应的需求规格说明;
    • 建立小组通过团队协作完成实验工作,但人数不得超过4人(<=4人),而且应有明确的分工,并标明组长等角色及各自具体承担的任务;
    • 图表的绘制建议使用Visio工具软件绘制,也可使用其他工具软件,所得需求分析文档请将其命名为"学号-姓名-需求分析"后提交至网络教学平台。
  • 注:本次实验将计入考核成绩,需求文档评价标准如下:
    • 文字内容(20%)
      • 文档标题项设置有条理,符合文档格式规范(10%);
      • 各项内容编号有次序不混乱(5%);
      • 专业术语描述合理、准确(5%);
    • 分析建模(60%)
      • 分析模型内容完整,结构清晰,具有一致性(20%);
      • 图中元素标识恰当,关系分析合理,数量级标注正确,附加描述清楚(20%);
      • 图例元素符号无误(10%);
      • 布局合理(10%);
    • 文档排版(20%)
      • 能够按照文档格式要求进行排版。版面整洁,图表格式符合要求。

「软件开发文档管理」软件开发过程涉及的文档

软件开发阶段

  1. 项目分析
  1. 需求分析

  2. 软件设计

  3. 软件构造

  4. 软件测试

  5. 软件交付

  6. 软件维护

  7. 其他

开发过程文档

在这里插入图片描述


「软件开发文档管理」需求获取

1. 功能需求

2. 非功能需求


「软件开发文档管理」需求分析、需求规格说明

1. 需求概述

在此应当加入引言,引言部分是整个需求规格说明的概览,应当可以帮助读者更好地阅读和理解文档:
对整个软件项目的目的或背景进行说明,也即为什么要进行该软件系统的开发。
-从总体上描述影响产品和需求的因素,说明对该软件系统的总体预期。

1.1 功能需求

在此应当概述软件将要执行的主要功能,这里的功能描述应该是根据用户对软件的期望,进行概略地总结,	而不应当涉及功能的大量细节。而为清晰起见:
1)对于功能的描述组织应当能让第1次看到此文档的用户或其他人员快速理解系统的功能需求。
2)可以适当地使用文本或图表显示不同功能及其相互之间的联系。
  • 甲方
    • 查看项目进度
    • 提供需求反馈
  • 开发者
    • 上传文档
    • 查看文档仓库
    • 下载文档
    • 查看历史信息
  • 项目经理
    • 查看项目进度
    • 提供需求反馈
    • 文档权限管理
    • 创建项目仓库
  • 管理员
    • 系统管理维护
    • 用户管理

1.2 非功能需求

在此应当给在功能之外的需求,一般应当包括但不限于:
1)性能需求
2)约束
3)质量属性
4)对外接口

2. 用例模型

在面向对象分析方法中,通常以“用例驱动”,在此部分应当在对来自用户的功能需求进行“分析”基础之上,建立起用例模型,对功能进行细化,建立起规格说明,一般表现为用例图及用例描述。

2.1 用例图

在此提供完整的系统用例图,所用图例应当遵从UML2.5.1/2017标准,从需求分析的角度应当从整体上确定并给出:
1)系统边界
2)参与者
3)用例
4)参与者与用例以及用例之间的关系
其中:
1)用例图应当给出标识号,如UC01,方便在后面的用例规格说明,也即用例描述中,加以引用。
2)所绘制的用例图应当使用工具软件绘制(Visio),在文档中居中显示,大小适中(一般地应当保持图中字体比正文小1号),并在图下方标注,形如:

在这里插入图片描述
图2-1 *******系统用例图

2.2 用例规格说明

对于用例图中的所有用例,应当给出相应的用例规格说明,一般地可以采用如下的用例描述模板。

2.2.1 UC01 ****用例

在这里插入图片描述

2.2.2 UC02 ****用例

3. 概念类分析

对于系统用例可进一步采用概念类图确定用例中所应有的数据及核心功能,也即以类图确定属性和方法,一般地在概念类分析中,我们主要关注的是类中的重要属性,在此基础上可以给出类与类之间的关联关系,也即概念类之间是如何协作的。

3.1 UC01 ****用例的概念类分析

3.1.1 候选类及筛选

对于概念类的分析,如果无从下手,可以从用例中的场景描述开始,建立起局部概念类图,其分析过程可以参照下表:

在这里插入图片描述

3.1.2 概念类图

在经过对用例场景中可能的备选类进行筛选后所形成的概念类,可以绘制概念类图。
1)概念类图中可以有参与者。
2)所绘制的概念类图应当使用工具软件绘制(Visio),在文档中居中显示,大小适中(一般地应当保持图中字体比正文小1号),并在图下方标注,形如:

在这里插入图片描述

图3-1 UC01****用例的概念类图

3.2 UC02 ****用例的概念类分析

3.2.1 候选类及筛选

……

3.1.2 概念类图

……

4. 交互行为分析

系统用例往往包含着对象的交互行为,可进一步建立起交互模型用于描述“用例的实现”,也即对象之间是如何通过协作完成系统功能任务的。
一般地在需求分析阶段,更多地使用系统顺序图,强调的是参与者和系统间的交互行为,重点展示系统级事件。
在此部分,应当在用例分析基础之上,给出系统顺序图。
所绘制的系统顺序图应当使用工具软件绘制(Visio),在文档中居中显示,大小适中(一般地应当保持图中字体比正文小1号),并在图下方标注,形如:

在这里插入图片描述

图4-1 *********系统顺序图

5. 附录

在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/15859.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中证1000期指上市带来的交易机会

数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学&#xff0c;点击下方链接报名&#xff1a; 量化投资速成营&#xff08;入门课程&#xff09; Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C语言CTP期货交易系统开…

玩转UE4/UE5动画系统:UE5的运行时(动态)重定向治好了我的精神内耗

本文参考了油管UP主&#xff1a;AngelV的教程 前言 UE5中新的动画资源的&#xff08;静态&#xff09;重定向方法比UE4好用很多&#xff0c;但这种静态的重定向方式依然很让人头疼&#xff0c;因为我们需要对于每一个需要的动画资源为每一个目标骨架生成一套资源备份。尽管个过…

我参加NVIDIA Sky Hackathon 环境安装(编程环境)

强烈建议使用conda 第一个坑&#xff1a; 不使用 conda 进行 Python 环境管理直接使用本地的 Python 环境容易导致混乱 conda 安装 指定下载源 export DL_SITEhttps://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda 使用 wget 进行下载 wget -c $DL_SITE/Miniconda3-py…

德鲁克《卓有成效的管理者》学习笔记-掌握时间的学习和实践

针对德鲁克先生《卓有成效的管理者》书中提到了掌握时间部分学习的一些记录以及在日常工作中的实践。 1、为什么学习掌握时间 时间是最特殊的资源&#xff0c;为什么说它特殊呢&#xff1f;他租不到、顾不到、买不到&#xff0c;更不能以其他任何手段来获得。时间的供给丝毫没…

CC++指针实训(国防科大)

第1关&#xff1a;去掉字符串首尾空格 200 任务要求参考答案评论285 任务描述相关知识 定义指针变量指针的性质编程要求测试说明任务描述 本关任务&#xff1a;文本匹配的时候经常会因为空格个数的不同而匹配失败&#xff0c;现在要求你编写程序对输入的字符串进行处理&…

JUnit 5 单元测试教程

点赞再看&#xff0c;动力无限。 微信搜「 程序猿阿朗 」。 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录&#xff0c;有很多知识点和系列文章。 在软件开发过程中&#xff0c;我们通常都需要测试自己的代码运行是否正常&#xff0c;可能对一个函数进行简单测试…

传奇开服教程——legend/blue引擎替换和登陆器生成教程

1. 下载好legend/blue引擎的服务端解压到D盘 2. 下载legend/blue引擎和登陆器配置器 3. 解压legend/blue引擎和配置器到任意目录&#xff0c;运行对应引擎中的 开始更新程序.bat 就完成引擎替换&#xff0c;接着往下看 4. 打开登陆器配置器(Blue-LEG)中的 登陆器配置器-…

区块链软件开发中的虚拟机(virtual machine)

一、什么是虚拟机 虚拟机&#xff08;英语&#xff1a;virtual machine&#xff09;&#xff0c;在计算机科学中的体系结构里&#xff0c;是指一种特殊的软件&#xff0c;可以在计算机平台和终端用户之间创建一种环境&#xff0c;而终端用户则是基于虚拟机这个软件所创建的环境…

ORACLE 19C pdb修改的参数保存在哪个数据字典中?

PDB关闭后&#xff0c;保存在&#xff1a; pdb_spfile$中。 下面举例&#xff1a; 在PDB1中修改 ddl_lock_timeout10 SQL> alter session set containerpdb1; Session altered. SQL> show parameter ddl_ NAME TYPE VALUE ------------------------------------ --------…

路由进阶:双点双向路由重发布实验配置

实验拓扑 网络拓扑及IP编址如上图所示&#xff1b;设备的互联地址为192.168.xy.0/24。其中x、y为设备编号。例如R1-R3之间互联的链路网段为192.168.13.0/24&#xff0c;并且R1的接口地址为192.168.13.1&#xff0c;R3的接口地址为192.168.13.3&#xff0c;也就是说IP地址的最后…

Mac电脑升级13系统后,git clone 代码报错,mac升级后git ssh用不了

mac系统出了新版本 13.0.1 后&#xff0c;androidstudio push, pull 代码一直报错&#xff1a; 如下&#xff1a; Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the reposito…

基于PHP+MySQL的校园餐厅展示订餐系统

校园餐厅展示系统主要是实现用户在线订餐功能,由于校园餐厅每天的销售量大,而传统的订餐一直采用手工操作,尤其是在订餐管理部分存在工作量大效率低、日常订单数据经常出错、订单查询困难、用户需求信息不能及时掌握等一系列的问题。校园餐厅展示系统的开发应用,能够实现用户的…

《围城》笔记

《围城》&#xff0c;依稀记得初中时看到较高年级的学长手里攥着去上课&#xff0c;这位学长是个文科生&#xff0c;属于比较爱看小说的类型。前些天偶尔看到围城这个熟悉的名字&#xff0c;于是看了看。 杨绛女士在文章的最后面提到了钱钟书写《围城》的背景&#xff0c;她是陪…

A Philosophy of Software Design读书笔记——分or合

软件设计中有个很重要的问题&#xff1a;两个功能&#xff0c;是分成两部分实现&#xff0c;还是合在一部分实现呢 合or分的目的是减少系统复杂度&#xff0c;但是拆分有带来一些复杂度&#xff0c;比如&#xff1a; 1、组件个数增加复杂性&#xff0c;难以追踪每个组件&…

Foxit PDF SDK for Linux (C++ Library) 8.4.1 Crack

适用于Linux平台的行业优秀的PDF技术 Foxit PDF SDK Linux版本&#xff0c;一款提供给Linux平台开发人员的强大的PDF库。它提供了简单易用的C接口和Java接口&#xff0c;允许开发人员将PDF显示、导航、创建、搜索、注释、保护、PDF文本提取、图片转换、表单数据收集和编辑功能…

JavaScript代码是怎么在浏览器里面运行起来的?

JavaScript代码是怎么在浏览器里面运行的&#xff1f;下面简单探索一下 浏览器内核 浏览器内核&#xff08;Rendering Engine&#xff09;&#xff0c;常见的叫法如&#xff1a;排版引擎、解释引擎、渲染引擎&#xff0c;现在流行称为浏览器内核。 浏览器内核说明IETridentIE…

3415: 【提高】小 X 的佛光

3415: 【提高】小 X 的佛光 时间限制: 1.000 Sec 内存限制: 128 MB 提交: 14 解决: 7 [命题人:][下载数据: 110] 提交状态报告 题目描述 题目背景】 小 X 是远近闻名的学佛&#xff0c;平日里最喜欢做的事就是蒸发学水。 【题目描述】 小 X 所在的城市 X 城是一个含有 N…

XSS-labs靶场实战(二)——第4-6关

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是XSS-labs靶场实战第4-6关。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#xff1a;严禁对未…

Qt ARM+Linux平台调用一个库的时候,报错“Bus error”

Qt ARMLinux平台调用一个库的时候&#xff0c;报错“Bus error” 文章目录Qt ARMLinux平台调用一个库的时候&#xff0c;报错“Bus error”摘要1 字节对齐问题2内存溢出问题关键字&#xff1a; Bus error、 Qt、 Arm、 Linux、 Debian内容背景&#xff1a; 最近项目终于切到Li…

如何实现高效地扩展5G毫米波段?

如今的高频信号标准使用的是比以往更高的频率和更宽的带宽&#xff0c;经过多年的研究和测试&#xff0c;5G无线网络正在世界各地进行部署。5G利用比以前使用的频带高得多的频段和毫米波频率&#xff0c;实现了高速、宽带宽、低时延和极高的容量。 然而&#xff0c;这些高频信号…