[课业] 13 | 软工 | 需求基础

软件工程(需求分析) 需求分析 为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深人理解是软件开发工作获得成功的前提条件,不论人们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望.给开发者带来烦恼。 需求分析是软件定义时期的最后个阶段 ,它的基本任务是准确地回答“系统必须做什么”这个问题。 虽然在可行性研究阶段已经粗略地了解了用户的需求,甚至还提出了一些可行的方案,但是,可行性研究的基本目的是用较小的成本在较短的时间内确定是否存在可行的解法,因此许多细节被忽略了。然而在最终的 阅读详情

需求工程

需求的问题

  1. 用户不知道自己想要什么,或知道自己想要什么却无法描述清楚
  2. 产品经理、分析设计人员等在理解用户描述中更加偏差

概述

  1. “为什么要开发需求”、“如何得到需求”,要考虑到软件与现实世界的关系;单纯的软件系统是不能解决问题的,他只有和现实世界之间形成有效互动才能解决现实问题
  2. 软件建立的依据
    先在现实世界中找到问题
    抽象出问题及问题域知识
    软件建模、构建方案,构建软件的solution
    实现软件,形成软件程序
    来源于现实,应用回现实
    形成现实世界与软件世界的互动,互动过程要从需求工程开始
  3. 需求工程的概念:所有需求处理活动的总和;他收集信息、分析问题、整合观点、记录需求并验证其正确性,最终描述出软件被应用后与其环境互动形成的期望效应(需求的期望)
  4. 需求工程的三个主要任务
    需求工程必须说明软件系统将被应用的应用环境及其目标(为什么做),说明用来达成这些目标的软件功能(要做什么),即同时说明软件需要“做什么”和“为什么”需要做
    需求工程必须将目标和功能反映到软件系统中,映射为可行的软件行为(在需求阶段就要保持可行),并对软件行为进行准确的规格说明(即严格、详细、无歧义地描述软件规格/软件是什么)
    现实世界是不断变化的世界,因此需求工程还需要妥善处理目标和功能随着时间演化的变动情况(即随整体世界(外部现实)的改变,solution也改变;交互)
  5. 需求工程的活动

    其中:
    需求开发是为了生成整个开发过程、产生需求时做的活动
    需求管理是伴随着整个开发活动的支撑服务(包括需求跟踪、究责等)

需求开发

需求开发过程模型


其中:
利害相关人:现实中与软件相关的所有人
需求规格说明之后产生文档
文档出来之后要与用户、开发人员进行确认
需求验证阶段发现不一致,就回退;不同原因导致的不一致回到不同阶段

需求获取

  1. 需求获取
    从人、文档或环境当中获取需求的过程
    要利用各种方法和技术来“发现”需求
    目标分析:根据问题确定目标;通过分析利害关系人确定目标(即上图中“问题域”和“利害关系人”)

  2. 需求获取的常见困难

    困难描述举例解决方法
    用户和开发人员背景不同、立场不同“床边B超,肝胆胰脾”消除默认知识
    普通用户缺乏概括性、综合性的表述能力不聪明的记者专业需求人员(不要指望用户就把需求搞好)
    用户存在认知困境平板电脑原型
    用户越俎代庖双机热备;“我就是希望系统能……,怎么实现是开发人员的事”需求是开发人员开发出来的,不是用户提出来的;协商
    缺乏用户参与不愿参与的医生为用户提供方便(这主要是给院长听的,如果一个医生有任务,其他事上要提供方便)
  3. 用户需求获取的方法
    面谈
    问卷
    文档分析(如果有文档资源)
    头脑风暴
    专题讨论
    原型(不一定是一个软件什么的,可以基于原型软件工具,最基础的甚至可以是Story Board)
    民族志(如为法官开发,就观察一段时间法官工作)
    Story Board(敏捷的一种方式)为原型的图例

需求分析

  1. 需求获取之后,进行需求分析
  2. 需求分析
    通过建模来整合各种信息,已使得人们更好的理解问题
    为问题定义出一个需求集合,这个集合能够为问题界定一个有效的解决方案(即收集好信息要提供一种软件层面上的方案)
    检查需求当中存在错误、遗漏、不一致等各种缺陷,并加以修正(方案们整理到一起)
  3. 边界分析
    定义项目的范围:什么是系统做的,什么事不是系统做的,确定好范围之后才能继续进行
    系统边界定义要保证系统能够和周围环境形成有效的互动(确定哪些交互才是系统之内的)
    系统用例图通常被用来定义系统的边界
  4. 需求建模:建模要用软件方式解释,抽象地描述信息;用软件表现来解决需求
    建模是为了展现和解释信息而进行抽象描述活动
    常用的技术包括类图、顺序图、状态图等建模技术

