【软考中级攻略站】-软件设计师(5)- 软件工程

news2024/9/22 7:28:06

软件生存周期

什么是软件生存周期?

软件生存周期指的是一个软件从开始构思到最终停止使用(或被替换)的整个过程。就像人的生命一样,软件也有一个从出生到死亡的过程。

软件生存周期的几个阶段

软件生存周期通常可以分为以下几个阶段:

  1. 需求分析

    • 做什么:在这个阶段,我们需要弄清楚软件需要完成哪些功能,解决哪些问题。
    • 例子:假设你要做一个新的购物网站,你需要先确定这个网站需要有哪些功能,比如商品展示、购物车、支付功能等。
  2. 设计

    • 怎么做:在这个阶段,我们要设计软件的架构,确定软件的外观和内部结构。
    • 例子:继续购物网站的例子,你需要设计网站的页面布局、数据库结构和后台管理系统等。
  3. 编码

    • 编写代码:在这个阶段,程序员根据设计好的方案开始写代码。
    • 例子:程序员开始用编程语言(如Java、Python等)编写代码,实现之前设计的功能。
  4. 测试

    • 检查问题:在这个阶段,我们需要测试软件是否正常工作,找出并修复错误。
    • 例子:测试人员会尝试使用网站的各种功能,看看有没有bug,比如支付功能是否正常、商品信息是否正确显示等。
  5. 部署

    • 上线发布:在这个阶段,软件准备好后会被发布到生产环境中,供用户使用。
    • 例子:购物网站完成后,发布到互联网上,用户可以通过网址访问这个网站。
  6. 维护

    • 持续改进:软件发布后,还需要不断改进和修复问题。
    • 例子:网站上线后,根据用户的反馈和使用情况,不断改进功能,修复新发现的bug。
  7. 退役

    • 停止使用:当软件不再满足需求或有更好的替代品时,软件会被停止使用或替换。
    • 例子:如果新的购物平台出现了,原来的网站可能会被淘汰,不再使用。

能力成熟度模型CMM 

什么是能力成熟度模型(CMM)

能力成熟度模型(CMM)是一种评估和改进软件开发和维护过程的方法。它提供了一套标准,帮助软件开发团队评估他们的工作流程,并逐步提升其管理水平和效率。

CMM的五个级别

CMM通常分为五个级别,每个级别代表了软件开发和维护过程的不同成熟度水平。级别越高,表示管理水平和流程越规范、高效。

1. 初始级(Level 1)
  • 特点:没有固定的流程,每个人都有自己的一套做法。
  • 例子:一个小团队刚开始开发软件,大家各自为战,没有统一的开发流程。
2. 可重复级(Level 2)
  • 特点:开始有一些基本的管理流程,项目可以重复成功。
  • 例子:团队开始使用版本控制系统(如Git),并制定了一些基本的项目管理规定,比如每周开会讨论进度。
3. 已定义级(Level 3)
  • 特点:建立了标准的开发流程,并且这些流程在整个组织内被广泛采用。
  • 例子:公司制定了详细的软件开发手册,每个项目都遵循这套手册中的规定。
4. 量化管理级( Level 4)
  • 特点:不仅有标准的流程,还能通过量化指标来监控和改进流程。
  • 例子:团队不仅制定了流程,还定期收集数据,分析项目的成功率、缺陷率等指标,并据此调整流程。
5. 优化级( Level 5)
  • 特点:能够持续改进流程,引入新技术和方法,不断提高效率。
  • 例子:团队不仅能够量化管理,还会主动寻找新的技术和方法来改进现有的流程,比如引入敏捷开发方法。

例子

假设一个软件开发公司从零开始,经历以下几个阶段:

  1. 初始级:公司刚开始成立,每个人都按自己的习惯做事,没有固定的流程。
  2. 可重复级:公司开始制定一些基本的规定,比如使用版本控制系统,每周开会讨论进度。
  3. 已定义级:公司制定了一套详细的软件开发手册,每个项目都按照这套手册执行。
  4. 量化管理级:公司开始收集数据,分析项目的成功率、缺陷率等指标,并根据这些数据调整流程。
  5. 优化级:公司不仅能够量化管理,还会主动寻找新的技术和方法来改进现有的流程,比如引入敏捷开发方法。

