欢迎光临
免费的PDF电子书下载网站

网络分布计算与软件工程(第二版) PDF下载

编辑推荐

 ; ; ; ; ; ; ; ;软件工程的发展必须面对和解决出现的这些新问题,本书就是为此目的而撰写的,其中内容的取舍和组织代表了作者的学术观点。《网络分布计算与软件工程(第2版)》由冯玉琳、黄涛、金蓓弘编著,在现有软件工程概念的基础上,重点介绍网络分布计算原理和分布式系统架构,以及与之相适应的组件化软件工程方法。

 ; ; ; ;本书专门为计算机科学的大学高年级学生或研究生课程而编写,可作为软件工程课的高级教程;适当增加系统设计的练习,亦可作为分布式系统的专业课教程。本书要求读者具有面向对象编程、操作系统及计算机网络的基本知识,也可作为从事软件研究和应用开发的广大软件技术人员基础性的专业参考书。

 ;
 ; ; ; ; ; ; ; ;软件工程的发展必须面对和解决出现的这些新问题,本书就是为此目的而撰写的,其中内容的取舍和组织代表了作者的学术观点。《网络分布计算与软件工程(第2版)》由冯玉琳、黄涛、金蓓弘编著,在现有软件工程概念的基础上,重点介绍网络分布计算原理和分布式系统架构,以及与之相适应的组件化软件工程方法。

 ; ; ; ;本书专门为计算机科学的大学高年级学生或研究生课程而编写,可作为软件工程课的高级教程;适当增加系统设计的练习,亦可作为分布式系统的专业课教程。本书要求读者具有面向对象编程、操作系统及计算机网络的基本知识,也可作为从事软件研究和应用开发的广大软件技术人员基础性的专业参考书。

内容简介

随着网络技术的发展和计算机应用的普及,软件系统的规模越来越大,复杂性越来越高。软件的体系结构和运行环境也发生了根本变化,软件工程方法和技术正面临着前所未有的新问题和新挑战。本书是在传统软件工程问题的基础上,集中阐述网络化软件的基本原理和技术,主要包括:软件系统建模、软件体系结构、分布计算原理、分布事务处理、分布式算法、分布式系统、网络软件基础架构平台、组件化软件工程开发及面向服务的计算等。

本书将网络分布计算与软件工程这两个主题相结合进行阐述,既有原理、技术和方法,又有典型系统介绍和分析。本书适用于计算机学科的大学高年级本科生和研究生,可作为现代软件工程课的高级教程,而对于从事软件研究和开发的广大工程技术人员,也是一本基础性的专业参考书。

作者简介

暂无

网络分布计算与软件工程(第二版) PDF下载

目录


前言
第1章 ; ;软件工程发展概论
 ; ;1.1 软件工程的目标
 ; ; ; ;1.1.1 软件工程要素
 ; ; ; ;1.1.2 软件工程面临的问题
 ; ; ; ;1.1.3 软件生命期模型 ; ;
 ; ;1.2 软件开发方法
 ; ; ; ;1.2.1 软件开发过程
 ; ; ; ;1.2.2 结构化软件开发方法
 ; ; ; ;1.2.3 面向对象软件开发方法
 ; ; ; ;1.2.4 敏捷软件开发方法
 ; ; ; ;1.2.5 软件复用
 ; ;1.3 软件质量评价
 ; ; ; ;1.3.1 软件质量标准
 ; ; ; ;1.3.2 软件质量度量
 ; ; ; ;1.3.3 软件质量保证
第2章 ; ;软件系统建模
 ; ;2.1 面向对象系统建模
 ; ; ; ;2.1.1 面向对象建模方法
 ; ; ; ;2.1.2 统一面向对象建模
 ; ;2.2 UML:统一建模的基础
 ; ; ; ;2.2.1 UML的组成
 ; ; ; 2.2.2 标记方法
  2.3 RUP:统一建模的过程
    2.3.1 RUP基本概念
    2.3.2 核心工作流程
    2.3.3 UML对开发过程的支持
第3章  软件体系结构
  3.1 软件体系结构模型
    3.1.1 软件体系结构定义
    3.1.2 软件体系结构模型
  3.2 软件体系结构描述语言
    3.2.1 体系结构描述语言设计考虑
    3.2.2 体系结构描述语言实例研究
    3.2.3 实用软件体系结构描述方法
  3.3 软件体系结构风格
    3.3.1 定义和作用
    3.3.2 分层系统及其应用
    3.3.3 容器系统及其应用
