基于asp.net软件缺陷跟踪系统设计与实现

news2024/9/22 15:44:28
  • 系统分析

本章讲述了本软件缺陷跟踪系统的前期分析方法和分析结论。

3.1 可靠性分析

在软件研发企业或研发团队中,开发人员和测试人员所应用的软件缺陷管理的主要方法流程是:

1.测试人员发现软件存在的缺陷,填写缺陷报告;

2.开发人员按照缺陷报告修改存在的缺陷,或根据任务需要将缺陷置为拒绝修改或延期状态;

3.缺陷修改完毕后,由测试人员验证是否正确修改,若否,则重复工作流程1至3;

4.确认缺陷修改完毕后,关闭此缺陷报告

综上,软件缺陷跟踪系统是否可靠,在于该系统能否使软件研发团队正常并有序的执行工作任务,并保证系统在被使用或运行过程中,不产生任何由系统本身因素所导致的工作异常和错误。

3.2可行性分析

3.2.1新系统目标可行性分析

本软件缺陷跟踪系统在保证基本缺陷管理功能的基础之上,新增了缺陷统计功能,此功能可使研发团队的中高层人员宏观掌握软件开发过程情况。经调研发现,存在众多软件企业需要此功能来满足其需求。并且,经研究表明具有缺陷统计功能的软件缺陷跟踪系统更能有效的提高研发团队整体的工作效率和行业综合竞争力。

3.2.2技术可行性分析

本系统基于ASP.NET,采用微软最新的Microsoft Visual Studio 2010 Professional作为开发平台,运用最新的.NET Framework 4.0技术、IIS web服务器和SQL Server2008数据库,足以满足系统的所有开发和调试需求,在技术上确保了系统的开发能够顺利并高效的实施。

3.2.3经济可行性分析

软件研发企业或研发团队采用本系统作为缺陷管理系统后,只需分配相应的系统管理人员以针对系统参与人员进行简单的管理即可,此外不需要任何额外开支。

3.2.4安全管理可行性分析

使系统具备完善的账户和权限等安全管理机制,能够使企业的安全负责人和高层管理人员高枕无忧。

3.3系统需求分析

软件缺陷跟踪系统意在为软件研发企业或研发团队提供优质、便利和高效的软件缺陷管理综合解决方案。满足团队中开发、测试乃至管理层人员对软件缺陷管理的功能需求。

3.3.1 系统业务逻辑功能任务流程分析

1.缺陷管理任务流程

图3.1 缺陷管理任务流程图

2.测试项目管理任务流程

图3.2 测试项目管理任务流程图

3.工作计划管理任务流程

图3.3工作计划管理任务流程图

3.3.2系统功能框架

软件缺陷跟踪系统包含业务逻辑和系统管理两大功能分区,业务逻辑分区包含缺陷管理功能、测试项目管理功能、工作计划管理功能三个业务逻辑功能;系统管理分区包含用户管理功能。

图3.4系统功能模块图

3.3.3 系统功能描述

  • 缺陷管理

1.新建Bug

填写Bug标题、缺陷类别、所属项目和版本、测试平台、安全和优先级别、缺陷描述等,并完成后提交至数据库存储,系统自动确认提交人为登录用户。

2.Bug高级检索

在表单中填入缺陷类别、所属项目和版本、安全和优先级别等检索条件进行Bug的组合检索

3.修改Bug状态

可将Bug状态置为新缺陷、待验证、拒绝修改、延期、关闭、重新打开、挂起

4.审阅Bug

具备相应权限(可由系统管理员设定权限)参与者可对已修改的Bug进行审阅将其关闭

  • 测试项目管理

1.添加测试项目

填写项目名称、启动时间和项目描述,提交后存储至数据库

2.修改测试项目

修改项目的描述、启动时间等信息,更新后将修改后的信息存储至数据库

3.删除测试项目

将存在的测试项目删除,并从数据库中清除条目

4.缺陷统计

可按缺陷类别、安全级别、优先级别等方式查看缺陷统计图表

  • 工作计划管理

1.撰写工作计划

从日历控件上选择日期,撰写该日期下的工作计划