需求规格说明

  1. 需求分析之后要产生需求规格说明
  2. 需求规格说明
    在系统用户之间交流需求信息,是交流的凭证(与用户交流、与后面的开发人员交流)(如究责时可用)
    要简洁、精确、一致和易于理解(一致表示没矛盾,易于理解主要针对用户)
  3. 需求工程师在此阶段重要工作包括:定制文档模版(属于团队内基本经验)、编写文档

需求验证

得到需求规格说明后需要对其验证,验证保证:

  1. 文档内每条需求都正确、准确地反应了用户的意图
  2. 文档记录的需求集在整体上具有完整性(所有的需求都具备)和一致性(前后描述一致)
  3. 文档的组织方式和需求的书写方式具有可读性和可修改性

验证方法有:

  1. 同级评审
  2. 原型(用开发出的原型(根据需求)来讨论)
  3. 模拟

需求管理

需求管理,如上章描述,属于配置管理项,要进入配置管理库;再事后确认等等都根据此

  1. 保证需求作用的持续、稳定和有效发挥
    在需求开发活动之后,设计、测试、实现等后续的软件系统开发活动都需要以围绕需求开展工作
  2. 进行变更控制
    一旦有变更,纳入和实现合理的变更请求,拒绝不合理的变更请求,控制变更的成本和影响范围

需求基础

什么是需求

概述 & 需求开发的目标

  1. IEEE的需求定义
    用户为了解决问题或达到某些目标所需要的条件或能力
    系统或系统部件为了满足合同、标准、规范或其他正式文档所规定的要求而需要具备的条件或能力
    对前两点的一个条件或一种能力的一种文档化表达
    注意:这个定义是从两个角度对于产品的期望和他们的文档化
  2. 需求的表述
    作为一种期望(人的期望),需求通常被表述为“系统应该…”,“在…时,系统应该…”,“用户可以通过系统…”等,如例:
    “系统应该允许顾客退回已经购买的商品”
  3. 软件解决方案
    需求是一种解决问题后所能达到的期望
    一件事情的两面:问题(在现实世界)是糟糕的一面,需求(即期望)是理想的一面;两面之间的跨越就是软件(solution)
  4. 需求开发的目标

    从问题域推导出规格

需求开发目标各元素

  1. 需求
    是一种期望
    源自现实高于现实
    需求是多变和可调整的,项目可依据实际情况来调整需求的实现程度(不能脱离任何一方来看)
  2. 问题域
    现实世界运行规律的一种反映
    需求产生地,也是需求的解决地(从现实中来,最终回到现实解决问题)
    最终的软件产品要在现实中部署,它能够部分影响问题域,但不能任意改变现实
        软件开发必须尊重问题域,不能因为技术原因妄自修改现实世界的实际情况(如AlphaGo不是为了碾压人类棋手,而是为了促进进步)
  3. 问题的解决
    基础:模拟与共享现象
        软件世界会模拟现实世界,甚至会共享一些信息,这样才能用软件来解决现实问题
    方法:直接与间接
    解决方案:需求规格说明
        通过规格说明展示软件到底怎么样(通过规格说明,规格说明为对软件的描述,来解决问题)
  4. 规格说明
    规格说明代表整个软件产品的方案(即做什么)
    规格说明是对软件产品的方案描述,他以软件产品的运行机制为主要内容(规格说明描述软件产品的运行机制)
    他不是需求但实现需求,不是问题域但需要与问题域互动
    规格说明要以关注对外交互的方式描述软件解决方案,它既需要从软件产品的角度而不是用户的角度进行描述,又不能太多地涉及软件产品的内部构造机制(即描述的是做什么,而不是怎么做)

需求的层次

概述


业务需求:表达业务的目标和效果
    最容易得到的就是业务需求,由业务需求推导下层需求
用户需求:某用户用系统做什么任务
    知道了业务需求后,从问题域/领域知识来考虑我们到底要完成什么任务,这些任务能帮助解决前面的业务需求
系统级需求:系统行为表示系统与外界交互(即响应什么)(能更好地做需求分析模型)
注:丢开现实世界与软件世界中的任何一方谈需求都没有意义

