软件工程复习笔记

《软件工程之美》总结一:基础理论 总览 软件工程核心图:时间(多久可以完成)、范围(需要实现多少功能)、成本(花多少钱)决定了质量(产品的质量、客户的满意度) 软件工程核心知识:围绕软件开发过程,产生的方法学和工具 质量焦点:软件工程目标是聚焦于质量,构建和维护高质量的软件 过程:在软件项目的生命周期内开发与构建系统时要遵循的步骤(瀑布模型、敏捷开发) 方法:在整个过程中,如何构建系统的方法学(如何分析用户需求、如何对产品进行测试验收、如何进行系统架构设计等) 工具:知道了过程,掌握了方法,具体落到操作层面,就会涉及到工具的使用 软件工 阅读详情

01软件工程概述

  1. 软件产品:通用产品和定制化产品
  2. 软件工程的基本关注点:质量、成本、创新、时间
  3. 用户期望:产品质量 & 个性化
  4. 软件开发的几个阶段:玩具阶段、尝试阶段、原型阶段、产品阶段
  5. 软件危机
  6. 工程特点

02软件开发技能-软件演化与配置管理

  1. 软件演化对软件工程的影响
  2. 配置管理:版本管理、系统构建、变更管理、发布管理(配置管理是软件开发能力成熟的基本要求)

①版本管理:意义、术语(代码线、基线、主线)、主要任务、集中式与分布式版本控制系统及其各自优势

②系统构建:主要功能(概述,分别介绍了构建脚本功能、开发、构建、部署功能、持续集成功能)

03个人开发技能-代码质量

  1. 代码问题报告:bug、vulnerability、code-smell举例、问题总结
  2. 代码质量:含义、几个方面(代码风格、代码逻辑、代码设计等)
  1. 代码风格
  2. 代码逻辑:
  1. 控制代码复杂度:控制代码长度、控制嵌套语句的层数
  2. 控制代码重复率:提取公共部分进行方法或类封装;提取抽象类或接口;使用模板类或模板方法
  3. 高质量子程序:承担单一而明确的职责(功能内聚);良好的子程序命名;控制子程序的长度;仔细考虑子程序的参数(不要把参数用作工作变量)
  4. 防御式编程:基本思想是子程序不应该由于传入错误的数据(由外部接口或其他子程序传入)而被破坏; 程序员可以决定自己的程序逻辑但无法决定用户或其他子程序提供什么样的输入; 但仍要竭尽所能保护自身程序的正确运行

注:消除深层嵌套的代码实例未打印

  1. 防御编程:

应对不可控的外部输入:

  1. 断言:用断言处理不应该发生的状况
  2. 错误处理代码:用错误处理代码来处理预期会发生的情况

错误处理的更高层次的考虑:

  1. 异常:将代码中的错误或异常事件传递给调用方代码的一种手段
  2. 错误处理代码:

隔栏机制:让隔栏部分处理不干净的数据,而让内部代码处理干净的数据,这样大部分的代码无需再担负检查错误数据的任务。

04个人开发技能-测试驱动的开发

  1. 单元测试:

测 单个方法/函数 ; 对象行为;

要点:是开发者的测试; 应该尽可能自动化; 隔离依赖

好的单元测试:状态无损;基本单元;可重复;覆盖性;独立性;自动化

四阶段:建立;执行;验证;拆卸

  1. 依赖和测试替身
  2. 测试用例选取策略:划分测试; 基于指南的测试
  3. 交叉测试
  4. 测试先行:具备可行性;精确的程序规格说明;方便衡量开发进度;提高测试效率
  5. 测试驱动的开发

05软件过程与团队合作-软件过程与敏捷开发

  1.  基本的软件开发活动:
  1. 规格说明(需求)
  2. 设计和实现
  3. 确认(测试)
  4. 演化(维护)
  1. 软件过程:敏捷 vs 计划驱动
  2. 过程模型:
  1. 瀑布模型:属于计划驱动,规格说明、开发、确认和演化是独立的过程阶段
  2. 增量式开发:可以是计划驱动或敏捷的,常见为二者的混合,规格说明、开发和确认等活动不是分离的而是交织在一起的