2.修改工作计划

从日历控件上选择要修改计划的日期,撰写新的工作计划后保存修改

3.查看工作计划

从日历控件上选择要查看工作计划的日期,若曾撰写过当日的计划,即可显示对应信息

  • 用户管理

1.账户初始化

分配用户账户和密码,并给予相应权限,信息存储至数据库

2.删除用户账户

对已存在的用户进行删除操作,同时从数据库中清除对应条目

3.重置密码

对已存在的用户密码进行重置,并将更新信息存储值数据库

4.用户权限管理

对已存在的用户类别进行权限的受理,包括使用缺陷管理、工作计划、项目管理、用户管理、关闭Bug等权限

5.查看系统日志

查看系统记录的有关登录失败、访问信息等系统日志

  • 系统设计

本章讲述本系统功能的逻辑、层次关系,系统整体架构和系统数据库的具体设计。

4.1系统设计用例

本软件缺陷跟踪系统的参与对象为五个角色,分别是测试工程师、开发工程师、测试部经理、开发部经理和系统管理员,不同角色分配有不同的系统访问权限(权限可修改),默认权限时的系统用例如下:

(1)缺陷管理子系统:测试工程师和开发工程师主要运用该系统的缺陷管理子系统提交和修改Bug报告,Bug报告可由测试部经理审阅后关闭,其用例图如下:

4.1 缺陷管理子系统用例图

运用缺陷管理子系统,首先由测试工程师记录并存储Bug,而后开发工程师根据检索条件检索到相应Bug,修正Bug后(可拒绝修改)可为此Bug重置状态。

1、新建Bug的用例规格说明如下:

4.1 新建Bug的用例规格说明

用例名称

新建Bug

参与者

测试工程师、开发工程师

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统

后置条件

存储Bug报告

主事件流

用户填入Bug报告所需信息并提交

系统将被提交的Bug报告存储,将其状态置为“新缺陷”

备选事件流

2a.重复提交

   1.系统提示此Bug曾经已被提交

非功能性需求

存储及重复检测机制完善可靠

2Bug高级检索的用例规格说明如下:

4.2 Bug高级检索的用例规格说明

用例名称

Bug高级检索

参与者

测试工程师、开发工程师

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统

后置条件

显示搜索结果

主事件流

用书输入检索条件

系统按条件检索并得出检索结果

用户点选所需结果条目

系统显示相应条目信息

备选事件流

2a.检索结果为空

   1.提示无搜索结果,建议重新输入检索条件

非功能性需求

存储机制完善可靠

3、修改Bug状态的用例规格说明如下:

4.3 修改Bug状态的用例规格说明

用例名称

修改Bug状态

参与者

测试工程师、开发工程师

假设

用户存在且权限已得到分配

前置条件

已打开待修改的Bug报告

后置条件

修改并存储新数据

主事件流

用户选择Bug状态并提交修改

系统受理修改并存储相应信息

备选事件流

非功能性需求

存储机制完善可靠

(二)工作计划管理子系统:测试工程师和开发工程或更高层人员可通过工作计划管理子系统管理个人的工作计划,其用例图如下:

4.2工作计划管理子系统用例图

运用工作计划管理子系统功能,用户可以随时撰写个人未来的工作计划、查看计划、和修改工作计划。用户不可访问他人的工作计划,从而保证用户的个人隐私。

撰写计划的用例规格说明如下:

1、撰写计划的用例规格说明如下:

4.4 撰写计划的用例规格说明

用例名称

撰写计划

参与者

测试工程师、开发工程师

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统,所选日期无工作计划

后置条件

存储新的或已修改的计划内容

主事件流

选择欲添加工作计划的日期

系统确定所选定的日期有无计划

用户撰写计划并提交

系统保存该日期的计划

备选事件流

3b.所选日期在今日之前

     1.系统不提供添加功能

非功能性需求

存储机制完善可靠

2、修改计划的用例规格说明如下:

4.5修改计划的用例规格说明

用例名称

修改计划

参与者

测试工程师、开发工程师

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统,所选日期已有工作计划

后置条件

存储新的或已修改的计划内容

主事件流