能力成熟度模型CMMI

CMMI 是一种用于改进组织过程的框架,它不仅仅局限于软件开发领域,而是适用于任何类型的工程或业务过程。

CMMI 的模型结构

CMMI 模型可以分为两个主要部分:过程域实践。过程域是指需要改进的具体方面,而实践则是实施这些改进的具体步骤。

过程域(PA)
  • 过程域 是指为了实现特定目标所需要关注的关键过程区域。
  • 例子:如需求管理(Requirement Management)、项目规划(Project Planning)、风险管理(Risk Management)等。
实践(Practices)
  • 实践 是指为了改进某个过程域所采取的具体行动。
  • 例子:为了改进需求管理,可能会有记录需求、验证需求是否正确等具体实践。

CMMI 的成熟度等级

CMMI 的成熟度等级分为五个级别,与 CMM 类似,但更加细化和全面:

  1. 初始级(Level 1)

    • 特点:没有固定的过程,项目结果难以预测。
    • 例子:小团队各自为政,没有统一的工作流程。
  2. 已管理级(Level 2)

    • 特点:有了基本的管理流程,可以重复成功。
    • 例子:团队开始使用版本控制工具,并且有基本的项目管理规定。
  3. 已定义级(Level 3)

    • 特点:建立了标准的开发流程,并且这些流程在整个组织内被广泛采用。
    • 例子:公司制定了详细的软件开发手册,每个项目都遵循这套手册中的规定。
  4. 定量管理级(Level 4)

    • 特点:不仅有标准的流程,还能通过量化指标来监控和改进流程。
    • 例子:团队不仅制定了流程,还定期收集数据,分析项目的成功率、缺陷率等指标,并据此调整流程。
  5. 优化级(Level 5)

    • 特点:能够持续改进流程,引入新技术和方法,不断提高效率。
    • 例子:团队不仅能够量化管理,还会主动寻找新的技术和方法来改进现有的流程,比如引入敏捷开发方法。

统一过程模型 

统一过程模型(RUP)是由 Rational Software Corporation 开发的一种软件开发过程框架。

RUP 强调的是在软件开发过程中采用迭代增量的方式进行开发,这意味着不是一次性地完成所有的工作,而是分成多个阶段,每个阶段完成一部分功能,并且在每个阶段结束时都有可工作的软件版本。

RUP 的组成部分

RUP 主要由以下几个部分组成:

1. 工作流

工作流描述了在软件开发过程中应该进行的主要活动。RUP 将这些活动分为六个核心工作流:

  • 业务建模:了解和分析业务需求。
  • 需求:收集和分析用户需求。
  • 分析与设计:设计软件的架构和组件。
  • 实现:编写代码。
  • 测试:验证软件是否满足需求。
  • 部署:发布软件并支持用户。
2. 阶段

RUP 将软件开发过程分为四个主要阶段:

  • 初始阶段:确定项目的范围、目标和可行性。

    • 例子:决定做一个新的移动应用,明确它的目标用户是谁,需要解决什么问题。
  • 细化阶段:进一步明确需求,建立初步的架构设计。

    • 例子:详细列出应用的功能列表,确定技术栈和基础架构。
  • 构建阶段:实际开发软件,进行多次迭代。

    • 例子:开发团队开始编写代码,每完成一部分就进行测试和集成。
  • 交付阶段:准备和部署软件,进行用户培训和支持。

    • 例子:将应用发布到应用商店,为用户提供使用指南和技术支持。
3. 迭代

在构建阶段,RUP 强调采用迭代的方式进行开发。每次迭代都会完成软件的一个子集,并且每次迭代结束时都应该有一个可运行的软件版本。这样做的好处是可以及时发现问题并进行修正。

4. 制品

RUP 中的制品是指开发过程中产生的文档和其他输出物,例如需求规格说明书、设计文档、测试计划等。

5. 活动

活动是指在各个阶段中需要完成的具体任务,如编写需求文档、设计类图、编写代码等。