第4章  分布计算原理
  4.1 概述
    4.1.1 网络分布计算
    4.1.2 分布式系统
    4.1.3 中问件
  4.2 基础模型
    4.2.1 进程模型
    4.2.2 时间模型
    4.2.3 状态模型
    4.2.4 失败模型
  4.3 通信
    4.3.1 网络通信协议
    4.3.2 远程过程调用
    4.3.3 远程方法调用
    4.3.4 面向消息的通信
    4.3.5 组播通信
  4.4 进程
    4.4.1 进程和线程
    4.4.2 进程组织
    4.4.3 进程迁移
  4.5 并发控制
    4.5.1 概述
    4.5.2 互斥
    4.5.3 选举
    4.5.4 分布式死锁
  4.6 寻址定位
    4.6.1 名字解析
    4.6.2 移动寻址
    4.6.3 分布式散列表
    4.6.4 分布式垃圾回收
  4.7 容错
    4.7.1 进程复制
    4.7.2 数据复制
    4.7.3 一致性协议
第5章  分布事务处理
  5.1 分布事务
    5.1.1 概述
    5.1.2 事务模型
    5.1.3 原子提交协议
  5.2 事务并发控制
    5.2.1 锁方法
    5.2.2 时间戳排序方法  
    5.2.3 乐观并发控制方法
    5.2.4 事务恢复
  5.3 工作流事务
    5.3.1 松弛事务模型
    5.3.2 事务工作流调度
第6章  分布式算法
  6.1 分布式路径路由算法
    6.1.1 宽度优先搜索算法
    6.1.2 最短路径路由算法
    6.1.3 互联网动态路由策略
  6.2 可靠性算法
    6.2.1 可靠通信算法
    6.2.2 节点故障处理算法
    6.2.3 拜占庭故障处理算法
  6.3 负载分配算法
    6.3.1 静态负载分配算法
    6.3.2 动态负载分配算法
第7章  分布式系统
  7.1 基于文件的分布式系统
    7.1.1 NFS
    7.1.2 xFS
    7.1.3 分布式文件系统比较
  7.2 基于对象的分布式系统
    7.2.1 CORBA  
    7.2.2 Java EE  
    7.2.3 DCOM
    7.2.4 NET
    7.2.5 分布式对象系统比较
  7.3 基于web的分布式系统
  7.4 基于消息和协同的分布式系统
    7.4.1 TIB
    7.4.2 JINI
    7.4.3 OnceDI
    7.4.4 基于消息和协同的分布式系统比较
  7.5 对等系统
第8章  网络软件基础架构平台
  8.1 概述
  8.2 消息通信中间件
  8.3 事务处理中间件
  8.4 应用服务器
    8.4.1 微内核
    8.4.2 组件容器
    8.4.3 自适应资源重配
  8.5 数据集成中间件
  8.6 流程集成中间件
  8.7 服务集成中间件
    8.7.1 SOAP引擎  
    8.7.2 BPEL运行支撑
  8.8 信息门户中间件
第9章  组件化软件工程开发
  9.1 软件复用技术
    9.1.1 软件复用过程
    9.1.2 软件复用技术分类
    9.1.3 软件复用带来的问题
  9.2 基于组件的软件开发
    9.2.1 概述
    9.2.2 组件
    9.2.3 基于组件的软件开发方法
    9.2.4 COTS
  9.3 软件模式
    9.3.1 概述
    9.3.2 结构型模式
    9.3.3 分布型模式
    9.3.4 交互型模式
    9.3.5 适应型模式
    9.3.6 基于模式的复用  
  9.4 软件框架和产品线工程
    9.4.1 软件框架
    9.4.2 软件产品线工程方法
    9.4.3 组件容器领域分析
    9.4.4 组件容器产品线框架
第10章  面向服务的计算
  10.1 概念模型
  10.2 Web服务技术
    10.2.1 Web服务技术标准
    10.2.2 Web服务通信
    10.2.3 Web服务描述
    10.2.4 Web服务发布和发现
    10.2.5 Web服务组合
    lO.2.6 Web服务的元数据和语义
  10.3 事务复合服务
    10.3.1 松弛原子性验证
    10.3.2 分布式并发控制
    10.3.3 失败恢复
  10.4 “软件即服务”和云计算
    10.4.1 软件即服务
    10.4.2 虚拟化
    10.4.3 云计算
