软件工程——理论、方法与实践
分類: 图书,计算机/网络,软件工程/开发项目管理,
作者: 孙家广主编,刘强编著
出 版 社: 高等教育出版社
出版时间: 2008-1-1字数: 370000版次: 1页数: 275印刷时间: 2006/05/01开本: 16开印次: 2纸张: 胶版纸I S B N : 9787040163087包装: 平装内容简介
本书为普通高等教育“十五”国家级规划教材。由作者结合多年软件开发实践和近年讲授软件工程课程的教学经验编写而成,强调理论与实践的有机结合。全书共ll章,第1章概括介绍软件工程的历史发展和基本原理,讨论IEEE和ACM最新提出的软件工程知识体系和软件工程职业道德规范:第2章讨论软件过程的基本思想和活动,介绍常见的软件过程模型和微软开发过程的实际案例;第3章讨论软件工程的管理技术,主要涉及人员管理、沟通管理、项目规划和风险管理等内容:第4章、第6章至第10章以面向对象技术为核心,全面、深入、系统地介绍软件开发各个阶段的任务、过程、方法和工具:第5章介绍软件工程中的形式化方法,包括时序逻辑、Z语言、Petri网等;第ll章介绍软件进化的概念和方法,包括软件进化的特性、软件维护活动、逆向工程与再工程等内容。
全书注重内容的新颖性、条理性、系统性和实用性,始终以大量的开发实例贯穿全书,可作为计算机专业有关高年级本科生和低年级研究生学习软件工程课程的教材,也可供软件从业人员参考使用。本书配套的电子教案可从高等教育出版社高等理工教学资源网下载,网址为http://www.hep.st.com.CN。
目录
第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计算机辅助软件工程CASE
1.2.6当前面临的主要挑战
1.3软件工程知识体系(SWEBOK)
1.3.1SWEBOK项目介绍
1.3.2SWEBOK的组成
1.3.3软件工程与其他相关学科的关系
1.4软件工程职业道德规范
1.4.1IEEE/ACM职业道德准则
1.4.2软件工程人员的职业道德建设
习题
第2章软件过程
2.1软件过程的概念
2.1.1任务思维与过程思维
2.1.2软件过程的定义
2.1.3软件过程的基本活动
2.1.4软件过程的制品
2.2软件过程模型
2.2.1瀑布模型
2.2.2快速原型模型
2.2.3增量模型
2.2.4螺旋模型
2.2.5形式化方法模型
2.2.6基于组件的开发模型
2.3案例:微软公司的软件开发过程
2.3.1微软公司的开发管理原则
2.3.2微软公司的软件过程模型
2.3.3递进式的软件开发策略
习题
第3章软件项目管理
3.1软件项目管理概述
3.1.1软件项目的特征
3.1.2软件项目管理的“4P”
3.1.3软件项目管理活动
3.2人员组织与管理
3.2.1软件项目组织
3.2.2案例:微软公司的软件开发组织
3.2.3软件团队的建设
3.3项目沟通管理
3.3.1项目沟通复杂性
3.3.2项目沟通方式
3.3.3项目沟通活动
3.4软件项目规划
3.4.1软件规模估算
3.4.2软件成本估算
3.4.3软件项目计划
3.5软件风险管理
3.5.1风险识别
3.5.2风险分析
3.5.3风险规划
3.5.4风险监控
3.6软件配置管理
……
第4章需求工程
第5章软件工程中的形式化方法
第6章面向对象基础
第7章面向对象分析
第8章面向对象设计
第9章软件实现
第10章软件测试
第11章软件演化
参考文献
书摘插图
第1章 概述
软件是人类思维创造的杰作,并成为人类现代生活的催化剂。今天,软件遍布整个世界,在生物工程、现代通信、宇宙探索、商务处理、工业控制等方面发挥出巨大的威力,推动了商业、科学和工程领域的跨越式发展,对整个社会的经济和文化产生了深远的影响。
在计算机诞生的初期,软件仅仅是计算机硬件的附属品,其作用和成本微乎其微。如今,软件以各种形式嵌入在越来越多的产品中,不仅成为影响系统功能和性能的关键因素,而且在整个系统的成本中占据着越来越大的比重。因此,如何以经济有效的方法开发高质量的软件是人们长期以来一直努力研究的主要问题。
软件工程是为了解决开发成本效益和软件质量的问题而产生的。从1968年NATO(North Atlantic Treaty Organization,北大西洋公约组织)会议首次提出“软件工程”概念至今,虽然人们并没有彻底解决软件危机的问题,然而正是软件工程的发展促使软件取得了如此令人瞩目的成就。三十多年以来,人们更好地认识了软件开发过程,在软件的需求、设计、实现、测试和维护等方面提出了许多有效的方法,新的开发方法和开发工具在大型复杂软件系统的开发过程中起到了事半功倍的作用。如果没有这些复杂的软件,人们就不可能探索宇宙空间,也不可能拥有网络和现代化的通信技术,更不可能揭开人类基因的奥秘。
当前,软件工程仍然是一个正在迅速兴起的年轻学科,尚未形成完整的理论知识体系,需要大量的理论研究和工程实践。我们相信,随着该学科的日益成熟,软件工程必将对未来的软件开发产生更大的推动力。
1.1 软件
在软件的发展过程中,软件从个性化的程序演变为工程化的产品,人们对软件的看法发生了根本性的变化。“软件=程序”显然不能涵盖软件的完整内容,除了程序之外,软件还包括与之相关的文档和配置数据,以保证这些程序的正确运行。
《IEEE Standard Glossary of Software Engineering Terminology}给出了有关软件的如下定义:
……