版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,信息系统集成技术,中国软件评测中心,2,课程大纲-1,第一章 前言 第二章 软件开发的典型方法 第三章 统一建模语言UML、系统分析和设计 第四章 软件架构与组件技术 第五章 典型网络技术及标准 第六章 网络安全 第七章 典型信息系统集成技术,3,课程大纲-2,信息系统集成技术发展方向 因特网查询、预定的图书管理系统,4,第一章、前言,5,1. 系统集成概况,1.1 系统集成定义 1.2 系统集成的三个层面 1.3 系统集成实施步骤 1.4 系统集成体系框架 1.5 系统集成的原则 1.6 系统集成组织机构,6,1.1 系统集成解决什么问题?,集成即集合、组合、一体化,以有机组合、协调工作
2、、提高效率和创造效益为目的的将各个部分组合成为全新功能的、高效的和统一的有机整体。 系统集成是指在系统工程科学方法的指导下,根据用户需求,优选各种技术和产品。提出系统性的应用方案,并按方案对组成系统的各个部件或者子系统进行综合集成。,7,1.1 系统集成方法论,系统集成的目标:系统生命期中与用户利益始终保持一致的服务。 系统集成的方法:先进的理论+先进的技术+先进的手段+先进的管理。 系统集成的对象:计算机及通信的硬件+计算机软件(系统软件和应用软件)+系统集成的用户+管理 系统集成的关键:系统整体优化,即所有部件和成分合起一起后不只是能工作,而且全系统是低成本的、高效率的、性能匀称的、可扩充
3、性和可维护性好的系统。,8,1.2 网络系统集成的3个层面,系统集成过程,集成商的经验技术,用户需求,9,1.3 系统集成实施步骤,客户需求,初步需求分析,检错,系统维护与服务,客户论证意见,方案修正,方案设计,解决方案,工程实施,方案论证,测试验收,项目终结,10,1.4 系统集成体系框架,网 络 安 全 平 台,网络应用系统,计算机网络平台,环境支持平台,11,1.5 系统集成原则,系统开放性。“开放性”和“标准性”是同义词,是当今计算机应用的共同呼声和迫切愿望,是计算机技术发展的必然趋势。在系统集成当中,产品选型、设备选型、软件选型、软件工具的工发等一系列工作应采用国际流行标准,特别是工
4、业标准。系统开放性好的系统肯定是一个生命的系统、应用软件可移植好的系统。,12,1.5 系统集成原则,实用性和先进性:实用有效是最主要的设计目标,设计结果应能满足需求,且切实有效;设计上确保设计思想先进、信息系统结构先进、系统硬件设备先进、开发工具先进。,13,1.5 系统集成原则,稳定性和可靠性:稳定可靠、安全地运作是系统设计的基本出发点,技术指标按MTBF(平均无故障时间)和MTBR(平均无故障率)衡定,重要信息系统应采用容错设计,支持故障检测和恢复;安全措施有效可信,能够在软、硬件多个层次上实现安全控制。,14,1.5 系统集成原则,灵活性和可扩展性:系统集成配置灵活,提供备用和可选方案
5、;能够在规模和性能两个方面进行扩展,使其性能有大幅度提升,以适应应用和技术发展的需要。,15,1.6 典型的系统集成商组织机构,16,第二章 软件开发的典型方法,预备概念 类 类是现实世界中实体的形式化描述,类将该实体的属性(数据)和功能(函数)封装在一起。类是一种复杂的数据类型。,17,对象 对象(Object)是类(Class)的一个实例(Instance)。如果将对象比作房子,那么类就是房子的设计图纸。所以面向对象程序设计的重点是类的设计,而不是对象的设计。 类相当于复杂的一种数据类型,一种带有操作函数的数据类型。而对象是该类型的变量。,18,封装,封装:把类中的数据同函数组合在一起。,
6、19,继承,广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象中,继承是子类自动地共享基类中定义的数据和方法的机制。 父类:类的上层,也叫基类。 子类:类的下层,也叫派生类。 继承有时也叫派生。,20,继承和组合,1、如果类A和类B毫不相关,不可以为了使B的功能更多些而让B继承A的功能。 2、如果类B有必要使用A的功能,则要分两种情况考虑: 1)若在逻辑上B是A的“一种”(a kind of ),则允许B继承A的功能。如男人(Man)是人(Human)的一种,男孩(Boy)是男人的一种。那么类Man可以从类Human派生,类Boy可以从类Man派生。 2)若在逻辑上
7、B是 A 的“一部分”(a part of),则不允许B继承A的功能,而是要用B 和其它东西组合出A 。例如眼(Eye)、鼻(Nose)、口(Mouth)、耳(Ear)是头(Head)的一部分,所以类Head应该由类Eye、Nose、Mouth、Ear组合而成,不是派生而成。,21,多态,定义: 1、允许将派生类的对象当作基类的对象使用。 或: 2、给行为(函数/虚函数)取一个名字或符号,它共享一个类的层次,在这个层次中的每个类都以适合自己的方式实现这个行为。 或: 3、一体(函数/虚函数)多用。,22,面向对象技术,基本概念 类 对象 类图和对象图 需求、功能和过程 程序模块(或称组件) 三
8、过程: OOA OOD OOP,23,基本概念,思想 体系、架构和架构师( ARCHITECTURE 细化阶段(Elaboration); 构建阶段(Construction); 交付阶段(Transition)。 每个阶段结束于一个主要的里程碑(Major Milestones)。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。 1初始阶段 初始阶段的目标是为系统建立商业案例并确定项目的边界。,47,为了达到该目的必须识别所有与系统交互的外部实体,在较高层次上定义交互的特性。对于建立在原有系统基础上的开发项目来讲,初始阶段可能很短。 初始阶段结束时是第一个重要的里程碑: 生命期
9、目标(Lifecycle Objective)里程碑。生命期目标里程碑评价项目基本的生存能力。 2细化阶段 细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。为了达到该目的,必须在理解整个系统的基础上,对体系结构作出决策,包括其范围、主要功能和诸如性能等非功能需求。同时为项目建立支持环境,包括创建开发案例,创建模板、准则并准备工具。,48,细化阶段结束时形成第二个重要的里程碑: 生命期结构(Lifecycle Architecture)里程碑。生命期结构里程碑为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量。此刻,要检验详细的系统目标和
10、范围、结构的选择以及主要风险的解决方案。 3构建阶段 在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。从某种意义上说,构建阶段是一个制造过程,其重点放在管理资源及控制运作以优化成本、进度和质量。,49,构建阶段结束时是第三个重要的里程碑: 初始功能(Initial Operational)里程碑。初始功能里程碑决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运作。此时的产品版本也常被称为“beta”版。 4交付阶段 交付阶段的重点是确保软件对最终用户是可用的。交付阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反
11、馈的少量的调整。在生命期的这一点上,用户反馈应主要集中在产品调整,设置、安装和可用性问题,所有主要的结构问题应该已经在项目生命期的早期阶段解决了。 在交付阶段的终点是第四个里程碑: 产品发布(Product Release)里程碑。此时,要确定目标是否实现,是否应该开始另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段的结束重合。,50,2.2.2 RUP的核心工作流,RUP中有9个核心工作流,分为6个核心过程工作流(Core Process Workflows)和3个核心支持工作流(Core Supporting Workflows)。尽管6个核心过程工作流可能使人想起传统瀑布
12、模型中的几个阶段,但应注意迭代过程中的阶段是完全不同的,这些工作流在整个生命期中一次又一次被访问。9个核心工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复。 1商业建模(Business Modeling) 商业建模工作流描述了如何为新的目标组织开发一个构想,并基于这个构想在商业用例模型和商业对象模型中定义组织的过程,角色和责任。 2需求(Requirements) 需求工作流的目标是描述系统应该做什么,并使开发人员和用户就这一描述达成共识。为了达到该目标,要对需要的功能和约束进行提取、组织、文档化;最重要的是理解系统所解决问题的定义和范围。,51,3分析和设计(Analysis
13、 & Design) 分析和设计工作流将需求转化成未来系统的设计,为系统开发一个健壮的结构并调整设计使其与实现环境相匹配,优化其性能。分析设计的结果是一个分析模型和一个设计模型。设计模型是源代码的抽象,由设计类和一些描述组成。设计类被组织成具有良好接口的设计包(Package)和设计子系统(Subsystem),而描述则体现了类的对象如何协同工作实现用例的功能。 设计活动以体系结构设计为中心,体系结构由若干结构视图来表达,结构视图是整个设计的抽象和简化,该视图中省略了一些细节,使重要的特点体现得更加清晰。体系结构不仅仅是良好设计模型的承载媒介,而且在系统的开发中能提高被创建模型的质量。,52,
14、4实现(Implementation) 实现工作流的目的包括: 以层次化的子系统形式定义代码的组织结构; 以组件的形式(源文件、二进制文件、可执行文件)实现类和对象; 将开发出的组件作为单元进行测试 集成由单个开发者(或小组)所产生的结果,使其成为可执行的系统。 5测试(Test) 测试工作流的目的是要验证: 对象间的交互作用, 软件中所有组件的正确集成, 所有的需求已被正确的实现, 识别并确认缺陷在软件部署之前被提出并处理。 6部署(Deployment) 部署工作流的目的是 成功的生成版本并将软件分发给最终用户。,53,部署工作流描述了那些与确保软件产品对最终用户具有可用性相关的活动,包括
15、:软件打包、生成软件本身以外的产品、安装软件、为用户提供帮助。在有些情况下,还可能包括计划和进行beta测试版、移植现有的软件和数据以及正式验收。 7配置和变更管理(Configuration & Change Management) 配置和变更管理工作流描绘了如何在多个成员组成的项目中控制大量的产物。配置和变更管理工作流提供了准则来管理演化系统中的多个变体,跟踪软件创建过程中的版本。工作流描述了如何管理并行开发、分布式开发、如何自动化创建工程。同时也阐述了对产品修改原因、时间、人员保持审计记录。,54,8项目管理(Project Management) 软件项目管理平衡各种可能产生冲突的目标
16、,管理风险,克服各种约束并成功交付使用户满意的产品。其目标包括: 为项目的管理提供框架, 为计划、人员配备、执行和监控项目提供实用的准则, 为管理风险提供框架等。 9环境(Environment) 环境工作流的目的是向软件开发组织提供软件开发环境,包括过程和工具。环境工作流集中于配置项目过程中所需要的活动,同样也支持开发项目规范的活动,提供了逐步的指导手册并介绍了如何在组织中实现过程。,55,2.2.3 RUP的迭代开发模式,RUP中的每个阶段可以进一步分解为迭代。一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为
17、最终的系统。 传统上的项目组织是顺序通过每个工作流,每个工作流只有一次,也就是我们熟悉的瀑布生命期(见图1)。这样做的结果是到实现末期产品完成并开始测试,在分析、设计和实现阶段所遗留的隐藏问题会大量出现,项目可能要停止并开始一个漫长的错误修正周期。 一种更灵活,风险更小的方法是多次通过不同的开发工作流,这样可以更好的理解需求,构造一个健壮的体系结构,并最终交付一系列逐步完成的版本。这叫做一个迭代生命期。在工作流中的每一次顺序的通过称为一次迭代。,56,软件生命期是迭代的连续,通过它,软件是增量的开发。一次迭代包括了生成一个可执行版本的开发活动,还有使用这个版本所必需的其他辅助成分,如版本描述、
18、用户文档等。因此一个开发迭代在某种意义上是在所有工作流中的一次完整的经过,这些工作流至少包括:需求工作流、分析和设计工作流、实现工作流、测试工作流。其本身就像一个小型的瀑布项目(见图2)。 图2 RUP 的迭代模型,57,与传统的瀑布模型相比较,迭代过程具有以下优点: 降低了在一个增量上的开发风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。 降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。 加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。 由于用户的需求并不能在一开始就作出完全
19、的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。,58,2.2.4 总结,RUP具有很多长处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。但同时它也存在一些不足: RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组
20、织内大范围实现重用的可能性。可以说RUP是一个非常好的开端,但并不完美,在实际的应用中可以根据需要对其进行改进并可以用OPEN和OOSP等其他软件过程的相关内容对RUP进行补充和完善。,59,2.3 极限编程XP,什么是极限编程? 极限编程(eXtreme Programming,简称XP)是由Kent Beck于1996年初提出的。Kent Beck是一位著名的软件工程师,他以软件工程师的观点来看程序设计这项工作。他认为,长期以来,程序设计的工作受到最后期限(deadline)的压迫,他们的产出往往无法达到应有的品质。XP从人的本质考虑如何让软件工程师可以有尊严的工作,而同时可以产出高品质的
21、软件。XP的精神可以说是实践敏捷软件开发的四项价值观: “个人及相互交流胜过软件工程和工具”, “可运行的程序胜过完整广博的文档资料”, “与用户合作胜于合约谈判”, “回应变化胜于服从计划”。 XP和RUP一样,是软件开发的一种过程方法。,60,可在下列网址查到XP的流程: 进入该网址的首页后,选择左上角的: 什么是极限编程,然后选择该网页右上角的XP拼图即可。,61,极限编程的特点和适用范围,极限编程的12项原则如下: 1.规划策略迅速决定下一次发行的范围、商业优先和技术评估。由客户从商业角度决定发行范围、优先顺序和发行日期,技术人员则对开发程序作出评
22、估和跟踪。 2.小范围发布迅速在生产中使用小型系统。在极短的周期内(两周)发行新的版本。 3.系统比喻用关于整个系统如何工作的简单、共用的故事情节卡来指导所有的开发。 4.简单设计在任何给定的时刻都尽可能简单地设计。 5.测试不断编写运行无错误的单元测试;由客户编写测试以表明功能完成。 6.重新划分不改变行为地重构系统,删除重复,改进交流,简化,或增强灵活性。,62,7.双人组程式设计所有程式码由两个程序员在同一台电脑上编写。 8.集体所有权任何人都可以在任何时间按规程改进系统任何地点的任何程序。 9.持续整合一天多次整合和建立系统,每次完成一项任务。连续的回归测试作为需求变化后,功能并没有退
23、步。 10.一周40小时将一周工作不超过40小时作为一条规定;决不连续两周超时工作。 11.现场客户真正的、身处开发现场的用户,随时回答问题。 12.编码标准强调贯穿于全部程序的交流规则。,63,极限编程的适用范围,轻量级项目的开发(10人左右的开发队伍) 强调以程序员为本、强调交流 强调规则、文档为程序员服务,程序员/系统分析员不是规则和文档的奴隶。,64,三种方法的总结,MSF是一种关于软件开发的思想,包括软件开发过程、团队建设、风险管理等。 RUP和XP属于软件开发的过程方法。,65,第三章 统一建模语言UML、信息系统分析与设计,什么是UML?,项目立项,系统设计,系统实现/编程/测试
24、,系统集成,系统维护,结构化系统分析: 图例表示方法不统一; 早期的各种面向对象的 系统分析方法: 具有不同的建模符号体系; 现在,面向对象的系统分析 建模图示/语言 ,统一在 UML,系统分析,66,问题,客户的需求经常变化,烦死人了! 变化是一种正常现象 客户需求发生变化的情况在IT行业也很普遍。 接受变化! 我们要做的是: 尽早明确需求。如果需求要变,尽可能早变。 最好需求能100%明确,而且稳定,自始至终没变化。 如果客户需求发生了变化,怎么办? 对需求的变更进行管理 用先进的系统开发思想、流程、方法和工具来实现项目!,67,当代系统分析和设计过程的概括,需求 功能 活动 动作,68,
25、3.1 UML是主流面向对象方法学的综合和统一,Booch OOSE OMT UML是独立于过程的: 最适用于用例驱动、以体系结构为中心、迭代和增量的过程中。 原型 = 初始选定的框架(体系结构)+ 界面,69,3.1.1 模型和建模,模型-MODEL 逻辑模型 设计模型 定义: 1、模型是对现实的简化。 对于问题,模型是现实的简化,得到一个模型-0;对于方案,模型是模型-0的实现,得到方案-2。 2、建模是捕捉系统本质的过程。 建模是使你逐层深入解决问题的办法;建模就是把复杂的系统变成小的系统,采用“各个击破”的原则逐一解决。,70,建模的目标: 1)模型帮助我们按照实际情况或按照我们所需要
26、的样式对系统进行可视化。 2)模型允许我们详细说明系统的结构和行为。 3)模型给出一个知道我们构造系统的模板。 4)模型对我们的决策进行文档化。 建模原理: 1)选择创建什么模型很重要,模型要反映你难于处理的开发问题。 2)模型要在不同的精度级别上来表示。你可以根据观察的角色和观察的原因来选择精度。 3)建造模型要和现实相连。 4)重要的系统需要用一组独立的模型去处理。在面向对象的软件体系中,为了理解系统的体系结构,你需要几个互补和连锁的视图:用例图、设计视图、进程视图、实现视图和实施视图。,71,用UML建模,在一个待开发的信息系统项目生命期中,对应不同阶段,至少有如下模型: 业务模型 分析
27、模型 设计模型 实现模型 部署模型。 UML支持项目全程建模,并保持各阶段模型之间的可追溯性。 UML建模要依照某个方法或过程来进行。一般地讲 RUP过程是UML建模的好搭档。,72,3.1.2 UML的符号体系,见附件1:UML符号一览表,73,3.1.3 UML体系结构视图,74,各视图的作用,UML是用来描述模型的,它用模型来描述系统的结构和行为,前者叫UML静态图,后者叫UML动态图。也可用UML从不同的视角为系统的架构建模,形成系统的不同视图,包括: 1、用例视图 强调从用户角度看到的或需要的系统功能。视图的静态方面由用例图捕捉;动态方面由交互作用图、状态图和活动图捕捉。 2、设计视
28、图 设计视图包括形成问题域的词汇表和解决方案的类、接口和协作,支持系统的功能需求。设计视图静态方面由类图和对象图描述,动态方面由交互图、状态图和活动图描述。,75,各视图的作用(续1),3、过程视图 系统的过程视图包括形成系统的并发和同步机制的线程和过程,描述了系统的性能、可扩展性和总处理能力。过程视图静态方面由类图和对象图描述,动态方面由交互图、状态图和活动图描述。 4、实现视图 系统的实现视图包括用于组装物理系统的组件和文件,主要描述了系统版本的配置管理。实现视图静态方面由组件图捕捉,动态方面由交互图、状态图和活动图描述。 5、实施视图 系统的实施视图包括用于运行系统的系统硬件拓扑的节点,
29、主要描述了物理系统组成部分的分布、交付和安装。实施视图静态方面由部署图捕捉,动态方面由交互图、状态图和活动图描述。,76,3.1.4 UML静态图,用例图(Use Case Diagram) 类图(Class Diagram) 对象图(Object Diagram) 构件图(Component Diagram) 部署图(Deployment Diagram),77,3.1.5 UML动态图,状态图(State Diagram) 时序图(Sequence Diagram) 协作图(Collaboration Diagram) 活动图(Activity Diagram),78,3.1.6 用例图,
30、用例图表示用例与和外部参与者的交互。 符号表示:,79,用例图例子,80,3.1.7 类图(Class Diagram),1购买 0.* 属于,类图描述了类集、接口集、协作以及它们之间的关系。,81,3.1.8 对象图(Object Diagram),对象图描述了类图某一瞬间的实例,描述了该瞬间对象集及对象间的关系。,82,对象间关系,依赖关系(Dependency) 类属关系(Generalization) 关联关系 (Association) 聚集关系(Aggregation),83,3.1.9 状态图(State Diagram),状态图描述了一个特定对象的所有可能状态以及引起状态跃迁的
31、事件。,超时,到达,下楼,上楼,到达,上楼,到达,向底楼移动,在底楼,向上移动,空闲,向下移动,84,3.1.10 时序图(Sequence Diagram),用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。,85,3.1.10 时序图,86,3.1.11 协作图(Collaboration Diagram),用于描述相互合作的对象间的交互关系和链接关系。 顺序图和协作图都被称为交互作用图或交互图。,87,3.1.11 协作图,88,3.1.12 活动图(Activity Diagram),活动图依据对象状态的变化来捕获动作(将要执行的工作或活动)与动作的结果。,89,3.1
32、.12 活动图,Disk free,Disk full,显示磁盘满,显示在打印,删去显示信息,建立打印文件,Win.printAll(),printer.print(),90,在电梯门外按键,电梯到达当前层,进入电梯,打开电梯门,乘客电梯,其他,电梯在当前层,关电梯门,在电梯内按要去的楼层号,到达预定楼层,开门,离开电梯,关门,以泳道表示的活动图,91,活动1,活动2,活动3,活动5,活动4,以流程图表示的活动图,92,3.1.13 组件图(Component Diagram),组件图描述了组件及组件之间的关系,表示了组件之间的组织和依赖关系。,Interface1,Interface2,1,
33、2,93,3.1.14 部署图(Deployment Diagram),用部署图来描述运行软件的处理器、设备及其拓扑结构。,94,3.2 信息系统分析与设计,到目前为止,共有两种方法: 结构化系统分析与设计 面向对象的系统分析与设计,95,一般的系统分析过程,制定需求分析计划 相互培训,尤其是IT人员要学习甲方的业务流程。 制作调查表格、框图和流程图,96,一般的系统设计过程,确定技术方案 依据评审后的技术方案,确定: 设备选型 系统软件平台、数据库选型 开发工具选型 性能的高、中、低方案 由项目的投资额、甲方的IT发展规划确定一种方案。 确定系统配置计划 确定商务方案 制作投标书,97,3.
34、2.1、结构化系统分析与设计,1)、结构化分析方法SA SA的基本步骤 自顶向下功能分解,画分层DFD 定义系统的数据和加工,编制DD和PSPEC 分析系统行为,编制CFD(Control Flow Diagram)、CSPEC: (Control Specification) (optional) State Transition Diagrams (STDs) and Entity-Relationship Diagrams (ERDs), 编制SRS,98,2)、结构化设计的内容,结构设计 概要设计 体系结构设计 SC图(system chart 系统结构图,描述软件的结构) 接口设计
35、SC图 数据库设计 物理数据模型 过程设计 详细设计 模块的处理过程 N-S图,PAD,PDL等,3)、结构化设计,PSPEC,过程设计,接口设计,体系结构设计,数据设计,CSPEC,100,3.2.2 面向对象的系统分析和设计,面向对象技术的哲学基础来源于维特根斯坦的世界观。 维特根斯坦在其逻辑哲学论 一书中提出了如下思想:世界可以分解为事实 ( The world divides into facts.)事实是由原子事实(atomic facts)组成的。一个原子事实是多个对象(objects)的组合。对象是简单的(基本的。The Object is simple ) 。对象形成了世界的基
36、础。 世界 事实 原子事实 对象,101,计算机世界中的抽象层次XO(X?-Oriented) 最高的抽象层次OO(对象、类)PO(过程、函数、变量)变量、运算、表达式、语句字节(4位、8位、16位、32位、64位)二进制串 0101011110001 最低的抽象层次软件工程的发展历史就是人们不断追求更高的抽象、封装和模块化的历史。OO当然不会是历史的终结。尽管不能精确得到OO之后是什么,我们至少可以推知,OO之后的XO,必然将是比OO更高一级的抽象。它所依赖的核心概念必然高于并包容对象这一概念。正如对象高于并包容了函数和变量一样。分析 设计 编码 测试 维护,102,一、几种典型的面向对象的
37、分析方法,OOAD/Coad-Yourdon,是Object-Oriented Analysis and Design方法的简称,由Peter Coad和Edward Yourdon 在1991年提出。这是一种分步实施的面向对象建模方法。 OMT方法,是Object Modeling Technique方法的简称。最早于1987年提出,曾扩展应用于关系数据库设计。Jim Rumbaugh在1991年正式把OMT应用于面向对象的分析和设计。这个方法是在实体关系模型上扩展了类、继承和行为而得到的。 OOD/Booch方法,为Object Oriented Design方法的简称,是Grady Bo
38、och从1983年开始研究,1991年后走向成熟的一种面向对象的一种系统设计方法。 OOSE/Jacobson方法,为Object-Oriented Software Engineering方法的简称,是Ivar Jacobson在1992年提出的一种使用事例驱动的面向对象开发方法。,103, 面向对象分析方法OOA,OOA的基本步骤 识别参与者 定义系统的用例 在领域分析的基础上建立问题域的类和对象模型。 建立类图、对象图、交互作用图、状态图和活动图。 编写SRS,104,1、定义用例,回答问题发现参与者 使用系统主要功能的人是谁? 需要借助于系统完成日常工作的人是谁? 谁来维
39、护、管理系统,保证系统正常工作? 系统控制的硬件设备有哪些? 系统需要和哪些其它系统接口? 对系统产生的结果感兴趣的人和事是哪些?,105,定义用例,回答问题发现用例 参与者需要从系统中获得哪种功能?需要参与者做什么? 参与者需要读取、产生、删除、修改或存储系统中的某种信息吗? 系统中发生的事件需要通知参与者吗?参与者需要通知系统某件事吗?这些事件能干什么? 系统需要输入/输出的是什么信息?这些输入/输出信息从哪儿来 ?到哪儿去? 系统当前的实现要解决的问题是什么?,106,2、领域分析,目的 发现或创建可广泛应用的类,以便复用 分析特定的应用领域 形式 公共对象、类、子集合和框架等,107,
40、3、识别类(一),确定分析模型中的类 考察系统用例 汇总名词、名词短语 得到候选类 确定类 必要的信息、需求、服务 多个属性、公共操作,108,4、识别类(二),定义类结构与层次 一般 特殊 整体 部分 定义主题和子系统 高层抽象 主题是一个比类的粒度更大的概念。比如一个办公事务管理系统,就可以有:文件处理、要事安排、档案管理、会议安排等主题。在会议安排这个主题里,可以放进诸如会议类、(与会)单位类、职员类,而职员类可能也是在其他主题内,即主题交叉。一般对于较为复杂的系统采用先建立主题图再填充类的自顶向下方式。包含较多类和对象的主题可以再划分,即主题嵌套。,109,5、建立类图和对象图,步骤
41、复审需求描述和用例陈述 找出表示关系的动词或动词短语 用线连接起来,箭头表示方向 给连接命名,标上基数,110,6、建立对象行为模型,活动图 状态图 协作图 时序图,111, 面向对象的设计,包括如下内容: 面向对象设计的模型 面向对象设计的任务 面向对象设计的工具 UML,112,1、面向对象设计的模型(示意图),责任设计,消息设计,类及对象设计,子系统设计,属性、操作、协作,对象状态图、活动图和交互作用图,类图和对象图,类和对象,用 例 图,113,2、面向对象设计的任务,面向对象设计的任务 系统设计 系统整体结构的设计 对象设计 对OOA模型中的类和对象具体化、详细设计 消
42、息设计 从类图、对象图和动态图,设计出消息模型 复审设计模型,114,3、系统设计过程, 确定待开发系统的体系结构,划分子系统; 确定需要并发运行的子系统并为它们分配处理器; 描述子系统之间的通信; 确定系统资源的管理和控制; 确定人机交互构件; 选择实现数据管理和任务管理的基本策略。,115,4、四种主要子系统,问题域子系统 人机交互子系统 任务管理子系统 数据管理子系统,116,5、对象设计,设计模型,对象 数据结构 算法 消息传递,分析模型,类 属性 方法 关系,117,6、对象设计,对象描述 协议描述:一组消息和对消息的注释 实现描述:对对象接收到某个消息后所执行的操作的实现细节的描述
43、 算法设计 构件与接口 对象间的接口和对象的整体结构。,118,最基本的建模,对象图中的各个对象,按照顺序图的交互,完成一个用例 。,119,一个ATM系统实例,建立一个具有基本功能的ATM机软件,客户可以存钱,取钱,客户可以查询节余,客户可以修改密码,客户可以使用信用卡付帐,120,需求建模用例图,需求分析的第一步是确定系统能够做什么?谁来使用这个系统? 用例图显示用例(表示系统功能)与参与者(表示提供或者接收系统信息的人或系统)之间的交互。 用户,项目管理员,分析人员,开发人员质保人员都可以通过用例图了解系统功能。,121,ATM系统的用例图,122,用例,描述一个系统(或一个子系统)做什
44、么,而不是说明怎么做。,123,参与者,系统用户 与本系统交互的其他系统 时间,124,建立事件流,用例可以用事件流来描述,是对用例中的逻辑流程的描述,详细描述系统的工作。,125,用例“取钱”的事件流,简要说明:客户可以从ATM机上取出自己帐目上的部分或者全部存款。 前提条件:无 主事件流:,126,客户将卡插入ATM机,开始用例。 ATM显示欢迎消息并提示客户输入密码。 客户输入密码。 ATM确认密码有效。如果无效则执行其他事件流A1。如果与主机联接有问题,则执行异常事件流E1。 ATM提供以下选项:存钱,取钱,查询 。 用户选择取钱选项。 ATM提示输入所取金额。 用户输入所取金额。 A
45、TM确定该帐户是否有足够的金额。如果余额不够,则执行A2,如果与主机联接有问题,则执行异常事件流E1。 ATM从客户帐户中减去所取金额。 ATM向客户提供要取的钱。 ATM打印清单。 ATM退出客户的卡,用例结束。,127,其他事件流A1:输入无效密码 ATM告诉客户该密码错误。 ATM退出客户的卡,用例结束。 其他事件流A2:余额不足 ATM告诉客户该帐户余额不足。 ATM退出客户的卡,用例结束。 异常事件流E1:联接主机出现错误 ATM告诉客户联接主机出现错误。 ATM在错误日志记下错误。 ATM退出客户的卡,用例结束。 事后条件:无,128,对象交互交互图,交互图显示一组对象以及它们之间
46、传送的消息。,129,寻找对象,研究事件流及情景文档中的名词 分辨对象和对象属性 不在事件流中的控制对象,130,顺序图按时间顺序对控制流建模,用户从中看到业务过程的细节。 分析人员从中看到处理流程。 开发人员看到需要开发的对象和它们的操作。 质保人员看到过程细节,并根据这个过程开发测试案例。,131,客户李明取20元钱的顺序图,132,协作图按对象的组织对控制流建模,质保人员和系统分析员用协作图显示对象间处理过程的责任分布和数据流。,133,客户李明取20元钱的协作图,134,类图,显示系统中类与类之间的交互。 分析员用类图显示系统细节。类图可以显示每个用例中类的相互作用,也可以显示整个系统
47、或子系统。,135,ATM系统“取钱”用例的类图,136,顺序图改进,137,关系,依赖 类属 实现 关联聚合和组合,138,“取钱”用例的类图改进,去掉不必要和不正确的类; 增加关系 增加阶元,139,组织建模元素包,一个包形成一个命名空间。通过包组织大系统模型,减少复杂性。 结构良好的包是松耦合,高内聚的,对其内容的访问具有严密的控制。,140,ATM系统的包组织,141,对象行为状态图,显示一个对象从生成到删除的生命期中相应事件所经历的状态序列以及它们对哪些事件的响应。 分析人员和开发人员通过状态图更好的了解类的动态行为,使编码前能讨论和建立复杂逻辑。,142,Account对象的状态图
48、,143,Account对象的状态图的改进,结余,Save/存钱 Withdraw/取钱,0,0,透支,Save/存钱,144,构造程序组件图,表示一组组件(构件)之间的组织和依赖关系。 编译和部署系统的人员需要使用组件图。显示了类与实现组件之间的映射,组件按什么顺序编译,编译时生成哪些运行组件。 组件图对于通过正向工程和逆向工程构造可执行系统是重要的。,145,ATM客户机的C+组件图,146,ATM服务器的C+组件图,147,ATM客户机的Java组件图,148,项目部署实施图,建模系统的实际部署。 项目管理员,用户,分析员和部署人员通过实施图了解,显示网络的实际布局和网络节点上组件的配置
49、。,149,ATM系统的实施图,150,回顾ATM项目的开发过程,151,初始,识别参与者和用例,构建用例图 。,152,细化,更新用例模型,细化用例。识别类和对象,建立交互图,类图和状态图。开始构建实施图以建模系统体系结构。,153,构建,完成代码,生成组件图。,154,移交,使用实施图进行软件部署,维护软件与模型地同步 。,155,正向工程和逆向工程,通过正向工程把模型映射为特定实现语言的代码。 通过逆向工程把特定实现语言的代码转换为模型。,156,UML的扩展机制,UML是可扩展的。 扩展用于特定的应用域或编程环境,但是它们导致了 U M L方言的出现。 在使用扩展机制之前,建模者应该仔
50、细权衡它的好处和代价,特别是当现有机制能够合理工作时。 可以用三种方法扩充UML: 构造型(Stereotypes,也叫原型) 标记值(Tagged Value) 约束(Constraints),157,构造型,构造型扩充UML的词汇,仍然用既有的符号。 构造型是在一个已定义的模型元素的基础上构造的一种新的模型元素,构造型名放在中。 构造型的信息内容和形式与已存在的基本模型元素相同,但是含义和使用不同。,158,标记值,标记值扩充UML元素的属性,但该属性不会传给对象。 标记值用放在中的字符串表示,存储着有关元素的一些信息。 对于存储项目管理信息,代码生成器等有用。,159,约束,约束扩充UM
51、L元素的语义,是放在中的一个表示事实的陈述句。 是用文字表达式表示的语义限制。 约束用大括弧内的字符串表达式表示。约束可以附加在表元素、依赖关系或注释上。,160,建模工具ROSE,161,系统分析阶段的建模,功能建模 性能建模 接口建模 界面建模 数据建模,162,第四章 软件架构与组件技术,163,第五章 典型网络技术及标准,5.1 Internet/Intranet网络技术与标准 5.2 网络交换技术 5.3 综合布线系统 5.4 机房工程 5.5 无线网络技术,164,5.1 网络互联技术,OSI模型 网络协议 网络拓扑,165,5.1.1 网络互联技术 - OSI模型,OSI共有七层
52、,每层完成一定的功能,并为其上层提供服务,所有层次都互相支持。,166,OSI模型的数据通信示意图,物理传输介质,通信子网,DCE,DCE,DTE,DTE,协议,167,OSI模型 - 物理层,物理层定义传输介质的机械、电气、功能和过程等特性。 是OSI的最低层,向下直接与物理传输介质相连接。设立物理层的目的是实现两个网络物理设备之间的二进制比特流的透明传输,对数据链路层屏蔽物理传输介质的特性,以便对高层协议有最大的透明性。 物理层相应设备为:网络传输介质(同轴电缆、双绞线、光缆等)和连接器等,以及保证物理通信的相关设备,如中继器、共享HUB(集线器)等。,168,OSI模型 - 数据链路层,
53、数据链路层实现数据的无差错传送。 该层执行链路管理、帧传输、流量控制、差错控制等功能。数据链路层的传输以帧为单位。 该层相应设备为:网络接口卡及其驱动程序、网桥、二层交换机等。,169,OSI模型 - 网络层,网络层定义网络操作系统通信用的协议,为信息确定地址,把逻辑地址和名字翻译成物理的地址。它也确定从信源机沿着网络到信宿机的路由选择,并处理交通问题。其功能为: 路径选择与中继 流量控制 网络连接建立与管理 网络层设备为:路由器和三层交换机等。,170,OSI模型 - 传输层,传输层负责错误的确认和恢复,以确保信息的可靠传递。 传输层对应的协议有: TCP SPX NetBIOS/NetBE
54、UI,171,OSI模型 - 会话层,会话层建立在传输层之上,利用传输层提供的服务,实现两个会话实体之间的透明、可靠的数据传输。手段有访问验证和会话管理。 如服务器验证用户登录就是由会话层完成的(RADIUS)。,172,OSI模型 - 表示层,表示层从应用层获得数据并把它们格式化以供通信使用,以及转换数据。它把应用程序数据排序成一个有含义的格式并提供给会话层。在这一层可以通过数据加密等提供数据安全。 数据的压缩和解压缩、加密和解密工作由该层负责。,173,OSI模型 - 应用层,应用层提供网络与用户应用软件之间的接口服务,负责识别并证实通信双方的可用性,进行数据传输完整性控制,使网络应用程序
55、能协同工作。 应用层协议有: HTTP SMTP/POP3,174,OSI模型 - 数据传输过程,在应用层生成应用数据; 在传输层生成数据报文; 在网络层,将数据重新打包,在报头中加入目的地址和源地址,便于路由转发; 在数据链路层把数据封包到帧中; 在物理层以比特流形式传输。,175,OSI模型 - 数据传输过程示意图,主机A,主机B,数据,010011001111000011100001110000011,176,OSI模型 和Windows2000对应关系,OSI模型,Windows2000,177,思考题,OSI参考模型的( )负责非结构的二进制比特流传输。 A. 传输层 B. 网络层
56、C. 数据链路层 D. 物理层,178,5.1.2 TCP/IP协议,TCP/IP是一种基于无连结的IP包交换网络。共有四层:网络接口层、IP层、TCP层和应用层。,179,TCP/IP模型与OSI模型的对比,180,5.1.3 网络拓扑,以太网(Ethernet) 令牌环(Token Ring)网和令牌总线(Token Bus)网 FDDI网络 ATM网络,181,以太网,以太网是由Xerox、Digital和Intel于1970年初开发出来的,是目前世界上使用最普遍的网络。它采用基于时分多址宽带传输,访问控制采用CSMA/CD方式。 其通信规范为:10Base-2、10Base-5、10B
57、ase-T。 以太网仅是局域网的一种。,182,Token Ring和Token Bus 网,Token Ring网络拓扑为环形布局,基带网,数据传送速率为4Mbps-16Mbps,采用Token passing传递方法。 Token Bus主要用于总线形或树形网络结构中,它综合了Token passing方式和总线方式,在物理总线结构中实现Token passing控制方法从而构成一个逻辑环路。,183,FDDI网络,什么是FDDI? FDDI为Fiber Distributed Data Interface的缩写,即光纤分布式接口。,184,ATM,什么是ATM网络 ATM是“异步传输模式
58、”(Asynchronous Transfer Mode)的简称,它是以20世纪70年代末出现的宽带ISDN(B-ISDN)为基础开发的新型信元交换技术。 ATM的特点有: 全传输网络技术 ; 传输信元(cell)长度固定 ; 多种物理速度选择:25Mbps、45Mbps、100Mbps、155Mbps、622Mbps ; 局域网与广域网统一的传输协议 ; 造价高、设备贵。,185,以太网技术,拓扑结构 MAC地址 IEEE 802.3 CSMA/CD,186,10Base-T,主机之间通过HUB互连 传输介质采用无屏蔽双绞线(UTP) 双绞线与网卡以及HUB之间采用RJ-45接口 主机与HU
59、B之间、HUB与HUB之间的双绞线不超过100m,187,10Base-X交换式以太网,交换式以太网络不像共享网络把帧广播到每个接点,而是为终端用户提供独占的点对点的连接。帧在节点间沿着指定的路径传输。,188,100Base-T,采用星型拓扑 支持CSMA/CD 可通过双绞线或光纤传输,189,千兆网络,使用传统的CSMA/CD控制协议 提供1Gbps的带宽 可采用多种传输介质 一般用于高速局域网骨干、宽带城域网骨干、服务器和存储设备接入网络平台,190,以太网标准概述,IEEE 802标准 IEEE 802标准是由IEEE(国际电气和电子工程师学会)制订的局域网标准 IEEE 802委员会有10多个分委员会 802.1A,概述、体系结构和网络互连,网络管理 802.1B,寻址、网络管理、网间互连及高层接口 802.2,逻辑链路控制LLC 802.3,CSMA/CD共享总线网,即Ethernet 802.5,令牌环网(Token-Ring) 802.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业财务个人工作总结15篇
- 竞选部长演讲稿集合九篇
- 乡镇学校安全工作总结
- 土木工程实习日记3篇
- 影响和制约宁远教育发展的突出问题
- 部编版历史九年级上册第五单元 第16课《早期殖民掠夺》说课稿
- 五年级数学(小数除法)计算题专项练习及答案汇编
- 雇佣车辆免责协议书(2篇)
- 2025二级注册建造师继续教育机电工程考试题库及答案
- 南京工业大学浦江学院《通信原理》2023-2024学年第一学期期末试卷
- 新冠预防与控制
- 申论之大作文课件
- 煤矿事故复盘分析报告
- 天津美术馆分析报告
- 《魏晋南北朝的科技与文化》【常规课件】
- 安全访问控制策略
- 2024年河南兴港投资集团招聘笔试参考题库含答案解析
- 消防通道畅通
- 相关方环安影响管理程序
- 【幼儿园大班阅读区角环境创设调查及优化建议分析(后含问卷)13000字(论文)】
- 古建筑工程修缮施工组织设计
评论
0/150
提交评论