45、 络攻击
46、 络防御
防火墙技术:防外不防内,对于DMZ非军事区主要放置应用服务器(如邮件服务器,WEB服务器)。
漏洞扫描:入侵者可以利用系统漏洞侵入系统,系统管理员可以通过漏洞扫描技术,及时了解系统存在的安全问题,并采取相应措施来提高系统的安全性。
入侵检测IDS:根据攻击者行为和模式库记录的行为进行模式匹配,对攻击行为 警。
47、病毒
病毒的特性:计算机病毒的特性包括隐蔽性、传染性、潜伏性、触发性和破坏性等
分类:
文件型计算机病毒感染可执行文件(包括EXE和COM文件)。
引导型计算机病毒影响软盘或硬盘的引导扇区。
目录型计算机病毒能够修改硬盘上存储的所有文件的地址。
48、常见的软件开发模型
瀑布模型
容易理解,管理成本低,每个阶段都有对应的成果产物,各个阶段有明显的界限划分和顺序要求,一旦发生错误,整个项目推倒重新开始。
适用于需求明确的项目,一般表述为需求明确、或二次开发,或者对于数据处理类型的项目
V模型
强调测试贯穿项目始终,而不是集中在测试阶段。是一种测试的开发模型。
喷泉模型
以用户需求为动力,以对象为驱动,适合于面向对象的开发方法。
特点是迭代、无间隙。
原型模型
典型的原型开发方法模型。适用于需求不明确的场景,可以帮助用户明确需求。
增量模型
可以有多个可用版本的发布,核心功能往往最先完成,在此基础上,每轮迭代会有新的增量发布,核心功能可以得到充分测试。强调每一个增量均发布一个可操作的产品。
49、螺旋模型与RUP
螺旋模型
典型特点是引入了风险分析。结合了瀑布模型和演化模型的优点,最主要的特点在于加入了风险分析。它是由制定计划、风险分析、实施工程、客户评估这一循环组成的,它最初从概念项目开始第一个螺旋。
统一过程RUP
典型特点:用例驱动、以架构为中心、迭代和增量。
构思阶段
强调定义和细化用例,并将其作为主要模型。
细化阶段
重点是创建分析和设计模型,强调类的定义和体系结构的表示。确定系统架构。
构建阶段
将设计转化为实现,并进行集成和测试。
移交阶段
将产品发布给用户进行测试评价,交付或再次进行迭代修改产品使之完善。
50、敏捷方法
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法,适用于小团队和小项目,具有小步快跑的思想。
水晶法强调经常交付,认为每一种不同的项目都需要一套不同的策略、约定和方法论。
并列争球法的核心是迭代、增量交付,按照30天进行迭代开发交付可实际运行的软件。
自适应软件开发的核心是三个非线性的,重叠的开发阶段:猜测、合作、学习。
51、极限编程
极限编程是一种轻量级的开发方法。
它提出了四大价值观:沟通、简单、反馈、勇气。
五大原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作。
十二个最佳实践:计划游戏、隐喻、小型发布、简单设计、测试先行、重构、结对编程、集体代码所有制、持续集成、每周工作40小时、现场客户和编码标准。
52、开发方法
结构化开发方法:用户至上,严格区分工作阶段,每阶段有任务和结果,强调系统开发过程的整体性和全局性,系统开发过程工程化,文档资料标准化,自顶向下,逐步求精。
原型开发方法:适用于需求不明确的情况。
面向对象开发方法:更好的复用性,关键在于建立一个全面、合理、统一的模型,分析、设计、实现三个阶段界限不明确。
53、内聚性
54、耦合性
55、测试分类
静态测试
桌前检查、代码走查、代码审查。
动态测试
黑盒测试
等价类划分(确定无效与有效等价类,设计用例尽可能多的覆盖有效类,设计用例只覆盖一个无效类)
边界值分析(处理边界情况时最容易出错,选取的测试数据应该恰好等于、稍小于或稍大于边界值)
错误推测
因果图
白盒测试:语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、路径覆盖。
56、白盒测试
57、特殊的测试阶段及任务
验收测试:有效性测试、软件配置审查、验收测试。
系统测试:恢复测试、安全性测试、强度测试、性能测试、可靠性测试和安装测试。
集成测试:模块间的接口和通信。
单元测试:模块接口、局部数据结构、边界条件、独立的路径、错误处理。
回归测试:修改软件后进行的测试,防止引入新的错误。
负载测试:对软件负载能力的测试。
压力测试:对软件超负荷条件下运行情况的测试。
58、McCabe复杂度计算
McCabe复杂度计算公式:V(G)=m-n+2,其中m是有向弧的条数,n是结点数。
对于伪代码可以先转换为程序流程图,对程序流程图可以最终转换为结点图处理,转换时注意将交点的地方标注为新的结点,以最终的结点图带入公式结算其McCabe复杂度。
59、维护
更正性维护:针对真实存在并已经发生的错误进行的维护行为。
预防性维护:针对真实存在但还未发生的错误进行的维护。
适应性维护:指使应用软件适应信息技术变化和管理需求变化而进行的修改。企业的外部市场环境和管理需求的不断变化也使得各级管理人员不断提出新的信息需求。
完善性维护:扩充功能和改善性能而进行的修改。对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。
60、质量属性与其依从属性
功能性:适合性、准确性、互操作性、安全保密性。
可靠性:成熟性、容错性、易恢复性。
易用性:易理解性、易学性、易操作性、吸引性。
效率:时间特性、资源利用性。
维护性:易分析性、稳定性、易测试性、易改变性。
可移植性:适应性、易安装性、共存性、易替换性。
61、CMMI(能力成熟度模型集成)阶段式
初始的:过程不可预测且缺乏控制
已管理的:过程为项目服务
已定义的:过程为组织服务
定量管理的:过程已度量和控制
优化的:集中于过程改进。
62、CMMI(能力成熟度模型集成)连续式
CL0(未完成的):过程域未执行或未得到CL1中定义的所有目标。
CL1(已执行的):其共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。
CL2(已管理的):其共性目标是集中于已管理的过程的制度化。
CL3(已定义级的):其共性目标集中于已定义的过程的制度化。
CL4(定量管理的):其共性目标集中于可定量管理的过程的制度化。
CL5(优化的):使用量化(统计学)手段改变和优化过程域,以满足客户的改变和持续改进计划中的过程域的功效。
63、Gantt图与PERT图
甘特图能够消晰描述每个任务的开始/结束时间及各任务之间的并行性,也可以动态地反映项目的开发进展情况,但难以反映多个任务之间存在的逻辑关系;
PERT利用项目的 络图和各活动所需时间的估计值(通过加权平均得到的)去计算项目总时间,强调任务之间的先后关系,但不能反映任务之间的并行性,以及项目的当前进展情况。
64、PERT图
关键路径是图中源点至汇点的最长路径,关键路径的时间称之为项目工期,也表述为项目完成所需的最少时间。
总时差:在不延误总工期的前提下,该活动的机动时间。一般在图中,以最晚结束时间减去最早结束时间求取,或以最晚开始时间减去最早开始时间求取。
65、风险管理
风险的特性:具有不确定性,可能会造成损失。
风险的类别
项目风险涉及到各种形式的预算、进度、人员、资源以及客户相关的问题,并且可能导致项目损失。
技术风险涉及到技术相关的可能会导致项目损失的问题。
商业风险与市场因素相关。
会风险涉及到政策、法规等因素。
风险曝光度(RiskExposure)=错误出现率(风险出现率) X错误造成损失(风险损失)。
66、沟通路径
有主程序员:n个成员小组,1个主程序员,普通程序员只需要与主程序员沟通。沟通路径:n-1。
无主程序员:n个成员的项目小组,相互之间都可以沟通。沟通路径:n(n-1)/2。
67、数据流图
数据流常见的3种错误
黑洞:加工只有输入没有输出;
奇迹:加工只有输出没有输入;
灰洞:加工中输入不足以产生输出。
子图与父图保持平衡
父图与子图之间平衡是指任何一张DFD子图边界上的输入/输出数据流必须与其父图对应加工的输入/输出数据了保持一致。如果父图中某个加工的一条数据流对应于子图中的几条数据流,而子图中组成这些数据流的数据项全体正好等于父图中的这条数据流,那么它们仍然是平衡的。
68、面向对象基本概念
面向对象:对象+分类+继承+通过消息的通信
对象:属性(数据)+方法(操作)+对象ID
封装:隐藏对象的属性和实现细节,仅对外公开接口(信息隐藏技术)
类(实体类/控制类/边界类):对对象的抽象。
接口:一种特殊的类,他只有方法定义没有实现
继承与泛化:复用机制
消息和消息通信:对象之间进行通信的一种构造叫做消息。消息是异步通信的。
重置/覆盖:在子类中重新定义父类中已经定义的方法。
重载:一个类可以有多个同名而参数类型不同的方法。
动态绑定:根据接收对象的具体情况将请求的操作与实现的方法进行连接(运行时绑定)。
多态:不同对象收到同样的消息产生不同的结果。(软设一般只涉及过载多态-同一个名字在不同的上下文中所代表的含义不同)
69、面向对象设计原则
单一职责原则:设计目的单一的类
开放-封闭原则:对扩展开放,对修改封闭
李氏(Liskov)替换原则:子类可以替换父类
依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程
接口隔离原则:使用多个专门的接口比使用单一的总接口要好
组合重用原则:要尽量使用组合,而不是继承关系达到重用目的
迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解
70、UML图分类
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!