增量式开发比瀑布模型的三个优势:

①降低了实现需求变更的成本,交织瀑布模型,重新分析和修改文档的工作量要少很多。  

②在开发过程中更容易得到客户对于已开发的开发工作的反馈意见,客户可以对演示版本进行评价,并可以看到已经实现了多少需求,客户通常会感觉从软件设计文档中判断项目进度会很难

③即使并未将所有的功能包含在其中,也使得在早期向客户交付和部署有用软件成为可能,与瀑布模型相比,客户可以更早的使用软件并从中获得价值。

  1. 统一过程模型:预定义多个开发阶段,每个阶段包含多次迭代,每次迭代都包含多个开发活动
  1. 敏捷过程特点:客户需求(场景故事)驱动; 认识到有效的计划都是短期的 ;迭代地开发软件同时强调构造活动(设计与实现交织) ;频繁交付可运行的软件增量; 根据变化进行适应变化和进行适应性修改,强调适应非预测

06软件过程与团队合作-团队合作与协作

  1. 软件开发协作:①代码评审与结对编程; ②问题追踪系统 ③开源软件的社会化合作
  2. 代码评审:①含义; ②代码评审的准备和前提条件 ; ③代码评审过程→评审这进一步还应考虑哪些问题?代码评审检查表
  3. 结对编程:含义;好处和坏处;不间断的代码评审
  4. 问题(issue)

问题追踪系统:含义;主要功能;

Bug/issue的生命周期和状态

Pull/request开发模式

07软件设计-软件设计概述

  1. 软件设计:

①内容:数据设计;体系结构设计;接口设计;

组件级设计(组件内的类与类之间关系定义,局部的数据结构、算法设计

②承上启下:承上:满足需求 启下:实现和测试的基础

③目标:功能性方面:完整实现功能需求;

非功能性方面:充分实现质量需求

  ④基本原则  ⑤设计决策   

⑥设计思想:

体系结构 ; 分解;

抽象:数据抽象、过程抽象;

逐步精化:抽象使得设计者在考虑高层设计时能够忽略过程和数据的底层细节;精化使得设计者能够逐步揭示底层的细节,得到更加具体的解决方案

风格和模式; 模块化;

信息隐藏:限制局部设计决策的全局影响;降低副作用发生的可能性;强调模块/组件/类间通过受控的接口进行通信;不鼓励使用全局数据

功能独立:衡量标准:内聚度、耦合度

重构

08软件设计-面向对象软件设计

  1. 组件:①是一种系统组成部分,②模块化、可部署、可替换 ③内部封装了实现 ④对外暴露一组接口

面向对象视角的组件:是由一组相互协作的类组成

通过细化的组件设计满足体系结构设计中对组件的要求。

  1. 面向对象设计步骤:①识别设计类  ②明确设计类职责和协作 ③细化设计类内部细节
  2. 不同类型的类:①来自问题领域的类:业务对象;业务过程

②位于接口上的类:用户界面;硬件接口;软件接口 

③来自基础设施的类:资源管理;进程通信

  1. 类的职责分配:

①关注点分离:每个类有自己明确的职责

②相对独立性:高内聚;低耦合

③粒度合理:避免过于集中或过于分散

④考虑未来可能的扩展:共性抽象;保持灵活性

  1. 内聚:一个模块保持单一意图的程度;内聚意味着单个组件或类

内聚的类型:功能内聚;层次内聚;通信内聚;顺序内聚;过程内聚;时间内聚;功用内聚

  1. 耦合:组件或类之间相互联系的程度;

避免:内容耦合;

小心:共用耦合;控制耦合;

知晓调用耦合;类型使用耦合;包含或引入耦合

  1. 面向对象设计原则:

开闭原则:对扩展开放,对修改封闭

Liskov替换原则:子类对象应该可以替换父类对象出现的地方

依赖转置原则:依赖于抽象(抽象类、接口)而非具体

接口隔离原则:不要强迫客户模块依赖他们不会使用的接口,多个服务于特定请求方的接口好过一个通用接口

  1. 面向对象类设计的描述:

静态结构模型:泛化(继承)、使用/被使用、组合等

动态交互模型:对象发出的服务请求的序列、由这些对象交互所触发状态变化

  1. UML类模型:

类:类名、属性、方法

类间关系:①关联(定义两个或多个类之间的一种静态结构关系)

②依赖:是一种较弱的关联关系,一个类 依赖于另一个类协作完成任务,关联关系只在一定时间段内存在

③整体/部分(组合、聚合):组合是整体与部分之间往往存在的包含关系,整体完全拥有部分;聚合是整体与部分之间往往不存在物理的包含关系,部分可以加入或退出

④泛化/特殊:(继承): ⑤实现

  1. 动态交互模型:描述相关对象如何通过相互协作实现特定场景的执行;可以使用uml顺序图或通信图来表示

09软件设计-设计模式

  1. 设计模式是针对共性设计问题的一种参考解决方案,是对一系列相似设计方案的本质和共性抽象,,因此具有通用性。  
  2. 共性设计问题存在良好的参考方案:易理解、易修改、易扩展
  3. 设计模式四要素:有意义的模式名字;解释模式何时适用的问题描述;解决方案描述;应用该模式的效果以及其中所涉及的权衡决策
  4. 设计模式举例:
  1. 观察者模式:观察者(负责显示逻辑);被观察者(负责数据管理);

(被观察者和观察者解耦,观察者可灵活增加(开闭原则))

设计模式背后的原则:①单一职责原则 ②Liskov替换原则;③依赖倒转原则 ④迪米特原则 ⑤合成复用原则

  1. 单例模式:确保一个类只有一个实例并为其提供全局的访问入口;保持接口 、继承等面向对象特性;

应用举例:网站计数器、任务管理器、回收站

  1. 组合模式:将对象组织成表示整体部分层次的树状结构,同时使客户端代码可以统一处理对象以及对象的组合

应用举例:文件系统目录结构、组织结构、画图工具中的图形组合

  1. 策略模式:对算法的行为(具体处理策略) 进行抽象, 使得客户端代码不再依赖于具体的算法而是依赖于抽象的策略, 在此基础上可以方便地对算法族进行管理。

复合图形(CompositeFigure)的 布 局 依 赖 于 抽 象 的Layouter。

优点: 将算法与其使用环境分离

1) 算法可以独立被复用

