![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件构造
文章平均质量分 85
qw呀
这个作者很懒,什么都没留下…
展开
-
软件构造 git相关
在第三讲中我们学习了Software Configuration Management(SCM),以SCI为软件中发生变化的基本的单元,其中的CDMB是配置管理数据库,存储软件的各配置项随时间发生变化的信息+基线。 而git则是一个SCM tool 在git的仓库中,.git文件时本地的CDMB,工作目录(Working directory)是本地文件系统,暂存区(staging area)隔离了工作目录和git仓库。其中的文件属于三个阶段之一:已修改、已暂存、已提交。git的所有操作都是在一个图数据结构翻译 2022-06-12 19:27:10 · 121 阅读 · 1 评论 -
JAVA 正则表达式
基于I/O的输入流 应用需要从外部读取文本数据, 在应用中做进一步处理。 具体来说,读取的一个字节或字符序列可能是:输入文件有特定格式,程序需读取文件并从中抽取正确的内容。从网络上传输过来的消息,遵循特定的协议。用户在命令行输入的指令,遵顼特定的格式。内存中存储的字符串,也有格式需要。语法使用grammar判断字符串是否合法,并解析成程序里使用的数据结构正则表达式通常是递归的数据结构终止节点:语法中的文字字符串用语法定义一个“字符串”terminals 终止节点、叶节点nonterminal 非终止节点(遵翻译 2022-06-13 17:30:00 · 147 阅读 · 0 评论 -
面向可维护性的设计模式
定义: 工厂方法模式也被称为虚拟构造器。当client不知道要创建哪个具体类的实例,或者不想在client代码中指明要具体创建的实例时,用工厂方法。意图: 定义一个用于创建对象的接口,让其子类来决定实例化哪一个类,从而使一个类的实例化延迟到其子类。主要解决: 主要解决接口选择的问题。应用实例: 需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。优点:一个调用者想创建一个对象,只要知道其名称就可以了。扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。屏蔽翻译 2022-06-10 23:45:00 · 180 阅读 · 0 评论 -
软件构造 ADT和OOP中的“等价性”
等价关系是指对于关系E ⊆ T x T ,满足:自反性: x.equals(x)必须返回true对称性: x.equals(y)与y.equals(x)的返回值必须相等。传递性: x.equals(y)为true,y.equals(z)也为true,那么x.equals(z)必须为true。从使用者/外部的角度去观察:我们说两个对象相等,当且仅当使用者无法观察到它们之间有不同,即每一个观察总会都会得到相同的结果。例如对于两个集合对象 {1,2} 和 {2,1},我们就无法观察到不同:|{1,2}| = 2,翻译 2022-06-10 08:15:00 · 99 阅读 · 0 评论 -
软件构造 面向对象编程
对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。概念:一个对象是一堆状态和行为的集合。状态是包含在对象中的数据,在Java中,它们是对象的fields。行为是对象支持的操作,在Java中,它们称为methods。类是一个模板,它描述一类对象的行为和状态。每个对象都有一个类类定义了属性类型(type)和行为实现(implementation)简单地说,类的方法是它的应用程序编程接口(API)。类成员变量(class variable)又叫静态变翻译 2022-06-09 21:08:07 · 190 阅读 · 0 评论 -
抽象数据类型ADT(2)
-我们通过为每个操作创建测试来为自动测试构建测试套件-这些测试不可避免地会相互影响。-测试构造器、生产器和变值器的唯一方法是对结果对象调用观察器,同样,测试观察器的唯一方法是创建对象供他们观察。▪ 测试creators, producers, and mutators:调用observers来观察这些operations的结果是否满足spec;▪ 测试observers:调用creators, producers, and mutators等方法产生或改变对象,来看结果是否正确。▪ 风险:如果被依翻译 2022-06-07 23:08:26 · 269 阅读 · 0 评论 -
抽象数据类型ADT(3)
回想一下,当且仅当类型的值在创建后从不改变时,该类型才是不可变的。随着我们对抽象空间A和表示空间R的新理解,我们可以完善这一定义:抽象值永远不应改变。但是只要它继续映射到同一个抽象值,实现(implementation)就可以自由地改变表示值,这样客户就看不到变化。这种变化被称为有益的可变性.这种较弱的RI允许一系列RatNum算术运算来简单地忽略将结果减少到最低项。但是,当要向人显示结果时,我们首先要简化它,也就是说:参与运算时,可以有公约数;显示输出时,需要简化(没有公约数)请注意,这个toS原创 2022-06-07 22:00:00 · 140 阅读 · 0 评论 -
抽象数据类型ADT(1)
除了编程语言所提供的基本数据类型和对象数据数据类型,程序员可以定义自己的数据类型。原创 2022-06-06 11:26:02 · 249 阅读 · 0 评论 -
软件构造 ADT和OOP中的“等价性”
一、等价性equals() 和 ==1.1 等价关系 等价关系是指对于关系E ⊆ T x T ,满足: 自反性: x.equals(x)必须返回true 对称性: x.equals(y)与y.equals(x)的返回值必须相等。 传递性: x.equals(y)为true,y.equals(z)也为true,那么x.equals(z)必须为true。 从使用者/外部的角度去观察: 我们说两个对象相等,当且仅当使用者无法观察到它们之原创 2021-07-07 22:06:08 · 140 阅读 · 0 评论 -
软件构造笔记——面向可维护性的构造技术
一、基于状态的构造技术 基于状态编程 使用有限状态机来定义程序的行为、使用状态来控制程序的执行 根据当前状态,决定下一步要执行什么操作、执行操作之后要转移到什么新的状态 1.1 基于自动机的编程 定义: 基于自动机的编程是一种编程范例,其中该程序或程序的一部分被认为是有限状态机(FSM)或任何其他形式自动机的模型。 将程序视为有限自动机。 每个自动机一次只能执行一个“步骤”,并且程序的执行分为多个步骤。 这些步骤通过更原创 2021-07-07 20:57:48 · 85 阅读 · 0 评论