选择欲添加工作计划的日期

系统确定所选定的日期有无计划

用户撰写新计划并提交修改

系统保存该日期的新计划

备选事件流

3b.所选日期在今日之前

     1.系统不提供修改计划功能

非功能性需求

存储机制完善可靠

(三)用户管理子系统:系统管理员可通过用户管理子系统管理用户账户和权限,并可以查看系统日志。其用例图如下:

4.3 用户管理子系统用例图

运用用户管理子系统,系统管理员能够分配用户账户、删除用户、重置用户密码和管理用户权限,并可以查看系统记录的访问日志。

1、用户账户初始化用例规格说明如下:

4.6用户账户初始化用例规格说明

用例名称

用户账户初始化

参与者

系统管理员

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统

后置条件

系统存储修改或添加方案数据信息

主事件流

用户输入新用户的登录名和密码,分配角色并提交

系统受理添加方案并存储信息

备选事件流

2a.用户已存在

    1.系统提示用户已存在,返回添加新用户页面

非功能性需求

冲突检测机制完善可靠

2、删除用户账户用例规格说明如下:

4.7删除用户账户用例规格说明

用例名称

删除用户账户

参与者

系统管理员

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统

后置条件

系统存储修改方案数据信息

主事件流

用户选择欲删除的用户并提交删除指令

系统受理删除

备选事件流

非功能性需求

数据存储机制完善可靠

(四)测试项目管理子系统:用户可以通过测试项目管理子系统进行待测软件项目的管理和查看缺陷统计报表。其用例图如下:

4.4 测试项目管理子系统用例图

运用测试项目管理子系统,测试部经理和开发部经理可以添加、修改和删除测试项目,并能够查看缺陷统计报表。

1、添加测试项目的用例规格说明如下:

4.8添加测试项目的用例规格说明

用例名称

添加测试项目

参与者

测试部经理

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统

后置条件

系统存储添加方案数据信息

主事件流

用户输入新项目的名称和启动日期等信息,并提交添加指令

系统受理指令,操作成功

备选事件流

2a.项目已存在

    1.系统提示项目已存在,返回添加页面

非功能性需求

数据存储机制和冲突检测机制完善可靠

2、修改测试项目的用例规格说明如下:

4.9修改测试项目的用例规格说明

用例名称

修改测试项目

参与者

测试部经理

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统

后置条件

系统存储修改方案数据信息

主事件流

用户选择欲修改的测试项目

系统跳转至所选测试项目内容

用户修改项目内容后提交修改指令(测试项目名称为只读)

系统受理修改

备选事件流

非功能性需求

数据存储机制完善可靠

3、删除测试项目的用例规格说明如下:

4.10 删除测试项目的用例规格说明

用例名称

删除测试项目

参与者

测试部经理

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统

后置条件

系统存储删除方案数据信息

主事件流

用户选择欲删除的测试项目

系统跳转至所选测试项目内容

用户执行删除操作

系统受理删除

备选事件流

非功能性需求

数据存储和读取机制完善可靠

4、查看缺陷统计报表的用例规格说明如下:

4.11 查看缺陷统计报表的用例规格说明

用例名称

查看缺陷统计报表

参与者

测试部经理开发部经理

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统

后置条件

主事件流

用户选择查看方式

系统受理并显示统计报表

备选事件流

非功能性需求

数据存储和读取机制完善可靠

4.2系统数据库设计

4.2.1 数据库关系模型

本软件缺陷跟踪系统数据库(Tracking)包含13个表,本别为User、Department、Plan、Role、Bug、BugClass、BugSecurity、Project、Status、OS、Log、Report、Priority。数据库关系模型如下图所示:

图4.5 数据库关系模型

4.2.2核心数据表

1.User表:

图4.6 User数据表

User数据表包含五列,列名及相应存储对象如下:

表4.12 User表数据存储说明

列名

存储对象

LoginName

用户登录名

UserID

用户身份识别编号

PassWord

用户登录密码

UserName

用户真实姓名

DepartmentName

用户所在部门名称

RoleName

用户角色名称

2.Bug表

图4.7 Bug数据表