2) 避免了客户端代码中的多重条件选择语句

3) 可灵活实现布局算法替换, 还可以通过继承AbstractLayouter增加新的布局算法。

10软件设计-设计框架

  1. 框架是带有一组插入点的骨架:经过适配调整以后可以支持不同的特定问题需要;插入点上可以继承问题特定的类或功能。
  2. 构件(如图书处理、打印构件)、模式(如组合模式、观察者模式)、框架(如struct、jhotDraw)

①软件构件(关键词:调用)。:针对特定功能提供可复用的实现,开发人员在自身已有的实现方案基础上调用构件实现局部功能和具体功能(如邮件发送),有自己的实现并通过接口提供访问。特定应用实现调用软件构件实现局部功能,构件对系统整体设计影响不大。

②设计模式(关键词:实例化):一种抽象的设计思想,往往体现为参考设计方案(如用UML图表示),本身并没有代码实现,需要针对具体问题、参考其设计思想进行实现。反映的是抽象的设计思想,且只关注于某个局部设计问题,其中的类都是与特定应用无关的抽象角色,没有实现代码。 →特定应用实现对设计模式中的角色机器关系进行实例化,得到特定用的设计和实现→基于设计模式的实例化实现,其中的类都是针对特定应用的设计类,存在对应的实现代码。

③软件框架(关键词:扩展):本身包含相对完整的设计以及核心实现,提供扩展和定制能力,开发人员针对特定应用的实现通过扩展点插入框架中,一般由框架来调用形成完整的应用实现。。例子:JHOTDRAW.有相对完整的设计,有自己的实现代码。特定应用通过框架的扩展点(如抽象、接口)扩展特地应用的实现,最终与框架实现融为一体。

  1. jhotDraw的设计模式

