信息系统集成专业技术知识.ppt

上传人:牧羊曲112 文档编号:5230546 上传时间:2023-06-16 格式:PPT 页数:356 大小:3.17MB
返回 下载 相关 举报
信息系统集成专业技术知识.ppt_第1页
第1页 / 共356页
信息系统集成专业技术知识.ppt_第2页
第2页 / 共356页
信息系统集成专业技术知识.ppt_第3页
第3页 / 共356页
信息系统集成专业技术知识.ppt_第4页
第4页 / 共356页
信息系统集成专业技术知识.ppt_第5页
第5页 / 共356页
点击查看更多>>
资源描述

《信息系统集成专业技术知识.ppt》由会员分享,可在线阅读,更多相关《信息系统集成专业技术知识.ppt(356页珍藏版)》请在三一办公上搜索。

1、信息系统集成 专业技术知识,主要内容,第一节 信息系统建设第二节 软件工程第三节 面向对象系统分析与设计第四节 软件体系结构第五节 典型应用集成技术第六节 计算机网络知识,信息系统开发流程,第一节 信息系统建设,信息系统开发生命周期,总体规划内容信息系统开发范围、目标约束条件系统结构建设计划,总体规划阶段,系统分析阶段的目标为系统设计阶段提供系统逻辑模型系统分析阶段的内容组织结构和功能分析业务流程分析数据及数据流程分析用户需求分析系统新方案,系统分析阶段,系统设计阶段的目标为系统设施阶段的编程、测试提供依据系统设计阶段的内容新系统总体结构设计代码设计数据库设计输入/输出设计处理流程及模块功能设

2、计安全控制点设计,系统设计阶段,系统实施阶段的目标将设计方案转换为可执行系统,系统运行和评价阶段维护类型:纠错性维护诊断、修正原先遗留错误适应性维护使系统适应环境变化完善性维护扩充、提升系统性能预防性维护,系统评价类型性能指标技术指标,系统实施阶段,信息系统建设的原则,1高层管理人员介入原则2.用户参与开发原则3.自上而下的规划原则4工程化原则,第二节 软件工程,2.1 软件生存周期(1)计划制定阶段(2)软件需求分析阶段(3)软件设计阶段(4)编码阶段(5)测试阶段(6)软件运维,(1)计划制定阶段,软件项目计划内容确定系统总目标项目可行性分析资源分配进度计划参加人员用户、项目经理、系统分析

3、师计划制定阶段成果可行性研究报告项目计划书,软件需求分析内容系统功能性能数据界面要求系统逻辑模型参加人员用户、项目经理、系统分析师需求分析阶段成果需求规格说明书,(2)软件需求分析阶段,需求分析步骤,准确地定义未来系统的目标,确定为了满足用户的需求,系统必须做什么,用需求规格说明书(Software Requirement Specification SRS)表达用户需求。,需求分析阶段要完成的文档。SRS的作用:开发者与用户间事实上的技术合同书开发者下一步设计和编码的基础测试验收目标系统的依据,软件需求分析常用方法,面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD)

4、面向数据结构的结构化数据系统开发方法(DSSD)面向对象的分析方法(OOA)等,结构化分析方法,面向数据流进行需求分析的方法结构化分析方法适合于数据处理类型软件的需求分析具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止,结构化分析方法使用工具:数据流图 数据词典 结构化英语 判定表与判定树,数据流图的层次结构,为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统,分层的数据流图,在多层数据流图中

5、,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图,它处在最底层中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。,数据词典,数据词典与数据流图配合,能清楚地表达数据处理的要求词条描述 对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它等,对数据流图的每一个基本加工,必须有一个基本加工逻辑说明基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则加工逻辑说明必须描述实现加工的策略而不是实现加工的细节加工逻辑说明

6、中包含的信息应是充足的,完备的,有用的,无冗余的,基本加工逻辑说明,用于写加工逻辑说明的工具,结构化英语 判定表 判定树,系统动态分析,系统的需求规格说明通常是用自然语言来叙述的,但是用自然语言描述往往会出现歧义性。为了直观地分析系统的动作,从特定的视点出发描述系统的行为,需要采用动态分析的方法。,最常用的动态分析方法,状态迁移图状态迁移图是描述系统的状态如何相应外部的信号进行推移的一种图形表示。时序图在系统分析中,用时序图于对比在系统中处理事件的时序和相应的处理时间。Petri网Petri网已广泛地应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的

