E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
HIT-软件构造
哈尔滨工业大学
软件构造
课程笔记第七章第二节
7.2线程安全1.什么是线程安全线程安全竞争条件:多个线程共享同一个可变变量,但不协调它们正在做的事情。这是不安全的,因为程序的正确性可能依赖于低级操作的定时事故。线程之间的“竞争条件”:作用于同一个mutable数据上的多个线程,彼此之间存在对该数据的访问竞争并导致interleaving,导致postcondition可能被违反,这是不安全的。threadsafe是什么意思线程安全:ADT或方
北丐东邪
·
2020-09-12 09:30
哈工大
软件构造
学习笔记
多线程
java
设计模式
编程语言
哈尔滨工业大学
软件构造
课程笔记第四章第二节
4.2面向复用的
软件构造
技术1.设计可重用的类在OOP中设计可重用的类▪封装和信息隐藏▪继承与超越▪多态、子类型和重载▪泛型编程▪行为分型和利斯科夫替代原理(LSP)▪授权和组成(1)行为分型和利斯科夫替代原理
北丐东邪
·
2020-09-12 09:30
哈工大
学习笔记
软件构造
设计模式
java
编程语言
哈尔滨工业大学
软件构造
课程笔记第三章第四节
3.4面向对象的编程(OOP)1.基本概念:对象、类、属性和方法对象现实世界中的对象有两个共同特征:它们都有状态和行为。识别现实对象的状态和行为是开始考虑面向对象编程的好方法。对于你看到的每一个对象,问你自己两个问题,这些现实世界的观察都转化为OOP的世界:状态有哪些?行为有哪些?对象是状态和行为的集合状态——对象中包含的数据。-在Java中,这些是对象的字段行为——对象支持的操作-在Java中,
北丐东邪
·
2020-09-12 09:30
哈工大
软件构造
学习笔记
多态
设计模式
java
编程语言
哈尔滨工业大学
软件构造
课程笔记第三章第二节
3.2设计规约1.编程语言中的函数和方法[…]NAME(TYPENAME,TYPENAME){STATEMENTS}Tocall:NAME(arg1,arg2);参数类型是否匹配,在静态类型检查阶段完成publicstaticTYPENAME(){STATEMENTS;returnEXPRESSION;}voidmeans“notype”返回值类型是否匹配,也在静态类型检查阶段完成“方法”是程序的
北丐东邪
·
2020-09-12 09:59
哈工大
软件构造
学习笔记
java
哈尔滨工业大学
软件构造
课程笔记第二章第二节
2.2
软件构造
的过程、系统和工具1.软件建设的一般流程(1)编程建筑语言从用途上划分编程语言(e.g.,C,C++,Java,Python),建模语言(e.g.,UML),配置语言(e.g.,XML),
北丐东邪
·
2020-09-12 09:59
哈工大
软件构造
学习笔记
java
哈尔滨工业大学2020春
软件构造
、形式语言与自动机及算法设计与分析期末试题
详见https://github.com/Itaaaachi/The-final-exams-of-HIT-2nd-spring因为属于疫情期间,所以
软件构造
、形式语言与自动机难度较低,
软件构造
的复习一定注意设计模式的记忆以及英文专有名词的记忆
北丐东邪
·
2020-09-12 08:25
哈工大
软件构造
算法设计与分析
第六章--第一节:可维护性的度量和构造原则
第六章:面向
软件构造
的可维护性的构建方法第一节:可维护性的度量和构造原则问题一:什么是软件的维护和演化维护的含义:软件工程中的软件维护是交付后修改软件产品以纠正故障,提高性能或其他属性,简而言之,软件维护
Kuwy_Lsr
·
2020-09-12 05:11
软件构造学习
软件构造
Lab6中确保Threadsafe的方法(以注释形式描述Threadsafe的练习)
具体代码在:这里(求打星!)在课堂上我们学到了四种确保threadsafe的方法:1.Confinement:限制数据共享.Don’tsharethevariablebetweenthreads.2.Immutability:共享不可变数据.Maketheshareddataimmutable.3.Threadsafedatatype:共享线程安全的可变数据.Encapsulatetheshare
不卷CV了
·
2020-09-11 14:57
HIT软件构造
第八章
软件构造
的性能——程序的动态分析方法与工具
emm……这节主要说的各个插件等应用,不会给出详细说明,因为如果每个都要说的话肝真的疼。再次只给出一个软件动态分析的方法和流程的大概描述,如果大家对某个工具或者方法感兴趣,度娘走你!(其实很多博客都有,讲的真心好……)1.动态程序分析(DynamicProgramAnalysis)动态程序分析:根据程序的一次或多次执行的过程与结果,分析代码在时空性能方面所展现的性质。为了使动态分析有效,目标程序必
琴弦上的南柯合浦
·
2020-09-11 09:18
软件构造复习记录
软件构造
复习总结(第六、七章)
可维护性的常见度量指标Cyclomaticcomplexity圈复杂度LinesofCodeLoC代码行数MaintainabilityIndex(MI)可维护性指数DepthofInheritance继承的层次数ClassCoupling类之间的耦合度Unittestcoverage测试代码覆盖率Coupling耦合度andCohesion聚合度Coupling耦合度:模块之间的依赖性。Conh
不要人夸名字好
·
2020-09-11 03:00
软件构造
复习总结(第三章)
数据类型Primitivetypes基本数据类型(8种)Objecttypes对象数据类型(referencetypes引用数据类型)Short、int、long、float、double、boolean、char、byte如:String、BigInteger只有值,没有ID(无法与其他值区分),不能赋值为null;immutable有值,也有ID;部分mutable,部分immutable在栈
不要人夸名字好
·
2020-09-11 03:59
软件构造
复习总结(第一、二章)
软件构造
的多维视图Build-timeCode-level:源代码:代码的逻辑组织:AST抽象语法树、函数、方法、类、接口等具体的逻辑实现(classdiagram类图)Component-level:
不要人夸名字好
·
2020-09-11 03:59
软件构造
复习总结(第四、五章)
代码可理解性1.度量标识符的平局长度命名独特性比例代码复杂度LoC代码行数注释密度(百分比)2.如何书写可理解性代码命名规范代码行最大长度,文件最大LoC注释布局:缩进、对齐、空行、分块等避免多层嵌套(增加复杂度)文件和包的组织3.包的相关原则REP复用/发布等价原则复用的粒度等价于发布的粒度(发布的都是应被复用的,未发布的不应被复用)CCPCommonClosurePrinciple共同封闭原则
不要人夸名字好
·
2020-09-11 03:59
面向对象(OOP)设计七大原则最易理解
里氏替换原则三.依赖倒置原则四.单一职责原则五.接口隔离原则六.迪米特法则七.合成复用原则一.开闭原则开闭原则(OpenClosedPrinciple,OCP)由勃兰特·梅耶提出,他在1988年的著作《面向对象
软件构造
程未满、
·
2020-09-11 00:22
第八章--第二节:动态程序分析方法与工具
第八章:
软件构造
的性能第二节:动态程序分析方法与工具问题一:性能调优的工具1.命令行分析工具(Command-lineprofilingtools)①jstat:获取JVM的heap使用和GC的性能统计数据
Kuwy_Lsr
·
2020-08-25 15:24
软件构造学习
Chapter8-面向性能的
软件构造
方法
目录目录8.1、Metrics,Princple,andMethodsofConstructionforPerformance8.1.1、PerformanceMetrics(性能度量指标)8.1.2、MemoryPerformance(存储性能)8.1.2.1、Threemodesofobjectmanagement8.1.2.2、JavaMemoryModel8.1.2.3、GarbageCo
子耶
·
2020-08-25 07:56
SC
数据结构和算法简介
所谓程序设计,即给出解决特定问题程序的过程,是
软件构造
活动中的重要组
pengyuhh
·
2020-08-23 21:27
数据结构与算法学习笔记
Expection_in_java
参考文章:李秋豪翻译的mit
软件构造
阅读材料,以及原文exceptioninsteadofreturn-1由于在之前一直用的都是C语言,所以刚开始使用java时我保留了一个非常不好的习惯,也因为这个问题带来了很多麻烦
pu1p
·
2020-08-23 20:31
软件构造
——Git学习
文章目录什么是版本控制使用github什么是github?新建仓库创建分支修改、提交pull操作使用Git管理本地仓库什么是Git?Git中文件的三种状态安装GitGit使用什么是版本控制在学习工具之前,首先要了解这些工具是来做什么的?对,版本控制!什么是版本控制?Whatis“versioncontrol”,andwhyshouldyoucare?Versioncontrolisasystemt
dhsjjwj
·
2020-08-23 18:14
软件构造
软件构造
-期末复习-设计模式总结(1):实验之外的设计模式列举
适配器模式适配器模式(AdapterPattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。装饰器模式装饰器模式(DecoratorPattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。介绍意图:动态
寒潭清htq
·
2020-08-23 08:23
软件构造
期末总结
软件体系结构风格
软件体系结构(SoftwareArchitecture,SA)定义:–组件:各种基本的
软件构造
模块(函数、对象、模式等);–连接件:将它们组合起来形成完整的软件系统;–物理分布:软件系统拓扑结构–约束:
嘿牛
·
2020-08-23 04:28
软件体系结构
软件构造
Lab1——实验报告
1.实验目标概述本次实验通过求解四个问题,训练基本Java编程技能,能够利用JavaOO开发基本的功能模块,能够阅读理解已有代码框架并根据功能需求补全代码,能够为所开发的代码编写基本的测试程序并完成测试,初步保证所开发代码的正确性。另一方面,利用Git作为代码配置管理的工具,学会Git的基本使用方法。1.基本的JavaOO编程l基于EclipseIDE进行Java编程l基于JUnit的测试l基于G
zero_from
·
2020-08-23 04:59
软件构造
软件构造
Lab3-实验报告
实验目标概述本次实验覆盖课程第3、5、6章的内容,目标是编写具有可复用性和可维护性的软件,主要使用以下
软件构造
技术:⚫子类型、泛型、多态、重写、重载⚫继承、代理、组合⚫常见的OO设计模式⚫语法驱动的编程
zero_from
·
2020-08-23 04:28
软件构造
从IT方法论来谈RUP
软件开发过程描述了
软件构造
、部署和维护的一种方法。统一过程(UnifiedProcess)是一种流行的构造面向对象系统的软件开发过程。
快乐学习
·
2020-08-22 02:02
RUP
Java GUI的简单使用
我接触java的GUI是为了给
软件构造
的实验应用做一个图形界面,因为我觉得这个应用用命令行实现实在是太难看了,所以决定用Java的GUI。本文章适合急需使用javaGUI的童鞋。
李诗庄
·
2020-08-21 13:47
程序设计与算法(二)期末考试之05:单词序列
每次只能改变一个字母2、转换过程中出现的单词(除开始单词和结束单词)必须存在于词典中例如:开始单词为:hit结束单词为:cog词典为:[hot,dot,dog,lot,log,mot]那么一种可能的最短变换是:
hit
读万卷书不如行万里路呀
·
2020-08-20 10:16
数据结构算法
文件操作时文件路径书写格式那些事儿
在《
软件构造
》课程的第一个实验中,遇到的问题主要都是来自于对java语言的不熟悉。
月馒头000
·
2020-08-19 19:43
软件构造
课程作业最终版帮助文档
这是我们运行程序后的主页面。工具栏中是我们实现的所有功能,这将在接下来的演示中一一展示。“口算练习正确率”这份柱状图与我们的在线数据库是连接起来的。当我们每次完成练习之后,他就会自己分析数据形成柱状图,其中竖轴为正确率,横轴为完成练习时的日期和时间。一、导入功能。1、浏览题目找到项目目录,选择其中的习题文件(exercise前缀),点击打开。在下一个界面就可以进行题目的预览。至于上面的功能,将在具
Loi_MeiCo
·
2020-08-19 08:21
Java
软件构造
课程实验总结2
实验二AbstractDataType(ADT)andObject-OrientedProgramming(OOP)1.实验指导:2.某些函数:2.1.求两点之间的最短逻辑距离:/***Getthedistanceoftwovertexinthegraph**@paramp1labelforthesourcevertex*@paramp2labelforthetargetvertex*@retur
xjh-上帝模式
·
2020-08-18 12:07
软件构造
实验2
2019年春季学期计算机学院《
软件构造
》课程Lab2实验报告目录1实验目标概述12实验环境配置13实验过程13.1PoeticWalks13.1.1GetthecodeandprepareGitrepository13.1.2Problem1
侯润桐
·
2020-08-18 12:36
[
软件构造
]实验回顾:Lab2
实验回顾:Lab2实验目标:ADTandOOP第一部分:PoeticWalksProblem1:TestGraphProblem2:ImplementGraphProblem3:ImplementgenericGraphProblem4:Poeticwalks第二部分:Re-implementtheSocialNetworkinLab1第三部分:PlayingChess设计ADT设计测试文件实验目
你就作吧
·
2020-08-18 12:31
软件构造
HIT
软件构造
lab2
1实验目标概述···12实验环境配置···13实验过程···13.1PoeticWalks·13.1.1GetthecodeandprepareGitrepository·13.1.2Problem1:TestGraph·13.1.3Problem2:ImplementGraph·13.1.3.1ImplementConcreteEdgesGraph·23.1.3.2ImplementConcre
你跺你也麻.
·
2020-08-18 12:30
软件构造
软件构造
复习2
软件构造
的质量指标3.1外部质量指标:面向用户⇒Correctness正确性按照预先定义的规约(spec)来执行保证正确性的方法:1)测试和调试2)防御性变成3)形式化方法⇒Robustness健壮性针对异常情况的处理出现
weixin_43845083
·
2020-08-18 12:00
软件构造
实验2构想
这个试验算是谢了一段时间了,写写停停,今天总算是在外国文学选读上写完了。首先,就是有向图的实现,这里它分为了两个,一个是以边存储:ConcreteEdgesGraph,一个是以点储存:ConcreteVerticesGraphConcreteEdgesGraph:他对接口的实现相对于ConcreteVerticesGraph比较简单一点,在这里我们定义的friendlyEdge类型中主要是存储的每
LoveMyxin
·
2020-08-18 12:55
HIT
软件构造
2020春Lab2
再此记录实验2的实现过程P1按照实验要求进行补充完整即可按照如上要求填写具体实现即可在实验中要求最后要将内容改成泛型,只需要将所有String改写成L即可GraphPoet在这里特此放出实现判断输入给定字符串否合法的代码,使用正则表达式privateStringsetLegal(Strings){//任意实数加后面的标点为合法if(s.matches("(-)?[0-9]+(\\.[0-9]+)?
shadowedstar
·
2020-08-18 11:42
软件构造
Lab2漫谈(1)
这次分为三部分。第一部分主要是考察对泛型编程的理解和应用。还有关于Set,Map,List等泛型数据的掌握情况。总结几个在实验中遇到的问题:1.如何删除List中的元素Listall=this.board.Piece();Iteratoriterator=all.iterator();while(iterator.hasNext()){PiecetmPiece=iterator.next();if
风声在耳
·
2020-08-18 11:20
软件构造课程博客
软件构造
Lab2总结
目录ADT详解可变类型与不可变类型详解断言导致代码覆盖度低的解决方法PlayingChess设计思路1:Position2:Piece3:Player4:Board5:Action6:Game7:MyChessandGoGameADT详解AF:抽象函数,代表值到其对应的抽象值的映射。RI:表示不变量,代表某个值必须满足的条件。safetyfromrepexpose:安全保证,描述ADT如何防止表示
不见伊笑怎为家
·
2020-08-18 11:47
软件构造
-实验总结2-Lab2
软件构造
-实验总结2-Lab2实验简介本次实验训练抽象数据类型(ADT)的设计、规约、测试,并使用面向对象编程(OOP)技术实现ADT。
Rewardgone
·
2020-08-18 11:06
软件构造
HIT
软件构造
Lab1--过程分析
HIT
软件构造
Lab1–过程分析由于实验中要求代码必须是个人完成,所以这里仅提供方法和部分代码。
川上富江o_o ....
·
2020-08-18 11:31
HIT
软件构造
实验2
HIT
软件构造
lab2实验总结1实验目标概述2实验环境配置3实验过程3.1PoeticWalks3.1.1GetthecodeandprepareGitrepository3.1.2Problem1:TestGraph3.1.3Problem2
franc0106
·
2020-08-18 11:29
Software
Construction
软件构造
Lab2实验要求总结
Problem1:TestGraph现在只测试string类型的顶点,之后会测试更多的类型(泛型)。在GraphStaticTest.java中写staticGraph.empty()的测试策略和测试方法,由于这种方法是静态的,所以它只需要一次实现。而且测试用例已经提供了,可以不用改。在GraphInstanceTest.java写所有的为instancemethods(实例方法)实现的测试策略以
alphaprime
·
2020-08-18 10:01
软件构造
lab2
【
软件构造
】实验笔记(二)Lab2-Abstract Data Type and Object-Oriented Programming
一、前言因为有一些事情耽误了,这次实验的笔记写的比较晚。而本次实验比上次就要复杂了很多,主要考察抽象数据类型和面相对象的编程方法。总的来说算法难度不是特别大,但是任务比较多,实现比较复杂,而且题目要求部分为英文(来自国外大学网站),所以也比较需要时间。二、实验要求1、PoeticWalks请阅读http://web.mit.edu/6.031/www/sp17/psets/ps2/,遵循该页面内的
Swocky
·
2020-08-18 10:03
软件构造
哈工大
软件构造
lab2实验中涉及的知识点
重写override(1)重写是子类对父类的允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变。即外壳不变,核心重写!(2)子类可以根据需要,定义特定于自己的行为。也就是说子类能够根据需要实现父类的方法。(3)重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。(4)Animala=newDog();a是Animal类型,但是它运行Dog类的的方法,因为在编译阶段,只是检查参
小爷_xs01
·
2020-08-18 10:35
软件构造
课程学习感悟及ADT与OOP理解总结
经过一学期对
软件构造
的学习,学到了不少知识,对
软件构造
过程及其各个细节都有了不少的认识,现在分享一些自己的学习经验以及对某些知识点的认识。
qq_40602271
·
2020-08-18 01:52
软件构造
第3章-ADT和OOP
ADT(AbstractDataType)抽象数据类型OOP(Object-OrientedProgramming)面向对象的程序设计数据类型基本数据类型对象数据类型int,long,byte,short,char,float,double,booleanClasses,interfaces,arrays,enums,annotations只有值,没有ID(与其他值无法区分)既有值也有ID不可变可
lxx_777999
·
2020-08-18 01:08
软件构造
系列学习笔记(3.5)—————ADT和OOP中的等价性
ADT和OOP中的等价性在很多场景下,需要判定两个对象是否“相等”,例如:判断某个Collection中是否包含特定元素。==和equals()有和区别?如何为自定义ADT正确实现equals()?目录什么是等价性和为什么需要等价性三种判断等价性的方法==vs.equals()不可变类型的等价性对象合约可变类型的等价性自动装箱和等价性什么是等价性和为什么需要等价性ADT是对数据的抽象,体现为一组对
fundament
·
2020-08-17 22:31
软件构造系列学习笔记
《
软件构造
》 第七章
软件构造
的健壮性
》》健壮性和正确性健壮性:系统在不正常输入或不正常外部环境下仍能够表现正常的程度,处理未期望的行为和错误终止。即使终止执行,也要准确/无歧义的向用户展示全面的错误信息。正确性:按照spec加以执行的能力。用户输入错误时,直接结束一般来说,对外的接口,倾向于健壮性;对内部的实现,倾向于正确性测量健壮性和正确性的方法:——外部观察角度:Meantimebetweenfailures(MTBF,平均失效
Element_0402
·
2020-08-17 19:29
《
软件构造
》 第六章 面向可维护性的
软件构造
》》可维护性的常见度量指标:1.圈复杂度CC:度量代码的结构复杂度CC=e-n+2(e是流程图中边的数量,n是流程图中节点数量)2.代码行数3.HalsteadVolume:基于源代码中(不同)运算符和操作数的数量的合成度量。4.可维护性指数(MI):计算介于0和100之间的索引值,表示维护代码的相对容易性。高价值意味着更好的可维护性。5.继承的层次数:表示扩展到类层次结构的根的类定义的数量。等级
Element_0402
·
2020-08-17 19:28
《
软件构造
》 第五章 基于可复用性的
软件构造
处理
》》可复用性高复用性的软件应具有如下特性:小、简单;与标准兼容;灵活可变;可扩展;泛型、参数化;模块化;变化的局部性;稳定;丰富的文档和帮助白盒复用:源代码可见,可修改和扩展。复杂度高,需要对内部代码充分了解黑盒复用:源代码不可见,无法修改代码;简单清晰,适应性差可复用性外部观察:——类型可变:能够复用的部分应该类型参数化,以适应不同的数据类型;复用的部分应该一般化;适应不同的类型,且满足LSP(
Element_0402
·
2020-08-17 19:28
《
软件构造
》 第二章
软件构造
的过程和工具
本章小结:过程:线性过程、迭代过程工具:SCM、Git》》
软件构造
的过程1.线性过程:个人理解就是一步接着一步进行,没有回头的操作——瀑布过程:需求,设计,实现,确认,维护——增量过程:在瀑布过程的基础上每次完成产品的一小部分
Element_0402
·
2020-08-17 19:28
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他