①组合模式:AbstractCompositeFigure 使用List<Figure>属性表示对于子图形的包含关系(组合关系) , 在drawFigure()方法中对List<Figure>进行遍历(扮演客户端代码的角色) 。

优点:为树形结构的面向对象实现提供了一种灵活的设计方案

1) 清楚地定义分层次的复杂对象

2) 客户端可以一致地处理复合对象和原子对象

3) 方便扩展新的复合或原子对象

②观察者模式:事件处理器EventHandler类是观察者; AbstractFigure类是被观察者,内 部 维 护 了 一 个 观 察 者 的 列 表(listenerList),在发生变化时通知当前注册的事件处理器。

 优点:表示层(观察者) 和数据逻辑层(被观察者) 相分离

1) 被观察者和观察者之间建立一个抽象的耦合, 被观察者不依赖于具体的观察者

2) 被观察者对观察者进行广播通信, 简化了一对多的系统设计

③策略模式:对算法的行为(具体处理策略) 进行抽象, 使得客户端代码不再依赖于具体的算法而是依赖于抽象的策略, 在此基础上可以方便地对算法族进行管理。

复合图形(CompositeFigure)的 布 局 依 赖 于 抽 象 的Layouter。

优点: 将算法与其使用环境分离

1) 算法可以独立被复用

2) 避免了客户端代码中的多重条件选择语句

3) 可灵活实现布局算法替换, 还可以通过继承AbstractLayouter增加新的布局算法。

共性:都是以设计抽象为基本手段,都很好的实践了开闭原则

11软件设计-演化式设计

  1. 软件演化:软件必须不断演化以保持“有用性”;软件演化花费巨大
  2. 冰山形成的原因
  3. 敏捷开发中的演化:一方面是传统的缺陷或需求/环境变化驱动的演化;另一方面是迭代式开发自身带来的演化性
  4. 两种实施设计的方式:事先计划的设计 vs 演化式设计 各自的问题
  5. 在计划和演化式设计之间取得平衡:重构
  6. 重构:消除代码的坏味道

重复代码、长方法、发散式变化、霰弹式修改

12软件设计-软件体系结构

  1. 软件体系结构:是高层设计结构、反映软件解决方案的高层分解;

包括:一组软件组件、软件组件的外部属性、软件组件之间的关系、全局的实现约定

  1. 软件体系结构的内容:
  1. 软件组件

表⽰软件系统⾼层分解的结构元素

可以是简单的程序模块或类,也可以是复杂的⼦系统

还可以包含扩展的数据库、中间件等

  1. 软件组件的外部属性

功能性属性,例如接⼝、交互协议

⾮功能性属性,例如响应时间、吞吐量

  1. 软件组件之间的关系

静态结构关系

动态交互关系

运⾏时部署关系

  1. 全局的实现约定

需要在系统全局作出约定的实现技术决策

例如:实现语⾔、异常处理策略、共享资源的使⽤⽅式、包和⽂件的命名⽅式等

影响最终的系统组件集成

  1. 软件体系结构的作用
  2. 非功能性质量与体系结构设计决策
  3. 软件体系结构的多视图
  4. MVC体系结构:
  5. 几种不同的体系结构模式

①分层体系结构:分层、系统级的,将系统组织为多个层次,每个层次对上提供服务层间接口通常会保持稳定

一般不允许跨层,只能由下而上,不能由上而下

      1. 优点:层次只要接口不变,可以整个替换
      2. 缺点:失去对细节的把握,无法进行正常的优化。分层的访问会有性能的问题,需要一层一层将命令进行实现
      3. 为什么分层体系结构为什么效率低?

硬件特性已经不可见了,分层带来的抽象会使得分层的效率低,

②知识库体系结构:共用一个数据库:例如:集成开发环境IDE的知识体系结构

系统及数据在中心知识库中进行管理,组件之间通过共享知识库中数据的方式进行交互。

没有一个中心的控制,全部将信息对中心构件进行交互

适用于人工智能,不存在很强的过程控制,流程性很强的系统不应该使用知识库体系结构

③客户端-服务器(c/s)体系结构(clients-server)