RUP 的优点

  • 结构化:提供了清晰的过程结构,便于管理和跟踪。
  • 迭代式开发:通过迭代可以更快地得到用户反馈,并且更容易适应需求变化。
  • 风险驱动:早期识别和处理项目风险,减少后期出现大问题的可能性。

软件开发模型 

瀑布模型

  • 特点:顺序进行,每个阶段完成后才能进入下一个阶段。
  • 流程:需求分析 -> 设计 -> 编码 -> 测试 -> 部署 -> 维护。
  • 优点:结构清晰,易于理解和管理。
  • 缺点:一旦进入下一阶段,很难返回修改之前的阶段;不适应需求变化。
  • 适用场景:需求明确且不易变更的项目。

2. 增量模型

  • 特点:将软件开发分解成一系列小的增量部分,每个部分可以独立开发。
  • 流程:需求分析 -> 设计 -> 第一个增量 -> 测试 -> 第二个增量 -> 测试 -> ... -> 最终产品。
  • 优点:可以快速发布初步版本,用户可以尽早看到成果。
  • 缺点:初期版本可能不够完善,整体协调性可能受影响。
  • 适用场景:大型项目,可以分阶段交付。

3. 迭代模型

  • 特点:在每次迭代中完成一部分功能,经过多次迭代最终完成整个软件。
  • 流程:需求分析 -> 设计 -> 第一次迭代 -> 测试 -> 第二次迭代 -> 测试 -> ... -> 最终产品。
  • 优点:灵活应对需求变化,每次迭代都有可用的产品。
  • 缺点:管理复杂,需要良好的迭代计划。
  • 适用场景:需求不完全明确或容易变化的项目。

4. 敏捷开发模型

  • 特点:强调团队合作、客户协作、响应变化和快速交付。
  • 流程:短周期迭代(Sprint) -> 定期回顾 -> 调整 -> 下一个迭代。
  • 优点:高度灵活,快速响应需求变化,鼓励团队沟通。
  • 缺点:对团队成员的要求高,需要持续投入。
  • 适用场景:需求经常变化的小型到中型项目。

5. 螺旋模型

  • 特点:结合了瀑布模型的阶段性和原型模型的风险分析。
  • 流程:需求分析 -> 风险评估 -> 构建原型 -> 用户反馈 -> 下一个螺旋。
  • 优点:在每个阶段都进行风险评估,适合复杂项目。
  • 缺点:成本和时间开销较大,不适合小型项目。
  • 适用场景:大型复杂项目,特别是涉及高风险的项目。

6. 原型模型

  • 特点:首先构建一个初步的原型,然后根据用户反馈进行修改。
  • 流程:需求分析 -> 快速原型 -> 用户反馈 -> 修改原型 -> 最终产品。
  • 优点:用户可以尽早看到软件的样子,反馈及时。
  • 缺点:可能会陷入不断的修改中,导致项目延期。
  • 适用场景:用户界面复杂的项目,需要用户频繁参与。

结构化方法

结构化方法是一种传统的软件开发方法论,它强调软件开发过程的顺序性和规范性。

通常适用于需求相对固定且明确的项目。