业务需求

  1. 系统建立的战略出发点,表现为高层次的目标(objective),他描述了组织为什么要开发系统
  2. 为了满足用户的业务需求,需求工程师需要描述系统高层次的解决方案,定义系统应该具备的特性(feature)
  3. 参与各方必须要对高层次的解决方案达成一致,已建立一个共同的前景(vision)
  4. 特性说明了系统为用户提供的各项功能,他限定了系统的范围(scope)
  5. 最终达成一个一致认可的业务需求
  6. 案例
    R2: 在系统使用三个月后,销售额度应该提高20%
    可以建立高层次的解决方案,其系统特性如SF1~SF4所示
        SF1: 管理VIP顾客信息
        SF2: 提供VIP服务,增加回头率
        SF3: 使用多样化的特价方案,吸引顾客购买,增加销售额
        SF4: 使用多样化的赠送方案,吸引顾客购买,增加销售额
    注意:SF(system feature)中,如何具体做管理VIP顾客信息等还没有讲,代表着初步解决方案

用户需求

  1. 执行实际工作的用户对系统所能完成的具体任务的期望,描述了系统能够帮助用户做些什么
    直接用户
    间接用户(通用软件的销售人员和售后支持人员)
  2. 对所有的用户需求,都应该有充分的问题域知识作为背景支持
  3. 特性
    模糊、不清晰(允许适当的形容词和副词)
    多特性混杂(功能和非功能的混杂)
    多逻辑混杂(一个任务需要多次系统交互才能完成)
  4. 针对每个系统特性,都可以建立一组用户需求,他们中每一条都是用户完成具体任务所需要的功能
  5. 案例
    SF1: 管理VIP顾客信息
    UR1.1: 系统应该允许客户经理添加、修改或者删除会员个人信息
    UR1.2: 系统应该记录会员的购买信息
    UR1.3: 系统应该允许客户经理查看会员的个人信息和购买信息
    UR1.4: 系统应该允许客户经理查看所有会员的统计信息
    注意:通过这些来达到管理 的目的(如它们对应的SF内容);用户需求的描述中要指明谁来操作;部分内容依旧模糊,如“个人信息都是什么”,这就需要补充问题域知识
  6. 补充问题域知识
    用户需求表达了用户对系统的期望,但是要透彻和全面的了解用户的真正意图,仅仅拥有期望是不够的,还需要知道期望所来源的背景知识
    因此,对所有的用户需求,都应该有充分的问题域知识作为背景支持
    例:
    UR1.1: 系统应该允许客户经理添加、修改或者删除会员个人信息
    对于此,需要补充问题域知识如下:
    会员的个人信息有:客户编号、姓名、联系方式、积分
    注:上例中,联系方式其实还可以再精细

系统需求

概述
  1. 用户对系统行为的期望,每个系统级需求反映了一次外界与系统的交互行为,或者系统的一个实现细节
  2. 描述了开发人员需要实现什么
  3. 将用户需求转化为系统需求的过程是一个复杂的过程
将用户需求转化为系统级需求
  1. 首先需要分析问题域及其特性,从中发现问题域和计算机系统共享的知识,建立系统的知识模型
    如上述,软件是对现实世界的模拟
  2. 然后将用户需求部署到系统模型当中,即定义系列的系统行为,让他们联合起来实现用户需求,每一个系统行为即为一个系统需求(进一步清晰系统在交互过程中怎么做)
  3. 该过程就是需求工程当中最为重要的需求分析活动,又称建模与分析活动(通过用户需求明晰交互,想清楚系统需求什么样)
  4. 案例
    对用户需求UR1.3,可以根据任务中的交互细节将之转化为系统级需求SR1.3.1~SR1.3.4
    UR1.3: 系统应该允许客户经理查看会员的个人信息和购买信息
        SR1.3.1: 在接到客户经理的请求后,系统应该为客户经理提供所有会员的个人信息
        SR1.3.2: 在客户经理输入会员的客户编号时,系统要提供该会员的个人信息
        SR1.3.3: 在客户经理选定一个会员并申请查看购买信息时,系统要提供该会员的历史购买记录
        SR1.3.4: 经理可以通过键盘输入客户编号,也可以通过读卡器输入客户编号

功能需求的层次看需求开发


系统级需求后,产生分析模型

需求分类

需求谱系综述


