云计算软件工程 云软件自动生成原理及方法(周相兵著)思维导图
- 格式:xmin
- 大小:4.55 KB
- 文档页数:1
第一部分-------填空,选择,判断1.软件工程三个要素:方法、工具和过程2.软件元素:程序代码、测试用例、设计文档、设计过程、需求分析文档3.构件分类:关键字分类刻画分类法和超文本组织法4.软件体系结构技术反战经历四个阶段(1)无体系结构设计阶段----以汇编语言进行小规模应用程序开发(2)萌芽阶段-----以控制流图和数据流图构成软件结构为特征(3)初期阶段-----出现了从不同侧面描述系统的结构模型,UML(4)高级阶段-----描述系统的高层抽象结构,出现“4+1”模型5.软件体系结构模型:结构模型、框架模型、动态模型、过程模型和功能模型。
6.“4+1”视图模型从五个不同的视角,包括逻辑试图,进程试图,物理视图,开发视图和场景视图来描述软件体系结构。
逻辑视图主要支持系统的功能需求,是系统提供给最终用户的服务。
通过抽象,封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图;开发视图也称模块视图,主要侧重于软件模块的组织和管理,主要考虑软件内部的需求,如软件开发的容易性、软件的重用等,通过系统输入输出关系的模型图和子系统图来描述,提供给编程人员的;进程视图侧重于系统的运行特性,主要关注非功能性的需求,如系统的性能和可用性。
进程视图强调并发性、分布性、系统集成性和容错能力管道和过滤器风格、客户/服务器风格等适合进程视图,提供给系统集成人员的;物理视图主要考虑如何把软件映射到硬件上,它通常考虑系统性能、规模、可靠性等,解决系统拓扑结构、系统安装、通信问题,提供给系统工程人员的。
而场景是那些重要系统活动的抽象,它使四个视图有机联系起来,是最重要的需求抽象,它可以帮助设计者找到系统结构的构件和他们之间的作用关系。
总之,逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。
软件体系结构的核心模型由五中元素组成:构件、连接件、配置、端口和角色。
7. 软件体系结构的核心模型由五中元素组成:构件、连接件、配置、端口和角色。
Java程序设计(基础)概述特点面向对象平台可移植性分布式多线程安全性工作方式开发工具JDKjavacjava javadocIDElntelliJEclipse NetBeans术语JDK JREJVM API源程序结构package管理类解决命名冲突import class 注释行注释//块注释/*…*/文档注释/**…*/@author @param@return @throws基本语法关键字有特殊含义的单词(50)能用的(48)不能用的(2)gotoconst 标识符给类、接囗、方法、变量等起的名字命名规则字母、数字、下划线和$,数字不能开头大小写敏感不能跟关键字和保留字(null、true、false)冲突见名知意驼峰标识类名每个单词首字母大写变量和方法名从第二个单词开始每个单词首字母大写命名常量全大写,多个单词用下划线隔开运算符分类算术运算符赋值运算符关系运算符短路运算符条件运算符(三目运算符)自增/自减运算符正负号运算符移位运算符布尔运算符位运算符new 创建对象instanceof运行时类型识别()强制类型转换改变运算优先级[]下标运算符.取成员运算符优先级搞不清楚优先级直接加()结合性从左向右从右向左赋值运算自加自减条件运算正负号字面量整型字面量:100、100L浮点型字面量:3.5、3.5F、3.123e2字符字面量:'a'、'\t'、'\123'布尔型字面量:true、false引用字面量:null类型字面量:String.class、int.class分隔符数据类型基本类型整叙byteshortintlong小数floatdoublecharboolean 枚举类型enum引用类型String数组自定义的类或接囗面向对象基本概念类对象的蓝图和模板类与类之间的关系IS-A:继承泛化实现HAS-A:关联关联聚合合成USE-A:依赖定义类[访问修饰符] [修饰符] class类名 [extends 父类] [implements 接囗1,接口2,...] {}属性:数据抽象方法:行为抽象构造器创建对象:new构造器()对象一切皆为对象对象都有属性和行为对象都是唯一的对象都属于某个类消息调用对象的方法就是给对象发送了一个消息一个对象能够接受某种消息,就意味着该对象向外界提供了某种服务三大支柱封装隐藏一切可隐藏的实现细节,只暴露最简单的编程接囗继承从已有类创建新类的过程提供继承信息的类叫父类(基类、超类)得到继承信息的类叫子类(派生类)子类可以继承到父类中public、protected的属性和方法Java中的继承是单继承Object类是所有类的父类多态定义解释1:同样的引用调用同样的方法却做了不同的事情解释2:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但对A系统来说是透明的实现方法重写:不同的子类对父类的同一方法给出不同的实现版本对象造型:用父类型的引用引用子类型的对象相关内容访问修饰符类public默认方法、属性、内部类public protected默认private抽象类如果一个类有抽象方法,这个类必须被声明为抽象类抽象类中可以没有抽象方法,抽象类也可以有自己的构造器抽象类不能实例化(不能创建对象)强烈建议:将被继承的类设计成抽象类接囗接囗是约定:实现接囗的类必须重写接口中所有方法,否则就要声明为抽象类接囗代表能力:实现了接囗的类就具备了接囗所描述的能力接囗是一种角色:一个类可以实现多个接囗,一个接囗也可以被多个类实现Java中的接囗单方法接囗:这个唯一的方法通常都是回调方法ActionListener Runnable Comparable标识接囗:没有方法,但是表示了某种能力CloneableSerializable常量接囗:这是接囗最不正确的用法内部类相当于外部类中的一个属性内部类可以访问外部类的私有成员设计原则单一职责原则专业化模块化开闭原则抽象是关键封装可变性依赖倒转原则里氏替换原则接囗隔离原则合成聚合复用原则迪米特法则字符串String创建字符串对象String s="Hello";s引用静态区的字符串字面量String s=new String(Hello")s引用堆上的字符串对象字符串的方法长度:length()取字符:charAt(int)变大/小写:toUpperCase()/toLowerCase()连接:concat(String)比较:equals(String)/compareTo(String)判断开头/结尾:startsWith(String)/endsWith(String)模式匹配:indexOf(String,[int])/lastlndexOf(String,[int]取子串:substring(int,[int])修剪左右两边空白:trim()替换:replace(String,String)/replaceAII(String,String拆分:split(String)String代表的是不变字符串可以被修改的字符串StringBuilder 适用于单线程环境StringBuffer适用于多个线程操作同一个字符串的场景方法在指定位置插入字符串:insert(int,String)删除指定位置的字符:delete(int,int)倒转:reverse()追加:append(String)方法[访问修饰符] [修饰符]返回类型方法名([参数列表])[异常声明]访问修饰符public protected默认private修饰符static abstractfinal修饰变量,变量变成常量修饰类,类不能被继承修饰方法,方法不能被重写synchronizednative方法调用静态方法:类名.方法名(实参列表)非静态方法:对象.方法名(实参列表)递归数组基本用法数组的定义数组的初始化new静态初始化length属性下标运算Arrays工具类sort:排序toString:将数组变成字符串copyOf:数组拷贝equals:比较数组元素是否相同二维数组一个普通数组,每个元素又是一个数组应用表格矩阵2D游戏中的地图棋盘流程控制循环结构分类while循环do…while循环for循环for-each循环相关关键字breakcontinue分支结构if...elseswitch...case...default顺序结构。
区别管理员账号:定期更换密码定期检查系统是否有多余账号和具有管理员权限的账号检查Linux 系统中的Setuid 程序防范账号后⻔门补丁防范漏洞后⻔门杀毒软件系统检查:服务、进程、端⼝口完整性校验防范⽊木⻢马(rootkit )安全脚本备份⺴⽹网⻚页防篡改防范脚本后⻔门后⻔门设置与防范清除/改写⽇日志⽇日志存放路径%WinDir%\System32\LogFiles \W3SVC1\exyymmdd.log例如:IIS 访问⽇日志位置修改系统⽇日期删除中间⽂文件删除创建的⽤用户清除痕迹清除与防范踩点->定位->⼊入侵->后⻔门->痕迹攻击的过程域名、⺴⽹网络拓扑、操作系统、应⽤用软件相关脆弱性⺫⽬目标系统的信息系统相关资料组织架构及关联组织地理位置细节电话号码、邮件等联系⽅方式近期重⼤大事件员⼯工简历⺫⽬目标系统的组织相关资料其他可能令攻击者感兴趣的任何信息收集哪些信息快速定位信息挖掘搜索引擎公开信息收集Whois 是⼀一个标准服务,可以⽤用来查询域名是否被注册以及注册的详细资料域名所有者域名及IP 地址对应信息联系⽅方式域名到期⽇日期域名注册⽇日期域名所使⽤用的 DNS ServersWhois 可以查询到的信息Whois域名信息操作系统⾃自带命令,主要是⽤用来查询域名名称和 IP 之间的对应关系域名与IP 查询─ nslookup系统⾃自带命令,测试与远端电脑或⺴⽹网络设备的连接状况⺴⽹网络状况查询─ Ping系统⾃自带命令,测试与远端电脑或⺴⽹网络设备之间的路径⺴⽹网络路径状况查询─ tracert⺴⽹网站信息收集如FTP 回显信息服务旗标检测不同⼚厂商对IP 协议栈实现之间存在许多细微的差别,通过这些差别就能对⺫⽬目标系统的操作系统加以猜测。
UNIX 249LINUX55TTL 数据报的⽣生命周期不同主动检测被动检测检测⽅方式TCP/IP 协议栈检测通过端⼝口扫描确定主机开放的端⼝口,不同的端⼝口对应运⾏行着的不同的⺴⽹网络服务端⼝口扫描系统信息收集收集⽅方式确定收集信息的准确性去除迷惑信息攻击⽅方式及攻击路径的选择分析⺫⽬目标Cisco Auditing Tools ⺴⽹网络设备漏洞扫描器NessusShadow Security ScannereEye 的RetinaInternet Security Scanner GFI LANguard 集成化的漏洞扫描器IBM appscanAcunetix Web Vulnerability 专业web 扫描软件ISS Database Scanneroscanner Oracle 数据库扫描器Metacoretex 数据安全审计⼯工具数据库漏洞扫描器⼯工具公开信息收集防御⺴⽹网络信息收集防御系统及应⽤用信息收集防御防范信息收集与分析pwdump7.exe GetHashes.exe SAMInside.exeCain获取散列值⼯工具John the RipperL0Phtcrack破解散列值⼯工具散列值破解运程密码破解暴⼒力猜解⽅方法根据⽤用户规则快速⽣生成各类密码字典密码字典破解关键密码破解⾃自⼰己容易记,别⼈人不好猜设置“好”的密码账户锁定策略系统及应⽤用安全策略随机验证码密码专⽤用/分级,不同应⽤用/系统/⺴⽹网站不同密码专⽤用密码管理⼯工具A 、B ⾓角其他密码管理策略破解防御利⽤用⼈人性懒惰不使⽤用技术⼿手段利⽤用⼈人性弱点(本能反应、贪婪、易于信任等)进⾏行欺骗获取利益的攻击⽅方法社会⼯工程学安全意识培训建⽴立相应的安全响应应对措施注意保护个⼈人隐私防御利⽤用⼈人性弱点欺骗攻击(Spoofing )是指通过伪造源于可信任地址的数据包以使⼀一台机器认证另⼀一台机器的复杂技术两台主机之间经过认证产⽣生信任关系后,在连接过程中就不会要求严格的认证猜正确的序列号关键严格设置路由策略:拒绝来⾃自⺴⽹网上,且声明源于本地地址的包使⽤用最新的系统和软件,避免会话序号被猜出使⽤用抗IP 欺骗功能的产品严密监视⺴⽹网络,对攻击进⾏行报警防御IP 欺骗(IP Spoofing )以⼲⼴广播形式传递ARP ⽤用于将IP 地址解析MAC 地址的⽆无状态,⽆无需请求可以应答ARP 缓存协议特点⼿手动配置,不会理会ARP 发的包使⽤用静态ARP 缓存⽐比如路由器,可以隔离⼲⼴广播域使⽤用三层交换设备IP 与MAC 地址绑定ARP 防御⼯工具防御ARP 欺骗(ARP Spoofing )⽤用于将域名解析成IP 地址使⽤用新版本的DNS 软件安全设置对抗DNS 欺骗DNS 服务器⽤用户⾃自主标识应⽤用服务器防御DNS 欺骗(DNS Spoofing )欺骗攻击利⽤用协议的缺陷1、利⽤用⼤大量数据挤占带宽2、⼤大量请求消耗性能3、利⽤用协议实现缺陷4、利⽤用系统处理⽅方式缺陷⽅方式SYN Flood-->2直接攻击UDP Flood-->1(流量型)重组装时崩溃Teardrop-->3Ping of death-->3Smurf 攻击通过使⽤用将回复地址设置成受害⺴⽹网络的的ICMP 应答请求(ping)数据包,来淹没受害主机,最终导致该⺴⽹网络的所有主机都对此ICMP 应答请求做出答复,导致⺴⽹网络阻塞。