1.3软件工程知识
● 软件需求分析与定义
对需求的精确性要求:
能确认需求;能验证需求的实现;能评估需求变更的影响
软件需求是系统必须完成的事,以及必须具备的品质。软件需求包括:
功能需求: 系统必须完成的那些事,即为了向它的用户提供有用的功能,产品必须执行的动作。
非功能需求:产品必须具备的属性或品质。如可靠性、性能、响应时间、容错性、扩展性等。
设计约束:限制条件、补充规约。
业务需求:反映组织机构或客户对系统、产品高层次的目标要求,通常问题定义本身就是业务需求。
用户需求:描述用户使用产品必须要完成什么任务,怎么完成的需求,通常是在问题定义的基础上进行用户访谈、调查,对用户使用的场景进行整理,从而建立从用户角度的需求。
系统需求:从系统的角度来说明软件的需求,包括用特性说明的功能需求,质量属性,以及其他非功能需求,还有设计约束。
三者之间的关系:业务需求生成范围文档、用户需求生成用例文档、系统需求和用户需求生成功能需求,三者结合加上质量属性、非功能需求、设计约束成为SRS(软件需求说明书)。
Philippe Kruchten "4+1"模型:从五个不同的视角来描述软件体系结构,每个视角只关心系统的一个侧面,五个视角结合在一起才能反映软件体系结构的全部内窑。这五个视角分别为:
1、逻辑视图:主要支持系统的功能需求,它直接面向最终用户;
2、开发视图:主要支持软件模块的组织和管理,它直接面向编程人员:
3、进程视图:主要关注一些非功能性的需求,如系统的性能和可用性等,它直接面向系统集成人员:
4、物理视图:主要关注如何把软件映射到硬件上,通常要解决系统拓扑结构、系统安装、通信等问题,它直接面向系统工程人员:
5、场景视图:是重要系统活动的抽象描述,可以使上述四个视图有机联系起来,可认为是最重要的需求抽象。
逻辑视图、开发视图描述系统的静态结构;进程视图和物理视图描述系统的动态结构。
需求工程
需求工程是一个包括创建和维护系统需求文档所必需的一切活动的过程,通常包括需求开发和需求管理两大工作。
需求开发:需求捕获、需求分析、编写规格说明书(需求规格化)和需求验证四个阶段。
需求管理:定义需求基线、处理需求变更、需求跟踪。
流行的需求分析方法论
结构化分析方法(SA)、软系统方法、面向对象分析方法OOA、面向问题域的分析(PDOA)
结构化分析与面向对象分析方法之间最大差别是:SA把系统看做一个过程的集合体,包括人完成的和电脑完成的,OOA把系统看成一个相互影响的对象集。
SA常用的工具包括:数据流图(DFD)、数据字典(DD)、结构化语言、判定表、判定树
Context图:系统上下文范围关系图:将整个待开发的系统表示为一个过程,将所有的外部实体和进出系统的数据流都画在一张图中,可以把整个系统的范围勾画出来。
DFD 0层图是对Context图的细化。
数据字典:对与系统相关的数据元素有组织的列表和精确定义,使用户和系统分析员对输入、输出、存储成分和中间计算结果有共同的理解。
结构化语言说明加工处理流程,用来描述一些重要的、复杂的过程的程序逻辑;
决策表和决策树是对处理逻辑的表示方法。
结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
● 软件设计、测试与维护
功能内聚>信息内聚>通信内聚>过程内聚>时间内聚>逻辑内聚>巧合内聚
1、功能内聚:实现一个功能,内聚性最强。
2、信息内聚:完成多个功能,各个功能在同一数据结构上操作。
3、通信内聚:模块内各功能部分使用了相同的输入数据或产生相同的输出数据。
4、过程内聚:把流程图中某一部分划出组成模块,即过程内聚,如循环部分、判定部分、计算部分分成三个模块。
5、时间内聚:又称为经典内聚,大多为多功能模块,模块的各个功能的执行与时间有关,如初始化模块和终止模块。
6、逻辑内聚:把几种相关的功能组合在一起,由传送给模块的判定参数来确定执行哪一种功能。
7、巧合内聚:模块内各部分之间没有联系,或即使有联系,也很松散,是内聚程序最低的模块。
非直接耦合<数据耦合<标记耦合<控制耦合<外部耦合<公共耦合<内容耦合
尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合。
1、非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,非直接耦合的模块独立性最强
2、数据耦合:一个模块访问另一个模块时,彼此之间是通过简单变量(不是控制参数、公共数据结构和外部变量)来交换输入、输出信息的,这种耦合为数据耦合
3、标记耦合:一组模块通过参数表传递记录信息,就是标记耦合,这个记录是某一数据结构的子结构,而不是简单变更。
4、控制耦合:一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,称为控制耦合
5、外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称为外部耦合。
6、公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区。
7、内容耦合:一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一模块内部;两个模块有一部分程序代码重叠;一个模块有多个入口。
结构化设计方法
四种模块:传入模块、传出模块、变换模块、协调模块
结构图着重反映模块间的隶属关系,着眼于软件系统的总体结构,即模块间的调用关系和层次关系。程序流程图着重表达程序执行的顺序,以及执行顺序所依赖的条件。
常用的系统结构图包括:变换型系统结构图、事务型系统结构图、混合型事务结构图
黑盒测试
不考虑程序的内部逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明,又称为功能测试或数据驱动测试。
黑盒测试主要是在程序的接口上进行测试,主要是为了发现以下错误:
Ø 是否有不正确或遗漏了的功能;
Ø 在接口上,能否正确的接收输入,能否输出正确的结果
Ø 是否有数据结构错误或外部信息访问错误
Ø 性能上是否能够满足要求
Ø 是否有初始化或终止错误
黑盒测试的测试用例设计方法主要有:
等价类划分:是一种典型的黑盒测试方法,依据程序的规格说明书来设计测试用例,将所有可能的输入数据划分为若干个部分,然后从每一部分中选取少数有代表性的数据作为测试用例,分为划分等价类和选取测试用例两步。
边界值分析:是对等价类划分方法的补充,选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,从经验得知,大量的错误是发生在输入或输出范围的边界上。
错误推测法:可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性编写检查这些错误的用例
因果图:如果在测试时必须考虑输入条件的各种组合,可使用一种适于描述多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。因果图最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。
白盒测试
允许测试人员利用程序内部的逻辑结构和有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。确定实际的状态是否与预期的状态一致,又称为结构测试和逻辑驱动测试。
白盒测试主要对程序模块进行如下检查:
Ø 对程序模块的所有独立的执行路径至少测试一次
Ø 对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次
Ø 在循环的边界和运行界限内执行循环体
Ø 测试内部数据结构的有效性等
逻辑覆盖
逻辑覆盖是以程序内部的逻辑结构为基础的设计用例的技术。它属白盒测试,包括语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖等
软件测试策略
单元测试:集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。
集成测试:把已测试过的模块组装起来,主要对与设计相关的软件体系机构的构造进行测试。
确认测试:检查已实现的软件是否满足了需求规格说明书中确定了的各种需求,以及软件配置是否完全,正确。
系统测试:把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。
验收测试:系统开发生命周期方法论的一个阶段,这时相关的用户和/或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。
α测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的功能、局域化、可使用性、可靠性、性能和支持,尤其注重产品的界面和特色,α测试可以从软件产品编码结束之时开始,或者在模块测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定性和可靠程度之后再开始
β测试:β测试是由软件的多个用户在实际使用环境下进行的测试,这些用户返回有关错误信息给开发者,β测试是在开发者无法控制的环境下进行的软件现场应用。β测试着重于产品的支持性,包括文档、客户培训和支持产品。只有当α测试达到一定的可靠程度时,才开始β测试。它处在整个测试的最后阶段。
软件维护
(1)更正性维护:软件产品交付后进行的修改,以更正发现的问题。
(2)适应性维护:软件产品交付后进行的修改,以保持软件产品能在变化后或变化中的环境中可以继续使用。
(3)完善性维护:软件产品交付后进行的修改,以改进性能和可维护性。
(4)预防性维护:软件产品交付后进行的修改,以在软件产品中的潜在错误成为实际错误前,检测和更正它们。
● 软件质量保证及质量评价
软件质量:软件特性的总合,软件满足规定或潜在用户需求的能力。
“软件满足规定或潜在用户需求的能力”要从软件在内部、外部和使用中的表现来衡量。
软件质量管理过程包括:质量保证过程、验证过程、确认过程、评审过程、审计过程等。
1.软件质量保证
软件质量保证过程通过计划制订、实施和完成一组活动提供保证,这些活动保证项目生命周期中的软件产品和过程符合其规定的需求。软件质量保证计划定义了用于保证为特定产品开发的软件满足用户需求并在项目的约束内具有最高的质量的手段。
2.验证与确认
验证与确认过程使用能够定位缺陷并便于以后改正的测试技术直接处理软件产品质量问题。验证与确认过程确定某一开发和维护活动的产品是否符合活动的需求,最终的软件产品是否达到其意图并满足用户需求。验证过程试图确保活动的输出产品已经被正确制造,即活动的输出产品满足前面活动施加的规范说明;确认过程则试图确保建造了正确的产品,即产品满足其特定的目的。
3.评审与审计
评审与审计过程包括:管理评审、技术评审、检查、走查、审计等。
管理评审的目的是监控进展,决定计划和进度的状态,确认需求及其系统分配,或评价用于达到目标适应性的管理方法的有效性。它们支持有关软件项目期间需求的变更和其他变更活动。
技术评审的目的是评价软件产品。以确定其对使用意图的适合性,目标是识别规范说明和标准的差异,并向管理提供证据,以表明产品是否满足规范说明并遵从标准,而且可以控制变更。
检查的目的是检测和识别软件产品异常。一次检查通常针对产品的一个相对小的部分。发现的任何异常都要记录到文档中,并提交。
走查的目的是评价软件产品,走查也可以用于培训软件产品的听众,主要目标是: 发现异常、改进软件产品、考虑其他实现、评价是否遵从标准和规范说明。走查类似于检查,但通常不那么正式。走查通常主要由同事评审其工作,以作为一种保障技术。
软件审计的目的是提供软件产品和过程对于可应用的规则、标准、指南、计划和流程的遵从性的独立评价。审计是正式组织的活动,识别违例情况,并产生一个报告,采取更正性行动。
CMMI:软件能力成熟度模型集成模型。
一级,已执行级。过程不可预知,不能很好地被控制且是被动的。
二级,已管理级。项目级别定义了过程且经常是被动的。
Ø 需求管理:管理项目产品和产品组件的需求,识别需求与项目计划和工作产品间的不一致性。
Ø 项目策划:建立和维护定义项目活动的计划。
Ø 项目监督和控制:了解项目进展,以便当项目性能明显偏离计划时采取适当的纠正措施。
Ø 供应商协议管理:管理来自供应商的产品和服务的采购。
Ø 度量分析:开发和保持测量能力,以支持管理信息的需要。
Ø 配置管理:利用配置标识、配置控制、配置状态记录和配置审计建立和维护工作产品的完整性。
Ø 产品和过程质量保证:使员工和管理者对过程和相关的工作产品能有客观洞察。
三级,已定义级。组织定义了过程且能起到积极主动的作用。
Ø 需求开发:引导、分析及建立客户、产品和产品部件的需求。
Ø 技术方案:设计、开发和实现对需求的解决方案。
Ø 产品集成:将产品组件组装成产品,确保组装后的产品能正常地运行并交付产品。
Ø 验证:确保所选择的工作产品满足指定的需求。
Ø 确认:证实产品或产品部件被置于其预定的环境中时,可以满足预期的使用需求。
Ø 组织过程焦点:基于组织过程和过程资产的现有强项和弱项的深入理解,策划、实施和部署组织的过程改进。
Ø 组织过程定义:建立和维护可用的组织过程资产集,工作环境标志,以及对团队的规则和指南。
Ø 组织培训:开发人员的技能和知识,以便他们能有效且高效地履行其角色。
Ø 集成项目管理:是根据由组织的标准过程集剪裁所得的集成的、已定义的过程,建立并管理项目以及利益相关方的参与。
Ø 风险管理:在风险发生前,标识出潜在的问题,以便在产品或项目的整个生存周期中规划风险处理活动,并于必要时启动这些活动,以缓解对目标实现的不利影响。
Ø 决策分析和方案:使用正式的评价过程分析可能的决策,此评价过程按所建立的准则评价所标识的备选方案。
四级,已定量管理级。过程度量和控制。
Ø 组织过程性能:建立并维护对组织的标准过程集合的定量了解,并且为定量管理组织的各个项目提供过程性能数据、基线和模型。
Ø 定量项目管理:对项目已定义过程实施定量管理,以便使项目实现所确定的质量和过程性能目标。
五级,优化级。注重过程改进。
Ø 组织性能管理:对选择并部署渐进式的改进项目和革新式的改进项目,对组织的过程和技术实施可度量的改进。
Ø 原因分析和决策:识别导致缺陷和其他问题的原因,并采取措施,防止将来再次发生这些问题。
● 软件配置管理
配置管理员根据《项目计划文档》、《配置管理计划》、《配置项管理表》等文档,创建构造或发行基线,供内部使用或交付给顾客。
软件配置管理是通过在软件生命周期的不同的时间点上对软件配置进行标志并对这些被标志的软件配置项的更改进行系统控制,从而达到保证软件产品的完整性和可追溯性的过程。
软件配置管理的四个功能:配置标识、配置控制、配置状态发布、配置的评审。
接受软件配置管理过程控制的软件受控配置项应包括一切可能对软件产品的完整性和一致性造成影响的组成要素。比如项目文档、产品文档、代码、支撑数据、项目编译建立环境、项目运行环境等。
配置项是逻辑上组成软件系统的各组成部分,是软件配置管理的基础和前提。
基线是一个配置项或一组配置项在其生命周期的不同时间点通过正式评审而进入正式受控的一种状态,这个过程被称为基线化。每一个基线都是其下一步开发的出发点和参考点。上一个基线加上增加和修改的基线内容形成下一个基线。这就是基线管理,
基线具有以下属性:
1、通过正式的评审过程建立
2、基线存在于基线库中,对基线的变更接受更高权限的控制。
3、基线是进一步开发和修改的基准和出发点
配置标识是软件生命周期里选择定义各类配置项,建立各类基线、描述相关软件配置项及其文档的过程。配置标识分为三个步骤:
1、将软件分组成一系列软件配置项
2、定义对配置项命名规则
3、对配置项的描述文档(功能,性能,物理特性等)
配置控制是对配置项的变更申请进行初始化、评估、协调、实现,包括将通过和实现的变更加入到基线中的更改控制过程。
变更控制
变更分为两种类型:功能变更和错误修复变更
1、功能变更:根据客户的需要增加或删除某些功能,或者修改实现功能的方法所引起的变更
2、错误修改变更是为了修改漏洞的需要而产生的变更
变更申请
成本/效益分析
决定是否进行变更
实施变更
审查
检入
配置状态报告
是跟踪对软件的更改的过程,它保证对正在进行和已完成的变更进行记录、监视并通报。用以跟踪对已建立基线的需求、源代码、数据,以及相关文档的更改。
1、配置状态记录
2、编制配置状态报告:软件配置项的状态、变更申请和已批准的变更实现情况
3、配置状态发布:通知相关管理人员和软件工程师
配置库
收集所有与配置有关的信息,评价系统变更的效果,为配置管理过程提供管理信息
1、开发库:专供给开发人员使用,内容可由开发人员决定是否修改
2、受控库:也称为软件配置管理库
3、产品库:存放最终产品、等待交付用户或现场安装的产品
配置评审
是验证一个可发布的软件基线是否包含了它应包括的所有内容。包括功能配置评审和物理配置评审。
1、功能配置评审:确认软件已通过测试并满足基线规定的需求说明,保证正确性。
2、物理配置评审:确认将发布的软件包含了所有必需的组成部分(代码、文档、数据)保证完整性
判断变更是否正确完成,需进行正式技术评审和软件配置审核
1、正式技术评审:检查已完成修改的软件配置对象的技术正确性
2、软件配置审核:各项产品在技术上和管理上的完整性。
● 软件开发环境
软件开发环境的结构为层次性结构,分为四层
1、宿主层:包括基本宿主硬件和基本宿主软件
2、核心层:包括工具组、环境数据库和会话系统
3、基本层:包括至少一组工具,如编译工具、调试工具等
4、应用层:以基本层为基础补充某些工具,以适应应用软件的要求。
● 软件过程管理
软件过程改进SPI:帮助软件企业对其软件(制作)过程的改变(进)进行计划、(措施)制定以及实施的过程,一般从问题分析开始。五条核心原则:注重问题;强调知识创新;鼓励参与;领导层的统一;计划不断地改进。
● 构件及其在信息系统项目中的重要性
● 常用构件标准(COM/DCOM/COM+、CORBA和EJB)
● 软件体系结构定义
● 典型体系结构
● 软件体系结构设计方法
● 软件体系结构分析与评估
软件体系结构评估的主要方式:基于调查问卷或检查表的评估方式;基于场景的评估方式;基于度量的评估方式。
● 软件中间件
● 面向对象的基本概念
面向对象=对象+类+继承+消息通信
面向对象的基本概念有对象、类、抽象、封装、继承、多态、接口、消息、组件、模式和复用等。
对象是是用来描述客观事物的一个封装,是构成系统的基本单位。
对象包含三个基本要素,对象标识、对象属性和对象服务。每一个对象必须有一个名字以区别于其他对象,这就是对象标识;属性用来描述对象的某些特征(静态);服务用来封装对象所拥有的业务操作(动态)。
类是对象的抽象定义,是一组具有相同数据结构和相同操作的对象的集合。对象是类的实际例子。
封装是将数据和基于数据的操作封装成一个整体对象,对数据的访问或修改只能通过对象对外提供的接口进行。
继承表示类之间的层次关系,这种关系使得某类对象可以继承另外一类对象的特征(attributes)和能力(operations),继承又可分为单继承和多继承,单继承是子类只从一个父类继承,而多继承中的子类可以从多于一个的父类继承,Java是单继承的语言,而C++允许多继承。
假设类B继承类A,即类B中的对象具有类A的一切特征(包括属性和操作)。
类A称为基类或父类或超类,类B称为类A的派生类或子类,类B在类A的基础上还可以有一些扩展。
如图3-2所示,Dog和Cat类都是从Mammal继承而来,具有父类的eyeColor属性特征,因此在子类中就下用重复指定eyeColor这个属性。
多态使得一个属性或变量在不同的时期可以表示不同类的对象。
如图3-3所示,Rectangle和Circle都继承于Shape,对于Shape而言,会有getArea0的操作。但显而易见,Rectangle和Circle的getArea()方法的实现是完全不一样的,这就体现了多态的特征。
接口就是对操作规范的说明。接口只是说明操作应该做什么( What),但没有定义操作如何做( How)。接口可以理解成为类的一个特例,它只规定实现此接口的类的操作方法,而把真正的实现细节交由实现该接口的类去完成。
接口在面向对象分析和设计过程中起到了至关重要的桥梁作用,系统分析员通常先把有待实现的功能封装并定义成接口,而后期程序员依据此接口进行编码实现。
消息(Message)是对象间的交互手段,其形式如下:
Message: [dest.op,para]
其中dest指目标对象Destination Object,op指操作Operation,para指操作需要的参数Parameters。
● 统一建模语言UML
UML是一种可视化建模语言。
UML标准并没有定义一种标准的开发过程,但它比较适用于迭代式的开发过程,是为支持大部分现存的面向对象开发过程而设计的。
● 可视化建模
UML提供了如下9种主要的图来对待建系统进行建模。
1)用例图:用例模型描述的是外部执行者(Actor)所理解的系统功能,用于需求分析阶段。
参与者(Actor)代表与系统接口的任何事物或人,它是指代表某一种特定功能的角色,参与者都是虚拟的概念。
用例(Use Case)是对系统行为的动态描述,它可以促进设计人员、开发人员与用户的沟通,理解正确的需求,还可以划分系统与外部实体的界限,是系统设计的起点。 对一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者有价值而且可观察的静态视图。
包含和扩展:一种用于重用的包含关系,用构造型《include》(可以从两个或者两个以上的原始用例中提取公共行为,或者发现能够使用一个组件来实现某一个用例的部分功能是很重要的事时,应该使用包含关系)。
另一种是用于分离出不同的行为用构造型《extend》(如果一个用例明显地混合了两种或两种以上地不同场景,即根据情况可能发生多种事情。我们可以断定将这个用例分为一个主用例和一个或多个辅用例描述可能更加清晰)
2)类图:描述类和类之间的静态关系。不仅显示信息的结构,同时还描述了系统的行为。
类和对象:类的命名(最顶部的格子包含类的名字);类的属性(中介的格子包含类的属性,用以描述该类对象的共同特点,“可见性属性名:类型=默认值{约束特性}”。可见性包括Public、Private、Protected 分别用+-#号表示);类的操作(Operation,“可见性:操作名(参数表):返回类型{约束特性}”)
类之间的关系:依赖关系(如果元素A的变化会引起元素B的变化,则称元素B依赖(Dependency)于元素A)、泛化关系(描述了一般事物与该事物中的特殊种类之间的关系,也就是父类和子类之间的关系。继承关系是泛化关系的反关系,也就是说子类是从父类中继承的,而父类则是子类的泛化,在UML中,使用带空心箭头的实线表示,箭头指向父类)、聚合关系表示整体和部分的关系,用一个带空心菱形的实线表示(电脑、显示器);组合关系:如果聚合关系中的表示“部分”的类的存在,与表示“整体”的类有紧密的关系,如公司和部门,则使用组合关系,使用带实心菱形的实线表示)、实现关系(用来规定接口和实现的类或组件之间的关系,接口是操作的集合,这些操作用于规定类或组件的服务,使用一个带空心箭头的虚线表示)
依赖关系 泛化关系 聚合关系 组合关系 实现关系
3)对象图:类图的一个实例。与类图的图形表示相似。展示了一组对象及它们之间的关系。
4)顺序图:用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。反映系统的动态关系。
箭头指向的对象提供箭头上的方法。
7)活动图:表示系统中各种活动的次序,可以用来描述用例的工作流程,也可以用来描述类中某个方法的操作行为。
8)构件图:(物理建模-构件图、部署图)可以有效的显示一组构件,以及它们之间的逻辑关系。构件图通常包括构件、接口,以及各种关系。
9)部署图:也称实施图,构件图是说明构件之间的逻辑关系,而布署图描述系统硬件的物理拓扑结构,以及在此结构上执行的软件。
● 面向对象系统分析
OMT(Object Modeling Technique)方法:建立对象模型(确定类和对象、确定结构与关联、划分主题、定义属性、定义服务)、建立动态模型、建立功能模型。
用UML进行分析:建立域模型(寻找类、确定类之间的关联、为类添加职责、域模型的详细度)、建立用例模型(用例是什么?用例模型是如何产生的?识别参与者、合并需求获得用例、绘制成用例图、细化用例描述)
软件构件是“一个描述软件系统的子系统和组件,以及它们之间相互关系的学科”。架构视图定义软件的内部结构。通过试图可以从不同角度描述软件结构,主要包括逻辑视图(满足功能需求)、过程视图(并发问题)、组件视图(实现问题)、部署视图(分布问题)。
● 面向对象系统设计
● Web Service技术
Web服务的典型技术包括:
用于传递信息的简单对象访问协议(Simple Object Access Protocol,SOAP)
用于描述服务的Web服务描述语言(Web Services Description Language,WSDL)
用于Web服务的注册的统一描述、发现及集成(Universal Description Discovery and Integration,UDDI)
用于数据交换的XML(可扩展标记语言)。
业务流程执行语言BPEL:将一组现有的服务组合起来,从而定义一个新的WEB服务。
超文本标记语言HTML:
WEB组件:Java applet、 ASP 、VB脚本
● J2EE架构
● NET架构
● 工作流技术
工作流是针对工作中具有固定程序的常规活动,通过将其分解成定义良好的任务、角色、规则和过程来进行执行和监控,达到提高生产组织水平和工作效率的技术。
1. 工作流包括过程及活动的启动和终止条件。
2. 工作流包括对每个活动描述
3. 工作流管理系统与工作流执行者交互,推进工作流实例的执行,并监控工作流的运行状态。
工作流就是自动运作的业务过程部分或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。
工作流(Workflow)就是工作流程的计算模型,即将工作流程中的工资如何前后组织在一起的逻辑和规划在计算机中以恰当的模型表示并对其实施计算。工作流属于CSCW的一部分,它是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。
随着Web service技术的兴起,出现了许多与工作流技术相关的Web服务规范,其中业务流程执行语言BPEL的作用是将一组现有的服务组合起来,从而定义一个新的Web服务。
● 建模工具
IBM Rational Rose 、Borland-Together、sybase-PowerDesigner
● 软件开发工具
Visual Studio.Net 、Borland JBuilder
● 软件测试工具
WinRunner、LoadRunner、TestDirector
● 项目管理工具
Microsoft Project Server 、PMOffice
● 网络技术标准与协议
网络技术标准与协议TCP/IP协议:Internet,可扩展,可靠,应用最广,牺牲速度和效率;
IPX/SPX协议:NOVELL,路由,大型企业网;
NETBEUI协议:IBM,非路由,快速。
OSI网络层次模型:
7 |
应用层 |
|
FTP、HTTP、Telnet、SMTP、POP、DHCP、SNMP、NFS |
|
1 |
服务器 |
1 |
套 |
45万元 |
2 |
存储 |
1 |
套 |
30万元 |
物理层:透明地传输比特流。中继器、集线器、调制解调器。
机械特性、电气特性、功能特性、过程特性。
数据链路层:在相邻结点之间可靠地传送数据帧。网桥、交换机。
1)封装成帧;2)流量控制;3)差错控制;4)传输管理;
LLC层(逻辑链路控制层):负责建立和维护两台通信设备之间的逻辑通信链路;
MAC层(介质访问控制层):控制多个信息复用一个物理介质;
网络层:在通信子网中进行路由选择和通信流控制。路由器、三层交换机。
1)通信双方并不相邻的问题;2)异构网络的互连问题。
传输层:提供端到端的数据传输控制功能,保证数据包无差错、按顺序、无丢失和无冗余。TCP、UDP、SPX。
1)将一个较长的数据分成几个小数据报发送。
2)解决通信双方不只有一个数据连接的问题。
会话层:对会话过程的控制,包括会话过程同步控制和会话方向控制。
表示层:提供统一的网络数据表示,包括信源编码和数据压缩等。
应用层:为网络用户提供颁布式应用环境和编程环境
局域网协议:
标准 |
内容 |
协议 |
802.1 |
局域网体系结构、寻址、网络互联和网络管理 |
802.1ad、 802.1q:VLAN 802.1d:透明网桥 802.1ah |
802.2 |
逻辑链路控制子层(LLC)的定义 |
|
802.3 |
以太网介质访问控制协议CSMA/CD及物理层技术规范 |
802.3ae:万兆以太网 802.3z,802.ab:千兆以太网 802.3u:快速以太网 802.3ad链路汇聚技术 |
802.4 |
令牌总线网(Token-Bus)的介质访问控制协议及物理层技术规范 |
|
802.5 |
令牌环网(Token-Ring)的介质访问控制协议及物理层技术规范 |
802.5:源路由网桥 |
802.6 |
城域网MAN介质访问控制协议DQDB及物理层技术协议 |
|
802.7 |
宽带技术咨询组,提供有关宽带联网的技术咨询 |
|
802.8 |
光纤技术咨询组,提供有关光纤联网的技术咨询 |
|
802.9 |
综合声音数据的局域网(IVD LAN)介质访问控制协议及物理层技术规范 |
|
802.10 |
网络安全技术咨询组,定义了网络互操作的认证和加密方法 |
|
802.11 |
无线局域网(WLAN)的介质访问控制协议及物理层技术规范 |
802.11b:5.5,11Mb/s 802.11a/g:54Mb/s 802.11n:300MB/s |
802.12 |
需求优先的介质访问控制协议(100VG-AnyLAN) |
|
802.14 |
采用线缆调制解调器(Cable Modem)的交互式电视介质访问控制协议及物理层技术规范 |
|
802.15 |
采用蓝牙技术的无线个人网(Wireless Personal Area Network,WPAN)技术规范。 |
|
802.16 |
宽带无线接入工作组,开发2~66GHz的无线接入系统空中接口。 |
WiMax |
802.17 |
弹性分组环(RPR)工作组,制定弹性分组环网访问控制协议及有关标准。 |
|
802.18 |
宽带无线局域网技术咨询组(Radio Regulatory) |
|
802.19 |
多重虚拟局域网共存(Coexistence)技术咨询组 |
|
802.20 |
移动宽带无线接入(MBWA)工作组,正在制订宽带无线接入网的解决方案 |
|
802.3 |
10BASE5 |
10BASE2 |
10BASE-T |
10BASE-F |
传输媒体 |
同轴粗缆 |
同轴细缆 |
非屏蔽双绞线 |
850nm光纤对 |
拓扑结构 |
总线型 |
总线型 |
星型 |
星型 |
最大段长度 |
500 |
185 |
100 |
500 |
802.3u |
电缆类型 |
线束数 |
最大网段长度 |
网络最大直径 |
100BaseTx |
5类非屏蔽双绞线/1、2类STP |
2对 |
100m |
200m |
100BaseFx |
62.5/125多模光纤 |
2束 |
400m |
400m |
100BaseT4 |
3类非屏蔽双绞线 |
4对 |
100m |
200m |
FDDI:光纤分布式数据借口。
广域网协议:
ppp点对点协议
ISDN综合业务数字网
窄带N-ISDN(BRI)为2B+D,B为64Kb/s,D为16Kb/s
宽带B-ISDN(PRI)为30B+2D,B为64Kb/s,D为64Kb/s
• E1和T1 信道的数据速率、子速率,E1=30B+2D,T1=23B+D
T1=1.544Mb/s |
E1=2.048Mb/s |
T2=6.312Mb/s |
E2=8.448Mb/s |
T3=44.736Mb/s |
E3=34.368Mb/s |
T4=274.176Mb/s |
E4=139.264Mb/s |
|
E5=565.148Mb/s |
传输一帧的时间是125μs
每个信道数据(8bit)中有7bit是数据,1bit是控制信息
T1载波24路8位加1个帧同步位共193位, 193/125μs =1.544Mbps
E1载波30路8位加2路8位同步位共256位,256/125μs=2.048Mbps
xDSL(DSL数字用户线路的统称:HDSL、SDSL、MVL、ADSL)
类型 |
描述 |
数据速率 |
模式 |
HDSL |
高速率 |
T1/E1 |
对称 |
SDSL |
单线对数 |
T1/E1 |
对称 |
MVL |
低成本 |
768Kb/s |
对称 |
ADSL |
非对称 |
上行:1Mb/s 下行:8Mb/s |
非对称 |
ADSL由中央交换局端模块ATU-C(中心ADSL MODEM和接入多路复用系统DSLAM)、远端用户模块ATU-R(用户ADSL MODEM和滤波器)组成。
DDN数字专线、X.25、FR帧中继、ATM异步传输模式
网络结构:总线型拓结构、星型拓扑结构、环型拓扑结构
10M:10base-T(铜线UTP模式)
100M:100base-TX(铜线UTP模式)
100base-FX(光纤线)
1000M:1000base-T(铜线UTP模式)
1000Base-SX和1000Base-LX只支持光纤。
● Internet技术及应用
IP:
A |
0网络地址 |
主机地址 |
1.0.0.0~127.255.255.255 |
||
B |
10网络地址 |
主机地址 |
128.0.0.0~191.255.255.255 |
||
C |
110网络地址 |
主机地址 |
192.0.0.0~223.255.255.255 |
||
D |
1110组播地址 |
224.0.0.0~239.255.255.255 |
|||
E |
11110保留 |
240.0.0.0~255.255.255.255 |
一些特殊的IP地址:
1)IP地址127.0.0.1:本地回环(loopback)测试地址
2)广播地址:255.255.255.255
3)IP地址0.0.0.0:代表任何网络
4)主机号全为0:代表本网络或本网段
5)主机号全为1:代表广播
私用IP:
10.0.0.0 — 10.255.255.255 1个A类地址;
172.16.0.0 — 172.31.255.255 16个连续的B类地址;
192.168.0.0 — 192.168.255.255 256个连续的C类地址。
其中127.0.0.0 到127.255.255.255 为系统回环地址
子网掩码:网络号全为1,主机号全为0.
ping 127.0.0.1是本地循环地址,如果ping不通,则说明本机TCP/IP协议软件安装配置不正确。
ping 172.16.20.254(网关) Request timed out 说明你的网络连通不好,ping是对一个目标服务器发出数据包,并且请求获取反馈包的过程,如果发出了数据包,在指定时间内,无法得到获取反馈包,这证明你与服务器的连通不好。
如果你能上网,但是ping超市,说明是你的ISP禁了ICMP的包
可变长子网掩码VLSM:在IP地址后面加上“/位数”来表示子网掩码中“1”的个数。往后。
CIDR技术解决路由缩放问题。往前。
NAT网络地址翻译技术:解决IP地址短缺问题。
1)DAT动态地址翻译。m:n翻译满足(m≥and m≥n)时,可以把一个大的地址空间映像到一个小的地址空间。好处是节约了全局IP地址,而且不需要改变子网内部的任何配置,只需要在边界路由器中设置一个动态地址变换表就可以工作了。
m:需要翻译的内部地址数。
n:可用的全局地址数(NAT地址)
2)网络地址和端口翻译NAPT。m:1翻译,用一个路由器的IP地址可以把子网中所有主机的IP地址都隐藏起来。作为一种安全手段使用,可以限制外部网络对内部主机的访问,可以实现虚拟主机和虚拟路由,达到负载均衡和提高可靠性的目的。
ARP地址解析协议:用来将32位的IP地址(逻辑地址)解析为48位的以太网地址(物理地址)。
ICMP因特网控制消息协议:与IP协议同属网络层,用于传送有关通信问题的消息。ICMP报文封装在IP数据报中传送。
TCP传输控制协议:在IP协议提供的不可靠数据服务的基础上,为应用程序提供了一个可靠的数据传输服务。
UDP用户数据报协议:为应用程序提供了一个不可靠、无连接的分组传输服务。
名称 |
功能 |
服务器TCP端口 |
说明 |
FTP |
用于从一台主机到另一台主机传输文件的协议 |
20 |
数据通信 |
21 |
控制信息 |
||
HTTP |
用于从WWW服务器传输超文本到本地浏览器的传送协议,是一种最基本的客户-服务器的访问协议。 |
80 |
WWW服务 |
POP3 |
POP用于电子邮件的接收,仍采用Client/Server工作模式。 |
110 |
接收mail |
DHCP |
DHCP提供了一种动态获取IP的方法 |
67 |
接收客户端消息 |
68 |
发送客户回应 |
||
Telnet |
进行远程登录的标准协议和主要方式,但只能进行字符类操作和会话。 |
23 |
远程登录 |
SMTP |
SMTP是一个请求/响应协议,为用户提供高效、可靠的邮件传输,用于接收用户的Mail请求,并与远端Mail服务器建立SMTP连接。SMTP能够在传送中接力传送邮件。 |
25 |
发送mail请求 |
NNTP |
|
119 |
新闻服务 |
BGP4 |
|
179 |
消息传递 |
DNS域名服务系统:将主机名解析为IP地址。
● 网络分类
局域网LAN:以太网Ethernet、令牌环网络Token Ring、Apple Talk网络、ArcNet
广域网WAN:公用交换电话网PSTN、综合业务数字网ISDN(基带2B+D,B为64Kb/s,D为16Kb/s)、T1线路(1.544Mb/s)、帧中继FR、异步转移模式ATM、交互式多兆位数据服务SMDS
城域网MAN:DQDB分布式队列双总线
● 网络管理
网络设备的管理;服务器的管理;资源的管理;用户的管理
安全、配置、故障、性能和计费管理
网络诊断和配置命令
ipconfig:显示网卡的IP地址、子网掩码和默认网关地址。
ping:通过发送ICMP回声请求报文来检验与另外一个计算机的链接。
Arp:显示和修改地址解析协议缓存表的内容,缓存表项是IP地址与网卡地址对。
Netstat:显示TCP连接、计算机正在监听的端口、以太网统计信息、IP路由表、IPv4统计信息
Tracert:确定到达目标的路径,并显示通路上每一个中间路由器的IP地址。
Pathping:结合了ping和tracert的功能,显示通信线路上每个子网的延迟和丢包率。
Nbtstst:显示NetBT(NetBIOS over TCP/IP)协议的统计信息,包括本地计算机和远程计算机的NetBIOS名字表,以及NetBIOS名字缓存。
Route:显示和修改本地的IP路由表。
Nslookup:显示DNS查询信息,诊断和排除DNS故障。
● 网络服务器
DNS服务器、电子邮件服务器、FTP服务器、代理服务器、DHCP服务器(动态地址分配)
● 网络交换技术
多路复用技术:FDMA频分多路复用、WDMA波分多路复用、TDMA时分多路复用、CDMA码分多路复用
交换技术:
电路交换技术(线路建立、线路传输、线路释放);
存储转发交换:也称报文交换,按顺序发送接收;
数据报方式:报文分组存储转发的一种形式,每个分组单独处理;
虚电路方式:发送前建立逻辑连接的虚电路,按顺序发送接收;
ATM交换:异步传输模式,固定长度信元交换,53字节。
● 网络存储技术
DAS:直接附加存储
存储设备是通过电缆(通常是SCSI接口电缆)直接到服务器的,I/O请求直接发送到存储设备,它依赖于服务器,本身是硬件的堆叠,不带任何存储操作系统。
缺点:存储容量的扩展受到限制,各个服务器相互连接不起来,形成孤岛的现象;还有就是连接距离有限,且资源共享和管理不易。容量扩展时会造成业务系统的停机。
NAS:网络附加存储
存储系统不通过I/O产品线附属于某个特定的服务器或客户机,而是直接通过网络接口与网络直接相连,由用户通过网络访问。
NAS实际上是一个带有瘦服务器的存储设备,硬件专门对数据传输进行了优化,数据不再通过服务器内存转发,数据直接在客户机和存储设备间传送,使服务器从原先的I/O负载中解脱出来,服务器仅起控制管理的作用,不需要在服务器和客户机上安装任何软件,可通过集线器或交换机方便地接入到用户网络上,是一种即插即用的网络设备,扩展性好。
SAN存储区域网络
SAN是一种类似于普通局域网的调整存储网络,允许企业独立地增加它们的存储容量,并使网络性能不至受到数据访问的影响,Open SAN(开放式存储区域网)是SAN存储技术发展的最高境界。
SAN主要适用于存储量大的工作环境,并且SAN的适用性和通用性差,在系统的安装和升级方面效率不高,成本也比较高。
NAS:用户通过TCP/IP协议访问数据,采用业界标准文件共享协议如:NFS、HTTP、CIFS实现共享。
SAN:通过专用光纤通道交换机访问数据,采用SCSI、FC-AL接口。
NAS和SAN最大的区别在于,NAS结构中文件管理系统在每一个应用服务器上,SAN有自己的文件管理系统,应用服务器通过网络共享协议使用同一个文件管理系统。
RAID 0:RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。
RAID 1:它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。利用率50%。
RAID 5:RAID 5不单独指定的奇偶盘,而是在所有磁盘上交叉地存取数据及奇偶校验信息。一个磁盘发生损坏后,不会影响数据的完整性。
● 无线网络技术
WiMax(802.16无线城域网接入)
是面向城域网的宽带无线接入技术(802.16)的代名词。最大覆盖范围是50km,速率100Mb/s,是一种定位于IP城域网的无线接入技术。主要用于固定无线宽带接入地理位置分散的信息节点的回程传输,WiMax系统可以连接WLAN的节点和因特网,可作为企业T1或家庭xDSL和Cable MODEM的无线扩充技术,或取代有线宽带接入的市场。
Wi-Fi(802.11无线局域网接入)
Wi-Fi是802.11标准的代名词,是针对局域网的无线接入技术制定的,覆盖距离10~300米,是解决“最后100米”的通信接入。实际应用的有802.11、802.11b、802.11a、802.11g
无线加密技术:WEP、WPA、WPA2
CDMA2000:电信
WCDMA(宽带码分多路访问):联通
TD-SCDMA:时分同步码分多址,移动。
● 光网络技术
有源光网络AON(SDH同步光网络、PDH异步光网络)
无源光网络(PON)
光纤接入方式:FTTR(光纤到远端接点)、FTTB(光纤到大楼)、FTTC(光纤到路边)、FTTZ(光纤到小区)、FTTH(光纤到户)
● 综合布线
范围包括单幢建筑和建筑群体。
行业标准:美国标准ANSI/EIA/TIA-568A,国际标准ISO/IEC IS 11801、我国是YD/T 926.1~3-2001
跨越距离不超过3000m,建筑总面积不超过100万平方米的布线区域,其人数为50~50万人。
RJ45需求量计算:m=4n(1+15%)
m:RJ45的总需求量
n:信息点总量
4n*15%:留有的富余
1.工作区子系统:它是工作区内终端设备连接到信息插座之间的设备组成,包括信息插座、连接软线、适配器、计算机、网络集散器、电话、报警探头、摄像机、监视器、音响等。
2.水平子系统:水平子系统是布置在同一楼层上,一端接在信息插座,另一端接在配线间的跳线架上,它的功能是将干线子系统线路延伸到用户工作区,将用户工作区引至管理间子系统,并为用户提供一个符合国际标准,满足语音及高速数据传输要求的信息点出口。
3.管理间子系统:它是干线子系统和水平子系统的桥梁,同时又可为同层组网提供条件。其中包括双绞线跳线架、跳线(有快接式跳线和简易跳线之分)。
4.垂直干线子系统:通常它是由主设备间至各层管理间,特别是在位于中央点的公共系统设备处提供多个线路设施,采用大对数的电缆馈线或光缆,两端分别端接在设备间和管理间的跳线架上,目的是实现计算机设备、程控交换机(PBX)、控制中心与各管理子系统间的连接,是建筑物干线电缆的路由。
5.设备间子系统:该子系统是由设备间中的电缆、连接跳线架及相关支撑硬件、防雷电保护装置等构成。可以说是整个配线系统的中心单元,因此它的布放、造型及环境条件的考虑适当与否,直接影响到将来信息系统的正常运行及维护和使用的灵活性。
6.建筑群子系统:它是将多个建筑物的数据通信信号连接成一体的布线系统,它采用架空或地下电缆管道或直埋敷设的室外电缆和光缆互连起来,是结构化布线系统的一部分,支持提供楼群之间通信所需的硬件。
● 机房工程
机房工程结合了机房的环境条件、消防与安全、室内装修、送配电、综合布线、空气调节、照明、接地等方面的内容
机房宜设于建筑物的第2、3层
交流工作接地,接地电阻不大于4Ω
安全保护接地,接地电阻不大于4Ω
防静电接地,接地电阻不大于4Ω
《大楼通信综合布线系统》适用于跨越距离不超过3000米、建筑总面积不超过100万平方米的布线区域,区域内的人员为50~5万人。
● 网络规划、设计与实施
在方案设计实施过程中必须考虑的原则如下。
(1)可靠性原则。网络的运行是稳固的。
(2)安全性原则。包括选用安全的操作系统、设置网络防火墙、网络防杀病毒、数据加密和信息工作制度的保密。
(3)高效性原则。性能指标高,软硬件性能充分发挥。
(4)可扩展性。能够在规模和性能两个方向上进行扩展。
(1)实用性和先进性。采用先进成熟的技术和设备,满足当前业务需求,兼顾未来的业务需求。尽可能采用先进的技术、谩备和材料,以适应高速的数据传输需要,使整个系统在一段时期内保持技术的先进性,并具有良好的发展潜力,以适应未来业务的发展和技术升级的需要。
(2)安全可靠性。为保证各项业务应用,网络必须具有高可靠性,决不能出现单点故障。要对机房布局、结构设计、设备选型、日常维护等各个方面进行高可靠性的设计和建设。在关键设备采用硬件备份、冗余等可靠性技术的基础上,采用相关的软件技术提供较强的管理机制、控制手段和事故监控与安全保密等技术措施以提高电脑机房的安全可靠性。
(3)灵活性和可扩展性。机房必须具有良好的灵活性和可扩展性,能够根据业务不断深入发展的需要,扩大设备容量,提高可容纳的用户数量。具备支持多种网络传输、多种物理接口的能力,提供技术升级、设备更新的灵活性;
(4)标准化。在机房系统整体设计,基于国际标准和国家颁布的有关标准,包括各种建筑、机房设计标准,电力电气保障标准以及计算机局域网、广域网标准,坚持统一规范,从而为未来的业务发展和设各增容奠定基础。
(5)经济性,投资保护。应以较高的性能价格比构建机房,使资金的产出,投入比达到最大值。能以较低的成本、较少的人员投入来维持系统运转,提供高效能与高效益。犀可能保留并延长已有系统的投资,充分利用以往在资金与技术方面的投入。
(6)可管理性。机房具有一定复杂性,随着业务的不断发展,管理的任务必定会日益繁重。所以在电脑中心的设计中,必须建立一套全面、完善的机房管理和监控系统。所选用的设备应具有智能化,可管理的功能,同时采用先进的管理监控系统设备及软件,实现先进的集中管理监控,实时监控、监测整个电脑机房的运行状况,实时灯光、语音报警,实时事件记录,这样可以迅速确定故障,提高的运行性能、可靠性,简化机房管理人员的维护工作,从而为机房安全、可靠的运行提供最有力的保障
各省软考办 | ||||||||||