第三章 信息系统集成专业基础知识
![在这里插入图片描述](https://img-blog.csdn.net/20180818151802321?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhc3RfSW1wcmVzc2lvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
1.信息系统生命周期有哪几个过程
分四个阶段:产生,开发,运行和消亡阶段。
2.信息系统开发的方法有哪几种,各适用于什么情况的项目
系统开发的方法有六种:结构化方法,快速原型法,企业系统规划方法,战略数据规划法,信息工程方法,面向对象方法。
结构化方法:把系统看成一个大模块,再根据系统分析与设计进一步分解或组合。
快速原型法:快速建立并展示给用户。原型化方法不可以直接开发出最终产品。
企业系统规划法:提供一个信息系统规划,用以支持企业短期的和长期的信息需求。
战略数据规划方法:它是企业核心竞争力的重要构成因素,成为企业市场竞争中的制胜法宝。
信息工程方法:是企业系统规划方法和战略数据规划方法的一种交叉关系。是前两种方法的总结和提升。
面向对象方法:用于面向对象的软件开发。
瀑布模型的六个阶段:可行性分析,需求分析,软件设计,编码单测,测试,运行维护。
螺旋模型的四个象限:制定计划,风险分析,实施工程和客户评估。
结构化开发方法的特点:
遵循用户至上的原则
严格区分工作阶段
强调系统开发的整体性和全局性
系统开发过程工程化,文档资料标准化
结构化开发缺点:开发周期长,文档设计说明繁琐,工作效率低,要求在开发之初全面认识系统信息需求,充分预料各种可能发生的变化。
![在这里插入图片描述](https://img-blog.csdn.net/20180818153609583?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhc3RfSW1wcmVzc2lvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
3.软件需求的定义及其分类
软件需求基本特征是可验证性。目的是检测和解决需求之间的冲突,发现软件的边界,以及软件如何与外界交互;详细描述系统需求和软件需求。
分三类:业务需求,用户需求,功能需求(也包括非功能需求)
业务需求:产品高层次目标要求。
用户需求:文档描述用户使用产品必须要完成的任务。
功能需求:定义了开发人员必须实现的软件功能。
非功能需求:包括产品必须遵守的标准规范和合约。外部界面的具体细节,性能要求。
![在这里插入图片描述](https://img-blog.csdn.net/20180818152237191?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhc3RfSW1wcmVzc2lvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
4.软件设计的基本原则是什么
信息隐蔽性和模块独立性。模块独立性比较强的模块应是高内聚低耦合的模块。
![在这里插入图片描述](https://img-blog.csdn.net/20180818152006380?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhc3RfSW1wcmVzc2lvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
5.软件测试的基本方法有哪些?各种测试方法的定义,面向对象的测试分为哪些层次?性能测试和第三方测试的定义。
按内部结构和具体实现的角度划分:白盒,黑盒,灰盒。
按是否执行程序划分:静态和动态测试。
按开发过程阶段的角度划分为:单元测试,集成测试,确认测试,系统测试,验收测试。
性能测试:通过自动化的测试工具模拟多种正常,峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试。
第三方测试:也叫独立测试。指独立于软件开发方和用户方的测试,组织的测试也称为独立测试。一般都是拿来模拟用户使用的真实环境。
模糊测试(Fuzz Testing):是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法,是用于系统安全漏洞的发掘的重要技术。模糊测试的测试用例通常是随机数据。
面向对象的测试包括四个层次:算法层,类层,模版层和系统层。
![在这里插入图片描述](https://img-blog.csdn.net/20180818153344167?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhc3RfSW1wcmVzc2lvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
6.决定软件具有可维护性的三个因素,软件维护的分类。
三个因素:可理解性,可测试性,可修改性
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190320223659107.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhc3RfSW1wcmVzc2lvbg==,size_16,color_FFFFFF,t_70)
软件维护从性质上分为四类:纠错性维护,完善性维护,适应性维护,预防性维护。
完善性维护:为扩充机能和改善性能而进行的修改。还包括对处理效率和编写程序的改进。它占整体维护工作的50%-60%。(锦上添花)。特点是功能新增,工作量最大。
适应性维护:软件适用信息技术变化和管理需求变化而进行的修改。人们常常为改善系统硬件环境和运行环境而产生系统更新换代的需求。(展望未来与时俱进)。特点是环境需求有变化。
纠错性维护:是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。(历史遗留问题)特点是发现错误,如系统补丁。主要内容包括:设计错误,程序错误,数据错误,文档错误。
预防性维护:是指为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。(未雨绸缪)。特点是担心将来有变化而进行的修改。
占比信息:一半在完善,四分之一在适应,百分之四在预防。(就是鱼丸)
适应性需求:软件产品交付后进行的修改,以保证软件产品能在变化后或变化情况的环境下可以继续使用。(系统移植)
![在这里插入图片描述](https://img-blog.csdn.net/20180818153014970?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhc3RfSW1wcmVzc2lvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
7.CMM软件能力成熟度模型即SW-CMM的5个等级及各个等级的特征;CMMI能力成熟度模型集成的五个等级以及各个等级的特征。
CMM的五个等级:初始级,可重复级,已定义级,已管理级,优化级。
可重复级:已经建立了基本的项目管理过程,可用于成本,进度和功能特征进行跟踪。项目有章可循,并能重复以往所取得的成功。
已定义级:用于管理和工程的软件过程均已文档化,标准化,并形成整个软件组织的标准软件过程。裁剪出项目适宜的过程。
已管理级:软件过程和产品质量有详细的度量标准。量化控制将使软件开发真正变为一个工业生产活动。
CMMI是CMM模型的最新版本,CMMI也划分为5个成熟度级别:完成级,管理级,定义级,量化管理级,优化级。
完成级:同CMM的初始级,项目实施对实施人员有很大的依赖性。
管理级:有资源有培训有检测控制有管理程序。保证了企业的所有项目实施都会成功。
定义级:和CMM的已定义级一样,强调标准化制度化,企业能够根据自身的特殊情况以及自己的标准流程将管理体系化。
量化管理级:CMM已管理级提倡度量指标,而他是要实现数字化管理。对管理流程要做到量化和数字化。
![在这里插入图片描述](https://img-blog.csdn.net/20180819171117445?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhc3RfSW1wcmVzc2lvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![在这里插入图片描述](https://img-blog.csdn.net/20180819171326771?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhc3RfSW1wcmVzc2lvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![在这里插入图片描述](https://img-blog.csdn.net/20180819171442701?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhc3RfSW1wcmVzc2lvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![在这里插入图片描述](https://img-blog.csdn.net/20180819171223955?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhc3RfSW1wcmVzc2lvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
8.软件开发的工具有哪些,包括软件需求工具,软件设计工具,软件构造工具,软件测试工具,软件维护工具,软件配置管理工具,软件工程管理工具等。
9.软件复用,软件元素,软件构件的定义
软件复用:又名软件重用,是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。
软件元素:程序代码,测试用例,设计文档,设计过程,需求分析文档。
软件构件:通常把上面的可重用的元素简称为构件。
可重用的软件元素越大,就说重用的粒度越大。
![在这里插入图片描述](https://img-blog.csdn.net/20180818152906182?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhc3RfSW1wcmVzc2lvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
10.面向对象的分析和设计中涉及的一些基本概念,如类,对象,继承,多态,消息通信等。
类是对象的抽象,对象是类的具体实例。
继承:使用已存在的定义作为基础建立新的定义。
多态:类中具有相似功能的不同函数是用同一个名称来实现。
面向对象的分析步骤:
1.确定问题域;
2.确定对象和类;
3.确定结构
4.确定主题
5.确定属性
6.确定方法
![在这里插入图片描述](https://img-blog.csdn.net/2018081815321187?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhc3RfSW1wcmVzc2lvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
11.UML2.0的13种图,清楚各种图是用来干什么的。
类图:描述类,类的特征以及类之间的关系。
对象图:描述一个时间点上系统中各个对象的快照。
包图:对语义联系紧密的事物进行分组。
用例图:描述用例参与者及其关系。
构件图:构件的结构与连接,隐藏内部细节对外提供一组接口。
复合结构图:显示结构化类的内部结构。
顺序图:对象之间顺序交互。
通信图:描述对象之间的交互,重点在于连接。
定时图:也是对象交互,但重点在于给出消息经过不同对象的具体时间。
部署图:描述各个节点上的部署。
交互概观图:顺序图和活动图的混合。
活动图:描述过程行为与并行行为。
状态机图:描述对象状态的迁移。
顺序图,通信图,交互浏览图和时序图这四种图统称交互图。
UML图可以表示为系统静态结构和静态模型,以及表示系统动态结构的动态模型。
静态模型包括:类图,对象图,构建图,部署图。
动态模型包括:顺序图,协作图,状态图,活动图。
12.常用的几种软件体系结构风格,如分层系统,C2风格,C/S风格,三层C/S风格,B/S风格等。
C/S架构:胖客户机,瘦服务器
3层C/S架构:将应用功能分成表示层,功能层,数据层三部分。能提高软件的可维护性金额可扩展性。
B/S浏览器服务器架构:是C/S架构的一种变化或者改进。但主要的事物逻辑还是在服务器端实现,它是一种瘦客户端。所以不需要安装客户端软件,因此可以大大减轻客户端载荷。
分层模式:采用层次化的组织方式,每一层都是为上一层提供服务,并使用下一层提供的功能。例如:OSI七层模型就是网络模型。
事件驱动模式的基本原理是构件并不直接调用过程。而是触发一个或多个事件,事件的触发者并不知道哪些构件会受到事件的影响,且不能假定构建的处理顺序,甚至不知道会调用哪些过程。其典型系统包括各种图形界面工具。
知识库模式采用两种不同的构件。中央数据结构构件说明当前状态,独立构建在中央数据存储上执行。中央数据结构构件和独立的外部构件的相互作用是系统的主要问题,知识库的典型应用是信号处理领域,如语音和模式识别。
![在这里插入图片描述](https://img-blog.csdn.net/20180818214956441?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhc3RfSW1wcmVzc2lvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
13.软件中间件的定义及常见软件中间件的认知。
定义:中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,以及系统维护运行管理的工作量。
中间件主要分四类:远程过程调用,面向消息的中间件,对象请求代理,事务处理监控。
目前面向消息的中间件产品有:IBM的MQSeries和BEA的MessageQ
Tomcat和Apache是Web中间件软件。
![在这里插入图片描述](https://img-blog.csdn.net/20180818211949566?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhc3RfSW1wcmVzc2lvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
14.数据仓库技术的整体把握以及涉及的相关术语,如ETL提取转换加载,OLAP联机分析处理等。
ETL:用户从数据源抽取出所需的数据,经过数据清洗,转换,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中。
OLAP联机处理分析:对分析需要的数据进行有效集成,以便进行多角度多层次的分析,并发现趋势。
数据源:是数据仓库的基础。
数据集市:小型的面向部门或工作组级数据仓库。比如企业级数据仓库和部门级数据仓库通常都成为数据集市。
ODS操作数据存储:能支持企业日常全局应用的数据集合。不同于DB的一种新的数据环境。是DW扩展后得到的一个混合形式。
分割:结构相同的数据被分成多个物理单元。
粒度:保存数据的细化或综合程度的级别
元数据:数据仓库表的结构,表的属性,数据模型的规格说明,抽取日志和访问数据的公用例行程序。是关于数据的数据。
![在这里插入图片描述](https://img-blog.csdn.net/20180818153737762?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xhc3RfSW1wcmVzc2lvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)