新编软件工程实用教程
分類: 图书,计算机/网络,软件工程/开发项目管理,
作者: 周丽娟等编著
出 版 社: 电子工业出版社
出版时间: 2008-6-1字数: 435000版次: 1页数: 259印刷时间: 2008/06/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787121064500包装: 平装内容简介
本书从方法学的角度出发,概述了软件生存期模型和各种开发方法,介绍了结构化的设计方法。结合当前软件工程的理论和实践,以面向对象技术和UML语言为主线,详细介绍软件工程的技术方法和实践原则。同时讨论了软件维护和软件工程管理技术。本教材不仅介绍了软件工程的概念、原理、方法和技术,同时也强调方法和技术的实际应用。
本书可作为高等院校计算机及相关专业软件工程课程的教材或参考书,也可供软件工程师、软件项目管理者和应用软件的开发人员阅读参考。
目录
第1章概述
1.1软件的概念和特征
1.1.1软件的概念
1.1.2软件的分类
1.1.3软件的发展
1.2软件危机
1.2.1软件危机的主要表现
1.2.2产生软件危机的原因
1.2.3解决软件危机的途径
1.3软件工程
1.3.1软件工程的定义
1.3.2软件工程的目标
1.3.3软件工程的研究内容
1.3.4软件工程的基本原理
本章小结
思考题和习题
第2章软件开发模型
2.1软件工程过程
2.1.1软件过程定义
2.1.2软件过程的基本活动
2.2软件生存周期
2.2.1软件生存周期定义
2.2.2软件生存周期的基本任务
2.3软件生存周期模型
2.3.1瀑布模型
2.3.2原型模型
2.3.3螺旋模型
2.3.4增量模型
2.3.5喷泉模型
2.3.6形式化方法模型
2.3.7基于组件的开发模型
2.4软件开发方法
2.4.1结构化开发方法
2.4.2面向数据结构的方法
2.4.3面向对象方法
2.4.4原型法
本章小结
思考题和习题
第3章需求分析
3.1需求分析概述
3.t.1需求分析的特点
3.1.2需求分析的原则
3.1.3需求分析的任务
3.1.4需求分析的方法
3.2需求开发过程
3.2.1需求的获取
3.2.2需求分析
3.2.3编写需求规格说明书
3.2.4需求验证
3.3需求的层次与种类
3.3.1业务需求
3.3.2用户需求
3.3.3功能需求
3.3.4非功能需求
3.4需求管理
本章小结
思考题和习题
第4章结构化分析与结构化设计基础
4.1结构化分析
4.1.1结构化分析策略
4.1.2数据流图(DFD)
4.1.3数据词典
4.1.4数据加工逻辑
4.1.5实体关系图
4.1.6结构化分析实例
4.2结构化设计
4.2.1结构化设计概述
4.2.2软件设计的基本原理
4.2.3软件设计采用的工具
4.2.4面向数据流的设计方法
4.2.5概要设计说明书
本章小结
思考题和习题
第5章构件级设计与实现
5.1详细设计
5.1.1详细设计概述
5.1.2详细设计工具
……
第6章 面向对象方法及UML建模语言
第7章 面向对象分析
第8章 面向对象的设计
第9章 软件测试
第10章 软件维护
第11章 软件工程管理
第12章 基于构件的软件开发
第13章 Web工程
参考文献
书摘插图
第1章 概述
计算机技术把人类社会带入了一个崭新的“信息时代”,给人们的工作和生活带来了巨大变化。然而,作为信息化基础的软件技术发展还不成熟,至今仍然受到软件危机的困扰。人们开发优质软件的能力大大落后于计算机硬件日新月异的进展和社会对计算机软件不断增长的需求。为了摆脱软件危机的困扰,一门研究软件开发与维护的原理和技术的工程学科——软件工程学,从20世纪60年代末逐步发展起来。目前,软件工程已经成为高等院校计算机专业的必修课程。
1.1 软件的概念和特征
软件产品和服务变得越来越不可少,大多数行业的业务越来越多地依赖于软件,开发并利用软件强大的能力已成为新经济中各国竞争的要素。
1.1.1软件的概念
1.软件
软件这个概念,从它出现之时,就带有一层神秘的色彩。其高度的抽象性使人们无法从物理实体上感知它、认识它。那么什么是软件呢?早期人们对软件的定义是:用来完成某些任务的程序和数据的集合。程序是指令的序列,指令是能在计算机硬件上执行的动作。而数据是指令操作的对象。随着技术的发展,人们对软件的认识也在加深。今天,从软件工程的角度看,软件的定义应当是,软件是完成某类问题求解的程序和数据,以及为维护程序必须提供的一系列文档组成的集合。用简洁的公式可表示为
软件=程序+数据+系列文档
(1)软件的内部性质是,软件具有高度的抽象性和严密的逻辑性。
软件是问题求解方法的信息表达形式,而问题求解方法(计算机中称为算法)是高度抽象的思维活动。高度的抽象性是软件与生俱来的本性,人们无法直接感知软件,必须通过认识、理解、判断、推理等一系列复杂的思维过程才能感知它、认识它、理解它,从而得到它。
软件是大量逻辑元素的复杂组合。这些逻辑元素可以是变量、数组、记录、文件、标号、常数等数据结构,也可以是循环、转移、条件、顺序、推理、赋值等控制机制,甚至还可以是环境、人、其他软件、硬件等外部元素。显然软件中涉及的逻辑量比硬件系统要多出10~100倍。为完成一个复杂的大型软件,常常需要建立一个庞大的逻辑体系。严密的逻辑性是指这个复杂的逻辑体系中,各种逻辑元素之间的联系必须是一致的、无矛盾的,体系结构及其表示必须是统一的。任何逻辑联系上的失误都将导致软件的错误,严重时将导致软件的失败。
……