7、处理系统。,E-R方法(Entity-Relationship Approach)和实体模型,在需求分析阶段进行数据库逻辑设计过程中,使用E-R图,可定义一 个实体模型。实体模型是现实世界的纯表示,它不涉及数据世界的数据结构、存取路径、存取效率等问题。因此,它可以转换成数据库中的数据模型。,设计阶段内容:概要设计任务 模块分解、确定软件结构、模块的功能,模块之间的接口、全局数据结构详细设计的任务 模块的实现,模块局部数据结构参加人员:分析师、程序员设计阶段成果:设计规格说明书(概要设计说明书,详细设计说明书数据说明书,模块开发卷宗,(3)设计阶段(概要设计、详细设计),软件设计分为两个阶段:(

8、1)概要设计(总体设计)确定软件的结构以及各组成成分(子系统或模块)之间的相互关系(2)详细设计 确定模块内部的算法和数据结构,产生描述各模块程序过程的详细文档。,模块的独立性,模块独立性指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的。模块独立的含义:模块完成独立的功能符合信息隐蔽和信息局部化原则模块间关连和依赖程度尽量小,模块设计目标:强内聚、弱耦合,模块独立性的度量,SD方法提出的定性的度量标准:模块之间的耦合性 耦合性用来度量程序之间联系的次数和强度模块自身的内聚性 内聚是指度量一个给定的程序内的多行代码的单一功能性,以确定是否达到该程序所要实现

9、的目的。,内聚与耦合密切相关,同其它模块强耦合的模块意味者弱内聚,强内聚模块意味着与其它模块间松散耦合。,模块间耦合,(1)非直接耦合 两个模块没有直接关系(模块1和模块2),模块独立性最强。(2)数据耦合 一模块调用另一模块时,被调用模块的输入、输出都是简单的数据(若干参数)。属松散耦合。(3)标记耦合(特征耦合)如两个模块通过传递数据结构(不是简单数据,而是记录、数组等)加以联系,或都与一个数据结构有关系,则称这两个模块间存在标记偶合。(4)控制耦合 一模块向下属模块传递的信息(开关量、标志等控制被调用模块决策的变量)控制了被调用模块的内部逻辑,(5)外部耦合 一组模块均与同一外部环境关联

10、,它们之间便存在外部耦合。(6)公共耦合(公共数据区耦合)一组模块引用同一个公用数据区(也称全局数据区、公共数据环境)。公共数据区指:全局数据结构 共享通讯区 内存公共覆盖区等(7)内容耦合一模块直接访问另一模块的内部信息(程序代码或数据)模块代码重叠多入口模块,模块内聚性,一个模块内部元素在功能上相互关联的强度,模块内聚,(1)偶然内聚(巧合内聚)模块内各部分间无联系(2)逻辑内聚 把几种相关功能(逻辑上相似的功能)组合在一模块内,每次调用由传给模块的参数确定执行哪种功能。(3)时间内聚(经典内聚)模块完成的功能必须在同一时间内执行,这些功能只因时间因素关联在一起。例如:初始化系统模块、系统

11、结束模块、紧急故障处理模块等均是时间性聚合模块.(4)过程内聚(顺序性组合)模块内各处理成分相关,且必须以特定次序执行,(5)通信内聚 模块内各部分使用相同的输入数据,或产生相同的输出结果(6)信息内聚 模块完成多个功能,各功能都在同一数据结构上操作,每一功能有唯一入口。(7)功能内聚模块仅包括为完成某个功能所必须的所有成分。(模块所有成分共同完成一个功能,缺一不可)内聚性最强,软件模块结构的改进,模块功能的完善化消除重复功能,改善软件结构模块的作用范围应在控制范围之内尽可能减少高扇出结构,随着深度增大扇入避免或减少使用病态联接模块的大小要适中设计功能可预测的模块,但要避免过分受限制的模块软件

12、包应满足设计约束和可移植性,概要设计(总体设计),概要设计确定:软件系统的结构各模块功能及模块间联系(接口)表示软件结构的图形工具结构图层次图HIPO图,1.面向数据流设计方法的基本概念 SD以数据流图为基础,它定义了把DFD变换成软件结构的不同映射方法,系统结构特征可归纳为两种典型形式:,变换型结构事务型结构数据流图可分为两种类型:变换型数据流事务型数据流,层次图(H图),HIPO图,H图中每一方框(模块)均有一张IPO图对应,HIPO图:层次图+输入/处理/输出图(H图)(IPO图)(Hierachy Input Process Output),命令监控器(1.0)的IPO图,航线调度系统

13、HIPO图举例,详细设计(过程设计、模块设计),主要任务:编写详细设计说明书为此,设计人员应:(1)确定每个模块的算法,用工具表达算法的过程,写出模块的详细过程性描述。(2)确定每一模块的数据结构。(3)确定模块接口细节。详细设计是编码的先导。,1.程序流程图2.盒图(N-S图)用方框图代替传统的流程图3.问题分析图(PAD)4.决策树 5.判定表,详细设计工具,N-S图,N-S图也叫做盒图。五种基本控制结构由五种图形构件表示。,PAD也设置了五种基本控制结构的图式,并允许递归使用。,问题分析图(PAD),判定表,判定表用于表示程序的静态逻辑在判定表中的条件部分给出所有的两分支判断的列表,动作

14、部分给出相应的处理要求将程序流程图中的多分支判断都改成两分支判断,内容 模块程序编写人员:程序员阶段成果:程序清单,(4)编码阶段,设计测试用例测试软件人员 另一部门的分析员或程序员阶段成果 软件测试计划 软件测试报告,(5)测试阶段,测试是为了寻找错误而运行程序的过程 软件产品最大的成本是检测软件错误、修正软件错误的成本。在整个软件开发中,测试工作量一般占30%40%,甚至50%。测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错.程序测试能证明错误的存在,但不能证明错误不存在”一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试。,软件测试的认识,软件测试是有风险的

15、行为,软件,软件测试不可能发现程序中存在的所有错误,因此需精心设计测试方案,测试原则(1)所有的测试都应追溯到用户需求(2)概要设计时应完成测试计划,详细的测试用例定义可在设计模型确定后开始,所有测试可在任何代码被产生之前进行计划和设计。(3)pareto原则:测试发现的错误中80%很可能起源于20%的模块中。应孤立这些疑点模块重点测试。(4)穷举测试是不可能的。(5)应由独立的第三方来构造测试。(6)测试用例应由输入数据和预期的输出结果两部分组成.(7)兼顾合理的输入和不合理的输入数据(8)程序修改后要回归测试(9)应长期保留测试用例,直至系统废弃。,测试与开发前期工作的关系,软件测试方法与

16、技术,静态测试:对软件进行分析、检查和审阅,不实际运行被测试的软件。静态测试约可找出3070%的逻辑设计错误.对需求规格说明书、软件设计说明书、源程序做检查和审阅,包括:是否符合标准和规范;通过结构分析、流图分析、符号执行指出软件缺陷,动态测试:通过运行软件来检验软件的动态行为和运行结果的正确性动态测试的两个基本要素:被测试程序 测试数据(测试用例),测试(test)调试(debug),以已知条件开始,使用预先定义的程序,有预知的结果,以不可知内部条件开始,结果一般不可预见,有计划,被动的,由独立的测试组,在不了解软件设计的条件下完成,由程序作者进行,发现错误,找出错误位置,排除,测试与调试(

17、排错),逻辑覆盖法(1)语句覆盖使程序中每个语句至少执行一次(2)判定覆盖使每个判定的真假分支都至少执行一次(3)条件覆盖使每个判定的每个条件的可能取值至少执行一次(4)判定/条件覆盖使判断中的每个条件的所有可能取值至少执行一次,同时每个判断本身的所有可能判断结果至少执行一次(5)条件组合覆盖所有可能的条件取值组合至少执行一次(6)路径覆盖覆盖每一个可能的路径,测试用例设计,1、黑盒测试2、白盒测试3、单元测试4、累计综合测试5、集成测试6、功能测试7、系统测试8、端到端测试9、健全测试10、衰竭测试11、接受测试,12、负载测试13、强迫测试14、性能测试15、可用性测试16、安装/卸载测试

18、17、恢复测试18、兼容测试19、安全测试20、比较测试21、Alpha测试22、Beta测试,测试类型,黑盒测试 又称:功能测试 数据驱动测试 基于规格说明书的测试,白盒测试 又称:开盒测试 结构测试 玻璃盒测试 基于覆盖的测试,黑盒测试是从用户观点,按规格说明书要求的输入数据与输出数据的对应关系设计测试用例,是根据程序外部特征进行测试。白盒测试是根据程序内部逻辑结构进行测试。,黑盒测试与白盒测试优缺点比较,功能测试功能测试是在规定的一段时间内运行软件系统的所有功能,以验证这个软件系统有无严重错误。,可靠性测试 平均失效间隔时间 MTBF(Mean Time Between Failures

19、)是否超过规定时限?因故障而停机的时间 MTTR(Mean Time To Repairs)在一年中应不超过多少时间。,强度测试强度测试是要检查在系统运行环境不正常乃至发生故障的情况下,系统可以运行到何种程度的测试。例如:把输入数据速率提高一个数量级,确定输入功能将如何响应。设计需要占用最大存储量或其它资源的测试用例进行测试。设计出在虚拟存储管理机制中引起“颠簸”的测试用例进行测试。设计出会对磁盘常驻内存的数据过度访问的测试用例进行测试。,强度测试的一个变种就是敏感性测试。在程序有效数据界限内一个小范围内的一组数据可能引起极端的或不平稳的错误处理出现,或者导致极度的性能下降的情况发生。,性能测

20、试性能测试是要检查系统是否满足在需求说明书中规定的性能。特别是对于实时系统或嵌入式系统。性能测试常常需要与强度测试结合起来进行,并常常要求同时进行硬件和软件检测。通常,对软件性能的检测表现在以下几个方面:响应时间、吞吐量、辅助存储区,例如缓冲区,工作区的大小等、处理精度等。,启动停止测试目的是验证在机器启动及关机阶段,软件系统正确处理的能力。,恢复测试恢复测试是要证实在克服硬件故障(包括掉电、硬件或网络出错等)后,系统能否正常地继续进行工作,并不对系统造成任何损害。,容量测试检验系统的能力最高能达到什么程度。例如,对于编译程序,让它处理特别长的源程序;对于操作系统,让它的作业队列“满员”;对于

21、信息检索系统,让它使用频率达到最大。在使系统的全部资源达到“满负荷”的情形下,测试系统的承受能力。,配置测试是要检查计算机系统内各个设备或各种资源之间的相互联结和功能分配中的错误。主要包括:配置命令测试:验证全部配置命令的可操作性(有效性)。循环配置测试:证明对每个设备物理与逻辑的,逻辑与功能的每次循环置换配置都能正常工作。修复测试:检查每种配置状态及哪个设备是坏的,并用自动的或手工的方式进行配置状态间的转换。,安全性测试检验在系统中已经存在的系统安全性、保密性措施是否发挥作用,有无漏洞。,可使用性测试从使用的合理性和方便性等角度对软件系统进行检查,发现人为因素或使用上的问题。,可支持性测试验

22、证系统的支持策略对于公司与用户方面是否切实可行。,安装测试安装测试是要找出在安装过程中出现的错误。,过程测试在一些大型的系统中,部分工作需由各种人员按一定规程同计算机配合,靠人工来完成。指定由人工完成的过程也需经过仔细的检查,这就是所谓的过程测试。,互连测试验证两个或多个不同的系统之间的互连性。兼容性测试验证软件产品在不同版本之间的兼容性。包括:向下兼容和 交错兼容文档测试检查用户文档(如用户手册)的清晰性和精确性。,调试(Debug)方法,强行排错回溯法调试先分析错误征兆,确定最先发现“症状”的位置。然后沿程序的控制流程,向回追踪源程序代码。归纳法调试 归纳法是一种从特殊推断一般的系统化思考

23、方法。从一些线索(错误征兆)着手,通过分析它们之间的关系来找出错误。演绎法调试演绎法是一种从一般原理出发,经过排除来推导结论的思考方法。首先根据已有的测试用例,设想所有可能出错的原因;然后再用原始测试数据,逐个排除不可能正确的假设;最后验证余下的假设确是出错的原因。,软件测试过程,软件测试步骤,单元测试单元测试 检验每个模块能否单独工作集成测试(组装测试)集成测试:检验概要设计中模块接口设计问题,集成测试方法 通常采用黑盒测试技术实施策略:非渐增式测试一次就把所有通过了单元测试的模块组合在一起进行全程序的测试.渐增式测试从一个模块开始,测一次添加一个模块,边组装边测试,以发现与接口相联系的问题

24、。,运用黑盒测试的方法,通过实施预定的测试计划和测试步骤,证实软件功能与用户需求是否一致.,确认测试(有效性测试、验收测试),测试和测试测试(Alpha)在开发者的场所由用户进行,在开发者关注和控制的环境下进行。测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。尤其注重产品的界面和特色。测试(Beta)最终用户在自己的场所进行。测试是由软件的多个用户在实际使用环境下进行的测试。这些用户返回有关错误信息给开发者。测试时,开发者通常不在测试现场。因而,测试是在开发者无法控制的环境下进行的软件现场应用。在测试中,由用户记下遇到的所有问题,包括真实的以及主观认定的

25、,定期向开发者报告。,(1)恢复测试 以不同的方式强使软件出现故障,检测软件能否恰当地完成恢复。(2)安全性测试 设计测试用例,突破软件安全保护机构的安全保密措施,检验系统预防机制的漏洞.(3)强度测试 是一种敏感性测试技术,设计测试用例,让系统处于资源的异常数量、异常频率、异常批量的条件下测试系统的承受能力。(4)性能测试 设计测试用例,并记录软件运行性能,与性能要求比较,检验是否达到性能要求规格。,系统测试,(6)软件维护,在软件运行维护阶段对软件产品进行的修改就是所谓的维护。维护的类型有三种:改正性维护 适应性维护 完善性维护,改正性维护,在软件交付使用后,因开发时测试的不彻底、不完全,

26、必然会有部分隐藏的错误遗留到运行阶段。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护。,适应性维护,在使用过程中,外部环境(新的硬、软件配置)数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。,完善性维护,在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。,预防性维护,预防性维护是为了提高软件的

27、可维护性、可靠性等,为以后进一步改进软件打下良好基础。预防性维护定义为:采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。,在整个软件维护阶段所花费的全部工作量中,完善性维护占了几乎一半的工作量。软件维护活动所花费的工作占整个生存期工作量的70%以上,,维护在软件生存期所占比例,三类维护占总维护比例,软件可维护性的定义,软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程度。可维护性、可使用性、可靠性是衡量软件质量的主要质量特性,也是用户十分关心的几个方面。软件的可维护性是软件开发阶段各个时期的关键目标。,目前广泛使用

28、的是用如下的七个特性来衡量程序的可维护性。可理解性可使用性可测试性可移植性可修改性效率可靠性,可理解性,可理解性表明人们通过阅读源代码和相关文档,了解程序功能及其如何运行的容易程度。一个可理解的程序应具备以下一些特性:模块化,风格一致性,不使用令人捉摸不定或含糊不清的代码,使用有意义的数据名和过程名,结构化,完整性等。,可靠性,可靠性表明一个程序按照用户的要求和设计目标,在给定的一段时间内正确执行的概率。关于可靠性,度量的标准主要有:平均失效间隔时间MTTF 平均修复时间MTTR 有效性A=MTBD/(MTBD+MDT),可测试性,可测试性表明论证程序正确性的容易程度。程序越简单,证明其正确性

29、就越容易。而且设计合用的测试用例,取决于对程序的全面理解。一个可测试的程序应当是可理解的,可靠的,简单的。,4.可修改性,可修改性表明程序容易修改的程度。一个可修改的程序应当是可理解的、通用的、灵活的、简单的。通用性是指程序适用于各种功能变化而无需修改灵活性是指能够容易地对程序进行修改。,可移植性,可移植性表明程序转移到一个新的计算环境的可能性的大小。或者它表明程序可以容易地、有效地在各种各样的计算环境中运行的容易程度。一个可移植的程序应具有结构良好、灵活、不依赖于某一具体计算机或操作系统的性能。,效率,效率表明一个程序能执行预定功能而又不浪费机器资源的程度。这些机器资源包括内存容量、外存容量

30、、通道容量和执行时间。,7.可使用性,从用户观点出发,可使用性定义为程序方便、实用、及易于使用的程度。一个可使用的程序应是易于使用的、能允许用户出错和改变,并尽可能不使用户陷入混乱状态的程序。,2.2 软件质量保证,软件质量保证活动:应用技术方法正式的技术评审软件测试标准的实施控制变更量度记录与报告,软件质量特性,ISO/IEC9126软件质量模型的三个层次质量特性质量子特性质量量度指标,1.功能性 适合性匹配相应的功能要求准确性得到正确的结果或效果互用性能与其他系统交互操作依从性复合有关标准、法规安全性避免非法访问,2.可靠性成熟性软件失效频度容错性措施使用下的维持软件水平程度易恢复性恢复原

31、有水平的难易程度3.易使用性易理解性理解软件逻辑的难易易学性为了应用付出的努力易操作性为了操作所付出的努力,4.效率时间特性软件响应快慢资源特性软件使用资源量和占用资源时间5.可维护性易分析性为找出问题原因付出的努力易改变性为修改或排错付出的努力稳定性因修改带来的风险大小易测试性确认已修改软件的努力,6.可移植性适应性适应不同环境的能力易安装性规定环境下的安装难易一致性与可移植性有关标准的复合程度易替换性替换其他软件的难易,Mc Call软件质量模型,过程的定义,SEICMM 定义过程是用于软件开发及维护的一系列活动、方法及实践。,2.3 软件过程管理,关键概念,CMM强调机构一致地、可预测地

32、生产高质量软件产品的能力。过程(Process):为了达到给定目标所实施的一序列步骤。人员利用规程、方法、工具和设备将输入转化成产品软件过程(Software Process):软件开发人员开发和维护软件及其相关产品(如项目计划、设计文档、代码等等)的一套行为、方法、实践及变换过程。软件产品的质量取决于软件过程质量软件过程能力(Software Process Capability):遵循某软件过程可能达到的预期结果的范围。,软件过程效能(Software Process Performance):遵循一个软件过程所达到的实际结果。软件过程成熟度(Software Process Maturi

33、ty):针对具体的软件过程进行明确定义、管理、测量、控制以及有效的程度。软件过程成熟度要求机构改进软件过程基础设施(Infrastructure):机构或系统的基本框架,包括正在执行的软件过程的机构机构、策略、标准、培训、设备和工具。机构文化(corporate culture):做事情的方式。制度化(Institutionalization):建立起支持方法、实践和规程的基础设施和企业文化。,实现、管理和支持过程之间的关系,软件过程的分类和组成,软件基本过程:软件获取、供应、开发、运行和维护的过程,包括需求分析、软件设计、编码等过程。软件支持过程:对软件主要过程提供支持的过程,包括文档编制过

34、程、配置管理过程、质量保证过程、验证和确认过程(测试过程)、评审过程等。软件组织过程:对软件主要过程和支持过程的组织保证过程,包括管理过程、基础设施过程、改进过程和培训过程。,IEC12207软件生存周期过程,ISO/IEC15504软件生存周期过程,软件过程规范的建立,软件能力成熟度模型(CMM/CMMI)个体软件过程(PSP)团队软件过程(TSP)IBM-Raional 统一过程(RUP)极限编程(eXtreme Programming,XP)微软软件框架(MSF),软件工程过程,工程过程是软件系统、产品的定义、设计、实现以及维护的过程。开发过程:定义并开发软件产品的活动过程,包括需求分析

35、、软件设计和编程等。运行过程:在规定的环境中为其用户提供运行计算机系统服务的活动过程,包括软件部署维护过程:提供维护软件产品服务的活动过程,也就是通过软件的修改、变更,使软件系统保持合适的运行状态,这一过程包括软件产品的移植和退役。,软件支持过程,文档编制 配置管理 质量保证 验证 确认 联合评审 审核 问题解决,明确并定义文档开发中所采用的标准、软件过程中所需要的各类文档。详细说明所有文档的内容、目的及相关的输出产品。根据定义的标准与已确定的计划来编写、审查、修改和发布所有文档。按已定义的标准和具体的规则维护文档。,软件过程或项目中的配置项(如程序、文件和数据等有关内容)被标识、定义。根据已

36、定义的配置项建立基线,以便对更改与发布进行有效的控制,并控制配置项的存储、处理与分发,确保配置项的完全性与一致性。记录并报告配置项的状态以及已发生变更的需求。,针对过程或项目确定质量保证活动、制定出相应的计划与进度表。确定质量保证活动的有关标准、方法、规程与工具。确定进行质量保证活动所需的资源、组织及其组织成员的职责。有足够的能力确保必要的质量保证活动独立于管理者以及过程实际执行者之外进行开展和实施。在与各类相关的计划进度保持一致的前提下,实施所制定的质量保证活动。,根据需要验证的工作产品所制定的规范(如产品规格说明书)实施必要的检验活动:有效地发现各类阶段性产品所存在的缺陷,并跟踪和消除缺陷

37、。,根据客户实际需求,确认所有工作产品相应的质量准则,并实施必需的确认活动。提供有关证据,以证明开发出的工作产品满足或适合指定的需求。,与客户、供应商以及其他利益相关方(或独立的第三方)对开发的活动和产品进行评估。为联合评审的实施制定相应的计划与进度,跟踪评审活动,直至结束。,判断是否与指定的需求、计划以及合同相一致。由合适的、独立的一方来安排对产品或过程的审核工作。以确定其是否符合特定需求,提供及时的、有明确职责的以及文档化的方式,以确保所有发现的问题都经过相应的分析并得到解决。提供一种相应的机制,以识别所发现的问题并根据相应的趋势采取行动。,软件管理过程,软件的管理过程,项目管理过程是计划

38、、跟踪和协调项目执行及生产所需资源的管理过程。项目管理过程的活动,包括软件基本过程的范围确定、策划、执行和控制、评审和评价等。质量管理过程是对项目产品和服务的质量加以管理,从而获得最大的客户满意度。此过程包括在项目以及组织层次上建立对产品和过程质量管理的关注 风险管理过程,在整个项目的生命周期中对风险不断的识别、诊断和分析,回避风险、降低风险或消除风险,并在项目以及组织层次上建立有效的风险管理机制 子合同商管理过程,选择合格的子合同商并对其进行管理的过程,软件组织过程,业务规划过程是为组织与项目成员提供对愿景的描述以及企业文化的介绍,从而使项目成员能更有效地工作。定义过程是建立一个可重复使用的

39、过程定义库,从而对其它过程等提供指导、约束和支持改进过程是为了满足业务变化的需要,提高过程的效率与有效性,而对软件过程进行持续的评估、度量、控制和改善的过程 人力资源和培训过程,为项目或其它组织过程提供培训合格的人员所需的活动 基础设施过程是建立生存周期过程基础结构、为其他过程建立和维护所需基础设施的过程,软件客户供应商的过程,客户供应商过程是内部直接影响到客户、外部直接影响开发、向客户交付软件以及软件正确操作与使用的过程,包括软件获得、客户需求管理、提供软件、操作软件以及提供客户服务等5个子过程,获取过程从确定需要获取的软件系统、产品或服务开始,然后制定和发布标书、选择供方和管理获取过程,直

40、到验收软件系统、产品或服务。该过程的成功实施会导致最终生成一个明确的合同或条约,清楚地描述出客户与供应方的期望、职责与义务。,在整个软件生命周期中,针对不断变化的客户需求加以收集、处理和跟踪,并建立软件需求的基准线,以作为项目中软件开发活动过程和产品度量和变更管理的基础,按客户、事先规定的要求对软件进行包装、发布与安装的活动过程 确定包装、发布以及安装软件的有关要求。软件有效地被安装与使用。软件达到需求定义中所规定的质量水平。,确定和管理由于引人并发操作软件而带来的操作上的风险。按要求的步骤和在要求的操作环境中运行软件。提供操作上的技术支持,以便解决操作过程个出现的问题确保软件(或主机系统)有

41、足够的能力满足用户的需求。,基于实施情况,确定客户所需要的支持服务。通过提供适当的服务来满足客户的需求。针对客户对产品本身及其相应的支持服务的满意程度进行持续的评估,基于SOA的软件过程模型,面向服务架构(Service-Oriented Architecture,SOA)是企业级的、按需连接资源的新型架构,它描述了一系列模式和指导方针来创建松耦合、依赖业务的服务。,2.4 软件复用,软件复用的定义,软件复用是使用已有的软件产品(如设计、代码、文档等)来开发新的软件系统的过程。,按照可复用的粒度,软件制品从小到大分为以下几类:源代码复用软件体系结构复用应用程序生成器领域特定的软件体系结构的复用

42、,软件复用的粒度,横向复用和纵向复用,横向复用是指复用不同应用领域中的软件元素。纵向复用是指在一类具有较多公共性的应用领域之间进行软部品复用。,构件模型及实现,构件的定义 构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。,构件模型的三个主要流派 OMG(Object Management Group,对象管理集团)的CORBA(Common Object Request Broker Architecture,通用对象请求代理结构)Sun的EJB(Enterprise Java Bean)Microsof

43、t的DCOM(Distributed Component Object Model,分布式构件对象模型)。,构件获取,从现有构件中获得符合要求的构件,直接使用或作适应性修改,得到可重用的构件;通过遗留工程,将具有潜在重用价值的构件提取出来,得到可重用的构件;从市场上购买现成的商业构件,即COTS(Commercial Off-The-Shell)构件;开发新的符合要求的构件。,(1)构件描述 构件模型是对构件本质的抽象描述,主要是为构件的制作与构件的重用提供依据;从管理角度出发,也需要对构件进行描述,例如:实现方式、实现体、注释、生产者、生产日期、大小、价格、版本和关联构件等信息,它们与构件模

44、型共同组成了对构件的完整描述。,构件管理,(2)构件分类与组织 关键字分类法 刻面分类法 超文本组织方法,(3)人员及权限管理 一般来讲,构件库系统可包括五类用户,即注册用户、公共用户、构件提交者、一般系统管理员和超级系统管理员。,关键字分类法,刻面分类法 使用环境 应用领域 功能 层次 表示方法,构件重用,检索与提取构件 基于关键字的检索 刻面检索法 超文本检索法 其他检索方法 理解与评价构件 构件的功能与行为 相关的领域知识 可适应性约束条件与例外情形 可以预见的修改部分及修改方法,修改构件 构件组装 基于功能的组装技术 基于数据的组装技术 面向对象的组装技术,构件标准规范,为了将不同软件

45、生产商在不同软硬件平台上开发的构件组装成一个系统,必须解决异构平台的各构件间的互操作问题。目前国际上已出现了一些支持互操作的构件标准,典型的有国际对象管理组织OMG推荐的 CORBA、Microsoft公司推出的 DCOM/COM/COM+和Sun的EJB。,面向对象思想,3.1 面向对象基本概念,第三节 面向对象系统分析与设计,每个对象都扮演了一个角色,并为其它成员提供特定的服务或执行特定的行为。在面向对象世界中,行为的启动是通过将“消息”传递给对此行为负责的对象来完成的;同时还将伴随着执行要求附上相关的信息(参数);而收到该消息的对象则会执行相应的“方法”来实现需求 用类和对象表示现实世界

46、,用消息和方法来模拟现实世界的核心思想,面向对象方法是利用抽象、封装等机制,运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法。面向对象方法采用的最主要机制是抽象。面向对象=对象+类+继承+消息通信,面向对象的主要特征:封装性(Encapsulation)继承性(Inheritance)多态性(Polymorphism),1.对象是以面向对象方法构造的系统的基本单位。对象是对问题域中客观存在的事物的抽象,对象具有描述其特征和状态的属性,还可以响应外界的消息,进行一定的操作。2.对象的属性和操作组成了一个完整的对象,对象只对外开放其属性和操作的一部份,大部份实现细节将

47、对其它对象隐藏,这种机制称为封装,对象的对外接口称为服务。3.将具有共同特征的对象进行抽象,形成对这些对象的抽象描述类,每个对象就成为该类的一个实例。,对象,4.对形成的对象类进一步抽象,抽取这些类的共同特征,形成基本的类和派生的类。5.一个系统就是由各个对象组成,对象和对象之间存在静态关系和动态关系,静态关系体现了对象之间固有的联系。动态关系是对象之间通过发送消息进行通信,相互协作,完成系统功能。复杂对象可以由简单对象构成,这种关系称做聚合。,在软件系统开发的各个阶段,对象有其不同的表现形式。在程序设计语言中,用类来定义对象,类相当于一种用户自定义的数据类型,这种数据类型是一个由数据和作用在

48、这些数据之上的操作所组成的整体。对象相当于具有该类型的一个变量。,消息,软件系统中的对象之间也存在着依存关系,一个对象除了通过对外提供服务来发挥自己的作用外,还需要请求其它对象为它服务。消息是向对象发出的服务请求。是面向对象系统中对象之间交互的途径。,在具体的程序设计语言中,消息表现为对象在其操作过程中对另一个对象的服务程序的调用,也就是函数(或过程、例程)调用。对于纯粹的面向对象语言,所有的函数调用都可以看成是一种消息,所有的消息发送者都是对象。,消息 对象之间相互请求或相互协作的途径,是要求某个对象执行某个功能操作的规格说明消息内容 通常包含接收方及请求接收方完成的功能信息发送方 发出消息

49、,请求接收方响应接收方 收到消息后,经过解释,激活方法,予以响应,类,类是人类抽象思维的产物。在面向对象方法中,对问题域中与当前相关的对象进行分析,找出事物的共性,并对具有共同特征的对象进行划分,就得到了类。类是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述。,类是一个独立的程序单位,它具有一个类名来唯一标识这个类,类的定义体包括属性和操作。属性和操作还有公有、私有之分,公有的属性和操作可以为其它对象所访问,而私有的属性和操作是在类对象内部实现,体现了封装和信息隐藏的操作思想。公有的操作就体现为对象的服务。,具有共同属性和行为的对象的抽象类与对象的关系类是对象的

50、抽象对象是类的实例,继承,特殊类的对象拥有其一般类的全部属性和操作,称做特殊类对一般类的继承。一般类是对各种特殊类的共同特性的抽象。特殊类通过继承自动获得一般类所具有的特性,因而特殊类只需要再定义属于它自己特定的属性和操作就可以了,特殊类的对象不仅包含它自己类中定义的属性和操作,也包含了在一般类中定义的所有属性和服务。继承关系中的一般类称为基类,特殊类称为派生类。,继承性是父类和子类之间共享数据和方法的机制继承性具有传递性继承性包括单继承和多重继承,封装,对象是一个数据和操作的封装体,这个封装体对外仅呈现少量的接口,大多数实现细节都对外隐藏。封装的含义一是包装,二是信息隐藏,对外只公布一个有限

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号