以数据库为中心的客户端-服务器体系结构

系统的通用核心功能被组织为一组服务,多个客户段通过网络共享这些服务。

与B/s browser-server 浏览器-服务器体系结构的区别及优缺点:

    1. b-s升级便利 c-s需要区分不同的平台
    2. b-s跨平台的能力比较强
    3. c-s需要有一个应用程序,不能跨平台
    4. b-s不需要区分平台,只需要在浏览器上进行,b-s的交互能力较为弱, c-s在本地启用,交互能力比较强
    5. 以后b-s成为主流
    6. c-s的升级不便利  b-s不需要考虑升级问题
    7. 由于以前的b-s的交互能力差,而现在b-s的交互能力很强大了,所以它比c-s更占优势

④管道-过滤器体系结构:每个流程的步骤不便,但是流程过程可以改变以改变整个系统的逻辑

一个收款系统的管道-过滤器体系结构

处理组件(过滤器)负责进行数据处理,连接器(管道)负责组件间的数据流动

特点:松耦合,适合做批处理(处理一批数据),交互能力弱,在管道中间不能跟用户交互,管道之间不能中断,需要将处理解决之后才能继续进行下一步处理 

管道过滤器是平行的,只是通过管道相连。管道之间的顺序可以进行调整

  1. 软件体系结构的uml描述:静态结构

①包图:可以是需求的包、组件或模块。表示包和包之间的依赖关系。

②组件图:服务类接口和请求类接口,服务类接口提供服务,组件与组件之间的接口依赖

  1. Uml描述:动态交互

顺序图:交互方,顺序图与场景相关   顺序图针对交互场景来画,有明确的交互场景,参与本次交互场景的组件参会出现在顺序图中。 虚线-时间线,还未参与交互过程  激活条-时间线,组件在交互过程中已经被激活

实线性箭头表示异步,实三角箭头表示同步 。以组件为单位描述顺序图的交互方

Wait() 异步可以模拟同步,

  1. UML描述:部署结构

部署图:不同设备的部署方式

  1. 系统建模及uml图
  1. 上下文模型:通常显示环境包括多个其他的自动化系统。然而这种模型没有显示环境中的系统与所描述的系统之间关系的类型。外部系统可能会产生提供给系统的数据或者消费来自系统的数据等。所有这些关系都有可能影响所定义的系统的需求和设计,必须加以考虑。所以简单的上下文模型可以和其他模型例如业务过程模型一起使用。

代表uml图:活动图

  1. 交互模型:①用户交互,其中包含用户输入和输出;②所开发的软件和环境中的其他系统之间的交互

         ③软件系统内部不同构件之间的交互。

         用户交互模型可以帮助识别用户需求,建模系统间的交互可以突出可能出现的系统通信。

  代表uml图:用况图、顺序图

  1. 结构模型:按照构成系统的构件以及他们之间的关系显示系统的组织。结构模型可以是描述系统设计组织的静态模型也可以是描述系统执行时的组织的动态模型。

代表uml图:类图

  1. 行为模型:是关于系统在运行时的动态行为的模型,这种模型描述了当系统对来自环境的激励进行相应时发生什么或者应该发生什么,激励可以是数据或者事件。

①数据驱动的建模:数据流图(可以用uml中的活动图来表示)

②事件驱动的建模:状态图

③模型驱动的工程:它是一种软件开发方法,其中开发过程的主要产物是模型而非程序。

 

代码大全

  1. 在软件架构层面上可以通过把整个系统分解为多个子系统来降低问题的复杂度。
  2. 一个程序中的设计层次:①系统首先被组织为子系统; ②子系统进一步被分解为类 ③类又被分解为子程序和数据 ④每个子程序的内部也需要 进行设计
软件工程(Software Engineering) 包含程序、数据及相关文档涉及到软件开发、维护、管理等多方面的原理、工具与环境。最终的目的是开发高质量的软件。提高软件生产率、提高软件质量、降低软件成本。 阅读详情

相关推荐

【软件工程】软件工程课程复习笔记