注意:

  1. 软件需求下分为两类:功能需求和非功能需求,详述见下
  2. 中间一列中的“系统需求”与前面所述的需求层次的“系统级需求”不同:此处的系统需求所占地位是需求的不同方面(同列意为:项目方面需求-项目需求、过程方面需求-过程需求、系统方面需求-系统需求)指开发系统、描述系统的需求;上述的系统级需求所占地位是软件需求的不同层级,此层级上描述软件系统时从交互角度描述

不切实际的期望

  1. 例
    R11: 系统要分析会员的购买记录,预测该会员将来一周和一个月内会购买的商品
    R12: 系统要能够对每月的出入库以及销售行为进行标准的财务分析
    R13: 在使用系统时,收银员必须要在2个小时之内完成一个销售处理的所有操作
  2. 正确的形式:不应该强求做到什么,而是应该对某种情况做出什么反应
    R14: 如果一个销售处理任务在2小时之内没有完成,系统要撤销该任务的所有已执行操作

需求

项目需求

例
R5: 项目的成本要控制在60万元人民币以下
R6: 项目要在6个月之内完成

过程需求

例
R7: 在开发中,开发者要提交软件需求规格说明文档、设计描述文档和测试报告
R8: 项目要使用持续集成方法进行开发

系统需求

其他需求

R9: 系统要购买专用服务器,其规格不低于……
R10: 系统投入使用时,需要对用户进行一个星期的集中培训

功能需求
功能需求
  1. 功能需求(functional requirement):和系统主要工作相关的需求,即在不考虑物理约束的情况下,用户希望系统能够执行的活动,这些活动可以帮助用户完成任务;功能需求主要表现为系统和环境之间的行为交互
  2. 功能需求是最常见、最主要和最重要的需求
  3. 功能需求是能够为用户带来业务价值的系统行为
  4. 功能需求是软件产生价值的基础
数据需求
  1. 数据需求是功能需求的补充:如果在功能需求部分明确定义了相关的数据结构,那就不需要再行定义数据需求
  2. 数据需求时需要在数据库、文件或者其他介质中存储的数据描述,通常包括:
    各个功能使用的数据信息
    使用频率
    可访问性要求
    数据实体及其关系
    完整性约束
    数据保持要求
  3. 示例
    DR1: 系统需要存储的数据实体及其关系为如图6-14的内容
    DR2: 系统需要存储1年内的销售记录和退货记录
非功能需求
性能需求(performance requirement)
  1. 性能需求是系统整体或系统组成部分应该拥有的性能特征,如CPU使用率、内存使用率等
  2. 性能需求需要进行专门模拟和测试
  3. 性能需求的几个方面
    速度(speed),系统完成任务的时间,如:
        PR1: 所有的用户查询都必须在10秒内完成
    容量(capacity),系统所能存储的数据量,如:
        PR2: 系统应该能存储至少100万个销售信息
    吞吐量(throughput),系统在连续的时间内完成事务数量,如:
        PR3: 解释器每分钟应该至少解析5000条没有错误的语句
    负载(load),系统可以承载的并发工作量,如:
        PR4: 系统应该允许50个营业服务器同时从集中服务器上进行数据的上传或下载
    实时性(time-critical),严格的实时要求,如:
        PR5: 检测到病人异常后,监控器必须在0.5秒之内发出警报
  4. 性能需求一般都有数字,不能说“用户查询要很快完成”,因为这样的表述没法确定,不够准确
  5. 性能需求需要的准确数字也需要严格得来,不能拍脑袋,需要估算;估算由需求人员与开发人员一起完成
  6. 一旦这些性能需求写成了规格文档,他就是一份与客户的协议,就有了责任;写了就得实现,故一定要谨慎、准确、小心;不过可以有灵活性
  7. 需求的灵活性,例
    PR6: 98%的查询不能超过10秒
    PR7:
        (最低标准)在200个用户并发时,系统不能崩溃;
        (一般标准)在200个用户并发时,系统应该在80%的时间内能够正常工作;
        (理想标准)在200个用户并发时,系统应该能保持正常的工作状态
