自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UML复习——逻辑架构和UML包图

定义:架构是一组重要决策,其中涉及软件系统的组织,对结构元素及其组成系统所籍接口的选择,这些元素特定于其相互协作的行为,这些结构和行为元素到更大规模的子系统的组成,以及知道该组织结构(这些元素及其接口、协作和组成)的架构风格。(说明:每一层都代表了系统中一个特定的关注点或责任区域,而层内部的具体实现细节对于其他层来说是隐藏的。(补充:所有软件架构定义的共同主题是,必须与宏观事物有关——动机、约束、组织、模式、职责和系统之连接(系统之系统)的重要思想。~~LA定义了包,包中有关于软件类的定义。

2024-07-18 16:18:51 446

原创 UML复习—— UML类图(class diagram)

(3)组成要负责创建和删除其部分,(可以自己创建/删除,也可以和其他对象协作创建/删除部分)∴如果组成被销毁,其部分也必须被销毁,或者依附于其他组成。(3)【注】与领域模型不同(领域模型类图中的关联需要指明关联名称),设计类图中的关联不需要关联名称(但是有也合法)。(1)定义:类元是描述行为和结构特性的模型元素,是对众多UML元素的泛化,这些元素包括类、接口、用例和参与者。(4)特性字符串:{ordered}表示集合中的元素是有序的;类框图中,具有下划线的属性或方法表示静态(类级别)成员,而不是实例成员!

2024-07-18 16:18:47 651

原创 UML学习——GRASP:基于职责设计对象

(2)代表用例场景,在该场景中发生系统事件,通常命名为<UseCaseName>Handler或<UseCaseName>Coordinator或<UseCaseName>Session。内聚(更专业的说,是功能内聚)是对元素职责的相关性和集中度的度量。的定义:有经验的OO开发者(以及其他的软件开发者)建立了既有通用原则又有惯用方案的指令系统来指导他们编制软件。(1)代表整个“系统”、“根对象”、运行软件的设备或主要子系统,这些事外观控制器的所有变体。(4)会话是与参与者进行交谈的实例。

2024-07-18 16:18:41 215

原创 UML学习——GoF模式

问题:当有特殊考虑(如存在复杂创建逻辑、为了改良内聚而分离创建职责等)时,应该由谁来负责创建对象?(七)观察者observer/发布-订阅(publish-subscribe)解决方案(建议):创建称为工厂的纯虚构对象来处理这些创建职责。解决:单实例类模式(∵在该过程中只需要一个工厂实例)工厂模式带来的问题:谁创建工厂,如何访问工厂?(一)适配器模式(adaptor)(二)工厂模式(factory)2.名称:工厂(factory)(五)组合(composite)(六)外观模式(facade)

2024-07-18 16:18:36 205

原创 UML复习——操作契约operation contract

④最后,后置条件并不总是需要的,而且也不需要为所有的系统操作生成完整详细的后置条件;如果在思考操作契约过程中有新的发现,那就需要对领域模型进行改进(~在迭代和进化式方法中,所有分析和设计制品都不是完善的,要根据新发现对其进行改进)。②SSD(系统顺序图)中的是系统事件,而在操作契约中描述的是系统操作。操作契约中的系统操作对应于SSD中的系统事件。②系统操作可以在绘制SSD时确定(∵SSD中展示的输入的系统事件对应处理该事件的系统操作)①系统操作是作为黑盒构件的系统在其公共接口中提供的操作。

2024-07-17 08:37:43 339

原创 UML复习——系统顺序图(SSD)

1.系统顺序图表示的是,对于用例的一个特定场景,直接与系统交互的外部参与者发生的事件,其顺序和系统之内的事件。所有系统被视为黑盒,SSD强调的是从参与者到系统的跨越系统边界的事件。(3)系统事件的命名:以动词开始,e.g.增加、输入、结束、产生,以此强调这些事件是命令或请求。2.SSD中的操作可以在操作契约中进行分析,在词汇表中详细描述,并作为设计协作对象的起点。~~系统行为(system behavior):描述系统做什么,而无需解释如何做。目标:确定系统事件->为用例场景创建系统顺序图。

2024-07-17 08:37:36 166

原创 UML复习——领域模型

e.g.(见下图)Cashier类中的currentRegister属性是不合适的,因为currentRegister的类型是Register,并不是简单数据类型(Number或String)。)在设计模型中,属性可以是任何类型。1.定义:关联是类(更准确的说,是类的实例)之间的关系,表示有意义和值得关注的连接。⑤具有以上性质的一个或多个类型的抽象,e.g.销售领域的商品标识符是诸如UPS和EAN这样的类型的泛化。①定义:数据类型指的是一组值,这组值的表示本身不具有任何含义(在我们的模型或系统的语境下)。

2024-07-17 08:37:31 1022

原创 UML复习——一些极其重要的知识点

种:低耦合模式、高内聚模式、控制器模式、多态模式、防止变异模式、纯虚构模式、创建者模式、信息专家模式、间接性模式。,面向对象分析,在这个阶段,开发者是被和定义系统中的对象、他们的关系以及他们的行为。③前置条件和后置条件:子类的前置条件不能比基类的更严苛;子类的后置条件不能少于基类的后置条件。是图形化表示法的事实标准,用来绘制和展示与软件相关的图形(以及文字)。、用例驱动、基于架构、风险驱动。模式通常分为三类:创建型模式、结构性模式、行为性模式;的结果,开发者创建更详细的UML。的子类,那么程序中的对象T。

2024-07-17 08:37:26 200

原创 JAVA学习——面向对象思考

可以替代String类。而且他们提供了add,insert,append(这些是String中没有的,可是哦,String可以使用重载的“+”实现字符串的拼接)。(4)①boxing自动装箱:就是自动将int基本类型转化为Integer对象。//对象intArray[0]等被自动开箱unboxing为int值,然后相加。//注意:这里并不是拼接输出,因为没有字符串,这里的+做的就是简单的加法。注意:这里的“+”做加法,不是字符串的拼接,因为没有字符串。(2)优势:使用包装类可将基本数据类型作为对象处理。

2024-07-17 08:37:20 207

原创 JAVA学习——随记

(2)equals(名字)和compareTo(名字)判断两个引用变量的内容是否相同。2.java技术的三大特征:虚拟机、垃圾回收器、代码安全。1. (1)==只判断两个引用变量是不是指向同一个对象。3.面向对象的三个主要特征:继承、封装、多态。4.实现用户界面功能的包是java.awt。

2024-07-17 08:37:06 118

原创 JAVA学习——抽象类和接口

6.(1)shallow copy:拷贝对象时仅拷贝对象本身,包括对象中的基本变量,但不拷贝对象包含的引用指向的对象;(2)deep clone:不仅拷贝对象本身,而且拷贝对象包含的引用指向的所有对象。在深复制中,如果一个数据域是对象的引用,那么复制的就是它的内容,即。所有的类都有一个共同的根Object类,但是接口没有共同的一个根。如果一个数据域是对象,那么复制的就是对象的引用,而不是它的内容,即浅复制前后的这两个数据域指向同一个对象。1.包含抽象方法的类一定是抽象类,但抽象类不一定包含抽象方法。

2024-07-17 08:37:01 353

原创 JAVA学习——异常处理和文本I/O

<1>Error类的子类的例子:①LinkageError:一个类对另一个类有某种以赖,但是在编译前者后,后者进行了修改,变得不兼容。finally语句必须跟在try或catch块后,可以有多个catch块,但只能有一个finally块。File类包含了获得一个文件/目录的属性,以及对文件/目录进行改名renameTo(File对象名)和删除delete()的方法。如果没有发生异常,就跳过catch块。:同输入/输出相关的操作,如:无效的输入、读文件时超过文件尾、打开一个不存在的文件等。

2024-07-17 08:36:55 660

原创 JAVA学习——继承和多态

方法匹配:编译器在编译时根据参数的类型、参数的个数、参数的顺序决定调用哪一个方法,这是由引用变量的声明类型决定的;方法绑定是指方法在几个子类中都可以被执行,JVM在运行时动态绑定方法的执行,这是由变量的实际类型决定的。subtype的对象也是supertype的对象,但是supertype的对象不是subtype的对象。构造函数调用顺序:自己的构造函数->父类的构造函数->父类的父类的构造函数->……重写具有相同的签名和返回值类型。——————————4.ArrayList类————————————

2024-07-17 08:36:39 468

原创 JAVA学习——对象和类

不提供mutator methods(就是set函数),不提供返回类型为引用类型的accessor method(就是返回类型为引用类型的get函数)。(1)内容不能改变的对象称为immutable object,其对应的类称为immutable class。1.之前提到可以使用Math.random()生成[0,1)的随机数。2.(1)instance variable属于特定的实例,不能被同一个类的不同对象共享;访问类的隐藏数据域;④nextInt(n)返回[0,n)之间的随机int数。

2024-07-17 08:36:35 173

原创 JAVA学习——数组

整理不易,亲亲点个赞呗~~

2024-07-17 08:36:29 91

原创 JAVA学习——方法

其中,public static就是修饰符;max(int num1,int num2)就是method signature.不能说修饰符不同或返回类型不同就是重载方法。然后编译器会根据方法签名决定使用哪个方法。使用相同的方法名,但必须是不同的参数列表来重载方法。修饰符+返回类型+方法名(参数列表){方法体;

2024-07-17 08:36:20 109

原创 JAVA知识点总结——数学函数、字符和字符串

利用溢出特点:赋给char类型的变量超过char类型最大值的整数,如果发生溢出,则输出的会是一个不同的字符,而不是原来的整数,说明char只能存储16位数据,即2个字节。,charAt(index),toUpperCase(),toLowerCase(),concat(s1)将原字符串与s1连接,contains(s1),4.java中的类Character提供方法:isDigit(ch),isLowerCase(ch),toLowerCase(ch)。Math.exp(x)返回e的x次方;

2024-07-17 08:36:12 269

原创 JAVA知识点总结——基本程序设计

整理不易,亲亲点个赞呗~~

2024-07-17 08:36:07 91

原创 JAVA知识点总结——介绍

2.(1)JVM(Java virtual machine):运行java程序的所有平台都需要java虚拟机。∵java在编译时生成的是字节码,字节码是体系结构中立的,可以在任何带JVM的平台上运行,JVM会将字节码解释成适合不同平台的可执行代码。(3)JDK(java development kit java开发工具包):包括JRE和java API(java应用程序接口)。(2)JRE(java running environment):包括JVM软件和java类库。②java中的类{}后面没有分号!

2024-07-17 08:36:01 120

原创 UML复习——UML交互图(顺序图和通信图)

(1)前面交互图实例中的框图——生命线(lifeline)框图,表示的是交互的参与者(participant),注:生命线框图并不等同于类的实例。(1)交互具体值(interaction occurrence)/交互使用(interaction use):是在交互中引用另一交互。(1)创始消息found message:最开始的消息,在图中表示为实心圆作为起点。(1)主动对象即在其自己的执行线程中运行或控制自己的执行线程的实例。(1)链是连接两个对象的路径,指明了对象间某种可能的导航和可见性。

2024-07-16 12:53:50 689

原创 UML学习——可见性

E.g.在上图中,Sale将ProductDescription传递给SalesLineItem的初始化方法,在初始化方法中,将参数分配给属性,以此建立起属性可见性。1.当B被声明为A的方法内的局部对象时,存在A到B的局部可见性——相对临时(∵仅存在于方法的范围内)(1)当B作为参数传递给A的方法时,存在A到B的参数可见性——相对短暂(∵只在方法的范围内存在)1.当B对于A是全局时,存在A到B的全局可见性——相对持久。当B作为A的属性时,存在A到B的属性可见性——相对持久。

2024-07-16 12:53:23 177

原创 C++知识点总结——函数的可见性、this指针

12.static member function不能声明为const(理解:const是指不能改变对象的成员,但是静态数据成员不属于某一具体的对象;构造函数的调用就是按照定义顺序来的,而析构函数的顺序(每一部分与构造函数调用顺序相反):非静态局部->main->静态->全局。1. public:就是可以被程序中的其它函数调用(如main函数,其他类的成员函数)。(2)this指针的类型取决于对象的类型和使用this指针的成员函数是否为const。2.private:只能被自己类或友元的成员函数访问。

2024-07-16 12:52:31 210

原创 C++知识点总结——运算符重载

7.(1)conversion constructor(转换构造函数):将其他的类类型或基本类型的对象转化为特定类(就是咱这个转换构造函数所在的类)的对象。(2)重载的conversion operator转换运算符(cast operator):将类转化为其他的用户自定义的类型或基本类型。2.重载为非静态成员函数或友元函数(如果非成员运算符函数必须访问该类的私有或受保护成员时,可声明该函数为该类的友元函数)(3)必须重载为成员函数的运算符:()[ ] -> 任何赋值运算符(如=)

2024-07-16 12:52:24 328

原创 C++知识点总结——Inheritance继承

4. inheritance继承的(1)构造函数调用:先调用自己的构造函数(但最后executing),然后一次向上调用他的上级基类的构造函数(最后调用最基类的构造函数(但你最先executing))(2)析构函数调用:和构造函数的调用顺序相反,首先是调用并执行这个派生类对象的析构函数,然后一级一级向上调用析构函数。派生类的对象可以被当成基类的对象,但是基类的对象不是派生类的对象。2.派生类的构造函数必须调用基类的构造函数来初始化它继承的那些成员。多继承是指一个派生类有多个基类。

2024-07-16 12:52:12 200

原创 C++知识点总结——polymorphism多态

(1)基类的成员函数声明virtual即可,派生类可不再声明virtual了(但最好还是声明下),不过需要重写虚函数(如果不重写,就会继承基类的虚函数)6.虚析构函数:(当类中有虚函数时,记得提供虚析构函数,以确保当通过基类指针删除派生类对象时,将调用自定义派生类析构函数)纯虚函数pure virtual function:(可以不用写函数体)(其实就是在虚函数后面加一个“=0”)2.downcasting(向下转化)将基类指针转化为派生类指针,然后就可访问派生类特有函数。

2024-07-16 12:52:07 130

原创 C++知识点总结——输入/出流

11. 成员函数read:cin.read(数组名,长度)将指定数目的字符输入到数组中(如果读入的字符少于指定数目的话,就会set failbit)16.成员函数flags:cout.flags()返回当前的格式设置;14. 字宽设置(not sticky):成员函数width:cin.width(int)或cout.width(int)(2)cin.get(char)(3)cin.get(数组名,数组长度(,终止符))流操作符setw:cin>>setw(int)或cout<<setw(int)

2024-07-16 12:51:54 257

原创 工科数学分析复习——第七章多元函数微分学

整理不易,亲亲点个赞呗~~

2024-07-16 12:51:45 114

原创 计算机组成复习——第三章基本输入/输出知识点总结

整理不易,亲亲点个赞呗~~

2024-07-16 12:51:31 96

原创 计算机组成复习——第六章流水线知识点总结

整理不易,亲亲点个赞呗~~

2024-07-16 12:51:24 254

原创 计算机组成复习——第五章基本处理单元知识点总结

整理不易,亲亲点个赞呗~~~

2024-07-16 12:51:19 92

原创 计算机组成复习——第二章机器指令知识点总结

整理不易,亲亲点个赞呗~~

2024-07-16 12:51:11 225

原创 计算机组成复习——第八章存储器系统知识点总结

整理不易,亲亲点个赞呗~~

2024-07-16 12:51:06 433

原创 计算机组成复习——第九章算术运算

2024-07-16 12:51:01 72 1

原创 计算机组成复习——第一章计算机的基本结构

整理不易,亲亲点个赞呗~~

2024-07-16 12:50:51 95

原创 UML学习——用例关联

(4)附加用例(addition use case):被其他用例包含的用例,或者扩展、泛化其他用例的用例。类似于java中的继承,e.g.支付用例,对他泛化的用例可以是信用卡支付、现金支付,就是在支付的基础上,具体化了支付方式(继承)(3)基础用例(base use case):包含其他用例的用例,或者是被其他用例扩展或泛化的用例。在下图中,扩展点是基础用例的标记,扩展用例是通过该标记引用扩展点的,∴基础用例的步骤编号可以改变,而不会影响扩展用例。4.扩展在用例图中的表示:扩展用例指向基础用例;

2024-07-15 10:39:30 414

原创 编译原理复习——自顶向下解析

(说明):第一个L是left-to-right,从左向右扫描;另一种解析算法是预测型算法——向前看几个输入,预测使用哪个产生式。包括:递归下降解析、LL(1)解析。2.终结符的first集就是它本身,非终结符的first集就是它传递闭包的所有首终结符的集合。引言:最左DFS/最左BFS都是回溯(backtracking)型解析算法。1.A的follow集就该文法的所有句型中跟在A后面的那个终结符的集合。如果一个非终结符的所有产生式的。,则该文法是可预测解析的。集———————————集——————————

2024-07-15 10:39:03 223

原创 编译原理复习——文法grammar

【注】一定要将derivation和reduction区分开——derivation从起始符号开始推导(将非终结符换成产生式右边的内容),而规约是从给的句子开始倒推(将产生式右边的内容换成左边的非终结符,直至换到起始符号)。解析的结果数据的结构是解析树parsing tree/语法树syntax tree(递归)即派生对于字符串的结构并不是唯一的,但是解析树对于字符串的结构是唯一的。②派生对于一个字符串的结构并不是唯一的,但是最左派生和最右派生对于一个字符串的结构是唯一的,而且他俩唯一对应解析树。

2024-07-15 10:38:47 646

原创 编译原理复习——词法分析Lexical analysis

否则就将它从这个集合中移出去(死掉的状态也要移出去和死掉的状态待在一起)5.将所有中间可以到达可接受态的状态集记录下来->如果最后到不了可接受态,可以退回中间态,并给出相关建议。当所有自动机都卡住的时候,报告上一次匹配,并从上一次匹配之后的下一个字符重新开始新一轮的匹配。(1)前缀prefix:就是从末尾开始移除0或多个字符(可以全部移除,剩下ε)(2)后缀suffix:就是从开头开始移除0或多个字符(可以全部移除,剩下ε)(3)子字符串(substring):就是去掉任意的前缀和后缀,剩下。

2024-07-15 10:38:36 806

原创 编译原理复习——概述

补充:C++的编译器是compiler(编译器将源程序转化为汇编语言,然后由汇编器将汇编语言转化为重定位机器语言,最后由加载器/链接器将重定位机器语言转化为目标机器语言)~~整段翻译;四、中间码生成(IR(intermediate representation) generation)——三地址码。预处理器(preprocessor):可以去掉程序中的注释,并将其他文件的内容嵌入到源文件中。(2)通过空格、tab、换行符断词,那如果遇到像“(”和“y”之间没有空格的情况怎么办。

2024-07-15 10:38:18 210

原创 计算机网络知识点总结——应用层之SMTP

6.【析】SMTP用于将邮件从发送方的用户代理传送到发送方的邮件服务器,或从发送方的邮件服务器传送到接受方的邮件服务器。而邮件的接收(即将文件从接收方的邮件服务器传送到接收方的用户代理)是由邮件访问协议完成的。特殊,如果接受方的邮件服务器发生了故障,那么此时发送方的邮件服务器不会将邮件交付给接受方的邮件服务器,而是保存在发送方的邮件服务器的报文队列中(∵。(2)SMTP有两个部分:运行在发送方邮件服务器的客户端和运行在接收方邮件服务器的服务器端(每台邮件服务器及运行客户端也运行服务器端)。

2024-07-15 10:38:01 287

空空如也

空空如也

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

TA关注的人

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