Software is complex=事情由很多部分组成,能够互相关联在一起。(而complicated 模糊的,即便分析也分析不出来,不能解释。防止产生温水煮青蛙的问题:1.小问题尽量考虑清楚,从而不至于导致大的缺陷2.负面反馈是一种积累,刚开始看上去问题不大,到后面就会太严重以至于不能解决。

qq_43984062的博客 2437

软件工程知识点总结

软件工程知识点总结 有以下知识点(考试内容,当然不止这些) 软件工程的定义 软件生存周期 软件过程模型 需求分析的定义、获取 常见的软件体系结构(B/S 、C/S 、软件总线中间件) SOA 的定义、特点、和工作模型(松耦合、明确定义的接口) 云计算的定义、优势和应用模型 软件测试的概念、原则、方法和测试策略 软件维护的类型 10.软件项目管理的管理过程和领域 11.成本估算模型、进度计划的方法 风险管理、质量管理的概念 13.CMM(软件能力成熟度模型) 第一章

沐雨风栉 6991

【软件工程】期末复习笔记

程序的三种基本控制结构:顺序 选择 重复 面向对象的分析方法主要是建立:对象模型 动态模型 功能模型 模块独立性的衡量标准:耦合性 内聚性 软件开发是 自顶向下逐步求精;软件测试是 自底向上集成 面型对象:多态性 唯一性 封装性 继承性 功能内聚内聚性最高;偶然内聚内聚程度最低 继承性是子类自动共享其父类的数据结构和方法 白盒覆盖测试六种覆盖方法中,由弱至强:语句覆盖、判定覆盖(分支...

ttangyyyy的博客 3778

软件工程:概述

软件是抽象的、不可触摸的,它不受物质材料的限制,也不受物理定律或加工过程的制约:一方面使软件工程得以简化,因为软件的潜能不受物理因素的限制。一方面,由于缺乏自然约束,软件系统也就很容易变得极其复杂,理解它会很困难,改变它的价格。软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件工程解决的问题:如何开发软件以满足对软件日益增长的需求和如何维护数量不断膨胀的已有软件。

燕双嘤 3846

考研《软件工程--面向对象和传统的方法》复习笔记

《软件工程——面向对象和传统的方法》复习笔记 第一章 软件工程的范畴 引言 可以结合 软件工程导论第六版 --张海藩 1.软件工程概念: 软件工程是一门学科,目的是生产出没有错误的软件,按时并且在预算内交付,满足用户的需求。更进一步,当用户的需求改变时,软件必须易于修改。 2.软件工程范畴: 软件工程的范畴非常广。软件工程的某些方面可以归入数学或计算机科学;其他方面可以落入经济学、管理学或者心理学的范畴。我们可以从历史方面、经济方面、维护性方面、需求分析设计方面、小组编程方面等五个...

sunliee 2054

Windows 2012 SYSVOL复制失败的处理

题外话:晓原理、知架构、查日志是排错的三件法宝今天在DC1上新建并链接了一个组策略对像,在客户端刷新时,却报下面的错误:“处理组策略失败。Windows无法应用组策略对象LDAP….”如下图所示:于是在客户端用\\domain.com访问,发现\\domain.com\SYSVOL\domain.com\policies下面没有上面报错的组策略对象。这是怎么一回事呢,pin...

weixin_33989780的博客 1669

软件工程专业介绍(非常详细)零基础入门到精通,收藏这一篇就够了_软件工程 专业认知

小编估计,以后计算机会烂大街,成为英语,驾照一样的技能,普通人都会的技能,甚至是未来社会评判是否文盲的标准(文盲标准一直提升,从建国初的认识字,到后来的会写字,会算数,会英语,会开车,会使用智能手机,会计算机编程,会人工智能应用)。比如,以前的塞班工程师。所以,真正的程序员,周末,晚上都是在自学,在编程学习。工作环境一般都很棒,大公司,比如TX这种巨无霸,一套升降桌椅价值过万,地面有地毯,公司有咖啡机,冷热水,几栋楼都是腾讯自己盖的,在深圳总部,甚至有个岛,里面都是TX的办公大楼,俗称企鹅岛。

Galaxy_0的博客 6739

D类功放LC滤波器实战:从Q值0.707到EMI优化的完整设计流程

本文详细解析了D类功放LC滤波器的完整设计流程,从确定截止频率与Q值0.707的理论基础出发,到参数计算、仿真验证及关键元器件选型,并提供了应对EMI超标和过流保护等实际问题的进阶调试策略。文章强调,精准的LC滤波器设计是平衡音质、稳定性与电磁兼容性的关键,尤其需关注电感饱和电流与电容直流偏置等细节。

e4f5g6h7的博客 1034

笔记 软件工程复习

区分需求类型(如:可靠性需求→故障率)识别ER图符号(菱形=联系)简述需求分析的四大任务(综合要求/数据要求/逻辑模型/修正计划)列举8类需求并举例(功能/性能/接口…)根据场景画ER图(注意M:N关系的转化)绘制状态转换图(标注事件和状态)复习建议重点掌握ER图和状态图的绘图规范(考试必考)熟记需求分类的关键词(功能=“做什么”,性能=“多快多稳”)结合案例理解抽象概念(如:逆向需求=业务禁止规则)选择题速记降低复杂性数据耦合巧合内聚模块调用关系返回功能分解步骤简答题模板题目。

qq_44710922的博客 2252

保姆级教程:手把手教你用KITTI数据集跑通LIO-SAM(附EVO评估全流程)

本文提供了一份详细的KITTI数据集LIO-SAM实现教程,涵盖数据准备、算法适配和EVO评估全流程。通过解析KITTI数据集特性、解决LIO-SAM适配问题,并利用EVO工具进行精度评估,帮助读者快速掌握激光惯性SLAM技术。特别针对KITTI数据与LIO-SAM的兼容性问题提供了实用解决方案。

weixin_28737603的博客 303

STM32F407-OV7670(无FIFO)-ONENET-实现摄像头画面上传到onenet(EDP协议)

EDP协议 EDP协议文档说明:https://leoeinstein.lanzous.com/ifX1Ckfkaaf 服务器登录 登录流程: (1)客户端发送连接请求(CONN_REQ) (2)服务器验证请求的合法性 (3)服务器发送一个回执(CONN_RESP)给客户端 其中请求包含三部分:消息头、选项和消息体。 1、消息头 包括消息的类型和剩余消息长度。 2、选项 包括协议名称、协议版本、连接标志、保持连接时间。 3、消息体 可能包含设备ID、用户ID(可选)、鉴权信息(看采取什么方式登录)。 设备

LiangWF22的博客 1万+

《软件工程》期末复习重点背诵笔记

《软件工程》期末复习重点背诵笔记 【下载地址】软件工程期末复习重点背诵笔记 这是一份专为吉林大学软件学院学生打造的《软件工程》期末复习重点背诵笔记。笔记针对21级及之后的课程考试内容变化,由学生根据课堂讲解和课程PPT精心整理而成,帮助同学们高效掌握课程核心知识点。不同于传统的题库形式,这份资料更注重重点内容的提炼与总结...

gitblog_06769的博客 356

weblogic等保测评操作过程

weblogic网络安全等级测评保护操作

qq_48257021的博客 2757

软件工程 复习笔记

软件危机是指在计算机软件的开发和维护中遇到的一系列严重问题。软件危机主要包含了两方面的问题:一是如何开发软件满足软件日益增长的需求二是如何维护数量不断增长的已有软件。

于高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。 2159

PyTorch实战:A2C算法在Pendulum环境中的调参技巧与收敛优化

本文详细介绍了使用PyTorch实现A2C算法在Pendulum环境中的调参技巧与收敛优化方法。通过分析Pendulum环境特性、设计高效的网络架构、优化超参数设置以及提升训练稳定性,帮助开发者掌握强化学习中的policy-based方法。文章特别强调了奖励工程、优势估计改进和梯度裁剪等关键优化策略,为连续控制任务提供了实用解决方案。

rum55的博客 213

EPLAN 电气制图(六):结构盒与设备管理器核心概念(基础知识选看)

结构盒是 EPLAN 中用于标识元件安装位置的逻辑容器,非实际设备或黑盒,仅用于原理图中划分功能区域或物理位置(如 “柜内”“柜外”)。标识符设置:在 “显示设备标识符” 中输入位置代号(如 “+ 柜外”),完整格式为 “= 高层代号 + 位置代号”;筛选与定位:通过 “筛选器” 按类别(如电机、接触器)快速查找设备,右键 “转到(图形)” 可高亮定位图纸中的元件;设备保护:重要设备可启用保护(【项目数据】→【设备】→【启用设备保护】),防止误删除(显示橙色圆圈标记)。

电工 1057

UESTC 软件工程 复习笔记

软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。计划、协调、度量、监控、控制及报告等管理方法在软件开发和维护中的具体应用,以保证整个过程是系统的、有原则的、可量化的。是测试输入、执行条件、以及预期结果的集合,是为特定的目的开发的,例如执行特定的程序路径或验证与指定的需求相符合。(1)应用系统化的、学科化的、定量的方法,来开发、运行和维护软件,即,将工程应用到软件。

GratedRawCarrots的博客 1530

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

软件工程复习笔记:助你快速掌握软件工程核心知识

软件工程复习笔记:助你快速掌握软件工程核心知识 去发现同类优质开源项目:https://gitcode.com/ 软件工程复习笔记 —— 适用于复习巩固,快速提升软件工程科目成绩的核心工具。 项目介绍 在当前软件工程教育中,如何有效地复习和巩固知识,一直是学生面临的难题。软件工程复习笔记应运而生,这是一份由有经验的学生根据自身复习经验整理而成的笔记,旨在帮助那些对软件工程知识掌握不够扎实的同学,在...

gitblog_06776的博客 370

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Software Engineering软件工程复习笔记

中外合作办学的软件工程复习笔记

p213100的博客 450

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

软件工程个人复习用笔记

软件工程个人复习用笔记 复习 个人复习用,范围确定型复习笔记 1. 2.3.3 演化过程模型(螺旋模型) 螺旋模型结合了原型的迭代性质和瀑布模型的系统性和可控性特点。随着演进过程的开始,从圆心开始顺势针方向,执行螺旋上的一圈表示的活动。每次演进都要考虑风险,每个演进过程都要标记里程碑。螺旋模型应用在计算机软件的整个生命周期。是开发大型系统的理想方法,可以有效的应

水果君の日常 3283

湘潭大学软件工程算法设计与分析考试复习笔记(四)

现在是晚上十一点,我平时是十一点睡觉的,但是今天确实一天都没有复习这个,我还是想复习一下。所以还是复习一下吧。现在复习的是程序填空,一空四分,四十分,也就是说十个空。这个这么难,好像老师是说看大家造化了哈哈哈。第三道大题是算法设计与分析,前面三篇笔记是复习了一下第一道大题,也就是对算法的大概的理解。第三道大题主要是分治法,解决实际问题(上台阶,电梯),分析时间复杂度,求一个序列中特殊性质的元素,数塔求最大的,最小的和,最优路径,tsp问题,(这个之前不知道是啥问题,现在大概知道了一些,就是图论题)好吧。

夜空像是一片紫水潭,星星是些不动的大亮点,夜风是些浅蓝色的流线,云端传来喧嚣的声音。 1939

合肥工业大学软件工程《网络及其计算》复习笔记:助你高效复习,轻松应对期末考试

合肥工业大学软件工程《网络及其计算》复习笔记:助你高效复习,轻松应对期末考试 去发现同类优质开源项目:https://gitcode.com/ 项目的核心功能/场景 辅助合肥工业大学软件工程专业学生复习《网络及其计算》课程,提高期末考试通过率。 项目介绍 在众多学术资源中,合肥工业大学软件工程《网络及其计算》复习笔记无疑是一份极具价值的学习资料。这份笔记由合肥工业大学软件学院的学生精心整理,涵盖了...

gitblog_06726的博客 641
上一篇: 使用visdom将远程服务器上的pytorch运行结果映射到本地显示
下一篇: C++常量和指针
小燕子的日常
博客等级 码龄9年 26粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值