《信息系统项目-信息系统集成专业技术知识讲义》由会员分享,可在线阅读,更多相关《信息系统项目-信息系统集成专业技术知识讲义(193页珍藏版)》请在金锄头文库上搜索。
1、信息系统项目管理师辅导课程2北京理工大学计算机学院徐进13.信息系统集成专业技术知识3.1信息系统建设 3.1.1基本概念 3.1.2 软件工程方法和技术3.2软件过程模型3.3软件分析方法3.3.1结构化分析方法3.3.2 面向对象分析方法3.4软件设计方法3.4.1结构化设计 3.4.2面向对象设计23.1信息系统建设信息系统集成定义根据信息产业部1999年1047号文件计算机信息系统集成资质管理办法(试行)中定义,计算机信息系统集成是指从事计算机应用系统工程和网络系统工程的总体策划、设计、开发、实施、服务及保障。3.1.1基本概念3信息系统的特点以满足用户需求为根本出发点是综合的、高技术
2、含量的系统工程最终交付物时完整系统,而不是产品系统包括技术、管理、商务活动,技术是核心,管理商务是保障4信息系统集成的分类信息系统集成包括两大类:设备系统集成也称“硬件系统集成”、“系统集成”,或简称“弱电系统集成”,区别于机电设备安装类的强点集成。应用系统集成(Application System Integration)应用系统集成也称“行业信息化解决方案集成”。指提供符合业务需求和管理需求的系统技术解决方案和运维方案。5设备集成包括:智能建筑系统集成(Intelligent Building System Integration),指搭建建筑主体内的智能化管理系统。如:综合布线技术、楼宇
3、自控技术、网络互联技术、多媒体应用技术、安防技术等。计算机网络系统集成(Computer Network System Integration)指利用综合布线和计算机网络技术,将分散在不同地点的电脑设备及功能的集成。安防系统集成(Security System Integration)指搭建机构或组织内部的安全防范管理系统。如:门襟系统、楼宇对讲系统、防盗监控报警系统、停车管理系统、远程会议系统等。6信息系统集成技术信息系统技术与软件工程从信息系统集成的分类可以看出,信息系统集成所涉及的专业技术非常广泛,除了包括多种学科的专业技术之外,还包括管理学科的技术和方法。从信息系统集成的开发过程来看,
4、主要涉及技术是软件工程和网络技术。73.1.2 软件工程方法和技术1基本概念2软件过程管理3软件需求分析概述4软件设计概述5软件测试6软件维护7软件质量保证及评价体系81基本概念软件工程的定义软件工程方法和技术是计算机学科的重要部分。按照IEEE93对软件工程定义:第一,软件工程是将系统的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。第二,软件工程是在一中所述方法的研究。9软件工程定义中给出的4个要点软件工程的性质是系统的、严格约束的、可量化的方法软件工程作用的范围是用于软件的开发、运行和维护的全过程软件工程的目标是工程化应用于软件软件工程的趋势是软件工程方法的
5、不断发展和研究10软件工程的内容包括:工程部分:包括软件项目的招标、投标、合同、实施、监督、验收、推广,等方面来研究,以经济管理科学的理论为依据,研究软件工程的规划策略和经济收益等工程问题。技术部分:软件项目的分析、设计、编码、测试、维护等技术方法。依据软件技术理论,以高效、健壮、可复用、可维护的软件为目标。研究软件体系结构、组成成分,以及构造方式,等。管理部分:软件项目开发的人员组织、过程控制、进度风险分析和质量保证体系等方面,以科学性、合理性、高效可行、及可测量性为目标,来研究工程项目管理。11软件开发生命周期(Systems Development Life Cycle)是软件的产生直到
6、报废的存活期。与人类相同,任何软件都会经历同样的生命周期。12软件过程 软件过程(Software Procedure)是指软件生存周期所涉及的一系列相关过程。过程是活动的集合;活动中包括完成软件项目的各项任务的;每个任务都要运用软件开发方法和技术实施软件系统。活动的执行按照基本的规律,在一定的条件下,可以是顺序的、重复的、并行的、嵌套的等不同的形式,这些形式属于过程模型(本章过面论述)。132软件过程管理研究的热点主要包括:1)软件过程模型的分析和建立,包括:软件过程的合理性、可实施性,以及形式描述和可验证。2)软件过程管理的体系,包括:软件过程定义的概念、内容、策略、方法等,主要的软件过程
7、管理体系:RUP(Rational Unified Process) 统一过程PSP (Personal Software Process) 个体软件过程3)软件过程改进和评估体系CMM(Capability Maturity Model for Software,SW-CMM)软件能力成熟度模型体系CMMI(Capability Maturity Model Integration)能力成熟度模型集成体系,CMMI/SPCA双模认证(软件能力成熟度与软件过程能力)评估体系。14RUP(Rational Unified Process)Rational公司提出的软件按开发过程模型。是一个面向对
8、象软件工程的通用业务流程。RUP的目标:为确保在可预计的时间安排和预算内开发出满足最终用户需求的高品质的软件。RUP 过程模型:横轴是时间轴,分为反复迭代的四个阶段:初始阶段、细化阶段、构造阶段和发布阶段纵轴是工作流轴,包括六个核心工作流程和三个核心支撑工作流程15RUP 核心工作流包括:业务建模工作流需求工作流分析设计工作流实现工作流测试工作流发布工作流RUP 核心支撑工作流包括:环境工作流项目管理工作流配置与变更管理工作流16RUP的6项经验迭代式开发。允许在过程中,不断适应需求的变化,通过不断细化来加深对问题的理解。管理需求。提供如何提取系统功能和约束条件,并将其文档化。基于构件的体系结
9、构。使系统成为可构造、可复用,系统应该尽量采用构件式结构。可视化建模。采用UML对软件系统建模,提供软件文档控制及管理能力。验证软件质量。软件质量评估是事先进行的并贯穿在整个过程所有活动中的必需任务,要统一组织和管理控制软件变更。给出了如何控制、跟踪及监控对系统过程中的修改工作,以确迭代过程进行。17PSP个体软件过程PSP (Personal Software Process)个体软件过程,是由美国Carnegie Mellon大学软件工程研究所开发的,是用于软件开发中,控制和管理个人工作方式的一种软件过程体系。PSP给出了个体软件过程的原则,并可应用到任何软件工程任务之中。PSP提供了度量
10、和分析工具,帮助软件开发者做出准确的计划;确定为改善产品质量所采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件开发者能力的影响。18PSP过程体系框架1)个体度量过程PSP0中规定了建立个体过程基线,包括在计划、开发以及后置处理三个阶段中,制定开发时间、选定缺陷类型标准、度量缺陷限值、排除缺陷限值等。PSP0.1增加了编码标准、程序规模度量和过程改善建议三个关键过程域。2)个体规划过程PSP1是个体计划方法,用自己的历史数据预测程序的大小和需要的开发时间,并使用线性回归方法计算估计参数,确定置信区间以评价预测的可信程度。PSP1.1增加了对任务和进度的规划。193)个体质量管理
11、过程PSP2是个体质量管理,建立程序缺陷的检测表,按照检测表进行设计复查和代码复查(也称“代码走查”),便于尽早发现软件缺陷,减小修复代价。PSP2.1给出设计过程和设计模板,介绍设计方法。4)个体循环过程PSP3PSP3是延伸个体过程达到大规模的生产过程的方法,采用螺旋式上升过程,即迭代增量式开发方式,分解大型系统的程序,对每个分解模块按照PSP2.1所描述的过程开发,并逐步集成完整软件产品。20软件过程改进和评估体系CMM(Capability Maturity Model for Software,SW-CMM,简称CMM)软件能力成熟度模型,是由美国Carnegie Mellon大学的
12、软件工程研究所(简称SEI)受美国国防部委托,于1991年研究制定的。初始的目的是为了评价美国国防部的软件合同承包组织的能力,因为在软件企业应用进取得了较大的成功,所以在全世界范围内被广泛使用。CMM的核心 CMM的是这对软件开发全过程管理和控制,使其更加科学化、标准化。作为一种评价软件承包能力,并且,帮助其改善软件质量的方法。CMM的核心是软件开发过程的管理工程能力的提高与评估。21CMM的体系的主要内容:能力等级能力等级特点特点关键过程域关键过程域KPA第一级第一级 基本级基本级软软件件过过程程混混乱乱而而无无序序,几几乎乎没没有有过过程程定定义义,完完全全依依靠靠的的个个人人的的才才能能
13、和和经经验验来来实实施系统施系统,反应式的管理方式。反应式的管理方式。第二级第二级 可重复级可重复级建建立立了了基基本本的的项项目目管管理理机机制制,对对项项目目进进度度和和费费用用有有必必要要的的跟跟踪踪,能能够够利利用用以以前类似的项目经验,重复开发过程。前类似的项目经验,重复开发过程。需需求求管管理理,项项目目计计划划,项项目目跟跟踪踪和和监监督督,软软件件子子合合同同管管理理,软软件件配配置置管管理理,软软件件质质量量保保障障第三级第三级 定义级定义级 制制定定了了软软件件工工程程化化标标准准化化和和文文档档标标准准化化,并在软件开发过程中得以实施。并在软件开发过程中得以实施。过过程程
14、定定义义,过过程程焦焦点点,培培训训,集集成成管管理理,软软件件产产品品工工程程,组组间协调间协调,专家审评专家审评第四级第四级 管理级管理级收收集集软软件件过过程程和和产产品品质质量量的的详详细细度度量量,对对软软件件过过程程和和产产品品质质量量有有定定量量的的理理解解和控制。和控制。定定量量的的软软件件过过程程管管理理和和产产品质量管理品质量管理第五级第五级 优化级优化级软软件件过过程程的的量量化化反反馈馈和和新新的的思思想想和和技技术促进过程的不断改进。术促进过程的不断改进。缺缺陷陷预预防防,过过程程变变更更管管理理和和技术变更管理技术变更管理222323软件配置管理软件配置管理软件配置
15、项(SCI Software Configuration Item):分类特性举例环境类软件开发或维护环境编辑器、编译器、文档工具等定义类需求分析与定义阶段得到的工作产品需求规格说明书、开发计划、设计和测试标准、验收计划设计类设计阶段得到的产品设计规格说明、程序规格说明、用户界面设计标准、用户手册编码类编码及单元测试后产品源代码、目标代码、单元测试数据及结果测试类系统测试后得到的产品系统测试数据、测试结果、操作手册、安装手册维护类进入维护后所得到的产品以上任何需要变更的配置项CMM关键过程域和考核标准KPA是CMM实现每级目标的关键过程域(Key Process Area)KPA统一考核标准:
16、确定目标:给出准确的目标,若满足了某个级别的所有KPA要求,则表明达到了该级别的能力。实施保证:必须采取的活动,包括制定企业范围的政策和高层管理的责任。实施能力:前提条件,包括资源保证、人员培训等。必须采取措施满足这些条件后,才有可能执行KPA的活动。执行活动:执行KPA的角色和步骤。包括计划、执行、及执行跟踪等。度量分析:对过程度量和度量分析,确定执行活动的状态,以及执行活动的有效性。实施验证:验证执行活动是否与所建立的过程一致。组织评审、审计及质量保证活动。24CMMI(Capability Maturity Model Integration)能力成熟度模型集成,是SEI在2000年发布
17、的CMM的新版本。在CMM基础上,整合了Software CMM、Systems Eng-CMM、People CMM和Acquisition CMM,建立起除软件开发外,软件系统工程中诸多因素处理能力的标准和评价体系。CMMI主要内容 软件能力成熟度模型CMM 2.0草案、系统工程能力成熟度模型、软件采购能力成熟度模型、集成产品和过程开发等。CMMI的KPA增加至 25个,目标105个, 关键实践485条。CMMI的基本目标解决大型软件项目过程改进难度增大问题可实施软件过程的并行化与多学科组合提高过程改进的效益25CMM评估评估机构及人员要求:必须由SEI授权的合作机构,由SEI授权的主任评
18、估师进行评估。遵守SEI发布的评估需求和评估方法;若进行双模式SPCA(软件过程能力和软件能力成熟度)评估,必须得到信息产业部和国家认证认可委员会的批准,评估过程遵守国家发布的SPCA评估方法。申请评估企业的一般条件 要求企业的项目或产品活动应能覆盖所申请CMM/CMMI等级的要求; SPCA评估,要求企业成立5年以上,软件开发人员20人以上,评估项目和人员覆盖率达到70以上26实施CMM到评估的基本流程:CMM/CMMI培训成立软件过程组织、软件质量保证组织建立和完善过程管理体系试点实施推广并制度化参加预评估参加、准备最终评估持续改进273软件需求分析概述软件需求分析是软件生命周期中必不可少
19、的重要的部分,是软件开发成败的关键,占整个工程一半以上的工作量。需求分析 用经过证实的有效原理、方法,通过合适的工具和记号,系统地描述待开发产品或系统的行为特征及相关约束。需求分析过程 包括:需求获取、建立需求模型、编写软件需求规格说明(Software Requirement Specification,SRS)及一致性验证。需求分析的内容 包括:功能性需求、非功能性需求28软件的非功能性需求过程需求:交付需求、实现方法需求、标准需求等产品需求:可用性、性能需求、可靠性需求、可移植性需求、可重用性需求、安全性需求等外部需求:法规需求、费用需求、互操作性需求等需求模型 模型是描述现实问题的一种
20、手段,它能抽象和简化地反映实际产品或系统的外部特征和本质。不同的方法学有不同的模型表示。因此,它是软件工程方法学研究的主要内容之一。(本章后面论述)29Kruchten在1995年提出了4+1试图模型,从五个不同的侧面来表达系统。逻辑视图开发视图进程视图物理视图场景最终用户功能需求编程人员软件元素管理系统运行特性、非功能性需求系统实施的拓扑、系统安装逻辑视图和开发视图属于静态结构表达进程视图和物理视图是从系统的动态结构老表达的。304软件设计概述软件设计,在软件生命周期中处于技术核心的位置,将完成软件系统实现意义的工程表示。软件设计阶段任务:数据设计,用数据结构组织处理数据元素之间的逻辑关系体
21、系结构设计,定义软件的主要结构、构造元素、及之间的关系、限制和约束接口设计,描述软件内部、软件和协作系统之间的通信,数据流或控制流构件逻辑设计,对软件结构的构造元素,进行软件算法过程的描述,为编码提供依据31软件设计的方法和技术软件设计方法是软件工程中,软件技术的汇集焦点。它汇集了操作系统、数据库技术、网络技术、软件体系结构,以及算法设计、界面设计等,几乎涵盖了计算机学科的所有技术和方法。不同的方法学对应不同的设计方法和技术,例如:结构化设计方法和面向对象的设计方法。(本章后面分别论述)325软件测试软件测试的目标为了发现软件中的错误,努力产生好的测试案例软件测试的评价能成功发现软件错误的测试
22、才是好的测试能揭示软件错误的案例才是好的案例软件测试的基本原则测试应符合软件的功能及性能需求测试要有计划地进行测试应该从小规模开始,逐步到大规模的测试测试不可能穷举,只能尽量充分覆盖测试应该由软件开发人员和独立测试组共同完成33软件测试的三个阶段单元测试阶段,验证程序控制结构的分支,尽量覆盖所有可能的错误集成测试阶段,在单元测试的基础上验证程序以及测试程序构造问题高阶测试,也叫做“确认性测试”,是对已经通过集成测试并可运行的程序进行的测试确认性测试集成测试单元测试编码设计需求分析验证需求分析验证设计验证编码可行性分析系统维护测试v模型34软件测试的策略 软件测试的不同阶段对应不同测试策略单元测
23、试策略,包括:程序中常见错误的测试、单元测试规程,等策略集成测试策略,包括:自顶向下的测试、自底向上的测试、回归测试、烟雾测试,等策略高阶测试策略,包括:测试、测试、恢复测试、安全测试、应力测试、性能测试等策略35软件测试技术黑盒测试技术,为证实软件运行功能,通过功能的操作执行发现和寻找错误白盒测试技术,为证实软件内部的执行规约,在程序内部发现和寻找错误软件测试方法和工具结构化测试方法和工具,是针对结构化程序语言程序的测试方法,以及结构化程序设计语言环境的软件测试工具。面向对象测试方法,针对面向对象程序语言程序的测试方法,以及面向对象程序设计语言环境的软件测试工具。366软件维护基本概念软件维
24、护是指对已经提交用户使用的软件系统或软件产品的修改是软件生命周期中必然经历的阶段任何软件系统或产品存都存在缺陷,这是软件基本性质决定的:软件是人工过程为主的知识密集型产品,软件开发者对解决问题的理解总是有误差的与软件操作相关的环境和需求是会变化的软件解决的现实问题本身是存在不确定性因素的软件开发的方法和技术本身是存在局限性的37软件维护的基本类型改正性维护:交付使用的软件暴露的错误隐患适应性维护:更新业务以及硬件系统或软件环境升级完善性维护:原有功能或性能在使用中发现短缺预防性维护:系统未来的扩充、维护、移植 改正性维护20%适应性维护25%完善性维护50%其它4种维护的比例:38软件维护的任
25、务及过程设置专门的维护确认审批机构,减少由于随意修改造成的系统结构混乱建立合理的维护管理流程及严格的维护文档,包括:申请、审批、问题报告、维护计划、实施结果进行维护活动的评审,对维护所带来的成本开销给出定量的分析397软件质量保证及评价体系软件质量定义按国际标准ISO/8042-1994对软件质量定义: 能满足明确需求的软件实体,所具有能力的特性总合。按照国家GB/T 11457-2006软件工程术语中定义软件质量为:软件产品中能满足给定需要的性质和特性的总体软件具有所期望的各种属性的组合程度顾客和用户觉得软件满足其综合期望的程度确定软件在使用中将满足顾客预期要求的程度40软件质量模型质量模型
26、是质量特性结构的表达,业界认同的软件质量模型有几种:Bohm 质量模型,1976年由Bohm等提出软件质量分层模型McCall 质量模型,1979年由McCall等人提出的软件质量模型ISOIEC 9126-1:2001,给出的软件质量模型41软件质量可移植性可用性可维护性可靠性效率人类工程可测性可理解性可修改性设备独立性自包含性正确性完备性健壮性一致性可计测性设备效率可存取性通信性自描述性结构化性简单清晰性可扩充性Bohm 质量模型42产品修正产品转移产品运行可维护性可测试性灵活性互联性可移植性复用性 正确性 可靠性易用性 效率 完整性McCall 质量模型43外部质量和内部质量功能性易用性
27、可靠性效率可维护性可移植性使用质量生产性有效性安全性满意度ISOIEC 9126-1:2001质量模型44软件质量保证体系ISO9001是适用于所有工程质量保证标准。ISO9000-3是在软件过程中质量保证体系使用的子集。标准中给出的软件质量保证体系。主要内容包括:管理职责、质量体系、合同评审、设计控制、文件和资料控制、采购、顾客提供产品的控制、产品标识和可追溯性、过程控制、检验和试验、检验/测量和试验设备的控制、检验和试验状态、不合格品的控制、纠正和预防措施、搬运/贮存/包装/防护和交付、质量记录的控制、内部质量审核、培训、服务、统计系统等20多项。45软件评审软件评审是软件质量保证的重要措
28、施根据GB/T 12504-1990计算机软件质量保证计划规范软件评审包括: 1)软件需求评审,产品对应需求的适合性,在软件需求分析结束后进行。2)概要设计评审,软件设计的总体结构、外部接口、部件分配、数据结构以及各主要部件之间的接口等方面的适合性,在软件概要设计结束后进行。3)详细设计评审,评价软件设计的每一个基本部件的功能、算法和过程描述各方面的适合性,在软件详细设计结束后进行。464)软件验证和确认评审,评价软件验证与确认计划中使用方法的适合性与完整性,在软件验证与确认计划完成后进行。5)功能检查,验证所开发软件满足需求的情况,在软件提交前对软件进行。6)物理检查,验证程序和文档的一致性
29、并是否做好了交付准备,在软件验收前进行。7)综合检查,验证代码和设计文档的一致性、接口规格说明的一致性、设计实现和功能需求的一致性、功能需求和测试描述的一致性。在软件验收时,用户或用户委托专家,进行抽样的方式检查。8)管理评审,计划执行情况定期管理评审,必须由独立评审机构或授权的第三方主持进行。47软件的检查和走查方式软件检查,是针对软件产品的某一局部,目标是检测和发现软件产品的异常情况记录下来并提交软件走查,是对软件产品发现异常或缺陷并改进的过程,可以在同事之间相互进行,评价产品实现的运行效果,发现问题,改进方案。48软件质量评价ISO/IEC1458给出了软件质量评价标准,主要内容包括:软
30、件评价的管理: 测试计划的编制指南 评价过程控制开发人员的评价过程顾客的评价过程评价者的评价过程合同协议评价模块评价49开发人员的评价过程,包括:软件质量指示器,评价过程的要求;对组织的要求(数据收集的反馈方式和途径);项目的要求(如确定质量要求、确定内部和外部质量度量等);以及对质量分析、策划、质量控制和质量评价的要求。顾客的评价过程,评价的目标包括: 用户的文件、课程和培训;用于产品开发的软件工程过程;产品历史运作情况;可执行软件产品本身(如通过黑盒测试或原型评价)。 评价者的评价过程,定义了供方自己的质量控制部门或第三方机构对软件产品质量的评价过程。软件产品的购买者或使用者,也可以独立进
31、行评价。50评价供方、需方和评价者的相互关系、职责,以及相互达成合同协议的性质。 评价模块,包括6项内容:模块的范围,模块引用文件,模块的定义,模块所使用文件、收集的数据和计算的度量值,解释测量结果的信息,应用程序要求的资源(如硬件、软件、人员的技能和资格及工作量) 。51评价的五项活动:评价需求的分析评价规范制定评价的设计(包括评价计划)评价实施评价结果记录523.2开发过程模型经典过程模型经典过程模型传统软件开发模型传统软件开发模型演化模型演化模型面向对象开发模型面向对象开发模型形式化方法模型形式化方法模型 (智能模型智能模型)增量模型增量模型螺旋模型螺旋模型喷泉模型喷泉模型构件集成模型构
32、件集成模型瀑布模型瀑布模型快速原型模型快速原型模型转换模型转换模型净室模型净室模型53要点:要点:系统工程方法学系统工程方法学基于软件过程基于软件过程 系统过程贯穿于开发生命周期系统过程贯穿于开发生命周期 不同的过程,对应不同的系统开发活动不同的过程,对应不同的系统开发活动545555瀑布模型瀑布模型需求分析软件设计编码测试维护模型要点:模型要点: 阶段的顺序性阶段的顺序性 推迟实现的观点推迟实现的观点 严格严格文档是保证质量的手段文档是保证质量的手段带来的问题:带来的问题: 过程基本不可迭代过程基本不可迭代 需求在开始的不确定性需求在开始的不确定性 错误到最后才能发现错误到最后才能发现 开发
33、进程呈现塞阻状态开发进程呈现塞阻状态可行性研究问题定义55原型模型原型模型 带来的问题:带来的问题:系统分析组织仓促系统分析组织仓促用户不宜理解进度用户不宜理解进度先入为主而系统设计,可能不是最佳设计先入为主而系统设计,可能不是最佳设计听取用户意见建造修改原型测试运行原型原型过程示意:565757增量模型增量模型 分析设计编码测试分析设计编码测试分析设计编码测试分析设计编码测试增量2增量3增量4增量1第1个增量的发布第2个增量的发布第3个增量的发布第4增量的发布模型要点:模型要点:瀑布和原型模型相结合瀑布和原型模型相结合强调版本升级强调版本升级每版本开发遵循顺序过程每版本开发遵循顺序过程 57
34、5858风险分析累计费用制定阶段 计划评审约定模型螺旋模型螺旋模型 模型要点:模型要点:统一了瀑布模型与原型模型统一了瀑布模型与原型模型 与增量模型相似,更强调风险分析与增量模型相似,更强调风险分析风险分析风险分析风险分析原型1原型2原型3运行原型软件需求需求有效性产品设计设计有效性验证操作概念需求阶段计划开发计划确定目标选择方案设定条件运行验收测试集成测试详细设计单元测试编码系统集成测试计划评估方案明确风险排除风险开发验证585959喷泉模型喷泉模型 演化维护确认实现设计分析模型要点:模型要点:体现认识事物的循环迭代性体现认识事物的循环迭代性强调开发活动之间的无间隙性强调开发活动之间的无间隙
35、性 无明显的活动阶段划分无明显的活动阶段划分适用于面向对象的开发过程适用于面向对象的开发过程59构件集成模型构件集成模型 构件库问题域识别构件查找构件生成构件组装系统查到构件未查到构件模型要点:模型要点: 基于面向对象的构件方法基于面向对象的构件方法 立足于软件复用性立足于软件复用性 形成统一开发过程形成统一开发过程RUPRUP 采用统一建模语言采用统一建模语言606161需求明确或有先例的项目需求明确或有先例的项目 瀑布模型瀑布模型需求不明确或与客户难以沟通的项目需求不明确或与客户难以沟通的项目 原型模型原型模型规模大且时间紧的项目规模大且时间紧的项目 增量模型增量模型带有突破性技术的项目带
36、有突破性技术的项目 螺旋模型螺旋模型采用面向对象方法开发的项目采用面向对象方法开发的项目 喷泉模型喷泉模型明显复用潜力的项目明显复用潜力的项目 构件模型构件模型 项目情况项目情况适用模型适用模型项目适应模型的一般规律项目适应模型的一般规律613.3系统分析方法返回目录系统分析的基本概念系统分析的基本概念 “系统分析”也叫“需求分析”或“问题定义” 系统分析是在可行性分析阶段之后的一个重要的阶段 系统分析阶段,定义系统的功能、数据、行为的规约,及与其他系统的接口约束。62 建立分析模型建立分析模型 在当前物理模型的基础上,建立分析模型在当前物理模型的基础上,建立分析模型 完成完成“软件需求规格说
37、明软件需求规格说明” (Software Requirement Specification,SRS)在在SRSSRS中,定义软件的功能,信息,表示软件的中,定义软件的功能,信息,表示软件的行为行为 需求验证需求验证 与用户达成共识,编写测试计划和测试案例与用户达成共识,编写测试计划和测试案例需求分析需求分析的任务和步骤的任务和步骤63行业知识学习访问用户考察现场定制调研计划组织调研整理调研问题陈述建立当前系统物理模型建立未来系统逻辑模型多次反复的过程编制需求规格说明开发系统原型系统分析步骤示意64需求规格说明需求规格说明: (主要内容)1.引言 1.1编写目的 1.2项目背景 1.3定义 1
38、.4参考资料2.任务概述 2.1目标 2.2运行环境 2.3条件与限制3.数据描述 3.1数据字典(或数据库描述) 3.2数据采集4.功能需求 4.1功能划分 4.2功能描述5.性能描述 5.1数据精确度 5.2时间特性 5.3适应性6.运行需求 6.1用户界面 6.2硬件接口 6.3软件接口 6.4故障处理7.其它需求需求分析阶段的产品需求分析阶段的产品653.3.13.3.1 结构化分析方法结构化分析方法(Structured Analysis)Structured Analysis)SASA是面向数据流的分析方法,在是面向数据流的分析方法,在2020世纪世纪9090年年代被广泛应用。代被
39、广泛应用。SASA方法适合于开发数据处理类型的软件,是方法适合于开发数据处理类型的软件,是需求分析阶段的描述工具。需求分析阶段的描述工具。SASA方法的主要思想是:以数据的输入输出流方法的主要思想是:以数据的输入输出流向,确认其加工(或处理),从粗到细,逐向,确认其加工(或处理),从粗到细,逐层分解。层分解。66数据流图数据流图(Data Flow Diagram DFD)(Data Flow Diagram DFD) 外部实体外部实体外部实体外部实体变换1变换3变换2变换4数据存储输入数据中间数据中间数据中间数据输入数据输出数据输出数据输入输出变换加工说明:输入:输出:加工:结构化分析方法和
40、工具结构化分析方法和工具67数据流结构化数据流结构化Ff1f41f43f45f42f46f3f2f4f5f6f7ABABXXYYZZ68名称: 别名: 何处使用/如何使用: 内容描述: 补充信息: 数据字典数据字典作用:描述各个数据项约束作用:描述各个数据项约束数据字典内容和形式:数据字典内容和形式:69系统分析建模示例系统分析建模示例家庭安全系统问题陈述:家庭安全系统问题陈述: 系统由房主在安装时配置,通过系统控制窗口和键盘系统由房主在安装时配置,通过系统控制窗口和键盘功能与房主交互进行。系统可以监控所有连接的传感器。功能与房主交互进行。系统可以监控所有连接的传感器。 在安装过程中,每个传感
41、器可以设置编号和类型,系在安装过程中,每个传感器可以设置编号和类型,系统的启动和关闭必须有主人密码控制;传感器事件发生时,统的启动和关闭必须有主人密码控制;传感器事件发生时,软件激活系统上的警报器,在设定的时间延时后,软件自软件激活系统上的警报器,在设定的时间延时后,软件自动拨打设定的电话号码,并提供位置信息和事件性质,电动拨打设定的电话号码,并提供位置信息和事件性质,电话号码将每隔话号码将每隔2020秒重拨一次,直至电话接通。秒重拨一次,直至电话接通。 系统运行时,系统控制窗口显示提示信息和系统状态。系统运行时,系统控制窗口显示提示信息和系统状态。通过键盘可以控制系统运行。通过键盘可以控制系
42、统运行。70例:家庭安全系统控制面板例:家庭安全系统控制面板 SAFEHOME01报警检查火情离开驻留紧急旁路准备未就绪装备 电源 关闭 离开 驻留 最大 测试 旁路 立即 编码 警声 准备就绪 123456789*0#71从问题陈述,分析从问题陈述,分析SafeHome系统顶层系统顶层DFD控制面板控制面板 传感器传感器SafeHome系统系统控制面板控制面板 显示显示 警告警告电话线电话线用户命令用户命令 和数据和数据传感器传感器 状态状态显示信息显示信息警告类型警告类型电话号电话号72SafeHome 第一层第一层DFD控制面板控制面板传感器传感器处理处理用户用户输入输入控制面板控制面板
43、 显示显示 警告警告电话线电话线用户命令用户命令 和数据和数据传感器传感器 状态状态显示信息显示信息警告类型警告类型电话号信号电话号信号配置配置系统系统监控监控传感传感器器处理处理口令口令激活激活或失或失效效系统系统显示显示信息信息和和状态状态传感器信息传感器信息配置信息配置信息正确的正确的ID信息信息配置数据配置数据配置数据配置数据配置请求配置请求启动停止启动停止口令口令激活激活/失效信息失效信息73 监控传感器的精化监控传感器的精化DFD评定评定输出输出配置信息配置信息显示显示格式格式化化产生产生警告警告信号信号读读传感传感器器拨打拨打电话电话传感器状态传感器状态传感器传感器ID类型类型,
44、位置位置传感器信息传感器信息警告类型警告类型警告数据警告数据电话号电话号配置数据配置数据电话号信号电话号信号传感器传感器ID类型类型,位置位置74 从从60年代出现年代出现 Simula 60语言以来,形成了体现语言以来,形成了体现类和对象两个基本概念的程序设计语言;类和对象两个基本概念的程序设计语言;70年代年代诞生的诞生的Smalltalk语言,真正确立了面向对象程序语言,真正确立了面向对象程序设计语言的地位。设计语言的地位。80年代面向对象的分析和设计年代面向对象的分析和设计方法才正式出现。方法才正式出现。面向对象分析和设计方法的起源面向对象分析和设计方法的起源 伴随着软件界对于结构化方
45、法引起的越来越多伴随着软件界对于结构化方法引起的越来越多的争议,以及面向对象程序设计越发广泛的应用的争议,以及面向对象程序设计越发广泛的应用和成熟,产生了面向对象分析和设计方法。和成熟,产生了面向对象分析和设计方法。3.3.23.3.2 面向对象分析方法面向对象分析方法7576面向对象方法的基本概念和原则面向对象方法的基本概念和原则(1)(1)思想方法思想方法从现实世界中客观存在的从现实世界中客观存在的事物事物出发,以问题域出发,以问题域中的中的事物事物为中心,建立和表达系统。为中心,建立和表达系统。将事物的将事物的特征特征和和系统责任系统责任抽象表示为系统的抽象表示为系统的对对象象,作为系统
46、的基本,作为系统的基本构成单位构成单位。(2)4(2)4个基本概念个基本概念类和对象类和对象消息和封装消息和封装继承继承多态和动态绑定多态和动态绑定77类和对象类和对象在在外外部部世世界界中中,相相同同属属性性和和操操作作的的对对象象属属于于一一个个类,对象是类的一个实例;类,对象是类的一个实例;在在机机器器空空间间中中,类类是是一一个个可可复复用用的的模模板板,而而对对象象是复用出来的独立可执行程序块;是复用出来的独立可执行程序块;数数据据抽抽象象是是在在数数据据对对象象上上定定义义相相关关的的属属性性和和必必要要的的操操作作;过过程程抽抽象象是是定定义义某某功功能能到到责责任任实实体体;而
47、而这这一一实实体体要要有有必必要要的的属属性性和和执执行行这这一一功功能能的的一一些些列操作;列操作;对象包括对象包括实体对象实体对象和和无形对象无形对象;78封装和消息封装和消息隐隐藏藏类类的的内内部部属属性性和和操操作作的的执执行行,只只留留下下外外部部可可见见的的操操作作界界面面。避避免免外外界界错错误误地对内部进行修改,造成不良影响;地对内部进行修改,造成不良影响;对对象象只只通通过过消消息息来来请请求求其其他他的的对对象象执执行行自自身身的的操操作作;消消息息必必须须直直接接发发给给指指定定的的对对象象,消消息息中中包包括括请请求求执执行行操操作作的的必必要要信息;信息;接接收收消消
48、息息的的对对象象是是消消息息的的执执行行者者,在在执执时也可以向其他对象发出时也可以向其他对象发出请求请求。79类和子类类和子类类可以有子类,子类继承父类,形成类类可以有子类,子类继承父类,形成类的层次结构;的层次结构;继承的概念与现实意义相同,子类继承继承的概念与现实意义相同,子类继承父类的全部属性和操作,并允许有自己父类的全部属性和操作,并允许有自己的属性和操作;的属性和操作;继承可以有多重继承;继承可以有多重继承;继承有传递性;继承有传递性;继承的重要作用在于源代码的复用。继承的重要作用在于源代码的复用。80学生学生姓名姓名年龄年龄研究生研究生导师导师研究方向研究方向本科生本科生班级班级
49、专业专业继承:继承:81继承层次:继承层次:运输工具运输工具轮船轮船车辆车辆飞机飞机卡车卡车轿车轿车82人员人员姓名姓名年龄年龄研究生研究生导师导师研究方向研究方向职工职工部门部门职务职务在职研究生在职研究生多继承:多继承:83多态性多态性在继承关系的类层次结构中,定义同名操作,在继承关系的类层次结构中,定义同名操作,形成同一操作的多种形态,按同一个消息响形成同一操作的多种形态,按同一个消息响应不同的行为。即应不同的行为。即“多态性多态性”。多态性更强地体现了信息隐蔽的原则,实现多态性更强地体现了信息隐蔽的原则,实现接口的独立封装。接口的独立封装。多态性的实现机制:多态性的实现机制: 静态联编
50、静态联编编译直接确定连接的软件成分编译直接确定连接的软件成分 动态联编动态联编编译不确定连接的软件成分,执编译不确定连接的软件成分,执行时根据定义的实体再确定需要的连接的软行时根据定义的实体再确定需要的连接的软件成分件成分 84动态联编:动态联编:静态联编:静态联编:图形图形坐标坐标移动()移动()点点移动()移动()矩形矩形长长宽宽移动()移动()圆圆半径半径移动()移动()多态性:多态性:图形图形字符型坐标字符型坐标数字型坐标数字型坐标移动()移动()移动()移动()Virtue可使用统一图形移动接口,采用移动()的动态联编可使用统一图形移动接口,采用移动()的动态联编面向对象方法的优势面
51、向对象方法的优势以更接近人类认识世界的思维的方式来建立问以更接近人类认识世界的思维的方式来建立问题域模型,因为事物本身不但包括属性也包括题域模型,因为事物本身不但包括属性也包括行为,认识事物,从来不会将事物的属性和行行为,认识事物,从来不会将事物的属性和行为分离为分离建造系统的基本元素是封装了操作的对象实体,建造系统的基本元素是封装了操作的对象实体,回避了以易变的处理过程为基础的系统建造回避了以易变的处理过程为基础的系统建造从实体对象抽象得到的对象类,保持了语义上从实体对象抽象得到的对象类,保持了语义上的一致性,提高了系统的复用和构造性的一致性,提高了系统的复用和构造性继承机制是源代码级的复用
52、机制,在此基础上继承机制是源代码级的复用机制,在此基础上的多态机制,成为系统可扩充性结构,以及分的多态机制,成为系统可扩充性结构,以及分布式系统结构实现的基础保证布式系统结构实现的基础保证85面向对象方法的发展趋势面向对象方法的发展趋势 从从80年代到现在年代到现在20多年的发展过程,面向对象多年的发展过程,面向对象方法学逐渐走向成熟和。主要表现在:方法学逐渐走向成熟和。主要表现在: 横向求同:横向求同:多种的面向对象方法之间的求同。多种的面向对象方法之间的求同。 纵向求同:与非面向对象方法的求同。纵向求同:与非面向对象方法的求同。 标准化:标准化: 统一建模语言(统一建模语言(Unified
53、 Modeling Language UML) 9696年由年由BoochBooch、JacobsonJacobson、RumbaughRumbaugh三位面向三位面向对象方法的专家,在国际对象管理组织对象方法的专家,在国际对象管理组织OMGOMG建议下,建议下,在在RationalRational公司研制了公司研制了UMLUML,从,从9797年的年的1.01.0版到现在版到现在的的2.X2.X版,逐步完善。目前是业界共识的标准。版,逐步完善。目前是业界共识的标准。86统一建模语言统一建模语言(Unified Modeling Language UML)Unified Modeling La
54、nguage UML)UMLUML是以图形来确定、表示、和记录软件系统的建模语言是以图形来确定、表示、和记录软件系统的建模语言面向对象分析模型面向对象分析模型 需求描述:需求描述: Use CaseUse Case 用况图用况图 辅助模型:辅助模型: SequenceSequence顺序图顺序图 CollaborationCollaboration协作图协作图 StateState状态图状态图 PacketPacket包图包图 ComponentComponent构件图构件图 DeploymentDeployment部署图部署图 ActivityActivity活动图活动图基本模型:基本模型:
55、 ClassClass类图类图 ObjectObject对象图对象图对象对象对象间关系对象间关系对象属性对象属性详细说明详细说明871 1. 用况图(用况图(Use CaseUse Case)用况图的建立用况图的建立思想不属于面向对象的思想不属于面向对象的,而是业界早已熟悉的,而是业界早已熟悉的需求建模方法,只是需求建模方法,只是UMLUML有新的表示方法。有新的表示方法。房主includeUse CaseUse Case示例:示例:身份确认系统设置系统运行查询启动/关闭系统传感器监测密码修改系统区域设置系统电话设置系统警报设置includeextendextendextend参与者用况包含用
56、况扩展用况交互关系显示窗显示窗电话电话报警器报警器传感器传感器参与者88includeextendUse Case图元素:图元素:参与者:与系统交互的,使用系统相关功能的角色,用况:与参与者有交互的一个功能参与者与用况的连线:表示双向,没有箭头用况之间的连线:表示包含其中必须的功能用况之间的连线:表示扩展可选的功能892.2.类图(类图(ClassClass) 从问题域中的实体抽象出对象类,描述类之间的静态结构。从问题域中的实体抽象出对象类,描述类之间的静态结构。 InternetClient+search (s: String): String CustomerList+search (s:
57、 String): Customer +getCustomer (number: Sting): Customer+addCustomer (c: Customer): Boolean+removeCustomer (c: Customer): Boolean0. 1 CompanyCustomer+login (nimber: String , passwd: String): Boolean+update (webpage: String , e_mail: String): Boolean+viewMyInfo ( ): String InternalClient+updateCusto
58、mer (nimber: String , ): Boolean+addCustomer (name: String , ): Boolean+removeCustomer (number: String): Boolean+viewCustomer (number: String): String Customer-number: String-name: String-address: String-e_mail: String-webpage: String-pass: String+check_pwd (s: String): Boolean+showInfo(): String 1
59、1 1 *依赖关系聚合关系关联关系继承关系多重性表示classclass图示例图示例: :90类图(类图(ClassClass)图元素:图元素:对象:在问题域中承担责任的事物对象:在问题域中承担责任的事物关联:对象类之间固有的关系关联:对象类之间固有的关系属性:对象类的特征,系统必要的信息属性:对象类的特征,系统必要的信息对象类名对象类名属性属性操作操作类:名词为类名,类:名词为类名, 属性和操作栏必须有,内容可以暂略。属性和操作栏必须有,内容可以暂略。关联:有方向,由多重性描述,可以有名称关联:有方向,由多重性描述,可以有名称继承:一般和特殊的关系继承:一般和特殊的关系聚合:聚合:整体和部分
60、的关系整体和部分的关系0 . n 多重性:多重性:1. n 1. 1 0 . 1 * . 0 . * 可见性分为:可见性分为:公共的(公共的(+ +) 私有的(私有的(- -) 受保护的(受保护的(# #)91边界边界 (国家) 西班牙 (国家) 法国 (国家) 比利时国家名称边界对象图(Object)国家国家类类的的实实例例对对象象图图 92 顺序图顺序图-强调消息交互的时序;强调消息交互的时序; 协作图协作图-强调对象收发消息的组织结构强调对象收发消息的组织结构顺序图的作用:顺序图的作用:在给定的语境中,通过对象之间的消息通信,展现在给定的语境中,通过对象之间的消息通信,展现对象的行为;用
61、以发现对象的操作。对象的行为;用以发现对象的操作。交互图交互图关于顺序图和关于顺序图和协作图协作图 顺序图和协作图表示相同的模型语义,可以相顺序图和协作图表示相同的模型语义,可以相互转换,能表示对方不能表示的某些内容。互转换,能表示对方不能表示的某些内容。协作图的作用:协作图的作用:分析对象行为的控制线程,规划系统分布,以分析对象行为的控制线程,规划系统分布,以及规及规划划测试用例测试用例933.3.顺序图(顺序图(SequenceSequence)表示按时间顺序排列的对象间的交互。表示按时间顺序排列的对象间的交互。ob1:C1ob3:C3ob2:C2:C4Op( )x0create(x)x1
62、200)/测试设备()测试设备()事件示例:事件示例:状态示例:状态示例: EnterPasswordentry/password.reset()exit/password.test()clear/password.reset()help/display helpprint/deferdo/suppress echo101Waiting等待状态等待状态Put( c)c/=“”/token.append( c); return falseGettingBody获得主句状态获得主句状态Put( c)c/=“;”/body.append( c); return falsePut( c)c= =“”字
63、符流分析器类状态图:字符流分析器类状态图:Put( c)c= =“;”/return true字符流形式为:字符流形式为:xx xx.x ;要求分析出要求分析出中的符号中的符号,及及;号前的主句号前的主句状态图示例:状态图示例:1026.6.包图(包图( Packet Packet )用来对描述进行组织,以控制描述的复杂性。是对模型成分用来对描述进行组织,以控制描述的复杂性。是对模型成分的分组的机制。的分组的机制。把模型成分组织成为包,可以嵌套表示把模型成分组织成为包,可以嵌套表示包有唯一的命名,可以被独立引用包有唯一的命名,可以被独立引用包必须提供外部可访问的操作(接口)包必须提供外部可访问
64、的操作(接口)包的表示:包的表示: 操作操作1()() 包名:包名:vision 操作操作1()() 嵌套表示嵌套表示包名:包名:sensor103包之间依赖关系表示:包之间依赖关系表示: 引入依赖引入依赖-包中可见的操作可以被另一个包引用包中可见的操作可以被另一个包引用 (即提供方的元素直接附加到请求方)(即提供方的元素直接附加到请求方) 访问依赖访问依赖-包中可见的操作可以被另一个包使用包中可见的操作可以被另一个包使用 (请求方直接使用提供方的元素)(请求方直接使用提供方的元素)Server+Database+LoggingService GUI+Windoes+Form+EventHan
65、dlerPolicies+OrderRulesClient+OrderForm+TrackingForm-Order104控制面板控制面板 键盘区键盘区 屏幕屏幕闪光的灯闪光的灯LCDLCD显示显示 图符图符 信息信息 键区键区 功能区功能区命令处理()命令处理()数据接收()数据接收()显示格式化()显示格式化() .控制键盘包控制键盘包控制键盘包示例:控制键盘包示例:1057 7. 构件图构件图(Component)(Component)构件表示:构件表示: System:dialog.dll 构件是指物理上存在的软件成分。构件图属于设计构件是指物理上存在的软件成分。构件图属于设计活动的描
66、述工具。描述软件在系统每个物理节点上的分活动的描述工具。描述软件在系统每个物理节点上的分布情况,属于物理事物建模。布情况,属于物理事物建模。构件与类的不同:构件与类的不同: 类表示逻辑抽象,是逻辑模块;类表示逻辑抽象,是逻辑模块; 构件表示字节空间中的物理存在,表示的是物理模块;构件表示字节空间中的物理存在,表示的是物理模块; 类有属性和操作,构件仅通过接口提供或请求操作。类有属性和操作,构件仅通过接口提供或请求操作。106构件的接口是一组操作的集合构件的接口是一组操作的集合 Image.java component.javaImageObserver Image.javaImageObser
67、verabort:intfinal staticerror:intfinal staticimageUpdate():Boolean component.java构件接口的表示:构件接口的表示:107构件对源代码建模构件对源代码建模用用filefile标识一组相关源代码文件的集合,成为构件标识一组相关源代码文件的集合,成为构件给出源代码文件的版本号、作者名和修改日期等标记值给出源代码文件的版本号、作者名和修改日期等标记值用依赖关系标出源代码文件之间的编译依赖关系用依赖关系标出源代码文件之间的编译依赖关系 Bill.hversion=3.1 Bill.cppversion=3.2 custome
68、r.hversion=4.1 item.hversion=3.1源代码建模示例:源代码建模示例:108 构件对可执行体建模构件对可执行体建模表示可执行程序和动态连接库的构件表示可执行程序和动态连接库的构件表示可执行程序与动态连接库及接口之间的关系表示可执行程序与动态连接库及接口之间的关系对可执行体建模示例:对可执行体建模示例: Animator.exeversion=5.2 Dialog.dll Render.dll Wrframe.dll109构件对构件对API建模示例建模示例 Animator.exeversion=5.2IscriptsIrenderingImodels110构件构件对表
69、、文件和文档建模对表、文件和文档建模标标识系统物理实现部分的附属构件识系统物理实现部分的附属构件表示附属构件与可执行程序、动态连接库及接口间的关系表示附属构件与可执行程序、动态连接库及接口间的关系 Animator.hlp Animator.ini Animator.exeversion=5.2 Dialog.dll Render.dll Wrframe.dll Shapes.tbl建模示例:建模示例:1118. 8. 部署图(部署图(DeploymentDeployment) 部署图可以表示在一个节点上运行系统的物理拓扑结构;部署图可以表示在一个节点上运行系统的物理拓扑结构;一个节点通常被表
70、示为可以部署构件的处理器或设备。一个节点通常被表示为可以部署构件的处理器或设备。 节点是具有独立存储空间,运行时存在,并代表一项计算节点是具有独立存储空间,运行时存在,并代表一项计算资源的物理元素和执行能力。资源的物理元素和执行能力。节点表示法:节点表示法:节点名称节点名称112节点和构件的区别:节点和构件的区别:构件是系统执行的事物,节点是执行构件的事物。构件是系统执行的事物,节点是执行构件的事物。构件代表逻辑元素的物理打包,节点可表示构件的物理部署构件代表逻辑元素的物理打包,节点可表示构件的物理部署节点和构件的关系:节点和构件的关系:节点上可以有一个或多个构件,一个构件也可以部署在一个节点
71、上可以有一个或多个构件,一个构件也可以部署在一个或多个节点上。或多个节点上。sales pos.exe contacts.exe节点与构件的关系示例:节点与构件的关系示例:113节点之间的关联关系:节点之间的关联关系:用来表示节点之间的物理连接用来表示节点之间的物理连接kioskconsoleserverRAID farm节点之间的连接示例:节点之间的连接示例:1149. 9. 活动图(活动图(Activity)活动图活动图Activity Diagram:描述系统的工作流程和并发行为,与状态图相比描述系统的工作流程和并发行为,与状态图相比它强调流程的控制而不是状态在事件下的变化。它强调流程的
72、控制而不是状态在事件下的变化。活动图的作用:活动图的作用:描述业务过程,特别能较好地表示并发流程,帮描述业务过程,特别能较好地表示并发流程,帮助理解涉及多个用况的工作流程助理解涉及多个用况的工作流程描述具体操作算法,与程序框图有相同的作用描述具体操作算法,与程序框图有相同的作用活动图的概念接近结构化方法的流程图思想。活动图的概念接近结构化方法的流程图思想。115包括:包括:1)活动)活动-流程中的任务执行单元流程中的任务执行单元2)泳道)泳道-活动的区域划分活动的区域划分3)分支)分支-活动转向的分支活动转向的分支4)分叉)分叉- 并发控制流的分支并发控制流的分支5)汇合)汇合-分叉后的合并分
73、叉后的合并6)对象流)对象流-活动图中的控制流活动图中的控制流活动图元素:活动图元素:116Calculate Total Costn活动图中的活动图中的“活动活动” Activity包括:动作状态包括:动作状态Action State 活动状态活动状态Activity State动作状态,没有内部转移和内部活动,是原子动作状态,没有内部转移和内部活动,是原子的最小执行单元,作用是表示执行进入动作后转的最小执行单元,作用是表示执行进入动作后转向的状态,执行时间可以被忽略。向的状态,执行时间可以被忽略。活动状态,可分解的、非原子的,并有一定持活动状态,可分解的、非原子的,并有一定持续时间的执行单
74、元。续时间的执行单元。117n活动图中的活动图中的“泳道泳道”swim lane根据每项活动的职责,划分所有活动的责任区域根据每项活动的职责,划分所有活动的责任区域例:例:Request ServicePayTake OrderFill OrderDeliver OrderCollect OrderCustomerSalesStockroom118n活动图中的活动图中的“分支分支”branch在活动图中同一出触发事件,可根据警戒条件转在活动图中同一出触发事件,可根据警戒条件转向不同的活动,有两种表示方法:向不同的活动,有两种表示方法:例:例:Calculate total costCharge
75、 customers account Get authorizationCost=$50Cost=$50Cost=5 lbWeight PackageWeight C(p2) 则则 E(p1)E(p2)其中:其中:p1和和p2是两个问题是两个问题C(x)是由是由x问题决定的复杂性问题决定的复杂性E(x)是解决是解决x问题所需要的工作量问题所需要的工作量C(p1+p2) C(p1) +C(p2)E(p1+p2) E(p1) +E(p2)试验发现关于模块化的问题关于模块化的问题从人们解决问题的大量观察得出结论:从人们解决问题的大量观察得出结论:成本或工作量划分模块的数量软件总成本集成成本模块/成本
76、最小成本区模块划分得越小成本越低模块划分得越小成本越低 ,但集成成,但集成成本却随着模块划分得越小成本越高。本却随着模块划分得越小成本越高。设计活动的重点:设计活动的重点:如何确定模块化分的最小成本区,并保证模块的最佳性能?如何确定模块化分的最小成本区,并保证模块的最佳性能?128软件模块的设计准则软件模块的设计准则模块的可分解性模块的可分解性-将问题可分解成子问题将问题可分解成子问题模块可组装性模块可组装性-可用现有的模块组装来解决问题可用现有的模块组装来解决问题模块可理解性模块可理解性-可作为独立的单位被理解可作为独立的单位被理解模块连续性模块连续性-变更只是对单独模块的修改变更只是对单独
77、模块的修改模块保护性模块保护性-模块内部的异常影响只限制在该模块内模块内部的异常影响只限制在该模块内高内聚及低耦合准则:高内聚及低耦合准则:内聚内聚-模块内部各成分之间的关系,关系越紧密越好模块内部各成分之间的关系,关系越紧密越好耦合耦合-模块之间的依赖程度,依赖越松散越好模块之间的依赖程度,依赖越松散越好129 偶然内聚:把没有关系的分散在多处的成分组成模块偶然内聚:把没有关系的分散在多处的成分组成模块 逻辑内聚:仅仅是逻辑功能相关成分组成模块逻辑内聚:仅仅是逻辑功能相关成分组成模块 时间内聚:需要在同一时间执行并无逻辑联系的成分组成模块时间内聚:需要在同一时间执行并无逻辑联系的成分组成模块
78、 过程内聚:过程顺序相关的功能成分组成模块过程内聚:过程顺序相关的功能成分组成模块 通讯内聚:需要对相同的外部数据进行操作的成分组成模块通讯内聚:需要对相同的外部数据进行操作的成分组成模块 顺序内聚:某个成分的输出是另一个成分的输入,将其组成模块顺序内聚:某个成分的输出是另一个成分的输入,将其组成模块 功能内聚:只完成单一的功能功能内聚:只完成单一的功能低低高高 内容耦合:一个模块直接修改另一个模块的内容内容耦合:一个模块直接修改另一个模块的内容 公共耦合:两个以上的模块共同引用一个全局数据公共耦合:两个以上的模块共同引用一个全局数据 控制耦合:接收模块的动作依赖于控制信号控制耦合:接收模块的
79、动作依赖于控制信号 标记耦合:两个模块接口的参数包含相同的内部结构标记耦合:两个模块接口的参数包含相同的内部结构 数据耦合:仅是模块之间的简单数据传递数据耦合:仅是模块之间的简单数据传递低低高高内聚内聚-模块内部各成分之间的关联程度模块内部各成分之间的关联程度耦合耦合-模块之间的依赖程度模块之间的依赖程度1304.14.1结构化设计方法结构化设计方法数据结构设计数据结构设计体系结构设计体系结构设计模块设计模块设计软件设计的任务软件设计的任务-确定系统怎么做确定系统怎么做 结构化设计活动划分为两个阶段:结构化设计活动划分为两个阶段: 确定系统的整体体系结构确定系统的整体体系结构-总体设计总体设计
80、 确定各模块的具体实现确定各模块的具体实现-详细设计详细设计界面设计界面设计模块算法设计模块算法设计 表示工具:表示工具: 总体设计总体设计 详细设计详细设计层次图层次图 (Hierarchy)IPO图(图(Input-Process-Output)模块说明模块说明程序框图程序框图盒图(盒图(N-S图)图)判定表(判定树)判定表(判定树)PDL语言语言131数据结构数据结构-信息的组织方式。信息的组织方式。经典数据结构包括:经典数据结构包括: 变量变量: 通过标识符通过标识符(独立存储地址独立存储地址)访问的信息元素访问的信息元素 向量向量: 变量组成的列表变量组成的列表 数组数组: n维空间
81、维空间 链表链表: 以某种方式组织的不相邻的变量、向量或空间以某种方式组织的不相邻的变量、向量或空间 堆栈堆栈: 高层抽象,可用向量或用链表来实现高层抽象,可用向量或用链表来实现1)运用)运用基本数据结构,可构造各种规模的数据结构基本数据结构,可构造各种规模的数据结构数据结构设计数据结构设计2)运用抽象数据结构,包括:结构、联合、类,等等。)运用抽象数据结构,包括:结构、联合、类,等等。132软件体系结构:软件体系结构:包括:包括: 软件的构成元素软件的构成元素 软件元素之间固有的关系,即静态结构软件元素之间固有的关系,即静态结构 软件元素之间的行为关系,即动态结构软件元素之间的行为关系,即动
82、态结构软件体系结构设计包括:软件体系结构设计包括:结构模型:描述软件成分的组织结构结构模型:描述软件成分的组织结构框架模型:描述通用的可复用的体系结构框架模型:描述通用的可复用的体系结构动态模型:描述系统软件结构的行为过程动态模型:描述系统软件结构的行为过程过程模型:系统软件执行的业务过程过程模型:系统软件执行的业务过程功能模型:描述系统功能的层次结构功能模型:描述系统功能的层次结构软件体系结构设计软件体系结构设计133将分析所得到的数据流图转换为软件体系结构将分析所得到的数据流图转换为软件体系结构事务映射事务映射确定确定DFDDFD中是否含有变换流中是否含有变换流刻画输入和输出的边界,隔离变
83、换中心刻画输入和输出的边界,隔离变换中心数据流转化到结构图数据流转化到结构图确定确定DFDDFD中是否含有事务流中是否含有事务流标识事务中心和每条动作路径的特征标识事务中心和每条动作路径的特征将将DFDDFD映射到事务处理系统结构上映射到事务处理系统结构上精化事务结构和每条动作路径精化事务结构和每条动作路径变换映射变换映射两种转换方法:两种转换方法:134确定确定DFD中是否含有变换流中是否含有变换流输出输出输入输入变换变换变换流:变换流:具有明显的输入、变换(或加工)、输出分界的数具有明显的输入、变换(或加工)、输出分界的数据流图据流图变换映射方法变换映射方法135数据流到结构图数据流到结构
84、图输出输出输入输入变换变换控制模块控制模块输入处理模块输入处理模块输出处理模块输出处理模块主要处理模块主要处理模块136评定输出配置信息显示格式化产生警告信号读传感器拨打电话传感器状态传感器ID类型,位置传感器信息警告类型警告数据电话号配置数据电话号信号传感器ID类型,位置SafeHome系统的监控传感器精化系统的监控传感器精化DFD(第二层)(第二层)变换映射方法的例子变换映射方法的例子137监控传感器精化监控传感器精化DFD第三层向软件模块结构的映射第三层向软件模块结构的映射配置信息传感器 状态传感器ID设置 读传感器 获得回应信息 证实警告条件 选择电话号 连接电话网 设置产生拨号脉冲
85、格式化 显示产生显示产生警告信号 监控传感器执行 传感器输入控制 警告输出控制 警告条件控制传感器ID类型位置格式化 ID类型位置警告数据警告类型传感器 信息电话号音语音读电话号电话号号码表警告条件码传感器ID时间信息138 监控监控传感器执行传感器执行 传感器传感器输入控制输入控制 警告警告输出控制输出控制 警告警告条件控制条件控制 获得获得回应信息回应信息 读读 传感器传感器 证实证实警告条件警告条件 选择选择 电话号电话号 格式化格式化 显示显示 产生产生警告信号警告信号连接电话连接电话网设置网设置 产生产生 显示显示 产生产生拨号脉冲拨号脉冲变换映射到结构图进一步细化变换映射到结构图进
86、一步细化139确定确定DFD中是否含有事务流中是否含有事务流T事务.事务流:沿多条路径之一触发的数据流事务中心动作路径在很多系统中的在很多系统中的DFDDFD,变换流和事务流可能是同时出现的,变换流和事务流可能是同时出现的事务映射方法事务映射方法140事务数据流到结构图事务数据流到结构图接收路径C路径B路径A路径C1C2C3调度事务控制141事务映射方法例子事务映射方法例子SafeHome系统的用交互子系统系统的用交互子系统DFD(第一层)(第一层)控制面板传感器用户交互子系统控制面板 显示 警告电话线用户命令 和数据传感器 状态显示信息警告类型电话号信号配置系统监控传感器处理口令激活或失效系
87、统显示信息和状态传感器信息配置信息正确的ID信息配置数据配置数据配置请求启动停止口令激活/失效信息142用交互子系统用交互子系统DFD(第二层)(第二层)读用户命令请求命令处理读系统数据建立配置文件激活或失效系统读口令用文件比较口令产生无效的信息显示信息和状态配置信息用户命令命令类型启动停止A/D信息配置数据配置系统参数和数据配置数据口令输入口令4位数字无效的 口令有效口令配置数据 显示信息“再试”提示呈现典型的变换流形式143 用户交互 执行用交互子系统用交互子系统DFD第二层向软件模块结构的映射第二层向软件模块结构的映射 读用户命令请求用户命令处理系统配置 控制激活/失效 系统 口令处理
88、控制 读系统数据 建立配置文件 显示信息 和状态 读口令 用文件比较口令口令输出 控制 产生无效信息144控制系统的深度和层次:几个术语:深度:层次的数量宽度:每层的跨度扇入:受控的数量扇出:可控制的数量 M a b c d e k l m f g h i j n o p q r 深度 宽度 扇出 扇入软件体系结构设计经验软件体系结构设计经验145经验:经验: M a b c d e k l m f g h i j n o p q r 深度 宽度 扇出 扇入较好的设计原则:较好的设计原则: 深度适中深度适中-34层层 上层扇出高上层扇出高-不宜超过不宜超过7 中层扇出少中层扇出少-34个个 底
89、层高扇入底层高扇入-高共享虽好,但不高共享虽好,但不 要破坏模块独立性要破坏模块独立性146采用水平和垂直系统划分方式采用水平和垂直系统划分方式 水平划分:将系统功能分为独立的几部分(输入、处理、输出)当系统维护时,问题清晰,互无干扰。输入 输出 变换 垂直划分:上层为控制,中层为分别控制,下层为各独立的处理。当系统的维护时,引发的副作用小。垂直划分水平划分147界面设计界面设计界面设计的重要性:界面设计的重要性:用户界面在人和计算机之间,建立有效的通信媒介。它用户界面在人和计算机之间,建立有效的通信媒介。它影响用户对系统的感觉。无论提供的系统功能怎样,如影响用户对系统的感觉。无论提供的系统功
90、能怎样,如果难于使用,就不是好系统果难于使用,就不是好系统 。界面设计包括:界面设计包括: 软件构件之间的接口软件构件之间的接口 生产或消费构件的外部系统或设备之间的接口生产或消费构件的外部系统或设备之间的接口 与使用系统的操作人员之间的接口与使用系统的操作人员之间的接口对人的研究:对人的研究:用户界面设计,要求在研究技术问题的同时,对未来用户界面设计,要求在研究技术问题的同时,对未来的使用人员也要加以研究的使用人员也要加以研究148界面设计黄金规则界面设计黄金规则 至于用户的控制之下至于用户的控制之下 减少用户的记忆负担减少用户的记忆负担 保持界面风格一致保持界面风格一致用户操作界面设计原则
91、用户操作界面设计原则有经验表明:有经验表明:用户希望控制计算机,而不希望被计算机控制。用户希望控制计算机,而不希望被计算机控制。用户需要记住的东西越多越容易出错用户需要记住的东西越多越容易出错多种设计风格的操作,会使人增加记忆负担多种设计风格的操作,会使人增加记忆负担149 至于用户的控制之下至于用户的控制之下用户用户希望控制计算机,而不希望被计算机控制。希望控制计算机,而不希望被计算机控制。将操作至于用户控制之下的设计将操作至于用户控制之下的设计: 不强迫用户定义、执行某些动作不强迫用户定义、执行某些动作 应提供灵活的交互式切换应提供灵活的交互式切换 应允许用户的操作被中断和撤销应允许用户的
92、操作被中断和撤销 应有可重复操作的应有可重复操作的“宏宏”机制,能定制方便的批操作。机制,能定制方便的批操作。 操作应与实现算法隔离操作应与实现算法隔离 尽量使用户直接操作屏幕上的对象尽量使用户直接操作屏幕上的对象150减少用户的记忆负担减少用户的记忆负担用户必须记住的东西越多,越容易出错用户必须记住的东西越多,越容易出错使用户减少记忆负担的设计原则:使用户减少记忆负担的设计原则: 提供帮助记忆过去动作的方式提供帮助记忆过去动作的方式 建立有意义的缺省信息,能回到缺省值建立有意义的缺省信息,能回到缺省值 提供直觉的助记符(例如:提供直觉的助记符(例如:Alt-PAlt-P表示打印)表示打印)
93、界面视觉应隐喻现实处理过程界面视觉应隐喻现实处理过程 引导过程要有层次地进行,从粗到细,由里到外引导过程要有层次地进行,从粗到细,由里到外151 保持界面风格一致保持界面风格一致不同人的设计风格,会使人增加不必要的操作记忆不同人的设计风格,会使人增加不必要的操作记忆保持界面风格一致的设计:保持界面风格一致的设计: 明确标出各任务的语境,醒目区分标题、形式和颜色明确标出各任务的语境,醒目区分标题、形式和颜色 统一设计界面风格,保持交互操作形式一致统一设计界面风格,保持交互操作形式一致 尽量尽量保持用户习惯的操作方式,除非不得已保持用户习惯的操作方式,除非不得已系统的设计风格包括:显示信息的方式系
94、统的设计风格包括:显示信息的方式 获取信息的方式获取信息的方式1522) 界面问题设计界面问题设计 系统响应时间问题系统响应时间问题 联机帮助问题联机帮助问题 错误提示问题错误提示问题 命令标记问题命令标记问题界面的界面的4 4个问题设计个问题设计153 系统响应时间长时间的动作应给出必要的提示,增设长度和可变性两个属性。 联机帮助 常见的两种联机帮助: 集成帮助设施-设计在软件中,与执行语境相关 附加帮助设施-系统后期加入的,通过联机检索 提供帮助的方式: 怎样请求帮助-菜单、特殊功能键、Help命令 怎样提供帮助-窗口、提示、给出参考文档 怎样退出帮助-返回键、功能键、控制序列 怎样构造帮
95、助信息-平面式、分层式、超文本式154 错误提示错误提示 错误提示应具有的特征:错误提示应具有的特征: a.a.使用可理解的术语使用可理解的术语 b.b.提供从错误中恢复的建议提供从错误中恢复的建议 c.c.指出错误导致的不良后果指出错误导致的不良后果 d.d.应该有视觉和听觉提示应该有视觉和听觉提示 e.e.不应带有责怪色彩不应带有责怪色彩 命令标记命令标记 命令式交互西药考虑的问题:命令式交互西药考虑的问题: a.a.每个菜单项是否都有对应的命令每个菜单项是否都有对应的命令 b.b.提供命令的提供命令的方式方式控制序列控制序列 c.c.学习记忆命令的难易程度,忘记命令将怎样学习记忆命令的难
96、易程度,忘记命令将怎样 d.d.用户可否自定义命令和缩写命令用户可否自定义命令和缩写命令155软件单元算法设计和工具软件单元算法设计和工具结构化程序算法的描述原则:结构化程序算法的描述原则: 围绕可预测的逻辑功能以及容易理解的过程围绕可预测的逻辑功能以及容易理解的过程顺序顺序基本算法逻辑:基本算法逻辑:选择选择条件条件循环循环设计的方法:设计的方法: 用图、表和文本,来表示算法用图、表和文本,来表示算法程序框图程序框图盒图(盒图(N-SN-S图)图)决策表决策表PDLPDL语言语言156 程序框图程序框图算法设计工具算法设计工具YYYNNN157 N-S盒图盒图处理1.处理n F 条件 T e
97、lse then 循环条件 do-while repeat-until 循环条件 case 条件1 条件2 条件3 条件4 . S1F x 5 TS3 S2 y 3 T S5 S4 W 0 S6 S7 S8F U 0 TS10 S9例子:158决策表决策表 条件 1 2 3 4. n条件1 T T T F条件2 F F F F条件3 F T T. 动作动作1 动作2 动作3 动作4 .列出过程(模块)中所有动作和条件列出过程(模块)中所有动作和条件将条件和动作相关联的排在表中的一列上将条件和动作相关联的排在表中的一列上条件取值真或假,对应动作填入条件取值真或假,对应动作填入标记标记根据处理陈述
98、:根据处理陈述:159 条件 1 2 3 4固定比率收费用户 T T F F非固定比率收费用户 F F T T月耗电量=100度用户 F T F T 动作按最低月收费 按表A收费 按表B收费 其它决策表例子陈述:如果用固定比率收费,月耗电量少于100kWH的用户付费为最低月收费,其余用户应按非固定比率付费。其中,月耗电量少于100kWH的部分用表A计费,其余部分用表B计费。160PDL程序设计语言程序设计语言 (program design language)PDL也称也称 “结构化英语结构化英语” 或或 “伪码伪码”特征:特征:为结构化设计元素为结构化设计元素提供的关键词提供的关键词,包括:
99、数据和模块声明、,包括:数据和模块声明、 循环、情况判断、条件判断等语句成分循环、情况判断、条件判断等语句成分自然英语语法,自由地描述处理过程自然英语语法,自由地描述处理过程数据声明可以说明变量、数组、链表和树。数据声明可以说明变量、数组、链表和树。支持各种接口描述的子程序定义和模块调用支持各种接口描述的子程序定义和模块调用161PDLPDL程序设计语言例子程序设计语言例子Begin S1, if x 5 then S2 else S3; while y 3 then S4 else S5; while W 0 then S6 S7; end S8; if U 0 then S9; S10;e
100、nd S1F x 5 TS3 S2 y 3 T S5 S4 W 0 S6 S7 S8F U 0 TS10 S9N-S图描述例子伪码描述162编号 分类名称Input:1.Old file2. transaction file .Output: effective file .Process:1.checkout file 2. transaction processing record3. Update file record.日期 页号设计 审核IPO 图 (Input-Process-Output)例子163 Function specifyI/O type decipherAll Int
101、erface编号 名称日期 页号 设计 审核模块说明对模块功能的描述模块的调用方式模块调用参数的解释164 按照软件生命周期的规律,面向对象的方法学也包括分析活动和设计活动。 分析活动和设计活动并没有明显的阶段划分,对应喷泉式模型:演化维护测试实现设计分析喷泉模型要点:体现认识事物的循环迭代性强调开发活动的无间隙性(无明显的阶段划分)强调开发活动的并发性4.24.2 面向对象的设计面向对象的设计 165分析活动-针对问题域和系统责任,描述对象类,并通过行为描述,确定必要的属性和操作。设计活动-考虑实现有关的问题,包括: 1)针对待解决问题(问题域)的设计; 2)人机交互界面设计; 3)系统控制
102、部分的设计; 4)数据管理部分的设计; 5)系统构件部署。问题域 部分控制驱动部分人机交互部分数据管理部分行为图与包图类图用况图详细说明构件和部署设计详细说明166问题域设计问题域设计 为复用调整类结构为复用调整类结构 为建立公用成分设计超类为建立公用成分设计超类 针对不具备继承的语言做调整针对不具备继承的语言做调整 针对不具备多继承的语言做调整针对不具备多继承的语言做调整 针对不具备针对不具备多态性的多态性的语言做调整语言做调整 为提高性能进行类调整为提高性能进行类调整 关联的实现关联的实现 调整属性调整属性 设计算法设计算法 定义对象及可访问性定义对象及可访问性167人机交互设计人机交互设
103、计1 ) 1 ) 人机交互的设计原则人机交互的设计原则2 ) 2 ) 用况分析人机交互用况分析人机交互3 )3 )人机交互的对象设计人机交互的对象设计4 )4 )人机交互的命令组织人机交互的命令组织5 )5 )界面对象设计的指导策略界面对象设计的指导策略1681 ) 1 ) 人机交互的设计原则人机交互的设计原则 人机交互设计原则,无论面向对象技术,还是结人机交互设计原则,无论面向对象技术,还是结构化设计都是相同的。构化设计都是相同的。界面设计黄金规则界面设计黄金规则至于用户的控制之下至于用户的控制之下减少用户的记忆负担减少用户的记忆负担保持界面风格一致保持界面风格一致界面设计问题界面设计问题响
104、应时间问题响应时间问题联机帮助问题联机帮助问题错误提示问题错误提示问题命令操作问题命令操作问题1692) 2) 从用况分析人机交互从用况分析人机交互 从从Use CaseUse Case入手对用况脚本分析入手对用况脚本分析 划分参与者行为和系统行为划分参与者行为和系统行为 分离出包含的输入或输出陈述分离出包含的输入或输出陈述 去掉与输入或输出无关的陈述去掉与输入或输出无关的陈述1703 3)人机交互的对象设计人机交互的对象设计1)确定输入设备2)设计输入界面对象3)输入步骤细化 设计输入设计输入设计输出1)确定输出设备2)确定输出的形式和内容3)输出步骤的细化1714 4) 人机交互的人机交互
105、的命令组织命令组织对输入命令的两种组织措施: 分解-将含有许多参数和选项的复杂命令,分解为多个简单的命令的组合。 组合-当系统的命令很多时,按照它们的功能或所属的子系统组合成若干命令组,使每组只包含少量的命令。172控制器驱动部分设计控制器驱动部分设计控制驱动设计的目的:定义并表示系统的的控制流对系统中的并发设计协调控制机器无关性设计(隔离硬件、操作系统、网络变化对系统的影响)进程和线程:进程是独立功能程序的执行过程线程是需要连续执行的操作序列进程有独立的机器空间,线程在进程内,竞争进程资源。173控制流:一个完成特定功能的顺序执行的动作序列。 它可能就是一个进程,也可能在多个进程中, 是多个
106、线程的操作序列集合。顺序系统:在一个时间点上,有且仅有一件事情发生, 只有一个控制流。并发系统:在一个时间点上,有多件事情发生。存在多 于一个的控制流。174系统中存在多个控制流:1.系统的分布方案要求多控制流 每个分布点至少有一个控制流,至少拥有一个主动对象。2.系统的并发需求要求多控制流 要求多项任务同时进行,则每项任务对应一个控制流。3.为实现方便设立多个控制流 通信、睡眠、时钟,等控制流4.系统中的主动类对象都对应独立的控制流。5.为提高性能而增设的控制流 设立优先级的控制流。6.异常事件处理作为独立的控制流7.起协调作用的控制流175划分分解问题为独立小任务映射将同一个控制流的任务合
107、理分配到相应的机器空间组合同一控制流的任务组织在一起合理的系统规划与分布:问题通信规划任务间的协作与交互176营业部计算机营业部计算机营业部计算机ATM机器 ATM机器 控制流中的并发对象操作举例ATM系统的例子:ATM机器 业务对象读密码操作联营计算机业务对象分理营业部操作营业部计算机业务对象密码验证操作业务对象的控制线程: 读密码 分理对应营业部 密码验证非同步方式同步方式.177控制流常用的通信机制:同步通信同步的含义:调用者调用操作,等待接收者接收这个调用操作被唤醒,处理后将计算结果返回给调用者经典同步事例:过程调用异步通信异步的含义:调用者发送信号后无需等待,继续他自己的工作接收者在
108、作好准备后,适当的时候去取需要的信息经典异步事例:邮箱、共享存储器1784 ) 控制流间的同步同步的目的是为了协调并发控制流的执行,以防止控制流同时修改或访问共享资源、提高资源的利用率和防止控制流死锁和控制流饿死。abcabc(a)(b)两个控制流通过对象中的同一操作两个控制流通过对象中的多个不同操作179控制流的同步控制:方法1:Sequential(顺序的)将所有控制流涉及的多个对象作为临界资源,保护起来,使得在一个时刻,每个对象内仅有一个控制流起作用。方法2:Guarded(受监护的)通过把控制流所涉及的所有对象的操作顺序化,并都标上Guarded,作为临界资源,控制起来。方法3:Con
109、current(并发的)把控制流所涉及的所有对象中的每一操作,作为独立原子单位,利用并发控制,执行多入口点的操作并行处理。180责任:存储和检索永久对象 封装对永久对象的查找和存储机制目的:隔离数据管理部分,减小对问题域的影响永久对象:需要长期存储的对象存储永久对象:文件系统 关系数据库 面向对象数据库只存储属性部分数据管理部分的设计数据管理部分的设计181数据库和数据库管理系统应用程序用户数据库管理员应用程序接口终端用户查询处理器数据定义接口数据库访问和控制逻辑部分物理存储模式数据库数据库管理系统182简单复习关系数据库基本概念 人员ID 姓名 籍贯 联系地址 K8234 张三 河北 海淀花
110、园路178号3门23 K8237 李四 贵州 海淀永定路4号楼507 P8450 王五 福建 宣武区前门大街7号 F8559 张三 河北 东城区东厂胡同38号 每列是属性也称字段每行称为元组或记录关键字:能唯一确定元组的属性外键:用于连接表的关键字序号 人员ID 身份证号 0001 K8237 3702121953012315180002 F8559 530102194512200032关键字外键183关系数据库的数据管理设计关系数据库的数据管理设计数据存储设计方法面向对象基本元素与关系数据库的“实体-关系”相对应面向对象类对象属性关联实体关系实体类型实体实例属性关系关系数据库表 行(元组)列
111、关键字和外键184数据管理部分数据库管理系统数据库应用系统 设立应用系统的数据管理,将系统对象转换为永久对象,再交给数据库管理系统存储。应用系统的数据管理185永久对象标识 对非永久存储对象的访问,是通过对象标识(即对象名)访问的。对象标识在运行中建立,在程序中取消,或随着运行终止自动消亡。 永久存储对象,必须将可标识的唯一对象标记存储起来,作为主关键字。永久对象标识的命名: 对应类建立的表:设立唯一可标识对象的关键字字段 对应关联建立的表:设立相关联的主键为组合关键字186对象标识举例:办公设备名称购置日期规格 设备编号 使用日期 部门编号 802300 92年2月 0010 802301
112、95年2月 0010 832033 99年8月 0011办公设备部门名称责任人联系电话0.n0.1 设备编号 名称 购置日期 规格 802300 装订机 91年3月 KP-023 802301 投影仪 91年3月 SH-111 832033 投影仪 98年10月 SK-111 部门编号 名称 责任人 联系电话 0010 人事 处 张三 5321675 0011 科技处 王五 5321467对应关联建立的表:对应类建立的表:使用187关联的存储设计一对一类关联,在对应的任意表中,用外键隐含关联职员名字性别职务办公室办公室名地点联系电话11职员编号 名字 性别 职 务 房间号 房间号 办公室名 地
113、点 电话一对多类关联,在对应的多端表中,用外键隐含关联公司公司名称地址人员姓名地点人员ID 姓名 地点 公司ID11.*公司ID 公司名称 地址188对于多对多的关联,映射关联到一张独立的表,将其转化为一对多的关联,然后按一对多的方式进行处理,其主键是所关联表主关键字的拼接。用户工作站1*1.*用户工作站11使用权1.*1*对聚合关联的存储设计规则与关联存储设计相同189 对继承关联的存储设计 方法1: 创建一张表,集中一般类和特殊类的所有属性。设备设备名称价格水泵吸气压力排气压力热交换器表面面积设备ID 设备名称 价格 水泵吸气压力 水泵排气压力 热交换器表面积190方法2(a):一般类需要创建对象:为一般类设置一张表,并为各特殊类各设置各自的表。一般类的表与各子类的表要用同样的属性(组)作为主关键字。设备ID 设备名称 价格 设备类型设备ID 吸气 压力 排气压力设备ID 表面面积 设备设备名称价格水泵吸气压力排气压力热交换器表面面积191方法2(b):在一般类不创建对象,只作为抽象类:子类各设置一张表,把一般类的属性放于各个子类表中。设备ID 设备名称 价格 吸气压 排气压力 设备ID 设备名称 价格 表面面积设备设备名称价格水泵吸气压力排气压力热交换器表面面积192演讲完毕,谢谢观看!