Bug数据表包含五列,列名及相应存储对象如下:

表4.13 Bug表数据存储说明

列名

存储对象

BugId

缺陷识别码

BugTitle

缺陷标题名称

BugContent

缺陷详细内容

LoginName

用户登录名

BugStatusName

缺陷状态

ProjectName

缺陷所述测试项目名称

OS

测试平台操作系统

BugClassName

缺陷类别

Priority

缺陷优先级别

SecurityName

缺陷严重级别

BugDate

缺陷添加日期

Version

被测软件的版本名称

3.Plan表

图4.8 Plan数据表

Plan数据表包含四列,列名及相应存储对象如下:

表4.14 Plan表数据存储说明

列名

存储对象

PlanId

工作计划识别码

LoginName

用户登录名

PlanDate

工作计划添加日期

PlanContent

工作计划详细内容

4.Project表

图4.9 Project数据表

Project数据表包含五列,列名及相应存储对象如下:

表4.15 Project表数据存储说明

列名

存储对象

ProjectName

待测软件项目名称

ProjectId

待测软件项目识别码

ProjectDate

待测软件项目启动时间

Discribe

待测软件项目描述

5.Log表

图4.10 Log数据表

Log数据表包含四列,列名及相应存储对象如下:

表4.16 Log表数据存储说明

列名

存储对象

LoginName

行为或事件发起人

Action

行为或事件

Date

记录时间

ID

事件ID

4.3系统体系结构设计

本软件缺陷跟踪系统运用五层体系结构方式实现,如下图:

图4.11软件缺陷跟踪系统体系结构图

其中,各层所实现功能的描述如下:

  • 数据访问层(DtatAccessLayer):实现对数据库中数据的访问功能。
  • 数据访问接口层(DataAccessUI):实现获取数据和构造SQL语句的功能。
  • 业务逻辑层(BusinessLogicLayer):实现业务的具体逻辑功能。
  • 业务逻辑接口层(BusinessLogicUI):实现业务逻辑层到页面显示层的过渡连接。
  • 页面显示层(WebLayer):将业务功能在Web浏览器端显示

  • 系统实现

本章展示了本软件缺陷跟踪系统的具体实现方法、核心功能的源程序和运行效果。

5.1 系统基本功能的实现

5.1.1 登录模块的实现

软件缺陷跟踪系统登录页面运行效果如下图所示:

图5.1 软件缺陷跟踪系统登录页面运行效果图

系统登录是用户使用本软件缺陷跟踪系统的第一步操作,只有通过输入正确的用户登录名和密码才能正常进入系统并使用相应功能。登录时,若用户名输入文本框或密码输入文本框为空,则系统会给出相应提示;若用户名或密码错误,则系统提示登录失败信息。在初始启动系统时,若非法用户或黑客试图跳过登录身份验证,直接输入某功能页面的访问地址,则系统会自动跳转至登陆页,直至身份验证成功后方可进入。同时系统记录用户登录名添加至Session。登录事件记入系统日志。

登录机制核心源代码如下:

Session.Add("login_name", username);

User user = new User();

user.LoadData(username);

if (user.Exist)

  {

     if (user.Password == password)

     {

         Session.Add("password", password);

         String sql = "INSERT INTO [Log] ( [ID],[LoginName], [Action], [Date]) VALUES ('" + Convert.ToUInt64(DateTime.Now.ToString("yyyyMMddHHmmss")) + "','"+ Session["login_name"].ToString() + "','试图登录系统:登陆成功!','" + DateTime.Now +"')";

         SqlDataSource1.InsertCommand = sql;

         SqlDataSource1.Insert();

         Response.Redirect("Front.aspx");

}

     else

     {

         Label3.Text = "用户名或密码不正确,请重新输入或与管理员联系!";

         TextBox3.Text = "";

String sql = "INSERT INTO [Log] ( [ID],[LoginName], [Action], [Date]) VALUES ('" + Convert.ToUInt64(DateTime.Now.ToString("yyyyMMddHHmmss")) + "','"+ Session["login_name"].ToString() + "','试图登录系统:登陆失败;原因:密码错误!','" + DateTime.Now + "')";

         SqlDataSource1.InsertCommand = sql;

         SqlDataSource1.Insert();

}

   }

   else

   {

Label3.Text = "用户名或密码不正确,请重新输入或与管理员联系!";

TextBox3.Text = "";

   }

