自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 算法设计与分析复习

ch6 树搜索基础–深度优先与广度优先广度优先–利用队列先进先出、后进后出深度优先–利用栈后进先出爬山法深度优先搜索中,经常遇到多个节点可扩展,爬山法用启发式测度来排序节点扩展的顺序即框架与深度有优先相同,显示根确定的单元素栈S,如果栈顶时目标节点停止,否则弹出栈顶S,S的子节点按照其启发式测度由大到小的顺序压入S例:8-puzzle问题用错误位置的方块数定义启发式函数所以定义启发式测度函数是爬山法的关键,该函数决定了搜索的顺序,我们要找离我们想找的东西更近似的答案,以他作为新的起

2020-07-23 17:31:20 1094

原创 软件构造复习12-并发、线程安全、锁与同步 ch7

7-1 并发利用多核多处理器需要将程序变成并发程序Processes and Threads 进程和线程每个进程都有自己的私有空间、彼此隔离线程:程序的一部分,是程序内部的控制机制进程多进程之间不共享内存进程之间通过消息传递进行协作线程进程=虚拟机 线程=虚拟CPUTime Slicing 时间分片虽然有多个线程,但在一个核的计算中,每个时刻只执行一个线程通过时间切片,在多个进程/线程之间共享处理器即使是多核CPU,进程/线程的数目也往往大于核的数目即使主线程关闭,也可进

2020-07-11 14:50:39 130

原创 软件构造复习11-面向健壮性的构造ch6

6.1健壮性和正确性健壮性:系统在不正常输入或不正常外部环境下仍能表现正常的程度尽可能保持软件运行而不是总退出对用户更加友好正确性:程序按照spec加以执行的能力永不给出用户错误的结果对程序员更加友好这两种特性往往有一些矛盾,在实际使用中,要根据具体情况进行权衡对外接口,倾向于健壮性对内的实现,倾向于正确性可靠性=健壮性+正确性6.2 错误与异常处理见lab4 基础知识–java异常处理unchecked – error RuntimeException程序员检查check

2020-07-10 20:15:49 164

原创 软件构造复习10--可维护性

5-1可维护性的度量与构造原则软件演化:对软件进行持续的更新软件的大部分成本来自于维护阶段设计方案中的“easy to change”什么是可维护性继承层次不要太深类之间的耦合度低高内聚模块化设计高内聚低耦合高内聚:模块内的各种功能密切相连低耦合:模块间的耦合度低SOLIDSRP不应有多于一个原因使一个类发生变化OCP开放/封闭原则不修改原代码的基础上进行扩展很难做到LSP子类型必须能替换父类型ISP 接口隔离原则DIP 依赖倒置原则5-2

2020-07-10 13:05:12 173

原创 软件构造复习9-软件复用ch4

Source code reuseModule-level reuse:class /interface通过继承进行复用通过委托进行复用 DelegationLibrary-level reuse:API/PackageSystem-level reuse:FrameworkFramework:一组具体类,抽象类及其之间的连接关系只有骨架,要自己添加application分为黑盒框架和白盒框架...

2020-07-08 19:03:10 151

原创 软件构造复习--2019雨课堂试题

雨课堂试卷(一) ch1 ch20-1+的优先级比==要高,先计算两个字符串+,然后再跟b比较。1-1?Deployment是把build-time的软件转换为run-time的软件的手段之一对软件的profiling和tracing均发生在run-time1-2LOC: lines of code2-1Git是分布式版本控制系统2-2Code review 代码评审Code review的目的是发现代码中的潜在错误Code review 无需执行正在开发的软件

2020-07-08 15:19:35 532

原创 软件构造复习8--3-5 Equality in ADT and OOP

等价性AF映射得到相同的结果则等价对两个对象进行任何相同的操作,得到的结果都是一样的,则认为这两个对象是等价的== vs .equals()== 引用相等即两个引用是否指向内存中的同一个地址空间,即两个对象在内存空间中是否是同一个位置&&.equals() 对象等价性两个对象的内容是否相等在自定义ADT时,需要根据对“等价” 的要求,决定是否重写.euqals()对基本数据类型,用==对对象类型,使用equals()重写.equals()后要重写hashCode哈

2020-07-06 23:14:04 156

原创 软件构造复习7--Object-Oriented Programming (OOP) 面向对象编程 3-4

