![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件构造
文章平均质量分 70
Cocopink
这个作者很懒,什么都没留下…
展开
-
10 Construction for Change 面向可维护性的构造技术
Outline§ Software Maintenance and Evolution§ Metrics of Maintainability§ Modular Design and Modularity Principles§ OO Design Principles: SOLID§ Grammar-based construction(正则表达式必考,其它是小知识点)– Grammar and Parser– Regular Expression (regexp)§ Software ma原创 2022-06-21 19:03:23 · 180 阅读 · 0 评论 -
里氏替换原则(LSP: The Liskov Substitution Principle)--协变与反协变
LSP要求:所有父类出现的地方,都要求可以使用子类进行代换,且不能出现异常。原创 2022-06-13 12:00:00 · 174 阅读 · 0 评论 -
JAVA集合类中的迭代器Iterator及相关的异常抛出
Iterator 就是JAVA种实现“for each"的原理;也就是说编译器会将for each循环转换为带有迭代器的循环注意:当使用for each遍历集合时不能对这个集合进行修改,否则可能发生异常java.util.ConcurrentModificationException,即下图的使用方法是错误的。具体解释可以参考这篇博文java.util.ConcurrentModificationException 异常原因和解决方法个人认为比较好的方法是改用迭代器中的remove,即修改成这样使用原创 2022-06-06 07:30:00 · 532 阅读 · 0 评论 -
凸包算法记录
凸包的定义:凸包(Convex Hull)是一个计算几何(图形学)中的概念。在二维欧几里得空间中,凸包可想象为一条刚好包住所有点的橡皮圈。绿绳上的所有点组成的点集就是凸包所以我们求解凸包的过程,就可以理解成用一条尽可能短的橡皮圈,圈住所有的点。最初始的想法思路对于这个点集中的任意两个点,如果他俩的连线使得剩下的点都在这条直线的一侧,那么这两个点就是凸包中的点;否则这两个点中至少有一个不是时间复杂度 O(n2 )–主要用在两两对点连线上小改进:没有必要两两都尝试连线,将它们放进坐标轴里,每原创 2022-05-30 15:40:06 · 122 阅读 · 0 评论 -
2022.05.18 8 Equality in ADT and OOP ADT和OOP中的“等价性”
8 Equality in ADT and OOP ADT和OOP中的“等价性”Objective of this lecture本章大纲§ Understand the properties of an equivalence relation. 等价关系§ Understand equality for immutable types defined in terms of the abstraction function and observations. 站在观察者角度,利用AF,定义不可变对原创 2022-06-03 09:30:00 · 130 阅读 · 0 评论 -
HIT软件构造笔记 面向对象的编程(Object-Oriented Programming (OOP))
面向对象的编程(Object-Oriented Programming (OOP))考点:小的知识点,多看例子,都是纠错程序基础概念Basic concepts: object, class, attribute, and method类成员、class methods类方法、instance methods实例方法、实例成员变量共享栈与新建栈的区别所有和类中的对象相关的数据(即使是基本数据类型)都存在堆里;方法里的基本数据类型存在栈里–考下图不考接口Interface– Interfa原创 2022-05-30 08:43:36 · 144 阅读 · 0 评论 -
HIT软件构造课堂笔记 第六章 抽象数据类型(ADT)
第六章 抽象数据类型(ADT)Abstract Data Type知识点较多的一章—每一部分都很重要!!!!信息隐藏/表示独立性数据抽象有一组操作所刻画的数据类型(传统的类型定义:关注数据的具体表示)抽象类型:focus on operations ,强调“作用于数据上的操作”,程序员和 client无需关心数据如何具体存储的,只需设计/使用操作即可。ADT是由操作定义的,与其内部 如何实现无关Classifying the operations of an abstract type构原创 2022-05-12 13:17:15 · 168 阅读 · 0 评论 -
HIT 软件构造笔记 第五章 规约Designing Specification
第五章 规约Designing Specification规约是什么规约不仅仅是注释,还包括方法名(对方法的声明);规约是脱离实现方法的!规约的用途–”防火墙“交流;用来做什么;怎么做;把对程序做出的假设或者要求写清楚。规约的设计决策代码中的”设计决策“:给编译器读(所以规约可以被编译器检查)注释形式的”设计决策“:给自己和别人读行为等价性(Behavioral equivalence) 站在客户端视角看行为等价性:如果都能满足用户的需求,那么就是行为等价的; 比如两个方法,一个原创 2022-05-08 12:00:00 · 204 阅读 · 0 评论 -
git新手入门--如何将本地java项目上传到GitHub(git-bash方法)
现在的Java IDE,比如eclipse、IEDA,都可以直接将项目推送到GitHub上,但是不知道是不是校园网的问题还是别的什么问题,我采用这种方式的时候总是不能成功,所以在查阅了网上的一些资料后,我总结出了直接用git bash 上传项目进行版本管理的方法。首先,安装好git,在你准备上传的所在文件夹下右键打开git bash,输入 git init可以看到提示说已经成功建立库然后,git add (文件/文件名)–可以多次用这条上传把想要上传的内容都上传后,使用git status看现原创 2022-05-04 16:47:03 · 1780 阅读 · 0 评论 -
HIT软件构造课程笔记Week1
标一星期两堂课,本周的两堂课,第一堂课是课程简介;第二堂课讲的主要是软件构造中的测试和测试优先的程序;主要重点有: 1. 测试的目的、分类、什么样的测试是好的测试 2. 黑盒测试、白盒测试 (本课侧重黑盒测试的学习) 3. 具体例子原创 2022-04-24 20:21:29 · 330 阅读 · 0 评论