从工程管理角度,软件设计可分为概要设计和详细设计两个阶段。概要设计也称为高层设计,即将软件需求转化为数据结构和软件的系统结构。详细设计为低层设计,即对结构图进行细化,得到详细的数据结构与算法。
1)软件设计活动
软件设计包括4个独立又相互联系的活动,即数据设计、体系结构设计、接口设计(界面设计)和过程设计。这4个活动完成以后就得到了全面的软件设计模型。
2)结构化设计
结构化设计是一种面向数据流的设计方法,是以结构化分析阶段所产生的成果为基础,进一步自顶向下、逐步求精和模块化的过程。
2.5 软件测试
软件测试的目的是在软件投入生产性运行之前,尽可能多地发现软件产品中的错误和缺陷。软件测试只是软件质量保证的手段之一。
1)测试的类型
分为动态测试和静态测试两大类。 动态测试: 通过运行程序发现错误。 静态测试: 不运行程序,采用人工检测和计算机辅助静态分析的手段进行测试。 黑盒测试法 白盒测试法 灰盒测试法 桌前检查(Desk Checking) 代码审查 代码走查 2)测试的阶段 可以分为:单元测试、集成测试、确认测试(包括内部确认测试、Alpha测试、Beta测试、验收测试)和系统测试等。
3)性能测试
性能测试是通过自动化的测试工具模拟多种正常、峰值及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行,统一称为负载压力测试。
通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
压力测试是通过确定一个系统的瓶颈或不能接受的性能点,来获得系统能提供的最大服务级别的测试。
4)验收测试
验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
5)第三方测试
第三方测试是指独立于软件开发方和用户方的测试,也称为“独立测试”。
2.6 软件维护
软件维护占整个软件生命周期的60%~80%,维护的类型主要有3种:改正性维护、适应性维护、完善性维护。
还有一类叫预防性维护,可以定义为“把今天的方法学用于昨天的系统以满足明天的需要”。
5
2.7 软件质量管理
软件质量是指软件特性的综合,即软件满足规定或潜在用户需求的能力。软件质量保证是指为保证软件系统或软件产品充分满足要求的质量而进行的有计划、有组织的活动,这些活动贯穿与软件生产的各个阶段即整个生命周期。
软件质量特性度量有两类:预测型和验收型。
常用的国际通用软件质量模型ISO/IEC9126和Mc Call模型。ISO/IEC9126软件质量模型已被我国的国家标准《GB/T 16260——2002 信息技术 软件产品评价 质量特性及其使用指南》。
2.8 软件过程改进
软件过程能力成熟度模型(Capability Maturity Model,CMM)和能力成熟度模型集成(Capability Maturity Model Integration,CMMI)
1)CMM
分为:初始级、可重复级、已定义级、已管理级、优化级。
2)CMMI
与CMM相比CMMI涉及面不限于软件,专业领域覆盖软件工程、系统工程、集成产品开发和系统采购。
CMMI可以看作把各种CMM集成到一个系列的模型中,CMMI的基础源模型包括软件CMM、系统工程CMM、集成化产品和过程开发CMM等。
每一种CMMI模型都有两种表示法,即阶段式和连续式。
2.9 面向对象方法
主要考查面向对象的基本概念、数据隐藏、UML和构件。 1)基本概念
面向对象方法包括面向对象的分析、面向对象的设计、面向对象的程序设计。 对象:对象是指一组属性及这组属性上的专用操作的封装体。一个对象通常可由三部分组成:对象名、属性和操作(方法)。 类:类是一组具有相同属性和相同操作的对象的集合。每个类一般都有实例,没有实例的类是抽象类。
继承:继承是指某个类的层次关联中不同的类共享属性和操作的一种机制。对于两个类A和B,如果A类是B类的子类,则B类是A类的泛化。继承是面向对象方法区别与其他方法的一个核心思想。
封装:面向对象系统中的封装单位是对象,对象之间只能通过接口进行信息交流。 消息:消息是对象间通信的手段、一个对象通过向另一个对象发送消息来请求其服务。 多态性:多态性是指同一个操作作用于不同的对象时可以有不同的解释,并产生不同的执行结果。
2)统一建模语言
统一建模语言(UML)是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
UML的结构:UML的结构包括基本构造块、支配这些构造块如何放在一起的规则(体
6
系架构)和一些运用于整个UML的机制。
? UML有三种基本的构造块,分别是事物(thing)、关系(relationship)和图
(diagram)。
? 公共机制是指达到特定目标的公共UML方法,主要包括规格说明(详细说明)、
修饰、公共分类(通用划分)和扩展机制四种。 ? 规则,UML用于描述事物的语义规则分别为事物、关系和图命名。5个系统视图:
逻辑视图、进程视图、实现视图、部署视图、用例视图。
2.10 构件与软件复用
构件(component,组件)是一个功能相对独立的具有可重用价值的软件单元。在面向对象方法中,一个构件由一组对象构成,包含了一些协作的类的集合,它们共同工作来提供一种系统功能。
1)软件复用
可重用性是指系统和(或)其组成部分在其他系统中重复使用的程度。
系统的软件重用由可重用的资产(构件)的开发、管理、支持和重用4个过程。 2)构件技术
构件是软件系统可替换的、物理的组成部分,它封装了实现体(实现某个职能),并提供了一组接口的实现方法。
为了将不同软件生产商在不同软硬件平台上开发的构件组装成一个应用系统,必须解决异构平台的各构件间的互操作问题,目前已出现了一些支持互操作的构件标准,3个主要流派为:
? OMG的CORBA(Common Object Request Broker Architecture,公共对象请求
代理); ? Microsoft 的COM(Component Object Model,构件对象模型)和DCOM(Distributed Component Object Model,分布式构件对象模型); ? Sun的EJB(Enterprise JavaBean,企业JavaBean)。
2.11 软件体系结构
软件体系结构(Software architecture,软件架构)为软件系统提供了一个结构、行为和属性的高级抽象,有构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式
以及这些模式的约束组成。
软件体系结构试图在软件需求与软件设计之间架起一座桥梁,着重解决软件系统的结构和需求向实现平坦地过渡的问题。
1)软件体系结构建模
软件体系结构建模的首要问题是如何表示软件体系结构,即如何对软件体系结构建模。根据建模的侧重点不同,可以将软件体系结构的模型分为5种,分别是结构模型、框架模型、动态模型、过程模型、功能模型。其中最常用的是结构模型和动态模型。
2)软件体系结构风格
典型的软件体系结构风格有:分层结构、客户/服务器 3)设计模式
MVC(Model-View-Controller,模型-视图=控制器)框架包括3个抽象类:View抽象类、Controller抽象类、 Model抽象类。
7
第3章 系统集成相关技术
本章知识点:Web Service技术、J2EE架构、.NET架构和工作流技术。 3.1 企业应用集成
企业应用集成(Enterprise Application Integration,EAI)是企业信息系统集成的科学、方法和技术,目的是将企业内的应用彼此连接起来,或在企业之间连接起来。EAI主要包括两个方面:企业内部应用集成和企业间应用集成。
1)企业内部应用集成
企业内部的应用集成就是要解决企业内部业务流程和数据流量,包括业务流程是否进行自动流转,或怎样流转,以及业务过程的重要性。
从应用和技术上综合考虑,EAI分为界面集成、平台集成、数据集成、应用集成、和过程集成。
2)企业间应用集成
EAI使得应用集成架构里的客户和业务伙伴,都可以通过集成供应链的所有应用和数据库实现信息共享。
3)集成模式
目前市场主流的集成模式有三种:面向信息的集成技术、面向过程的集成技术、面向服务的集成技术。
3.2 中间件技术
中间件有两种比较认可的定义:
? 在一个分布式系统环境中处于操作系统和应用程序之间的软件。 ? 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的
技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算机资源和网络通信。 1)中间件的功能
中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同的系统软件上的移植而重复工作,从而大大减少了技术上的负担。
2)中间件的分类
从层次上划分,可分为底层型中间件、通用型中间件、集成型中间件。 ? 底层型中间件代表产品有Sun的JVM和微软的CLR;
? 通用型中间件代表产品有BEA的Weblogic和IBM的MQSeries; ? 集成型中间件代表产品有Weblogic和IBM的WebSphere。
3.3 可扩展标记语言
XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。
1)XML简介
? 实现不同数据的集成 ? 使用于多种应用环境 ? 客户端数据处理与计算 ? 数据显示多样化
8
? 局部数据更新 2)XML相关技术
XML相关技术主要有3个:Schema、XSL和XLL(eXtensible Link Language,可扩展连接语言)
3.4 Web服务
Web Service(Web服务)是解决应用程序之间相互通信的一项技术。严格地说,Web服务是描述一系列操作的接口,它使用标准的、规范的XML描述接口。
1)Web服务模型 在Web服务模型的解决方案中,一共有三种工作角色:服务提供者、服务请求者、服务注册中心(可选)。 Web服务模型中的操作包括三种:发布服务描述、查找服务描述、根据服务描述绑定或调用服务。
2)Web服务协议堆栈
SOAP、WSDL、UDDI 3)实现SOA的技术
在采用Web服务作为SOA的实现技术时,系统应该至少分为6个层次:底层传输层、服务通信协议层、服务描述层、服务层、业务流程层和服务注册层。
3.5 J2EE与.NET平台
要求掌握J2EE(Java 2 Platform,Enterprise Edition,Java 2平台企业版)和.NET平台的区别,以及各自的应用场合。
1)J2EE的核心技术
? EJB。EJB是Java服务器的构件模型。
? JDBC。JDBC是Java语言连接数据库的标准。 ? Java Servlet (Java服务器端小程序)。
? JSP(Java Server Page,Java服务器页面)。
? JMS(Java Message Service,Java消息服务)。
? JNDI(Java Naming and Directory Interface,Java命名目录接口)。 ? ? ? ?
JTA(Java Transaction API,Java事务API)。 Java Mail API(Java邮件API)。 JAXP(Java XML 解析API)。
JCA(J2EE Connector Architecture,J2EE连接架构)。
? JAAS(Java Authentication Authorization Service,Java认证和授权服务)。 2).NET平台
Microsoft .NET平台包括5个部分:
? 操作系统
? .NET Enterprise Servers
? .NET Building Block Services ? .NET Framework ? Visual Studio .NET 3)比较分析
这两个平台都是为了解决构建企业计算等大型平台而出现的。两个平台类似之处远多于
9