质量属性(quality attribute)
  1. 质量属性:系统完成工作的质量,即系统需要在一个“好的程度”上实现功能需求,例如可靠性程度、可维护性程度等
  2. 系统为满足规定的及隐含的所有要求而需要具备的要素称为质量
  3. 质量属性是为了度量质量要素而选用的特征
  4. 质量模型就是能够为质量需求的描述和评价提供工作基础的特征集及特征之间的联系
  5. 质量属性的重要性
    对设计的影响很大
    对越复杂的系统越为重要(因为系统越复杂,质量差的代价越大)
    真实的现实系统中,在决定系统的成功或失败的因素中,满足非功能属性往往比满足功能性需求更为重要
  6. 常见质量属性

    可靠性(reliability):在规格时间间隔内和规定条件下,系统或部件执行所要求能力的能力,如:
        QA1: 在进行数据的下载和上传中,如果网络故障,系统不能出现故障
    可用性(availability):软件系统在投入使用时可操作和可访问的程度或能实现其指定系统功能的概率,如:
        QA2: 系统的可用性要达到98%
    安全性(security):软件阻止对其程序和数据进行未授权访问的能力,未授权的访问可能是有意,也可能是无意的,如:
        QA3: VIP顾客只能查看自己的个人信息和购买记录;收银员只能查看,不能修改、删除VIP顾客的信息
    可维护性(maintainability):软件系统或部件能修改以排除故障、改进性能或其他属性或适应变更了环境的容易程度,包括可修改性(modifiability)和可扩展性(extensibility),如:
        QA4: 如果系统要增加新的特价类型,要能够在2人月之内完成
    可移植性(portability):系统或部件能从一种硬件或软件环境转换至另一种环境的能力,如:
        QA5: 集中服务器要能够在1人月内从Windows7操作系统个更换到Solaris10操作系统
    易用性(usability):与用户使用软件所花费的努力及其对使用的评价相关的特性
        QA6: 使用系统1个月的收银员进行销售处理的效率要达到10件商品每分钟
  7. 质量属性的开发
    用户并不能明确地提出他们对产品质量的期望(他们可能提出期望,但是不会量化):并不了解软件系统的开发过程,也就无从判断哪些质量属性会在怎样的程度上给设计带来多大的影响,也无法将他们对软件系统的质量要求细化成一组组的可量化的质量属性
    需求工程师:质量属性大都是和功能需求联系在一起的,因此需要对照软件的质量属性检查每一项功能需求,尽力去判断质量属性存在的可能性;形容词和副词通常意味着质量属性的存在;对于一些不和任何功能需求相联系的全局性质量属性,需求工程师要再碰到特定的实例时意识到它们的存在
  8. 质量需求由需求工程师和后面的技术工程师一起决定
对外接口(external interface)
  1. 对外接口:系统和环境中其他系统之间需要建立的借口,包括硬件接口、软件接口、数据库接口等
  2. 系统和其他系统之间的软硬件接口
    接口的用途
    接口的输入输出
    数据格式
    命令格式
    异常处理要求
  3. 用户界面
约束
  1. 进行系统构造时需要遵守的约束
  2. 总体上限制了开发人员设计和构建系统时的选择范围
    系统开发及运行的环境:包括目标机器、操作系统、网络环境、编程语言、数据库管理系统等,如:
        C1: 系统要使用Java语言进行开发
    问题域内相关标准,包括法律法规、行业协定、企业规章等
    商业规则:用户在任务执行中的一些潜在规则也会限制开发人员设计和构建系统的选择范围
  3. 注意的一点:提交地址解析请求次数是否有限制(实例,Google API)





___Fin___
渥太华大学OU-iti1120 Assignment 1课业解析 题意:使用Python编写一些函数 解析: 1)编写一个勾股定理的判断函数,输入两个整数a,b如果存在另一个整数c2=a2+b^2则返回true,否则返回false; 2)编写一个英里/小时转换为公里每小时的函数; 3)输入三个数,xs、ys、side,x,y表示正方形左下角的坐标,side表示正方形的边长,函数的作用是判断一个坐标是否在正方形内部,边界也属于内部; 4)判断一个数字中是否含有数字... 阅读详情

相关推荐

新南威尔士大学COMP9021 QUIZ1课业解析

题意: 巩固复习python中字典的相关知识 解析: 题目要求有4点,1补全print语句,统计mapping字典中元素的个数 ,2统计mapping字典中,没有值的键,存储在nonkeys列表中 ,3统计mapping字典中所有元素的值,存储在mapping_as_a_list列表中,4统计mapping字典中值唯一的元素,存储在one_to_one_part_of_mapping字典中 。 s...

weixin_45602635的博客 625

软件工程与计算II-5-需求基础

软件工程与计算II-5-需求基础

SpriCoder的博客 903

如何将业务需求转转换为IT要求?

