摘要: ​ 阅读全文
posted @ 2021-07-06 18:30 savagefoo 阅读(21) 评论(0) 推荐(0) 编辑
摘要: ​ 阅读全文
posted @ 2021-07-06 18:30 savagefoo 阅读(20) 评论(0) 推荐(0) 编辑
摘要: ​ 阅读全文
posted @ 2021-07-06 18:30 savagefoo 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 通过案例来学习用例图 案例一:电梯系统 电梯使用者就是参与者,参与者使用者与电梯系统有两个简单的交互,也就是有两个简单的用例。 一个用例是按下楼层中的按钮,即等待电梯来接用户,一个用例是按下电梯里面的按钮,选择目标楼层。 案例二:在线商店系统 在线商店的顾客就是在线商店系统的参与者,参与者与在线商店 阅读全文
posted @ 2021-07-06 18:27 savagefoo 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 类建模获得的结果是类图 什么是类图 类图表达的是在软件系统中的实体类和它们之间的关系。 类图表达了模型的静态结构,包括类以及类的内部结构和类之间的关系。 分析阶段的类图主要是针对功能性需求的一种静态视图。 类建模的两种方式 名词抽取方法 CRC卡片方法,Class Responsibility Co 阅读全文
posted @ 2021-07-06 18:27 savagefoo 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 不做笔记 阅读全文
posted @ 2021-07-06 18:26 savagefoo 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 结构化范型 事实上,结构化范型一开始也获得了很大的成功,但是,随着软件系统的规模越来越大,但软件系统的代码量越来越大,超过50000行的时候,结构化范型暴漏出越来越多的问题。 例如:维护问题,原因在于结构化方法只能是面向操作或者面向数据,不能二者兼备。 面向对象范型 数据和操作都是同等重要,而对象把 阅读全文
posted @ 2021-07-06 18:26 savagefoo 阅读(73) 评论(0) 推荐(0) 编辑
摘要: UML的简介 UML——Unified Modeling Language(统一建模语言) 统一建模语言是为软件架构时,设计时,为程序员提供一种图形化建模语言的工具。 UML的历史 UML图 UML定义了各种图,如: use case diagram 用例图 activity diagram 活动图 阅读全文
posted @ 2021-07-06 18:26 savagefoo 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 统一过程 统一过程是现在最好的面向对象范型 分析工作流是为了更深的理解需求,使设计和实现目标软件系统更容易。 统一过程覆盖了三种类,包括 实体类 边界类 控制类 分析工作流涉及的是实体类 面向对象分析的三项工作 1.用例建模 用来确认目标系统如何来提供一些功能(不考虑这些功能的先后顺序),所获得结果 阅读全文
posted @ 2021-07-06 18:26 savagefoo 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 类与对象 类:支持继承的抽象数据类型 对象:对象所派生出来的实例 例如: 人就可以被定义为一个类 人有很多属性,如:身份证号,名字等等。 学生也可以定义为一个类,而且学生也是一种人,学生可以称为人的子类 学生可以继承人的属性以及方法 学生还可以具有自己的属性,如:所在学校名称,学生号等等 用UML类 阅读全文
posted @ 2021-07-06 09:11 savagefoo 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 动态建模的产品是状态图 状态图是对类的补充,它描述了一个类的实例可能的各种状态以及造成状态改变的事件。 一个事件可能是造成状态改变的行为,也有可能是从另一个类传来的消息或者满足一些条件 不是所有类都需要状态图,有些类在事件下或条件下会发生某些状态的明确改变,这样子的类才需要做状态图 案例一 用状态图 阅读全文
posted @ 2021-07-06 09:11 savagefoo 阅读(368) 评论(0) 推荐(0) 编辑
摘要: CRC Cards(CRC卡片) CRC卡片方法,Class Responsibility Collaboration(类 职责 协作) CRC卡片就是指对每一个类都贴一张卡片, 类名 功能(职责) 类将激活的其他的类(协作) 缺点 需要较多的领域知识 优点 明确的显示出缺少的或不正确的事项 非常适 阅读全文
posted @ 2021-07-06 09:11 savagefoo 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 架构设计 例子:设计一个人 人体骨骼就是软件架构,软件架构描述了软件的整体结构,以及在概念上整合到一起的方法。 软件架构例子 模块设计 模块——器官 功能独立 可集成的 模块化规则 信息隐藏 高内聚 低耦合 数据库设计 数据可——大脑 储存数据 处理数据 数据库系统——数据库提供商提供数据库服务 大 阅读全文
posted @ 2021-07-06 09:11 savagefoo 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 面向对象设计包括三项工作 1、构建交互图 设计者为分析阶段定义的每个用例场景创建一个序列图或一个协作图。 2、完成类图 在初步类图的基础上,设计人员完成了一个包含各种类及其属性和方法的详细类图。 详细类图包括 实体类 边界类 控制类 3、进行详细设计 然后,设计人员为每个方法指定要实现的算法,以及每 阅读全文
posted @ 2021-07-06 09:11 savagefoo 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 四代语言 第一代语言:机器语言(0/1二进制的) 第二代语言:汇编语言(符号机器语句) 第三代语言:高级语言(COBOL, Fortran, C++, Java, C, Basic, …) 阅读全文
posted @ 2021-07-06 09:11 savagefoo 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 在一个软件系统中,有时候有些类是互相存在关联关系的 UML表示法 例如: 学生修课程 顾客下订单 所以student和course,customer和order是关联关系,如果两个类不止一种关联关系,要把关联东西一一列出,例如: 阅读全文
posted @ 2021-04-30 14:58 savagefoo 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 数据封装 例子: 为大型主机设计操作系统。已决定将提交给计算机的批处理任务分为高优先级、中优先级或低优先级。传入批处理任务必须有三个队列,每个任务类型一个队列。当用户提交任务时,该任务将被添加到相应的队列中,当操作系统确定某个任务已准备好运行时,该任务将从其队列中删除,并为其分配内存。 用结构化语言 阅读全文
posted @ 2021-04-29 11:11 savagefoo 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 软件历史 第一代计算机,1945~1957,真空管计算机。 第二代计算机,1958~1964,晶体管计算机。 第三代计算机,1965~1970,集成电路计算机。 第四代计算机,1971~现在,大规模集成电路——个人计算机。 软件概念 机器可读形式的代码 临时和永久的数据 所有的文档 规范文档 设计文 阅读全文
posted @ 2021-04-28 22:12 savagefoo 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 困难与难点 知识与技术 大多数开发人员在学校学习计算机技术。他们不善于与用户沟通 开发者不能实现适当的需求文档 许多开发人员缺乏领域知识。 用户无法描述他们的需求 "我知道你相信你听懂了你认为我说的话,但我不确定你是否意识到,你听到的不是我的意思!"——美国副总统 我们非常了解自己的脚,但我们不能准 阅读全文
posted @ 2021-04-28 22:10 savagefoo 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 耦合 模块之间的交互程度 模块之间的耦合度越弱越好,越强越差 耦合的五种分类或等级 1.内容耦合 2.公共耦合 3.控制耦合 4.印记耦合 5.数据耦合 1、内容耦合 如果一个模块直接引用另一个模块的内容,那么两个模块就是内容耦合的。 内容耦合的缺点: 图中代码示例:在Order类的内部中,实例化P 阅读全文
posted @ 2021-04-28 21:00 savagefoo 阅读(757) 评论(0) 推荐(0) 编辑
摘要: 先理解三个重要名词 客户——客户是指让软件产品得到开发的个人或组织,开发经费是由客户提供的的。 开发人员——开发人员是负责建造软件产品组织的成员 用户——用户受客户委托,代表客户使用该软件,例如:银行的ATM系统的客户是银行,也就是说是有银行来投资建设的ATM系统,而该系统的用户是该银行的广大储户。 阅读全文
posted @ 2021-04-28 20:59 savagefoo 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 测试 测试,是一个软件过程的组成部分,是一个贯穿于软件过程的行为,仅仅在工作流结束之后再测试该工作流的产品是远远不够的。 测试由开发人员和软件质量保证人员共同完成。 两种测试类型 基于非执行的测试和基于执行的测试 基于非执行的测试 测试对象包括各种文档和代码 基于非执行测试的方法包括 评审软件,仔细 阅读全文
posted @ 2021-04-28 20:59 savagefoo 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 如何获取软件需求 如何获取需求是非常现实的问题,不要有任何浪漫的想法。 获取需求要做四步工作 1.准备阶段 2.需求的抽取、记录和分析 3.完成需求文档 4.需求的确认 1.准备阶段 确定本次需求调研获取或收集什么 明确本地调研的内容 应该事先列出问题清单 通常,用户没有耐心细致的回答问题,所以题目 阅读全文
posted @ 2021-04-28 20:59 savagefoo 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 快速原型是一种非常有效的获取需求的手段,是一种能够帮助客户方,用户方和开发方快速准确的获取业务需求的一种方法和手段 目标软件系统的一个模型 它不是真正的实现了软件系统,它只要能够反映一些关键的功能,界面以及必要的一些交互即可,其目的就是要在目标软件系统设计和开发之前,让客户和用户能够看得到,能够提前 阅读全文
posted @ 2021-04-28 20:59 savagefoo 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 什么是模块? 语义上连续的一系列计算机语句,由边界符界定,有一个聚合标识符。 例如:在面向对象语言中,一个类,一个方法就是一个模块。在结构化的程序,一个函数可以称为一个模块 将产品分解成模块的方法 模块内最大交互,模块之间最小交互 模块的内聚 一个模块内的交互程度 模块的耦合 模块间的交互程度 内聚 阅读全文
posted @ 2021-04-28 20:59 savagefoo 阅读(559) 评论(0) 推荐(0) 编辑
摘要: 什么是字符编码 计算机要想工作必须通电,即用‘电’驱使计算机干活,也就是说‘电’的特性决定了计算机的特性。电的特性即高低电平(人类从逻辑上将二进制数1对应高电平,二进制数0对应低电平),关于磁盘的磁特性也是同样的道理。结论:计算机只认识数字 很明显,我们平时在使用计算机时,用的都是人类能读懂的字符( 阅读全文
posted @ 2021-04-27 16:25 savagefoo 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 什么是进制 进制也就是进位制,是利用固定的数字符号和统一的规则来计数的方法,是人们规定的一种进位方法。 对于任何一种进制 X进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。 我们平时使用的数字都是由 0~9 共 阅读全文
posted @ 2021-04-27 13:04 savagefoo 阅读(4489) 评论(0) 推荐(0) 编辑
摘要: MBR分区 MBR的意思是“主引导记录”,是IBM公司早年间提出的。它是存在于磁盘驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的操作系统系统信息,并用一小段代码来启动系统。如果你安装了Windows,其启动信息就放在这一段代码中——如果MBR的信息损坏或误删就不能正常启动Windows, 阅读全文
posted @ 2021-04-27 13:02 savagefoo 阅读(3669) 评论(0) 推荐(0) 编辑
摘要: 内网穿透 内网穿透,即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。就是说映射端口,能让外网的电脑找到处于内网的电脑,提高下载速度。不管是内网穿透还是其他类型的网络穿透,都是网络穿透的统一方法来研究和解决。 url:https://b 阅读全文
posted @ 2021-04-27 12:48 savagefoo 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 编译package时, 1、必须在源文件声明属于的包 2、必须有public类。 如果只声明属于的包,没有public类,命令行编译后没有反应, 如只有public类,没有声明属于的包,命令行编译后,所有源文件都只会在bin目录,不会有子目录 阅读全文
posted @ 2021-04-25 12:02 savagefoo 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 方法一: 颜色的控制通过ESC字符(\033)加”[“加颜色代码加”m”实现。ESC的ASCII码是十进制的27,八进制的033(\033)。 输出方式由三部分组成 \033[字体显示方式;字体颜色;字体背景色m'字符'\033[0m 显示方式: 0(默认值)、1(高亮)、22(非粗体)、4(下划线 阅读全文
posted @ 2021-04-25 10:28 savagefoo 阅读(1770) 评论(0) 推荐(0) 编辑
摘要: 简介:Base64就是一种基于64个可打印字符来表示二进制数据的编码方法。为什么不直接用ASCII码呢?因为我们输入的字符可能有ASCII码中不可见的字符,为了完全可见,就用了base64编码。 比如Hello这个单词,我们把它变成base64编码怎么做呢? 首先引入ASCII对照表: 2.一个字节 阅读全文
posted @ 2021-04-23 20:34 savagefoo 阅读(535) 评论(0) 推荐(0) 编辑
摘要: 计算机依有没有通电来记录信息,所以理论上它只认识 0 与 1 而已。0/1 的单位我们称为 bit。但 bit 实在太小了, 并且在储存数据时每份简单的数据都会使用到 8 个 bits 的大小来记录,因此定义出 byte 这个单位,他们的关系为: 1 Byte = 8 bits 不过同样的,Byte 阅读全文
posted @ 2021-04-23 20:34 savagefoo 阅读(1683) 评论(0) 推荐(0) 编辑
摘要: 特别注意: 千万不要使用Windows自带的 记事本 编辑任何文本文件。原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF 8编码的文件,他们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题,比如,网页第一行可能会显示一个“?”, 阅读全文
posted @ 2021-04-20 20:42 savagefoo 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 远程仓库 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上,但开发参与者必须在同一个网络中,且必须有一个项目的原始版本,通常的办法是让一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服 阅读全文
posted @ 2021-04-20 20:42 savagefoo 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 分支管理 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。 如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN! 分支在实际中有什么用呢?假设你准备开发一个新功 阅读全文
posted @ 2021-04-20 20:42 savagefoo 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 打标签 像其他版本控制系统(VCS)一样,Git 可以给仓库历史中的某一个提交打上标签,以示重要。 比较有代表性的是人们会使用这个功能来标记发布结点( 、 等等)。 在本节中,你将会学习如何列出已有的标签、如何创建和删除新的标签、以及不同类型的标签分别是什么。 列出标签 在 Git 中列出已有的标签 阅读全文
posted @ 2021-04-20 20:42 savagefoo 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 疑难解答 Q:输入 ,得到错误: 。 A:Git命令必须在Git仓库目录内执行( 除外),在仓库目录外执行是没有意义的。 Q:输入 ,得到错误 。 A:添加某个文件时,该文件必须在当前目录下存在,用 或者 命令查看当前目录的文件,看看文件是否存在,或者是否写错了文件名。 Q:git bash的中文乱 阅读全文
posted @ 2021-04-20 20:42 savagefoo 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 一、什么是git git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了 阅读全文
posted @ 2021-04-20 20:41 savagefoo 阅读(215) 评论(0) 推荐(0) 编辑
摘要: Git安装配置 在使用Git前需要先安装 Git。Git 目前支持 Linux、MacOS和 Windows 平台上运行。 Git 各平台安装包下载地址为:http://git scm.com/downloads Linux 平台上安装 在有 yum 的系统上(比如 Fedora)或者有 apt g 阅读全文
posted @ 2021-04-20 20:41 savagefoo 阅读(264) 评论(0) 推荐(0) 编辑