结构化方法的核心思想是将复杂的问题分解为较小、更易于管理的部分,并且通过明确的阶段划分来逐步推进项目的发展。(自顶向下

结构化方法的优缺点

优点
  • 明确性:每个阶段都有明确的目标和产出物。
  • 可追踪性:详细的文档有助于追踪项目的进展。
  • 易于管理:阶段化的流程使得项目管理更加有序。
缺点
  • 灵活性差:一旦进入下一阶段,很难回到前一阶段修改。
  • 适应性弱:对需求变化的适应能力较差。
  • 周期长:每个阶段都需要详细文档,可能导致项目周期较长。

jackson方法

jackson方法是一种面向数据结构的开发方法。

jsp方法是以数据结构为驱动的。

Jackson方法的特点

优点
  • 易于理解:JSD方法通过直观的数据结构分析,使得设计过程更加清晰明了。
  • 数据驱动:以数据结构为中心的设计方式,使得软件更易于理解和维护。
  • 图形化工具:使用图形化工具辅助设计,使得设计过程更加直观。
缺点
  • 局限性:对于非数据驱动的系统,JSD方法可能不太适用。
  • 灵活性有限:相比敏捷开发方法,JSD方法在应对需求变化时灵活性较差。
  • 文档要求高:JSD方法要求大量的文档记录,这可能增加项目的文档负担。

原型化方法

原型化方法通过快速构建一个简单的系统模型(即原型)来帮助开发者和用户更好地理解需求,并在实际开发前进行验证和调整。这种方法可以让用户尽早参与到开发过程中,通过互动和反馈来不断改进软件。

原型化方法的基本理念

原型化方法的核心理念是通过构建一个初步的系统来让各方(尤其是最终用户)能够看到并体验到系统的雏形,从而更快地识别和纠正需求上的误解或偏差。这种方法强调用户的参与和反馈循环,使得软件开发更加贴近用户的真实需求。

面向对象方法

面向对象方法是一种软件开发方法,它将现实世界中的事物抽象成“对象”,并通过这些对象之间的交互来实现软件的功能。这种方法强调数据和行为的封装,以及对象之间的继承和多态性。

为了统一各种面向对象方法的术语、概念和模型,OMG1997年推出了统一语言模型(UML):是面向对象的标准建模语言,通过统一的语义和符号表示,使各种方法的建模过程和表示统一起来,已经成为面相对象建模的工业标准

面向对象方法的优点

  • 重用性:对象和类可以被重用,减少重复编码。
  • 模块化:对象之间相对独立,易于维护和修改。
  • 扩展性:通过继承和多态性,可以轻松扩展系统功能。
  • 安全性:封装机制可以保护内部数据不受外部直接访问。

面向对象方法的缺点

  • 复杂性:面向对象的设计可能比传统的结构化设计更复杂。
  • 学习曲线:面向对象的概念和设计模式需要时间去掌握。
  • 性能影响:某些情况下,面向对象的特性(如动态绑定)可能会影响程序的性能。

敏捷开发方法 

敏捷开发方法是一种灵活的软件开发方法论,它强调快速响应变化、用户参与和持续交付。与传统的方法(如瀑布模型)不同,敏捷开发方法更加注重团队协作、快速迭代和用户反馈。

敏捷开发方法的常见框架

敏捷开发方法有多种具体的实践框架,其中最著名的包括:

  1. Scrum

    • 特点:使用短周期的冲刺(Sprint)来组织开发工作,每个冲刺通常是2-4周。
    • 角色:产品负责人(Product Owner)、Scrum Master、开发团队。
  2. 极限编程(Extreme Programming, XP)

    • 特点:强调持续集成、测试驱动开发(TDD)、重构等技术实践。
    • 实践:结对编程、持续集成、用户故事等。
  3. 精益软件开发(Lean Software Development, LSD)

    • 特点:减少浪费、提高价值流动速度。
    • 实践:价值流映射、持续改进等。
  4. Kanban

    • 特点:使用看板(Kanban Board)来可视化工作流程,限制在制品数量(WIP)。
    • 实践:工作项流动、限制在制品数量等。

敏捷开发方法的优点

  • 快速响应变化:能够快速适应需求变化。
  • 用户满意度:通过频繁交付和用户反馈,确保软件满足用户需求。
  • 团队协作:促进团队成员之间的沟通和协作。
  • 持续改进:通过不断的迭代和回顾,持续改进开发过程。

敏捷开发方法的缺点

  • 缺乏文档:可能缺乏详细的文档,这对于某些项目来说是个问题。
  • 依赖团队素质:对团队成员的技能和素质要求较高。
  • 管理难度:敏捷开发需要团队成员有较高的自我管理能力,管理难度相对较大。

需求分析-分类 

(1)功能需求:考虑软件要做什么

(2)性能需求:考虑软件开发的技术性指标

(3)用户或人的因素:考虑用户的类型

(4)环境需求:考虑未来软件应用的环境,包括软件和硬件

(5)界面需求:考虑对数据格式、数据存储介质的规定

(6)文档需求:考虑需要哪些文档,针对哪些读者

(7)数据需求:考虑数据的格式、接收、发送数据的频率

(8)资源使用需求:考虑软件运行时所需要的数据、内存空间等资源

(9)安全保密要求

(10)可靠性要求:考虑系统的可靠性

(11)软件成本消耗与开发进度需求

(12)其他非功能性需求

系统设计-内聚和耦合

内聚类型表

内聚类型定义例子
偶然内聚模块中的各个部分没有任何关联,只是碰巧被放在一起。一个模块包含了打印、计算和网络通信等功能,这些功能之间没有直接关系。
逻辑内聚模块中的各个部分是为了实现一个逻辑上的功能,但它们之间没有直接的关系。一个模块负责处理所有的网络请求,但这些请求之间没有直接联系。
时间内聚模块中的各个部分是为了在同一时间被调用的功能。一个模块包含了一系列在系统启动时需要执行的操作。
过程内聚模块中的各个部分是为了实现一个特定的顺序过程。一个模块负责处理用户登录的过程,依次进行验证用户名、密码、发送验证码等操作。
通信内聚模块中的各个部分是为了处理同一个输入或产生同一个输出。一个模块负责处理用户上传的图片,包括读取、压缩和存储等操作。
顺序内聚模块中的各个部分是为了实现一个顺序的操作流程。一个模块负责处理订单,依次进行接收订单、验证订单、发货等操作。
功能内聚模块中的各个部分是为了实现一个单一的功能。一个模块专门负责计算用户的积分。

耦合类型表

耦合类型定义例子
内容耦合一个模块直接访问或修改另一个模块的内容。一个模块直接修改另一个模块中的变量值。
公共耦合多个模块共享一个全局数据结构。多个模块都使用同一个全局数组。
控制耦合一个模块通过传递控制信息(如布尔值、枚举值等)来控制另一个模块的行为。一个模块通过参数传递一个标志位来控制另一个模块的执行路径。
标记耦合一个模块通过传递一组数据给另一个模块,但接收模块只使用了其中的一部分数据。一个模块传递一个包含多个字段的对象给另一个模块,但后者只使用其中的一个字段。
数据耦合一个模块通过传递简单数据(如数值、字符串等)来与其他模块交互。一个模块通过函数参数传递一个整数给另一个模块。
无耦合模块之间没有任何依赖关系。两个模块完全独立,没有任何交互。

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

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

相关文章

LabVIEW步进电机控制方式

在LabVIEW中控制步进电机可以通过多种方式实现。每种方法都有其独特的优缺点,适用于不同的应用场合。下面详细介绍几种常见的步进电机控制方式,并进行比较。 1. 开环控制(Open-Loop Control) 特点 通过定期发出脉冲信号来控制步进…

基于SSM的流浪动物管理系统的设计与实现82901

摘要 随着移动互联网的快速发展,小程序作为一种新型的应用形态,已经深入到人们的生活中。在高校中,实验室领养管理是一个重要的环节,但传统的领养方式存在着诸多问题,如领养流程繁琐、信息不透明等。因此,本…

陕西农信银行合规知识竞赛活动方案

初赛 1.利用赛易线上答题平台。参与人通过手机、平板或电脑等方式,注册个人基本信息登录进行答题。 2.答题平台在题库中随机抽取试题。 3.参与人在出现第一次答错后,答题平台即终止答题。 4.平台统计参与人答题时间、答题数,同时以正确答题数…

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label…

第12章 谁最便宜就选谁——MySQL基于成本的优化

12.1 什么是成本 I/O 成本 当我们想查询表中的记录时,需要先把数据或者索引从磁盘加载到内存中再操作。 CPU 成本 读取以及检测记录是否满足对应的搜索条件、对结构集进行排序等这些操作损耗。 对于InnoDB来说,页是磁盘和内存之间交互的基本单位。MyS…

《AI 大模型进阶指南:零基础迈向精通,看这一篇足矣!》

一、初聊大模型 (一)为什么要学习大模型? 在当今这个快速变化的时代,新技术和概念不断涌现,大模型因其强大的功能和广泛的应用而备受推崇。在学习大模型之前,不必担忧自身缺乏相关知识或觉得其难度过高。…

Finalshell上传文件失败或者进度总为百分之零解决

1.点击复制标签 2.关闭原标签后即可顺利上传 3.如果还是不行,则用chmod 777 文件路径,改变文件的权限

物联网控制箱

随着科技的飞速发展,物联网(Internet of Things, IoT)技术已经深入我们生活的方方面面,从智能家居到智慧城市,从工业制造到农业管理,物联网正以前所未有的方式改变着世界。唯众的物联网控制箱正是这一趋势下…

技术分享-商城篇-优惠券管理-功能介绍及种类(二十四)

前言 在前面文章中,我们聊到了商城的基础架构和基础功能,它们是构建商城体系的底座,是基础,没有构建出基础,是无法打造高楼大厦的,但是我们在做完基础之后,还得继续深挖其他的功能,…

QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第二期]

QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第二期] 第二期介绍:频道模块之频道管理 目录 QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第二期]第二期介绍:频道模块之频道管理获取用户详情获取用户频道列表获取频道详情获取子频道列表获…

❤ Node05-增删改查接口优化

❤ Node05-增删改查接口优化 1、优化用户查询接口,根据用户条件查询我们的列表 ​ 先拿sql数据命令试试 SELECT * FROM user WHERE name san娟; 我们的查询命令没问题,接下来把我们的传入的活数据给传入进去即可 (1)传入查询…

游泳馆押金管理+手牌管理+刷手牌 开通方法

一、游泳馆手牌押金管理 1. 减少手牌丢失:收取押金可以让顾客更加谨慎地保管手牌,降低手牌丢失的概率。 2. 保障设施安全:有助于防止顾客对手牌的不当使用或故意破坏,保护游泳馆的设施和资源。 3. 规范顾客行为:促使…

Flutter Button使用

Material 组件库中有多种按钮组件如ElevatedButton、TextButton、OutlineButton等,它们的父类是于ButtonStyleButton。 基本的按钮特点: 1.按下时都会有“水波文动画”。 2.onPressed属性设置点击回调,如果不提供该回调则按钮会处于禁…

从戴尔公司中国大饭店DTF大会,看科技外企如何在中国市场发展

