1信息系统集成专业技术知识系统集成项目是根据用户的需求、优选各种技术产品,进行设计开发,将各个分离的“信息孤岛”连接、集成为一个完整、可靠、经济和有效的整体,并使之能彼此协调工作,发挥整体效益,达到整体优化的目的。3.1信息系统集成的简述3.2信息系统建设由于典型的系统集成项目具有目标不明确、需求变化频繁、智力密集、设计人员高度专业化、涉及的承包商多等特点;在系统集成项目中,由于用户的不同需求和特点,每一个系统集成项目都和其他工程不完全一样,因此需要一定的定制,带有一些非标准的问题,加之系统集成项目要求对用户需求有较好的掌握,所有这些因素就造成了对信息系统建设的复杂性。、3.2.1信息系统的生命周期、各阶段的目标以及主要的工作内容信息系统的生命周期可以分为四个阶段:形成、开发、运维和消亡。典型的信息系统有软件子系统、数据库子系统和网络子系统组成。所以应在信息系统的早期明确对信息系统的需求,并把这些系统分配给软件子系统、数据库子系统和网络子系统。形成阶段包括概念形成(问题定义)、可行性分析和需求调研。开发阶段包括需求分析、系统设计、系统实施和系统验收等子阶段。运维阶段包括保证系统正常。当信息系统不可避免的会遇到更新改造、功能扩展、甚至报废重建等情况时,信息系统就进入消亡阶段。典型的信息系统的生命周期如图,其中验收之前的工作称作项目或工程,验收之后称为系统的运行和维护。2用户的需求调研用户需求分析系统总体设计软件与数据库的设计与实现物理网络的设计与实现综合布线与机房工程系统联调与试运行验收与交付系统运行与维护图3.1典型的信息系统生命周期信息系统建设的原则如下:为客户的业务发展服务总体规划、分步实施保护客户现有的(IT资产)(与客户现有的系统和数据兼容、互联互通)支持SOA架构33.2.2信息系统的开发方法常用的信息系统分析与系统设计的方法有:结构化方法和面向对象的方法。常用的过程方法有:瀑布模型、螺旋模型、原型法和迭代法。习题及其分析适用于项目需求清晰,在项目初期就可以明确所有需求、不需要二次开发的软件生命周期模型是瀑布模型;适用于项目实先不能完整定义产品需求、计划多期开发的软件生命周期模型是迭代模型。一般把信息系统项目的生命周期划分为启动、计划、实施和收尾等四个典型的阶段,监控作为过程贯穿于整个生命周期,而信息系统作为项目的产品也可按技术工作划分产品的生命周期,按个生命周期按时间的先后,以过程的方式相互穿插在一起。瀑布模型、迭代模型和快速原型开发是典型的三个产品的生命周期模型。对需求清晰、在项目初期就可以明确所有的需求、不需要二次开发的项目而言,瀑布模型适合用来做产品的生命周期模型。对于事先不能完整定义产品所需需求、计划多期开发的项目来说,迭代模型适合用来做产品的生命周期模型。对于需要很快给客户/用户演示产品原型的项目,快速原型开发适用于做产品的生命周期模型。习题三在软件开发的V模型中,应该在概要设计阶段制定系统的测试计划。瀑布模型把测试推迟到项目生命周期的最后阶段进行,系统前期出现的严重错误可能被隐藏,此时修改代价很大、发布日期会被迫延迟,而且瀑布模型使得开发中的很多关键成员例如开发人员和测试人员长期处于空闲状态。“V模型”可以称为瀑布模型的变形模式,它提出了测试提前的理念。V模型如图3.2所示图3.2的左边是设计和分析,是软件设计实现过程,同时伴随着制定测试计划的过程;右边是对左边结果的验证,即对设计和分析的结果进行测试,以确认是否满足用户需求。如:4需求分析对应验收测试。在做需求分析、产品功能设计的同时,测试人员就开始阅读、审查需求分析结果,从而了解产品的设计特性、用户的真正需求,确定测试目标,可以准备用例并制定验收测试计划。当系统设计人员在概要设计时,测试人员可以了解系统是如何实现的,基于甚么样的平台,这样可以设计系统测试方案和系统测试计划,并事先准备系统的测试环境,包括硬件和第三方软件的采购。需求分析验收测试概要设计系统测试详细设计集成测试编码单元测试当设计人员在做详细设计时,测试人员可以参与设计,对设计进行评审,找出设计的缺陷,同时设计功能、新特性等各方面的测试用例,完善测试计划,并基于这些测试用例并开发测试脚本。在编程的同时,进行单元测试,是一种很有效的办法,可以尽快找出程序中的错误,充分的单元测试可以大幅度提高程序质量,减少成本。习题四RUP是信息系统项目的生命周期模型之一,“确保软件结构、需求、计划足够稳定;确保项目风险已经降低到能够预计完成整个项目的成本和日程的程度。针对项目软件架构上的主要风险已经解决或处理完成细化阶段的主要任务。5RUP(RationalUnifiedProcess)软件统一过程是一种”过程方法“,它就是迭代模型的一种。RUP中的软件生命周期在时间上分解为四个顺序的阶段,分别是:初始阶段、细化阶段、构建阶段和交付阶段。这四个阶段的顺序执行就形成一个周期。其中细化阶段的任务如下:(1)确保软件结构、需求、计划足够稳定;确保项目风险已经降低到能够预算完成整个项目的成本和日程的程度。(2)针对项目的软件结构上的主要风险已经解决或处理完成。(3)通过完成软件结构上的主要场景建立软件体系结构的基线。(4)建立一个包含高质量组件的可演化的产品模型。(5)说明基线化的软件结构可以保障系统需求可以控制在合理的成本和时间范围内。(6)建立好产品的支持支撑。极限编程技术XP适用于需求多变,开发队伍规模较小,需求开发方”快速反馈,及时调整“。极限编程技术XP是一种开发软件的轻量级方法。XP适用于小型或中型软件开发团队,并且客户的需求模糊或需求多变。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期。通过积极的交流和反馈,可以根据实际情况及时的调整开发过程。3.3信息系统工程与软件工程3.3.1信息系统工程1、信息系统需求调研与系统分析通过需求调研要搞清楚如下问题:客户对待建系统有那些要求?用户的业务目前是如何开展的?目前存在甚么问题?业务及其流程是否需要优化?用户的那些业务需要IT技术支持?用户业务的那些问题需要IT技术俩解决?此时客户和用户的语言类描述客户的需求和用户的业务,用客户和用户的语言来与6他们进行交流的并与他们达成一致的认识。通过需求分析(或者称之为系统分析),要把需求调研的结果用IT语言或通俗的图形描述出来,要回答如下问题:未来要开发的系统应该具有那些功能和性能?它有甚么样的系统架构?每一个功能模块有时如何支持客户需求和用户业务的?对系统的可用性、可靠性、可移植性、集成性、适应性和数据要求是甚么?上述过程提及的描述语言是统一建模语言(UML)。UML提供了通俗的符号和图形来描述客户的需求和用户眼中的业务,UML以图形的方式方便了IT人员、客户和用户之间的交流。对软件项目和软件子项目来说,RUP可以参考的开发方法之一,RUP对网络工程也有很强的指导作用。2、信息系统的设计由于信息系统由线路、网路、软件和数据库组成,因此无论是信息系统的需求调研、需求分析(或称系统分析)还是信息系统的设计,都涉及到综合布线、组网和软件系统(含数据库)等三部分,这三部分分别承担客户和用户对信息系统的相应需求。1关于三部分的设计工作,下文都会有论述。1)方案设计信息系统的方案设计包括如下内容:、(1)信息系统的总体设计(2)软件工程的设计(3)网络工程的设计(4)综合布线和机房工程设计有关软件工程的设计请参考3.3.3节和3.4.5节相关的内容,有关网络工程的设计、综合布线和机房工程的设计和设备、DBMS和技术选型。请参考3.7.11节中的相关内容。2)系统架构典型的信息系统体系结构如下图3.3所示在图3.3中,环境支持平台包括机房和电源,环境支持平台也叫基础设施。计算机网络平台7包括网络传输基础设施、网络通信设备、网络服务器和操作系统、网络协议、网络平台、外部信息基础设备等,以保证网络的互联互通、应用基础平台包括数据库平台、Internet基础服务、网络管理平台和开发工具等。网络应用系统层放置为用户的业务开发出来的各种应用软件系统用户界面层包括为用户开发的客户/服务器Client界面、Web界面和GUI界面。8用户1用户2用户3软件集成数据集成网络集成客户服务器平台Web平台GUI平台网络安全与网络管理5、用户界面4、网络应用系统数据库平台开发工具基础服务3、应用基础平台2、计算机网络平台(信息基础设施)1、环境支持平台9在图3.3中,网络安全是指在网络系统中保证信息产生、处理、传输、存储过程中的机密性、鉴别、完整性和可用性的软硬件措施,它可能贯穿与网络体系结构的每一个层次。除网络安全技术之外,还需要对网络进行安全管理,网络安全管理是一个组织建立信息安全方针和目标实现这些目标的体系。3.3.2软件工程之软件需求分析与定义软件需求分析与定义过程了解客户需求和用户的业务,为客户、用户和开发者之间建立一个对于待开发的软件产品的共同理解,并把软件需求分析结果写到《软件需求说明书》中。1、需求分析的任务需求分析的任务是:准确定义未来系统的目标,确定为了满足用户的需求待建系统必须做什么即”whattodo?”,并用需求规格说明书以规范的形式准确表达用户的需求。让用户和开发者共同明确待建的是一个甚么样的系统,关注待建的系统要做甚么,应具备甚么样的功能和性能。需求分析有两个任务:建立分析模型编写需求规格说明书需求分析的步骤如下:需求获取需求提炼需求描述需求验证一个典型的、传统的结构化的需求分析过程形成的软件需求说明书包括如下内容:1、前言1.1目的1.2范围1.3定义、缩写语、略语1.4参考资料102、软件项目概述2.1软件产品描述2.2软件产品功能描述2.3用户特点2.4一般约束2.5假设和依据3、具体需求3.1功能需求3.1.1功能需求13.1.1.1引言3.1.1.2输入3.1.1.3加工3.1.1.4输出3.1.2功能需求2...3.1.n功能需求n3.2外部接口需求3.2.1用户接口3.2.2硬件接口3.2.3软件接口3.2.4通信接口3.3性能需求3.4设计约束3.4.1其他标准的约束3.4.2硬件的限制..11.3.5属性3.5.1安全性3.5.2可维护性...3.6其他需求3.6.1数据库3.6.2操作3.6.3场合适应性对上述的部分款项,解释如下:1.2范围要明确项目软件产品的名称、用途和应用2项目概述描述影响产品和其需求的一般因素,不说明具体的需求,而仅使需求更易于理解。进一步说明如下:2.1软件描述说明产品是不是独立的、全部内容自含的,说明软件产品的功能和性能、设计限制、属性(可移植性、正确性、可维护性及安全性等)、外观接口。2.2产品功能为将要完成的软件功能提供一个摘要。2.3用户特点描述影响具体需求的、产品的最终用户的一般特点如教育水平、经验、技术、专长等,都是施加于系统操作环境的重要约束。2.4一般约束对设计系统时限制开发者选择的其中一些事项做一般性描述包括管理方针、硬件的限制、与其应用间的接口等等。2.5假设与依据列出影响SRS中陈述的需求的一个因素。这些因素不是软件的设计约束,但是他们的改变可能影响到SRS中的需求。例如:假定一个操作系统是被如软件产品制定的硬件上使用的,然而,事实上这个操作系统是不可能使用的,于是,SRS就要进行相应的改变。3、具体需求应包括软件开发者在建立设计时需要的全部细节,对每一个需求细节做具体描述应该遵循可验证性、无歧义性等准则,还要提供对任何一个具体需求交叉引用的背景。除描述功能需求外,还应该描述性能需求、设计约束、属性和外部接口需求。123.3.3软件工程之软件设计、测试与维护软件设计回答如何做。软件设计可分为概要设计和详细设计。有时也成为概要设计为总体设计。在概要设计阶段,应设计完成软件的系统架构(或称体系结构)、每个子系统承担的功能以及满足的要求,应完成数据库的设计,编制集成测试计划,编制用户手册的最初版本,项目经理编制更为详细的项目计划。所有这些成果都要通过相应的评审。详细设计负责对每个