1,信息技术基础---软件技术
1,信息技术基础---软件技术
面向对象的基本概念包括对象、类、抽象、封装、继承、多态、接口、消息、组件、复用和模式等。
对象:由数据及操作所构成的封装体,是系统中用来描述客观事物的一个模块,是构成系统的基本单位。
对象包含三个基本要素,分别是对象标识、对象状态和对象行为。
类:现实世界中实体的形式化描述,类将该实体的数下(数据)和操作(函数)封装在一起。
类和对象的关系可以理解为,对象是类的实例,类是对象的模版。
抽象:通过特定的实例抽取共同特征以后形成概念的过程。对象是现实世界中某个实体的抽象,类是一组对象的抽象。
封装:将相关的概念组成一个单元模版,并通过一个名称来引用它。
继承:标识类之间的层次关系(父子与子类),这种关系使得某类对象可以继承另外一类对象的特征,继承又可分为单继承和多继承。
接口:描述对操作规范的说明,其只说明操作应该做什么,并没有定义操作如何做。
消息:提现对象间的交互,通过它向目标对象发送操作请求。
组件:表示软件系统可替换的,物理的组成部分,封装了模块功能的实现。
复用:指将已有的软件及其有效成分用于构造新的软件和系统。组件技术是软件复用实现的关键。
模式:描述了一个不断重复发生的问题,以及该问题的解决方案。
多态:多态使得多个类中可以定义同一个操作或属性名,并在每个类中可以有不同的实现。
例如:张三是对象,老师是类,授课是方法,姓名是属性。
对象的三个基本要素分别为:对象标识、对象状态、对象行为。
面向对象系统设计基于系统分析得出的问题域模型,用面向对象的方法设计处软件基础架构(概要设计)
和完整的类结构(详细设计),以实现业务功能。主要包括:用例设计、类设计和子系统设计。
常见的几种典型架构模式:
管道/过滤器模式:此模式中,每个组件(过滤器)都有一组输入/输出,组件读取输入的数据流,经过内部处理后,
产生输出的数据流,该过程主要完成输入流的变换及增量计算。其典型应用包括批处理系统。
面向对象模式:在面向对象的基础上,将模块数据的表示方法及其相应的操作封装在更高抽象层次的数据类型或对象中。
其典型应用是基于组件的软件开发。
事件驱动模式:其基本原理是组件并不直接调用操作,而是触发一个或多个事件。系统中的其他组件可以注册相关的事件,
触发一个事件时,系统会自动调用注册了该事件的组件,即触发事件会导致另一组件中的操作的调用。其典型应用
包括各种图形界面应用。
分层模式:采用层次化的组织方式,每一层都为上一层提供服务,并使用下一层提供的功能。其典型应用是分层通信协议。、,
如ISO/OSI的七层网络模型。
客户端/服务器模式(C/S):基于资源不对等,为实现共享而提出的模式。C/S模式将应用一分为二,服务器(后台)
负责数据操作和事务处理,客户(前台)完成用户的交互任务。
信息技术战略(IT Strategy)是企业经营战略的有机组成部分,
信息技术战略由以下部分组成:
1)使命(Mission):阐述信息技术存在的理由、目的以及在企业中的作用。
2)远景目标(Vision): 信息技术的发展方向和结果。
3)中长期目标(Medium to Long-term Objectives):远景目标的具体化,即企业未来2~3年信息技术发展的具体目标。
4)策略路线/战略要点(Strategy Point):实现上述中长期目标的途径或路线。
主要围绕信息技术内涵的四个方面展开:即应用(Application)、数据(Data)、技术(Technology)和组织(Organization)
一般情况下,信息系统的主要性能指标是它的有效性和可靠性。
有效性就是在系统中传送尽可能多的信息;
而可靠性是要求信宿收到的信息尽可能地与信源发出的信息一致,或者说失真性尽可能小。
为了提高可靠性在信息编码时可以增加冗余编码。
信息的传输模型如下:
信源---编码----信道(可能噪声干扰)---解码----信宿
信源:产生信息的实体,信息产生后,由这个实体向外传播。
编码器:在信息论中是泛指所有变换信号的设备,实际上就是终端机的发送部分。它包括从信源到信道的所有设备,
如量化器、压缩编码器、调制器等,使信源输出的信号转换成适于信道传送的信号。
译码器:译码器是编码器的逆变换设备,把信道上送来的信号(原始信息与噪声的叠加)转换成信宿能接收的信号,
可包括解调器、译码器、数模转换器等。
噪声:噪声可以理解为干扰,干扰可以来自于信息系统分层结构的任何一层,当噪声携带的信息大到一定程度的时候,
在信道中传输的信息可以被噪声淹没导致传输失败。
信道:传送信息的通道,如TCP/IP网络。信道可以从逻辑上理解为抽象信道,也可以是具有物理意义的实际传送通道。
TCP/IP网络是一个逻辑上的概念,这个网络的物理通道可以是光纤、铜轴电缆、双绞线,也可以是4G网络,甚至是卫星或微波。
信宿:信息的归宿或者接收者。
信息系统的基本规律应包括信息的度量、信源特性和信源编码、信道特性和信道编码、检测理论、估计理论以及密码学。
信息的质量属性:
精确性:对事物状态描述的精准程度
完整性:对事物状态描述的全面程度,完整性信息应包括所有重要事实
可靠性:指信息的来源、采集方法、传输过程是可以信任的,符合预期。
及时性:指获得信息的时刻与事件发生时刻的间隔长短。
可验证性:指信息的主要质量属性可以被证实或者证伪的程度
安全性:指信息的生命周期中,信息可以被非授权访问的可能性,可能性越低,安全性越高。
经济性:指信息获取,传输带来的成本在可以接受的范围之内
以信息化规划需求调研、现状分析为基础,一般包括方针政策、业务目标、业务组织、业务分类、业务事项、业务流程、业务规则等,采用从上至下的方式,建立企业业务架构。
信息安全的基本属性有以下几个方面:
完整性:完整性是指信息在存储或传输的过程中保持不被修改、不被破坏、不被插入、不延迟、不乱序和不丢失的特性。
可用性:可用性是指信息可被合法用户访问并能按要求顺序使用的特性。即在需要时就可以取用所需的信息。
保密性:保密性是指信息不被泄露给非授权的个体和实体,或供其他的特性。
可控性:可控性是指授权机构可以随时控制信息的机密性。
可靠性:可靠性是指信息以用户认可的质量连续服务于用户的特性。
信息系统的开发方法:
系统常用的开发方法包括:结构化方法、原型法、面向对象方法、敏捷开发等;
1,结构化方法
结构化开发方法,把整个系统的开发过程分为若干阶段,然后依次进行,前一阶段是后一阶段的工作依据,按顺序完成。
每个阶段和主要步骤都有明确详尽的文档编制要求,并对其进行有效控制。
优点:理论基础严密,它的指导思想是用户需求在系统建立之前就能被充分了解和理解。由此可见,结构化方法注重开发过程的整体性和全局性。
缺点:开发周期长,文档、设计说明繁琐,工作效率低。
结构化方法适应于:需求明确或二次开发的项目
2,原型法
原型法认为在很难一下子全面准确地提出用户需求的情况下,首先不要求一定要对系统做全面、详细的调查、分析,
而是本着开发人员对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求。
原型法的特点是在于原型法对用户的需求是动态响应,逐步纳入的,系统分析,设计与实现都是随着一个工作模型的不断修改儿同时完成的,相互之间并无明确的界限,也没有明确的分工。
原型法的缺点:用户需求,用户配合问题,会拖延开发进度。
3,面向对象方法
面向对象的信息系统开发,其关键点是能否建立一个全面、合理、统一的模型,它既能反映问题域,也能被计算机系统求解域所接受。
4,敏捷开发
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个项目的成果都经过测试,具备可视、可集成和可运行使用的特征。
信息系统总体规划中的成长阶段模型,也叫诺兰模型,分为:初始期、普及期、控制期、整合期、数据管理期、成熟期
诺兰模型中,信息系统发展过程中的6个增长要素:计算机硬软资源、应用方式、计划控制、MIS在组织中的地位、领导模式、用户意识。
企业信息化发展过程中应遵循以下原则:有效益原则、"一把手"原则、中长期与短期建设相结合原则,规范化和标准化原则,以人为本原则。
其中,"一把手"原则是企业信息化在实施过程中必须坚持企业最高负责人负责制,坚持企业信息化建设过程中的"一把手"亲自抓的原则。
质量控制范围:生产过程和质量管理过程;
质量控制的关键:使所有质量过程和活动始终处于完全受控状态;
质量控制的基础:过程控制,而不是产品。
质量保证内容包括:定制质量保证计划、过程检查、问题跟踪与持续改进。
软件测试可以在概念上分为三个大的测试阶段:单元测试、集成测试和系统测试。
单元测试也称为模块测试,是针对每个模块进行的测试。可从程序的内部结构出发设计测试用例,
多个模块可以平行地对立测试。通常在编码阶段进行,必要的时候要制作驱动模块和桩模块。
集成测试在单元测试的基础上,将所有模块按照设计要求组装成系统,必须精心计划,应提交集成测试计划、
集成测试规格说明和集成测试分析报告。
确认测试是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全和正确。
确认、测试验证软件的功能、性能及其他特性是否与用户的要求一致。
最后进行验收测试:验收测试是以用户为主的测试,软件开发人员和质量保证人员也应参加,由用户参加设计测试用例,
使用生产中的实际数据进行测试。在测试过程中,除了考虑软件的功能和性能外,还应对软件的可移植性、兼容性、
可维护性、错误的恢复功能等进行确认。
确认测试应交付的文档有:确认测试分析报告、最终的用户手册和操作手册、项目开发总结包括。
系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试。
系统测试的目的是通过与系统的需求定义做比较,发现软件与系统的定义不符合或与之矛盾的地方。
验收测试,系统开发生命周期方法论的一个阶段,这时相关的用户和/或独立测试人员 根据测试计划和结果对系统进行测试和接收。
它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。
正式验收测试是一项管理严格的过程,它通常是系统测试的延续。计划和设计这些测试的周密和详细程度不低于系统测试。
选择的测试用例应该是系统测试中所执行测试用例的子集。
纠错性维护:更正交付后发现的错误。
适应性维护:使软件产品能够在变化的环境中继续使用
完善性维护:改进交付后产品的性能可维护性。
预防性维护:在软件产品中的潜在错误成为实际错误前,检测并更正它们。
电子商务的类型有:
B2B :Business To Business 企业对企业
B2C : Business To Consumer 企业对消费者,
C2C : Consumer To Consumer 消费者对消费者
IT战略规划包括4个主要步骤:业务分析、评估现行系统、识别机会、选择方案。
IT战略规划的核心组成要素有:现状分析、战略分析、差距分析和路径分析。
IT战略规划包括的4个主要步骤:业务分析、评估现行系统、识别机会、选择方案。
SOA是面向服务的架构,Web service和ESB总线是SOA典型的实现技术。
适应于Web Service的情况:跨越防火墙、应用程序集成、B2B集成、软件重用。
不适用于Web Service的情况: 单机应用程序,局域网上的同构应用程序。
Web服务的典型技术包括:用于传递信息的简单对象访问协议(SOAP)、用于描述服务的Web服务描述语言(WSDL)、
用于Web服务注册的统一描述、发现及集成(UDDI)、用于数据交换的XML。
软件测试可以分为静态测试和动态测试。白盒测试和黑盒测试都需要运行程序,因此属于动态测试。
桌前检查、代码走查、代码审查都不需要运行程序,因此都属于静态测试方法。
桌前检查(Desk Checking)是指程序员自己在程序编译之后,对照错误列表对源程序代码进行检查分析,因此也是静态测试。
软件质量是指软件特性的总和,是软件满足用户需求的能力。包括内部质量、外部质量和使用质量三部分。
软件测试是针对一个程序的行为,在有限测试用例集合上,动态验证是否达到预期的行为。
UML中四种关系:
依赖是两个事物之间的语义关系,其中一个事物发生变化会影响另外一个事物的语义。
泛化是一般化和特殊化的关系,描述特殊元素的对象可替换一般元素的对象。
关联是描述一组对象之间连接的结构关系
现实是类之间的语义关系,其中一个类指定了由另一个类保证执行的契约
JavaEE应用服务器运行环境主要包括组件、容器、服务3部分,其中组件是代码,容器是环境,服务是接口。
H(X)=-Ei pi log pi
该公式的解释:H(X)表示X的信息熵又称负熵,pi 是事件出现第i种状态的概率,在二进制的情况下,对数的底是2,
此是信息熵可以作为信息的度量,称为信息量,单位是比特(bit)。
软件需求工具包括需求建模工具和需求追踪工具。
软件测试工具包括测试生成器、测试执行框架、测试评价工具、测试管理工具、性能分析工具。
软件配置管理工具包括追踪工具、版本管理工具和发布工具。
软件构造工具包括程序编辑器、编译器、代码生成器、解释器、调试器等。
中间件(Middleware)是位于硬件、操作系统等平台和应用之间的通用服务。借由中间件,解决了分布式系统的异构问题。
信息的认识论和本体论是相通的,两者可以互相转化。
软件配置管理活动包括:软件配置管理计划、软件配置标识、软件配置控制、软件配置状态记录、软件配置审计、软件发布管理与交付等活动。
软件配置管理计划的定制需要了解组织结构环境和组织单元之间的联系,明确软件配置控制任务。
标识软件配置项的过程是识别要控制的配置项,并为这些配置项及其版本建立基线。
软件配置控制关注的是管理软件生命周期中的变更。
软件发布管理和交付通常需要创建特定的交付版本,完成此任务的关键是软件库。
前端工具中数据分析工具主要针对OLAP服务器,报表工具。数据挖掘工具主要针对数据仓库。
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。
面向主题:数据按主题组织;
集成性:消除了源数据中的不一致性,提供整个企业的一致性全局信息;
相对稳定的:主要是进行查询操作,只有少量的修改和删除操作或不删除;
反映历史变化:记录了企业才从过去某一时刻到当前各个阶段的信息,可对发展历程和未来趋势做定量分析和预测。
IPV6数据包的首部比IPV4简单,IPV6的地址分为单播、组播和任意播,每个主机拥有不止一个IPV6地址,IPV6的地址长度为128比特。
安全审计系统是通过独立的、对网络行为和主机操作提供全面与忠实的记录,方便用户分析与审查事故原因,像飞机上的黑匣子一样。
数据管理主要使用了分布式并行处理技术,比较常用的是MapReduce
传统的数据库技术以单一的数据源即数据库为中心,进行事物处理、批处理、决策分析等各种数据处理,主要有操作型处理和分析型处理两类。
云计算的关键技术包括网格计算和虚拟化两种,网格计算是一种计算能力提升的方式,其原理是依据并行计算理论,将子系统分布式提交到其他服务器上运行,以获得更强大的计算能力,
基础是Webservice。 虚拟化包括网络虚拟化和存储虚拟化等。
应用架构是业务架构为依据,对应用系统的结构和互相关系,包括应用现状、应用要素和应用体系设计。