【科技明说 | 科技热点关注】 2024戴尔科技峰会在8月如期举行,虽然因事未能抵达现场参加,我只是观看了网上在线直播,也未能采访到DTF现场重要与会者,但是通过数十年对戴尔的跟踪与观察,我觉得2024戴尔科技…

哈希签名溯源--Lamport40签名算法

背景 哈希签名是指只依赖哈希函数的数字签名算法(而非某个数学问题,例如ECC的离散对数问题、RSA的大整数因式分解)。这类算法一直不是主流,但随着量子计算机及其配套算法(舒尔算法)的出现,ECC和…

kubeadm 初始化 k8s 证书过期解决方案

概述 在使用 kubeadm 初始化的 Kubernetes 集群中,默认情况下证书的有效期为一年。当证书过期时,集群中的某些组件可能会停止工作,导致集群不可用。本文将详细介绍如何解决 kubeadm 初始化的 Kubernetes 集群证书过期的问题,并提…

ETF全量后复权数据更新与一个限时免费的星球

原创第645篇 | AI量化实验室 AI量化实验室星球本周计划: 1、“七天入门量化投资”专栏更新完成第三天和第四天。 2、lightgbm为代表的机器学习因子合成与stockranker实现。 3、etf全量数据更新到最新。 class ETFQuotes(Quotes):def __init__(self, tb_basiebasi…

MySQL:运维管理-主从复制

目录 一、主从复制的概述二、主从复制的工作原理三、搭建主从复制的结构3.1 环境准备3.2 搭建配置(主库配置)3.3 搭建配置(从库配置)3.4 测试 一、主从复制的概述 主从复制是指将主数据库中的DDL和DML操作的二进制文件保存到本地&…

通义千问更新数学大模型及视觉多模态

Qwen2-Math,这是通义千问专门为数学场景优化的模型,其数学能力指标甚至超越了GPT4o, Claude3.5 Sonnet, Deepseek Coder等顶流模型,目前从指标来看是最强的数学模型。目前是免费供应,大家碰到数学问题可以选择使用这个模型。 Qw…

[数据集][图像分类]嘴巴张开闭合分类数据集6397长2类别

数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):6397 分类类别数:2 类别名称:["close","open&qu…