火龙果软件工程技术中心  本文内容包括:引言一个词:用例(哦,两个字)记录流程从一开始就使用RequisitePro正确功能的正确解决方案捕获最佳实践的模式解决方案急需:通用技术管理不确定性和易变性“Outside-in”设计使用一点技巧进行迭代和增量改进所有需求并非全部同样重要了解真正的需求使用表述良好的需求武装业务分析人员没有捷径,立即动手,不要等待关于专家参考资料在本月的专栏中,IBM有洞察力的专家给出了他们对IT架构师在目前及将来所面临的问题的观点与展望。本月,他们将考虑以下问题:“我如何将组织的业务需求转换为IT要求,以便在系统体系结构中满足这些需求?"引言注意:有关观点与展望专栏的

需求分析第二章

第二章:需求基础 需求的定义 1.用户为了解决目的或达到某些目标所需的条件或能力; 2.系统或系统部件为了满足合同,标准,规范或其他正式文档所规定的要求而需要具备的条件和能力; 3.对1,2中的条件与能力的文档化表达 满足需求就是解决问题 问题:当现实与人们期望的状况产生差距时,就产生了问题 人们开发软件系统的目的:就是希望用它作为解决方案来解决问题,使得实现改善到期望的状况 问题解决的两个方面——问题域与解系统 问题域:问题解决的基本范围——解决问题必须涉及的事件和事物(实体,状态) 问题域与需求的区别:

qq_45561313的博客 1442

Excel数据清洗实战:8个必学函数搞定90%的脏数据问题(附案例)

本文通过一个完整的销售数据清洗案例,详细讲解了如何组合使用TRIM、CLEAN、SUBSTITUTE等8个核心Excel函数,构建自动化清洗流水线,高效解决日常办公中90%的脏数据问题,从而将时间留给更有价值的分析工作。

weixin_29215391的博客 583

ArcGIS属性表汉字转拼音

接着我安装了一个编辑器“PyCharm Community Edition 2019.3.3\bin\pycharm64.exe”,在里面添加“pypinyin”包,然后将其设置为arcgis的编辑器和调试程序,还是失败;我在10.6的机器上折腾了上面几步,直到两周后脚本突然运行成功,我也不确定是哪一步导致pypinyin包配置成功,因此将心得体会写出来,如果过一段时间,打开10.2的机器运行脚本成功了,再写后续.......,按照“配置方法1:”进行尝试,显示配置失败。

2301_77413856的博客 1295

软考高级:业务需求/用户需求/系统需求(功能需求/非功能需求/设计约束)概念和例题

业务需求、用户需求和系统需求是软件开发过程中定义项目目标和功能的三个关键概念。它们在项目规划和实施阶段起着至关重要的作用。下面我将通过表格形式对这些概念进行解释,并提供一些例子。

悟鸣的技术博客 3980

IMA知识库:从0到1的架构设计与实践

本文探讨了AI时代知识库系统的架构设计与演进路径。通过分析知识入库、知识管理和知识应用三大核心业务流程,提出了应对数据多样性、处理标准化、流量洪峰等挑战的解决方案。重点介绍了基于统一数据格式的解耦设计、异步处理架构、服务拆分策略以及权限安全体系,构建了一个稳定、高效且可扩展的知识库系统。文章强调优秀架构需要持续演进,通过识别薄弱点不断优化,最终实现技术方案与业务需求的平衡。

lovehu6686的博客 1737

从业务需求到系统功能开发的问题

从业务需求到系统功能开发的问题来到一个快要上线的项目,浏览一下相关的开发文档,发现一个普遍的问题,几乎存在于所有因功能增强而设计的functional spec中:机械地找出相关系统表,字段;依样画葫芦地把客户需求转述成业务逻辑...

542

usb设备的定位信息获取

一个usb hub有20个口,每个口有一个标号,那么如果一个为X的标号插入了一个android设备,如何通过函数,得到这个X,代码实现如下,获取了location, 得到类似 Port_#0002.Hub_#0003 的字符串,然后,要对应一个表。

babytiger的专栏 2106

YOLOv12涨点改进 | 全网独家首发Conv改进篇 | Arxiv 2025 | 引入一种新的WConv加权卷积改进YOLOv12,显著提升其特征提取能力和目标检测精度

本文提出了一种新型加权卷积(WConv)模块,通过引入最优密度函数动态调整邻域像素权重,显著提升了YOLOv12目标检测性能。WConv在保持参数数量不变的情况下,提高了模型精度(VGG准确率提升10%)、增强了小目标检测能力,并改善了多尺度特征提取。文中详细介绍了模块原理、网络结构改进方法,并提供了核心代码实现和yaml配置文件。实验表明,该方法在图像任务中最高可降低53%的损失,虽然会带来11%的时间开销,但具有优异的鲁棒性。该技术可广泛应用于2D/3D图像处理领域。