5.1.2系统欢迎页面的实现

软件缺陷跟踪系统欢迎页面运行效果如下图所示:

图5.2 软件缺陷跟踪系统欢迎页面运行效果图

用户身份验证通过成功登录后,将进入系统欢迎页面,即首页。同时功能导航栏出现,向用户提供符合其权限的系统功能。功能导航栏如下图所示:

图5.3 软件缺陷跟踪系统功能导航栏

运用用户登录时系统所记录的Session,在此欢迎界面将显示登录用户的用户名,其图5-2所示。欢迎页面中,用户可通过直接点击页面中的功能提示和使用导航栏按钮进入相应系统功能页面。

5.1.3 缺陷跟踪功能的实现

软件缺陷跟踪系统的缺陷跟踪模块是该系统的核心功能模块,用于对缺陷报告的完全管理,包括新增缺陷报告、修改缺陷状态和检索缺陷等。

1.新增缺陷报告。运行效果如下图所示:

图5.4新增缺陷页面运行效果图

在新增缺陷报告页面中,用户登录时使用的登录名被自动确认为此缺陷报告的“发布人”。此外,用户可根据报告的详细情况,选择所属项目、缺陷类别、优先级别、测试平台的操作系统、严重级别,输入测试软件的版本、报告标题和详细缺陷描述,(备注为可选输入项)完成填选后点击“发布”按钮即可将此报告发布并存储至数据库。同时生成唯一的BugID,其ID编号为发布时的时间点,格式为“yyyyMMddHHmmssXX”,并自动显示在报告发布成功的提示页面中,以方便此后检索时使用。

其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者
 

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

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

相关文章

【正点原子K210连载】第三十四章 image图像滤波实验 摘自【正点原子】DNK210使用指南-CanMV版指南

第三十四章 image图像滤波实验 在上一章节中,介绍了image模块中元素绘制方法给的使用,本章将继续介绍image模块中图像滤波方法的使用。通过本章的学习,读者将学习到image模块中图像滤波的使用。 本章分为如下几个小节: 34.1 imag…

Transformer直接预测完整数学表达式,推理速度提高多个数量级

前言 来自 Mata AI、法国索邦大学、巴黎高师的研究者成功让 Transformer 直接预测出完整的数学表达式。 转载自丨机器之心 符号回归,即根据观察函数值来预测函数数学表达式的任务,通常涉及两步过程:预测表达式的「主干」并选择数值常数&am…

jfif怎么改成jpg格式?这几种转换方法请务必学会!

jfif怎么改成jpg格式?JFIF,作为一种相对不常见的图像存储格式,其在实际应用中确实存在一系列不容忽视的局限,首要问题在于,当尝试将JFIF图片转换为其他格式时,往往会伴随着图像压缩的副作用,这意…

Vue学习笔记 一

Vue学习笔记 1、Vue基础指令 1.1 什么是Vue? Vue.js 是一套响应式的 JavaScript 开发库。Vue.js 自问世以来所受关注度不断提高,在现在的市场上,Vue.js 是非常流行的 JavaScript 技术开发框架之一。 Vue是一款国产前端框架,它的作者尤雨溪(Evan You)是一位美籍华人,…

Android使用addr2line分析Native Crash

NDK提供的工具将函数地址解析为具体的函数名和行数才能进一步分析问题。 常用的地址转换工具有addr2line、ndk-stack等,个人比较喜欢addr2line,所以接下来介绍下该工具的基本使用方式 日常使用过程中,只需要关注-C -f -e三个参数即可 // -…

LaViT:这也行,微软提出直接用上一层的注意力权重生成当前层的注意力权重 | CVPR 2024

Less-Attention Vision Transformer利用了在多头自注意力(MHSA)块中计算的依赖关系,通过重复使用先前MSA块的注意力来绕过注意力计算,还额外增加了一个简单的保持对角性的损失函数,旨在促进注意力矩阵在表示标记之间关…