参考文献
附录A 专业词汇汉英对照表
附录B 专业词汇英汉对照表
附录C 常用英文缩略语表

免费在线读

第1章 软件工程发展概论
软件工程是计算机学科的一个独立分支,要求软件开发必须按照工程化的原理和方法来组
织和实施。由于软件产品本身的特殊性,特别是对于新出现的大规模网络应用软件,软件体系结
构和运行环境发生了很大变化,传统的软件工程方法和技术已不能适应由于网络化所带来的新
需求。本章在简要总结软件工程基本概念和一般原理的基础上,重点讲述网络环境下软件工程
所面临的新问题,以及传统软件工程的观念应作什么样的改变,以适应这种变化了的新形势。本
章内容包含著作[冯玉琳,1992,1998]中的部分正文和图片。
1.1 软件工程的目标
软件工程是研究大规模软件制造的方法、工具和过程的工程科学。由于软件规模的庞大,因
此,软件工程的成败并非主要取决于个人的聪明才智,而是要求参与工程的每一位开发者都能按
照软件工程的规范和过程协同工作。本节在分析软件工程面临问题的基础上,讲述软件工程的
基本概念,包括软件工程的基本要素、软件工程的目标及软件工程生命周期等。
1.1.1 软件工程要素
数学定理的发明和推导体现了数学家的高度智慧,其中严密的数学推理和奥妙常为人们所
叹服。计算机软件也是人们高度知识型劳动的成果,它蕴涵的逻辑和计算体现了人们对外部世
界的理解和认识。对庞大的复杂软件系统的分析和设计,必须遵循一定的科学原理和方法,并要
求参与者充分发挥其智慧。
软件工程是研究大规模软件制造的方法、工具和过程的工程科学。软件工程指导计算机软
件的开发、运行和维护,采用工程化的理念、方法和技术来开发和使用软件,并对软件开发过程进
行有效的管理。
首先,软件工程是针对大规模软件制造的。何谓软件规模?一个最基本的度量参数是源代
码行(LOC)。在学校内用于教学程序设计或软件工程课程的实例,代码一般都在5000行之内,
这只能算是小程序设计。按照通常的软件规模大小的尺度,1~5万行代码的软件是小规模软
件,5~10万行的软件是中规模软件,10~100万行的软件是大规模软件,100万行以上是超大规
模软件。随着软件应用复杂性的增加,软件规模越来越大,度量软件规模的尺度也随之扩大。例
如,超大规模软件的定义范围,代码已从100万行增加到1000万行。
数学证明主要依靠数学家个人智慧的发挥,而软件规模如此庞大,只靠几个人的力量显然是
不可能完成的。一种大规模的复杂软件,可能需要数百人,甚至数千人在几年的时间内协同工作
才能完成。假设一个人一年可以开发出一万行的源代码,按照同样的工作效率,一种100万行源
代码规模的软件,是否集中100人的力量工作一年就可以完成呢?答案是否定的。因为软件工
作量中的人数与时间不是简单累加计算的,当软件规模增加100倍,软件复杂程度的增加倍数
将远远超过100倍。软件内部是互相关联的,软件人员需要互相交流,以保证很多人完成的任
务集合在一起能够成为一种高质量的大型软件系统,这确实是一个极为复杂而困难的问题。这
不仅涉及许多技术问题,如分析方法、设计技术、错误检测、版本控制等,而且还必须有严格和科
学的过程管理。
考虑到研制软件同研制机器或建造楼房的过程有许多相似之处,所以可以参照机械工程或
电气工程中的一些概念来进行软件研制,用“工程化”的思想作为指导来解决软件研制过程中面
临的困难和混乱。然而,软件工程作为一门新的工程学科,还遵循着自身特有的工程原理和方
法。软件是抽象的逻辑性的产品,不是实物性的产品。研制和维护软件的过程非常难以控制。
虽然软件工程已发展了几十年的时间,但到目前为止,软件工程仍然不能像机械工程或电气工程
那样建立起统一的设计标准和足够的可靠性保证,这就决定了软件的研制和开发较之其他工程
学科的项目要困难得多。
软件工程的内容包括三个要素,即方法、工具和过程。
·软件工程方法为软件开发提供“如何开发”的原理和技术。它包含了多方面的任务,如项
目计划与评估、系统需求分析、软件体系结构、算法设计、编码、测试和维护等。软件的开发和维
护是一种复杂的活动,必须用软件工程方法作为指导才能进行。不同的软件方法会导致不同的
软件过程。
·软件工具为软件工程方法提供自动或半自动的支撑。方法和工具往往是同一问题的两
个不同方面:方法是工具研制的先导,工具则是方法的实在体现。将各种软件工具集成,连同软
件运行基础设施一起形成软件工程环境。
·软件过程是将软件工程方法和工具综合运用以科学地进行软件的开发和实施,包括软件
方法使用的选择、要求交付的文档资料、为保证质量所需要的过程管理,以及软件开发各阶段要
求完成的工作情况等。
软件工程的目标就在于研究科学的软件工程原理和方法,并开发与之相适应的软件工具,从
技术上和管理上保证软件工程项目实施的成功,力求用较少的投资在规定的工程期限内完成高
质量的软件。
1.1.2 软件工程面临的问题
从20世纪60年代末开始,人们就在讲“软件危机”,而后一直都在为解决软件危机面临的困难问
题而进行坚持不懈的努力。软件工程作为一个学科方向,越来越受到人们的重视。《人月神话》
[Brooks,1995]出版30多年来,很多技术已发生了重要变化。随着大规模网络应用软件的出现和普
及,软件的体系结构和运行环境发生了很大变化,软件系统的规模越来越大,复杂性越来越高,软件体
系结构已发展到分布式的3层或多层结构。软件系统中各个计算单元分布在不同的站点机,各自
独立地运行在异构的操作系统平台上,协同完成计算任务。分布式系统已经成为软件发展的主流。
传统的软件工程方法和技术因难以适应网络化所带来的新需求而面临严重的挑战。
软件可靠性是衡量软件质量的一个重要指标。软件可靠性是指软件系统能否在指定的环境
条件下正确运行并实现所期望的结果。软件错误的后果十分严重,如医疗软件的错误可能危及
病人生命;银行软件的错误会造成金融混乱;航天发射软件中的错误会使火箭试验失败。通常有
40%左右的软件开发代价要花在软件编码完成之后的测试和排错上,但即便如此,也不能保证经
测试的软件就没有错误。例如,在网络上运行软件时,软件的不确定性增加,分布式软件系统的
测试更是一种复杂的工作,因此软件系统花在测试上的代价非常之大。
许多网络应用软件还要经受大规模并发用户的访问的考验。虽然在严格的软件测试过程
中,软件运行已经达到了满意的可靠程度,可是在网络运行的实际环境下,一旦“瞬间”同时访问
的大量并发用户的请求超过预期,软件系统就可能“崩溃”。近些年来,一些新开发的网络售票系
统、证券交易系统和身份确认系统等都曾出现过这样的问题,造成了严重的不良后果。在Internet网络环境下,软件需求的变化性加大,要适应各种不同的客户需求;软件的复杂性加大,要处
理大量并发分布的事务。这样的软件更容易出错,因此软件的可靠性和性能要求也就更高了。
投入了巨大的人力和资源开发出来的软件,其产品质量往往不甚理想,不能达到预期的目
标,这在软件行业是一种普遍的现象。因为程序人员几乎总是习惯从技术的角度去理解用户的
需求,使得软件设计人员对客户需求的理解与用户的想法常常有很大距离。通常,用户对自己所
需软件的功能和性能在事前是难以确切地表述清楚的,从软件项目一开始,就可能存在软件开发
人员与用户理解的概念差异。软件设计带有太多的灵活性和随意性,加之用户需求经常会发生
变化,这使软件质量控制成为一个很难解决的课题。对于大规模网络应用软件工程开发,在满足
用户需求、控制开发进度和保证软件质量等方面依然有许多问题需要解决。
1.1.3 软件生命期模型
目前,划分软件生命周期的方法有许多种,软件规模、软件类型、软件开发时使用的方法及开
发环境等,都会影响软件生命周期的划分。在划分软件生命期阶段时,应遵循的一条基本原则,
就是使各阶段的任务彼此间尽可能相对独立,同一阶段各项任务的性质尽可能相同。为了用工
程化的思想有效地管理软件生命期活动的全过程,一般可以将软件生命期划分为如下六个阶段。
1.软件计划
软件计划的任务是确定软件开发的总目标,确定工程的可行性,理解工作范围和所花的代
价。软件计划应以可行性研究报告为基础,由软件人员和用户共同确立软件的功能和限制条件,
制定软件计划任务书。
2.软件需求分析
软件需求分析的目标是在系统模型分析的基础上,建立软件需求规格说明书。通常,用户知
道必须做什么,但是并不能完整准确地表达出他们的要求,更不知道如何用计算机解决他们的问
题;软件人员知道怎样用软件实现人们的要求,但对特定用户的具体要求并不能完全掌握。因
此,在需求分析阶段,系统分析人员必须与用户密切配合,充分交流信息,建立经过用户确认的系
统模型,作为以后软件设计和实现的基础。系统模型是要求开发的目标软件系统的抽象表示,不
同的系统模型抽象会导致不同风格的软件需求规格说明。
软件需求分析是软件工程开发中的重要一步,也是决定性的一步。通过软件需求分析,才能
把软件功能和性能的总体概念抽象描述为具体的规格说明,成为软件人员与用户对要求开发的
目标系统理解一致的共同基础。
3.软件设计
软件设计就是从软件需求规格说明出发,形成软件的具体设计方案的过程。软件设计要求
确定软件系统的体系结构、给出系统中各软件模块的相互关系、数据库的运用,以及每个模块的
功能说明;还应考虑到在软件需求规格说明中对实现环境的要求,如网络环境下运行支撑的要
求等。
软件设计又分为总体设计和详细设计两步。总体设计给出系统的整体结构,如软件系统由
哪些模块组成及模块间的关系。详细设计给出各个模块的具体描述,其中包含必要的细节,程序
员根据它们可以独立地写出实际的程序代码。
4.软件编码
根据软件设计的结果,选择合适的程序语言为每一个要求编码的软件模块编写程序。编写
的程序应该是结构良好且易于理解。有些软件模块可能不需要编程,仅利用现成的可复用组件,
并对照设计要求进一步检查确认和客户化即可。
5.软件测试
在一个软件系统的整个开发过程中,会出现一系列“信息转移”。信息转移是发生错误的
根源。如在需求分析阶段,系统分析员错误地理解了用户的需求,发生了用户到系统分析员
之间的信息转移错误;系统分析员在书写需求规格说明书时不能正确表达自己的思维,发生
了系统分析员到文件的信息转移错误。在软件开发过程中,软件人员和用户都要参与,人的
活动和交互不可能完美无缺,人犯错误的机会也很多。所以,软件开发过程中总是不可避免
地会出现错误。软件测试是对软件需求分析、设计和编码的最后复审,是保证软件质量的关
键一环。
软件测试包括单元测试和集成测试。单元测试是根据详细设计说明,对软件模块进行详细
的测试。集成测试是在单元测试的基础上将各单元模块装在一起进行整体测试。有时,开发的
软件系统是更大的一个计算机系统的组成部分,在这种情况下,集成测试还包括所开发的软件与
其他软件系统放在一起进行系统有效性测试。经过一系列的测试和排错,最后得到可交付运行
使用的软件。
6.软件维护
经过测试的软件仍然可能有错,加之用户需求和系统运行环境也有可能发生变化,因此交付
运行的软件仍然需要继续完善、修改和扩充。这就是软件维护。通常有四类维护活动,即改正性
维护,诊断和改正在使用过程中新发现的软件错误;适应性维护,修改软件以适应环境的变化;完
善性维护,根据用户的要求改进或扩充软件,使之更加完善;预防性维护,修改软件为将来的维护
活动预先做准备。
软件是程序及软件开发、使用和维护所需要的所有文档。根据这样的定义,软件不再仅仅是程
序,研制软件也不仅仅是编写程序。按照软件工程化研制的要求,软件生命周期每一阶段完成确定的
任务后,都要产生一定格式的文档。表1.1列出了软件生命期每一阶段的基本任务及工作结果。
软件生命期划分为上述六个阶段,这就为工程化的软件研制提供了可遵循的途径。但必须
指出,实际的软件系统研制工作,不可能是直线进行的,常常存在着反复,有时需要从后面的阶段
回复到前面。例如,在设计阶段发现需求规格说明书有不完整或者不精确之处,就需要回到需求
分析阶段进行“再分析”;测试阶段发现了模块内部或者系统的错误,有时甚至要回溯到设计阶段
对原来的设计进行修正。
软件生命周期前五个阶段,即计划、分析、设计、编码和测试,通常称之为软件的开发期。最
后一个阶段称之为软件的维护期。在软件的整个生命周期中,维护的周期最长,工作量也很大。
仅就开发阶段而言,以上所讲的是开发周期五阶段论,重点强调软件工程的规范和管理,强调自
顶向下的软件过程。但这种阶段划分的灵活性较差,回溯和再分析的代价较大。在实际的软件开发
中,许多软件工程师倾向于用更具弹性的、快捷的、廉价的方式去开发所需的软件,特别是在软件规模
较小和用户需求比较模糊的时候,开发周期演变成为轻量级系统建模、代码设计和迭代测试等三阶段
的反复循环,直至完成最终目标系统。这种开发周期三阶段论划分重点强调持久的开发和效率。
1.2 软件开发方法
软件开发过程是软件开发人员以制造软件产品为目的、在软件工具支持下完成软件开发期
各阶段任务的一系列相关过程。由于目标软件产品的性质及所采用的软件开发方法的不同,软
件过程也常常很不相同。本节介绍几种常用的软件过程模型,尽管它们存在很大的差异,但其基
本特征元素都是共同的,这些基本特征元素有四种。
·软件规格说明:描述软件功能及其行为。
·软件设计和实现:研制符合规格说明要求的软件。
·软件验证:确保软件符合客户需求。
·软件演化:适应变化的客户需求。
软件开发方法是软件开发过程所遵循的规则和步骤。一个好的软件开发方法应能覆盖软件
开发活动的全过程,并且方便在开发活动各阶段之间的过渡和演化。本节重点介绍三种代表性
的软件开发方法,即结构化方法、面向对象方法及敏捷软件开发方法,并在讲述软件复用概念的
同时,介绍了基于组件的开发方法。有关组件化软件工程的详细内容将在第9章再行详述。
1.2.1 软件开发过程
软件开发过程可以分为顺序的开发过程和反复的开发过程。在顺序的开发过程中,一旦某
项任务完成,过程路径便不再返回到这个任务或在它之前完成的任务了。在反复的开发过程中,
过程路径可以回到以前完成的任务,进行适当改变或调整,并使这种变动的效果在过程路径中向
前传递。第三种可能的方式是结合顺序和反复模型的增量式方式。反复的和增量式的过程模型
结合起来,又形成一种螺旋式的过程模型。
软件过程模型是对一个软件过程的抽象描述。每个过程模型从一个特定的角度描述了一个
软件过程。软件过程模型不是为开发人员提供一个面面俱到的软件过程规范,而是围绕软件生
命周期中最核心的问题展开的,模型的准则是清晰、敏捷和宏观上严格、微观上灵活。
1.顺序的过程模型
软件工程管理人员通常最偏爱这种开发过程模型。顺序过程模型对过程的控制较强。这种
模型可以进行流水型作业,可以对所耗资源和时间进行比较精确的估计。但是,前提必须是完全
准确地理解用户需求,而且在开发过程中用户需求必须稳定。这两个条件,特别是后者,在应用
软件开发过程中常常不能得到满足。
瀑布型应用开发在结构化分析设计中一直很受欢迎。它要求在下一阶段工作开始前,上一
阶段的工作要正式结束。一旦一个阶段完成,一般就不会再反复。如果用户需求被充分理解了,
分析和设计由技术水平高的人员进行,瀑布型也许就足够了。但是,这种方法缺乏足够的灵活
性。当用户开始能够使用和感受软件系统时,往往已经到了开发过程的最后一个阶段了。如果
用户不喜欢开发出来的软件某一部分或者用户需求有了变化,就要对系统进行改变,为此需要付
出较大的代价。
2.反复的过程模型
反复过程模型最主要的优点是能把一个阶段要做的改动反馈到一个更早的阶段,这些改动
在这个较早阶段中体现并向前传递,这样可以保证改动的可回溯性并能产生一个满足用户需求
的软件系统。在完全的反复过程模型中,对反馈链没有任何限制,它可以从任何一个任务到达此
前的其他任何任务。一般来说,反复的过程模型更适合于面向对象方法,当然也可以用顺序的开
发过程开发面向对象的应用。

网络分布计算与软件工程(第二版) pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:网络分布计算与软件工程(第二版)