软件工程

出版时间:2001-3  出版社:东北大学出版社  作者:王家华  页数:305  

前言

  软件工程是在20世纪60年代创立的一门工程学,目的在于解决“软件危机”或者称为“软件困境”的问题。经过数十年的努力,人们总结了大量的经验和发现了许多规律,提出了软件开发及其管理的方法和技术。这些成为软件工程的主要内容。  鉴于软件工程是一种特殊的工程,它不像机械工程、建筑工程那样具有明显的可测性和可计算性,因此长期以来在软件工程的可测性和可计算性及抽象理论方面的研究所取得的进展很少,从而导致了软件工程的有关资料中可计算性和形式化的内容较少,一般主要是技术性的。

内容概要

本书是根据编者多年来从事软件工程研究与教学实验,在参阅了大量国外最新资料的基础上编写而成的,包括了传统的结构分析方法和正在以展的面向对象的开发方法学,涵盖了从可行性论证直到软件维护各阶段的内容,主要有:可行性论证技术;半形式化和形式化规范技术;软件项目质量、配置管理及软件项目的特征量;模块化原理;系统结构优化设计;输入/出接口优化设计;结构程序设计;测试案例设计;面向对象原理;面向对象的建模;OO系统设计与测试;以及某些开发阶段特征量的概念、计算机和应用。本书可作为本科生、研究生软件工程课的教材。

书籍目录

1 软件工程引论 1.1 软件困境 1.2 软件工程 1.3 某些广泛使用的过程模型 1.4 小结 练习题一2 软件工程管理技术 2.1 软件特征量 2.2 软件规模估计 2.3 软件工作量的估计 2.4 软件项目的调度 2.5 人员组织 2.6 软件质量管理 2.7 软件配置管理 2.8 小结  练习题二3 可行性研究 3.1 可行性研究的基础 3.2 可行性研究的任务 3.3 成本/效益分析 3.4 可行性研究的步骤 3.5 小结  练习题三4 需求分析和规范 4.1 用户需求分析的任务 4.2 需求规范 4.3 数据流程图 4.4 数据字典 4.5 判定表与判定树 4.6 有限状态机 4.7 Petri 网 4.8 形式化规范技术 4.9 用户需求规范的评审 4.10 小结  练习题四5 总体设计 5.1 总体设计的概念与原则 5.2 模块化原理 5.3 总体设计中的特征量 5.4 图形工具 5.5 软件结构的设计方法 5.6 程序结构的优化设计 5.7 大型软件系统设计中的可集成问题 5.8 小结  练习题五6 详细设计 6.1 数据设计 6.2 人-机接口的设计 6.3 模块逻辑的设计 6.4 表示程序逻辑的工具 6.5 结构程序设计 6.6 详细设计的特征量 6.7 小结  练习题六7 程序设计 7.1 程序设计语言 7.2 程序设计风格 7.3 反缺陷程序设计 7.4 小结   练习题七8 测试 8.1 白盒测试 8.2 墨盒测试 8.3 单元测试 8.4 集成测试 8.5 调度 8.6 集成测试的特征量 8.7 小结  练习题八9 面向对象方法学引论10 面向对象的系统分析11 面向对象的系统设计12 面向对象系统的测试参考文献

章节摘录

  1.1.1 软件的特征  研究软件的特征,有助于理解软件生产的困难,进而去克服它们。  (1)复杂性。  一个软件产品是和计算机系统联系在一起的。人们赋予计算机系统的期望与功能不同于任何其他产品。除了计算机系统以外的任何产品,不过是人们手和脚功能的延伸。例如。一个普通机床,人们利用它将金属材料加工成机器零件。某种意义上说,机床是人们手的功能的延伸,相当于使人的手变得更有力,更锋利,能够将坚硬的金属材料加工成需要形状和尺寸的产品。一个汽车的功能即使再复杂,性能再优越,它不过是人腿功能的延伸和人类负重能力的加强。但是计算机不同,人类希望它能够加强和解放人类的最高级器官——大脑的功能。人们使用计算机监视生产过程,根据生产情况发出调度指令,生产出高质量的产品。实践证明:在这方面计算机做得甚至比人类自身更好。计算机用于事务管理,例如财务管理,可以快速存取大量的数据,更快更准确地计算,将财会人员从繁重的脑力劳动中解放出来。计算机能用于科学计算,求解复杂的超越方程。这类方程靠人类的大脑和手是无法精确求解的。在这方面计算机是人类大脑的延伸。计算机代替人脑的应用例子不胜枚举。一个普通计算机只是一个通用的计算装置,它只能快速执行其指令集合的指令。而这些应用功能的实现是由这些指令构造的计算机程序去操纵有关的数据实现的,即由计算机软件实现。软件要实现的功能是人类大脑的部分功能或某部分功能的加强。因此从本质上决定了和其他产品相比,软件是一种更为复杂的产品。(2)难以描述性。这个特性指的是某些软件算法的难以描述的特性。科学家和工程师在解决问题时。总是采用抽象的模型描述现实世界,使用数学公式准确地表达客观规律。例如航天专家们使用运动学定律描述飞行体的运动;化学家应用化学方程描述化学反应。当计算机应用于这些领域时,软件能够采用这些抽象模型来表达其算法,软件算法具有同样的可描述性。但是当计算机应用于其他领域时,例如建立一个企业的应用系统,计算机软件的算法将是复杂的,很难用一个或一组公式准确地表示它。它往往需要自然语言结合数学公式以及其他表示方法,如逻辑公式等来表示。由于自然语言中存在着二义性,因此用自然语言所表达的算法是很难准确的。另一方面是因为解决这些领域中问题的算法是由领域专家直接或间接提供的。由于人们对客观世界的认识具有不完全性,甚至存在着某些错误认识,因此依赖于领域专家知识的计算机软件很难准确地反映客观世界的规律。  (3)不可见性。  在生活中,我们所接触到的产品其外形几乎都是可见的。例如一个房屋、一辆汽车,它们的外观是可见的。即使对于设计中的产品,其外形的优劣亦可通过三维模型或者实物造型来观察和判断。对于软件产品则是不同的。首先,由于它由一些计算机程序和其操作的数据以及相应的文档构成,它可能存储在纸介质上,或者磁介质上。我们能观察到的只是介质的形体,而不是软件的形状。如果我们把程序运行中显示给用户的接口定义为软件的外形的话,那么我们只能通过运行程序才可以观察到其外形。因此,对于设计中的软件则是无法观察其外形的。正是由于这种不可见性造成了开发者和客户之间通讯的困难。

图书封面

评论、评分、阅读与下载


    软件工程 PDF格式下载


用户评论 (总计0条)

 
 

 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7