注意力机制(Attention mechanism)(中篇)

模型的输入是一组向量,它可以是文字,可以是语音,可以是图。而输出有三种可能性, 第一种可能性是每一个向量都有一个对应的标签。如图1所示,当模型看到输入是4个向 量的时候,它就要输出4个标签。如果是回归问…

React项目通过jsmind实现思维导图以及相关功能

jsMind jsMind 是一个用于显示和编辑思维导图的纯 JavaScript 类库。它基于 Canvas 和 SVG 进行设计,能够在现代浏览器中高效地运行。jsMind 以 BSD 协议开源,这意味着可以在遵守该协议的前提下,将其嵌入到任何项目中使用。 功能特点 jsMi…

从0到1搭建用户管理系统

手把手教你搭建前后端框架 新手对于很多成熟框架,不知道如何搭建的,不知道如何实现等等,忙碌之余,写了一篇博客 手把手教你搭建前后端框架源码, springbootmysqlelementuivue 从0到1,搭建springboot框架&am…

windows下mysql启动失败无报错(已解决)

环境:win server 2012R2 mysql版本:8.0 今天使用net stop mysql;net start mysql进行重启,发现重启失败,而且提示服务没有任何错误。 接着就检查了所有的常见问题(如端口占用、配置文件路径错误等)仍然无…

024、架构_资源_主机

摘要 在主机管理界面,可查看 GoldenDB 使用的主机信息,可对主机执行新增、编辑、删除操作。 主机列表 选择菜单[资源管理→主机管理],进入主机列表界面。 新增主机(单个、批量) 新增主机流程: 添加

hexo d 报错

上学期四月份左右用hexogithub搭了一个简单的博客,开学回来发现运行hexo d就报错,试了好几种网上的方法解决。(虽然好使了,但还是没弄明白啥原理,难道是token过期就不好使吗?) 奇妙的解决方案 …

WD100电磁铁-国家实验室方案

根据合肥国家实验室磁场要求,上海天端实业有限公司设计制造WD100电磁铁,参数如下 水冷WD100电磁铁参数资料 产品规格 水冷型WD-100型电磁铁,卧式座放,磁场方向水平; 气隙双向可调,可调范围0-100mm&am…

【GeoScenePro】Generic Server Error

错误 解决方案 在portal中进行知识图谱许可授权

C语言指针进阶一:(字符指针,数组指针,指针数组,函数指针)

字符指针 在指针类型中我们知道字符指针类型,一般就是用于 char 的: int main() {char ch w;char* p &ch;*p a;return 0;} 还有一种使用方法: int main() {const char* pstr "hello bit";printf("%s\n", p…

亚马逊、temu自养号采购大额下单需要解决哪些技术要点?

自养号采购下单在跨境电商平台中是一个复杂且需要精细操作的过程,主要涉及多个技术要点以确保账号安全、提高下单成功率,并避免被平台风控系统识别。以下是需要解决的关键技术要点: 1. 纯净的测评环境 服务器与IP:使用高纯净度的…

java实现发邮件功能的方式?如何使用java?

java实现发邮件的配置步骤?如何用java实现发信功能? Java实现发邮件功能是一个非常常见且重要的需求。无论是用于用户注册确认、密码重置还是系统通知,Java实现发邮件功能都能提供强大的支持。AokSend将详细介绍几种常用的Java实现发邮件功能…

模板方法详解

1.基本介绍 模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern), 在一个抽象类公开定义了执行 它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。简单说&…

【系统分析师】-计算题-净现值与投资回报率

1、某企业准备开发一个信息管理系统,其生存周期为5年。该系统的预计开发成本、预计的年运行/维护成本,以及预计的收益如下表所示(其中带括号的数据表示负值)。 问题1 (1)目前许多管理人员将投资的净现值作为…

Ribbon负载均衡底层原理

springcloude服务实例与服务实例之间发送请求,首先根据服务名注册到nacos,然后发送请求,nacos可以根据服务名找到对应的服务实例。 SpringCloudRibbon的底层采用了一个拦截器,拦截了openfeign发出的请求,对地址做了修…