Ai缝合怪、助力小伙伴高效发论文 215

(转)一线教师的13问——软件工程实践教学 - 构建之法

福州大学单红老师的软工课程总结单红⽼师在总结中,提出了13条疑惑,《构建之法》的作者邹欣⽼师就单红⽼师提出的每⼀条疑惑,给出了⾃⼰的思考,与他进⾏探讨交流。欢迎你也来参与⼀起讨论。1.关于软件工程和软件工程实践课,安排时机的问题?目前是大三下,对于有些考研备考的同学来说,确实有些冲突。显然我给不出答案。xinz:大学有四年,每一年都应该有足够的训练,大学本科并不是‘考研复习班’,我们要问的问题是:软件工程课给学生符合大学要求的训练了么?而不是:“我们放水足够多,让部分学生可以复习考研了么”

2304

杰理 JL701N/JL703N USB MIDI 使用教程

摘要:本教程介绍如何在杰理JL701N/JL703N音箱的可视化SDK中配置USB MIDI功能。主要步骤包括:1)启用PC模式;2)修改SDK宏定义启用USB MIDI;3)实现MIDI数据接收处理逻辑;4)调用接口发送MIDI数据;5)使用MIDI-OX测试功能。针对低版本SDK可能出现的设备识别问题,提供了在midi.c文件中添加特定代码行的解决方案。使用前需确保SDK版本达标,并注意备份原始文件。

qq_42014563的博客 1263

210122课业整理

210122课业整理 一、前情回顾 1、if 多分支结构 ​ 写法: if 条件语句1: 代码段1 elif 条件语句2: 代码段2 elif 条件语句3: 代码段3 else: 代码段n 2、if 嵌套 num = 8 if num % 2 == 0: print('偶数') if num % 4 == 0: print('4的倍数') else: print('奇数') 3、for循环 写法: for 变量 in 序列: 循环体 4、range函数 ran

AncenaJune的博客 717

uniapp(全端兼容) - 最新详细实现瀑布流列表及布局设计,uni-app全平台兼容的瀑布流示例,view容器自适应瀑布流布局,图片瀑布流布局、图像+文字卡片式瀑布流,类似小红书(详细示例代码)

uni-app,瀑布流,安卓app,苹果app,微信小程序,移动端,H5网页,手机网站,微信小程序、支付宝小程序,手机app端,nvue,瀑布流布局,如何实现图片瀑布流,怎么做文字+图像瀑布流,uniapp仿小红书笔记瀑布流效果,uniAPP仿快手抖音布局列表,瀑布流列表详细教程,编译所有平台都能用的瀑布流列表,商品瀑布流列表,图文列表,小程序瀑布流,页面触底懒加载,瀑布流插件,详细示例代码教程,uni-app H5实现瀑布流效果,uniapp小程序做瀑布流,纯css瀑布流,用uniapp写瀑布流商品列表,

✅ 精选推荐文章 1万+

组合导航 | RTK、IMU与激光雷达组合导航算法:原理、实现与验证

当激光雷达噪声增加至0.1m时,系统位置RMSE仅上升18%,验证了滤波算法的鲁棒性[110]:融合方案在RTK信号丢失30秒后,位置误差仍控制在1.5m内,显著优于IMU单独导航[28]:ESKF框架能有效建模传感器误差特性,状态向量需包含外参与时间偏移等关键参数。:传感器标定精度直接影响系统性能,建议每3个月进行一次重新标定。:IMU预积分与特征匹配是系统实时性的关键瓶颈,需重点优化。:维持10秒窗口内的关键帧,平衡精度与实时性[132]:特征匹配占总耗时的65%,可通过。

尘世冰封的专栏 943

第六周工作周报

部门

u014462085的专栏 618

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【20200429】编译原理课程课业打卡十九之判断OPG文法&求解句子分析过程

【20200429】编译原理课程课业打卡十九之判断OPG文法&求解句子分析过程 一、课业打卡十九之判断OPG文法&求解句子分析过程 二、知识巩固 1、判断OPG文法 2、求算符优先函数的方法—迭代法 3、求算符优先函数实例&代码实现 4、算符优先分析法实例讲解 叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!

小啊呜的博客 5276

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【20200521】数字图像处理DIP课程课业打卡十之二值图像的分析