ADT的具体实现技术—OOP基本概念对象现实生活中的对象:由状态和行为类对对象进行抽象就得到了类静态方法即类的方法,无需创建对象,利用类名即可直接调用静态方法不能直接调用非静态成员 因为此时非静态成员还没创建接口接口+接口的实现类:实现ADT一个类不能继承多个父类,但是可以继承多个接口一个接口可以有多个实现类接口中没有构造函数接口中只有spec和方法签名...

2020-07-05 14:04:57 132

原创 软件构造复习6--ADT抽象数据类型3.3

基本概念抽象类型:强调“作用于数据上的操作”,无需关心数据具体如何存储,只需设计操作即可分类数据类型分类1.可变的提供可改变内部数据值的方法2.不可变操作不可改变内部值,而是构造新的对象因此一些类型会提供两种形式方法分类1.构造器 creator从无到有 t*->T可实现为构造函数或静态函数2.生产器 ProducersT+,t* ->T从有到新 比如字符串拼接方法3.观察器 ObserverT+,t*->void | t |T4.变值器 Mu

2020-07-03 23:35:40 235

原创 软件构造复习5 Designing Specification设计规约 3.2

Specificationlinchpin of teamwork明确双方的责任客户端无需看懂调用函数的代码,只需理解spec即可规约结构1.前置条件 requires对客户端的约束,使用方式必须满足的条件2.后置条件 effects对开发者的约束,方法结束时必须满足的条件前置条件满足,后置条件必须满足 ----契约前置条件不满足,则方法可以做任何事情java中的规约static类型声明是一种规约,可以据此进行静态检查注释也是一种规约,但需要人工判断前置条件 : @pa

2020-07-03 14:19:48 235

原创 软件构造复习4 Data Type and Type Checking数据类型与类型检验3.1

java中的两种数据类型所有对象类型的根类是Object所有的类都继承自Object所有的基本类型都有一个对应的对象类型(把基本类型封装成对象类型)boolean ->Booleanint ->Integerchar ->Characterbyte -> Byteshort -> Shortlong ->Longfloat -> Floatdouble ->Double原因:容器类型(List Set Map)中操作的元

2020-07-02 15:30:39 197

原创 软件构造复习3--Software Life cycle and Configuration Management 软件生命周期与配置管理ch2

Life cycle of software若干个工作的时间序列软件构造过程的一些模型如何选择合适的过程模型?用户的参与力度开发效率软件质量Linear线性过程Iterative迭代过程两周基本模型WaterfallRequirements->Design->Implementation->Verification->Maintenance因为不能适应变换,所以只有理论价值Incremental按功能进行设计V-model加入了测试,代码可靠

2020-07-02 12:01:17 220

原创 软件构造复习1--ch1

1-1 Multi-Dimensional Views of Software Construction可以从三个角度看待软件构造1.时间维度Moment从瞬时的角度看待软件Period从周期的角度看待软件 即软件的变化2.编码维度Build-time开发阶段:程序员编写代码Run-time运行阶段:代码与系统的交互3.代码-模块维度Code-levelSource-code Interface Method ClassComponent更加宏观的角度 Package Fi

2020-07-01 10:41:44 340

原创 lab4 基础知识--java异常处理机制

java异常处理机制简介异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。常用关键字try – 用于监听。将要被监听的代码(可能抛出异常的代码)放在try语句块之内,当try语句块内发生异常时,异常就被抛出。catch – 用于捕获异常。catch用来捕获try语句块中发生的异常。finally – finally语句块总是会被执行。它主要用于回收在try块里打开的物力资源(如数据库连接

2020-06-05 12:21:34 128

原创 软件构造Lab3基础知识--java泛型

1.JAVA泛型——“适用于许多许多的类型”(其实应该写在lab 2,不过当时比较懒)“一般的类和方法,只能使用具体的类型,要么是基本类型,要么是自定义的类型。如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会很大”1.1一个例子List arrayList = new ArrayList();arrayList.add(“aaaa”);arrayList.add(100);for(int i = 0; i< arrayList.size();i++){String i

2020-05-17 11:43:42 135

原创 Software Construction实验环境建立

#本文将讲述如何建立java开发环境,以及如何用github托管项目代码,作为软件构造的开发环境基础##1.java开发环境的建立###1.1jdk的安装和配置####1.1.1首先从各个渠道获得jdk的安装包打开exe文件,注意记住你的安装路径####1.1.2设置环境变量#####第一种方法编辑path 加入刚才的安装路径,注意要加上bin文件#####第二种方法新建一...

2020-03-02 13:30:20 138

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除