【20200521】数字图像处理DIP课程课业打卡十之二值图像的分析 一、DIP课程课业打卡十之二值图像的分析 一、填空题 1、图像膨胀 2、图像腐蚀 二、判断题 二、知识巩固 1、二值图像的分析—— 问题的提出 2、二值图像分析的基本概念 3、几何特征的测量 4、二值图像的分析方法 5、贴标签 6、腐蚀 7、膨胀 8、开运算与闭运算的提出背景 9、开运算【先腐蚀,再膨胀】 10、闭运算 11、开、闭运算的变形 12、目标提取示例 13、腐蚀&膨胀&开运算&闭运算 应用示例 14、简答题

小啊呜的博客 1256

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

软件需求工程与UML建模14组14周工作情况

工作进展小结 一、原始工作计划 第11周:定项目主题;完成了人员分工和工作计划;与甲方沟通进行简单的需求获取。 第12周:通过课程学习的知识进一步进行需求获取;确定app概要设计,包括软件所实现的功能及功能实现的程度;搭建app基本框架并学习相关知识。 第13、14周: 搭建完成第一代原型,将页面简单优化,交于甲方并寻求反馈意见。 第15、16周:根据甲方的反馈意见进行详细整改测试,完成...

weixin_30819163的博客 321

墨尔本大学 SWEN20003 Project2 课业解析

题意: 用Java设计与实现一款结合消除、弹珠等元素的Shadow Bounce游戏,包括绘制UML图及代码实现 解析: 在一张2D棋盘上有一些不同类别的钉子,玩家通过投掷球消除所有的红色钉子进入下一关,每一关玩家有20次机会,通过所有关卡赢得游戏,若机会用尽游戏失败。 钉子有四种颜色:蓝色钉子最普通;灰色钉子不能被消除;红色钉子在初始化关卡时,由随机从蓝色钉子取出的5分之1转换而来;绿色...

623

【实践】数字图像处理DIP课程课业打卡实验4 图像锐化

【实践】数字图像处理DIP课程课业打卡实验4 图像锐化 一、实验目的 二、实验内容 1、 实现拉普拉斯锐化。 2、实现Sobel微分算子的代码。 3、实现交叉微分算法(Roberts算法)。 三、拓展:实现图像的压缩和解压缩 叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!

小啊呜的博客 727

顶点一博客

上学期进行了顶点一计划,主要内容是早自习的换位思考,以及自己组队做小调研。 早自习的换位思考不像是工科学校的课程,他别具人文情怀,想让我们发现生活中的小细节,不做个人精致主义的倡导者。早自习这么多天,留在心里最深的一句话是,技术永远是最后一步。 我们组的调研是关于大学生学生组织退留情况。我们发现,不同的大一新生,初入学校对社团的憧憬程度是不一样的,大一一年对社团的体验也是不同的。我们调查了大二及大...

s_i_deswipe的博客 145

迟到的13总结,14展望

假期结束了,应该对过去有一个总结,对未来有一个展望,感觉在QQ空间里面写日志已经是很久之前的事情了,自从加了父母的QQ之后就很少会写心事在那里了,有些人想要分享心事,但是有些事情还是不愿父母知道,让他们觉得我过得很好就可以了。回忆一下13这过去的一年吧。 研究生一年级的下半学期,还是以课业为重,当然很多课业繁多的课程再12年的下半年克服了。下学期只选修了《组合数组》,《...

aai7747的博客 117

儿子天天写作业到12点,有一天突然问你,爸爸,我是不是长大了就不这么累了,你怎么回答?

但是这个收益到了你很晚你很困了还要赶作业的时候,你又会觉得很难受,又亏掉了。没有,在过年的时候当ta的父母略带谦虚的时候说“没有,没有,语文还不是满分”的时候,亲戚朋友爷爷奶奶姥姥姥爷还要再给ta一轮认可和奖励。世界上所有的事情其实都是这样,将来你长大了去做工作,也一模一样,只不过会变成一天的工作优秀的同事赚5分,而低效的同事亏2分。但是你有一个好条件,我,你的父母,知道怎么帮你消除沮丧、不断鼓起勇气,恢复信念,并且会给你很多方法。左邻右舍这一项,你没有收益,但是ta门也不会说你,你也不会有损失。

weixin_42126622的博客 363
上一篇: [课业] 12 | C++ | 编程
下一篇: [课业] 14 | 软工 | 需求分析方法
RussellHan
博客等级 码龄7年 191粉丝 32原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值