软件工程——原理、方法和工具

分类: 图书,计算机/网络,软件工程/开发项目管理,
作者: 李东生 等编著
出 版 社: 机械工业出版社
出版时间: 2009-1-1字数: 473000版次: 1页数: 291印刷时间: 2009/01/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787111257400包装: 平装内容简介
本书全面系统地介绍了软件工程的概念、原理和技术。全书分3篇,第1篇(第1~8章)“面向过程的软件工程”,以传统的软件生存周期为主线,介绍软件工程的原理和方法,讲述了软件生存周期各阶段的任务、过程和方法。第2篇(第9~16章)“面向对象的软件工程”,以UML语言为主线,结合当前流行的软件工程工具Rational Rose,介绍面向对象软件工程的原理和方法。第3篇(第17章)“软件工程实验”,是在前两篇的理论知识基础上,介绍图书馆图书管理系统和浏览器系统实验。
本书的特色是将软件工程理论与软件工程实际紧密结合,便于教学与应用,既可以作为高等院校计算机专业和软件工程专业本科生的教材,也可作为工程技术人员的参考书。
目录
序
前言
第1篇面向过程的软件工程
第1章软件危机、软件工程
1.1软件工程的发展史
1.1.1程序设计时代
1.1.2程序系统时代
1.1.3软件工程时代
1.2软件危机主要表现形式
1.3产生软件危机的原因及解决途径
1.3.1产生软件危机的原因
1.3.2解决软件危机的途径
1.4软件和软件工程
1.4.1软件
1.4.2软件工程
1.5软件质量
1.6软件的生存周期及开发模型
1.6.1软件生存周期
1.6.2软件开发模型
1.7习题
第2章可行性研究
2.1可行性研究的目的与任务
2.2可行性研究的步骤
2.3系统流程图
2.3.1系统流程图的符号
2.3.2系统流程图示例
2.4成本一效益分析
2.4.1货币的时间价值
2.4.2投资回收期
2.4.3纯收入
2.5可行性研究报告的主要内容
2.6习题
第3章软件需求分析
3.1需求分析的任务和步骤
3.1.1需求分析的任务
3.1.2需求分析的步骤
3.2需求获取的常用方法
3.2.1常规的需求获取方法
3.2.2快速建立软件原型来获取需求
3.3需求分析的方法
3.3.1功能分解方法
3.3.2结构化分析方法
3.3.3信息建模方法
3.3.4面向对象的分析
3.4结构化分析方法
3.4.1自顶向下逐层分解的分析策略
3.4.2结构化分析描述工具
3.4.3数据流图
3.4.4数据字典
3.4.5加工逻辑的描述
3.5需求分析图形工具
3.5.1层次方框图
3.5.2Wamier图
3.5.3IPO图
3.6SA方法的应用
3.7习题
第4章软件总体设计
4.1软件总体设计的目标和任务
4.2软件设计的概念和原理
4.2.1模块和模块化
4.2.2抽象
4.2.3信息隐蔽和局部化
4.2.4模块独立性及其度量
4.3软件结构设计准则
4.4软件结构设计的图形工具
4.4.1软件结构图
4.4.2层次图
4.4.3HIPO图
4.5结构化设计方法
4.5.1数据流图的类型
4.5.2结构化设计方法的步骤
4.5.3变换型分析设计
4.5.4事务型分析设计
4.6习题
第5章软件详细设计
第6章软件编码
第7章软件测试
第8章软件维护
第2篇UML与面向对象的软件工程
第9章UML简介
第10章面向对象的概念
第11章对象设计模式
第12章面向对象的软件开发过程
第13章软件开发工具Rose
第14章Rose及其应用
第15章面向对象的软件体系结构
第16章软件工程新技术
第3篇软件工程实验
第17章软件工程实验大纲
附录
参考文献
书摘插图
第1篇 面向过程的软件工程
第1章软件危机、软件工程
“软件工程”一词是由北大西洋公约组织(North Atlantic Treaty Organization,NlATO)的计算机科学家在联邦德国召开的国际会议上首次提出来的。产生软件工程这门学科的时代背景是“软件危机”。软件工程的发展和应用不仅缓和了软件危机,而且促使一门新兴的工程学科诞生了。
1.1 软件工程的发展史
软件工程是随着计算机系统的发展而逐步形成的计算机科学领域中一门新兴的学科。软件工程的发展经过了三个时代。
1.1.1程序设计时代
1946年到1956年为程序设计时代,在这个时代,人们用很大力气研究和发展计算机硬件,经历了从电子管计算机到晶体管计算机的变革,然而对计算机软件的研究和发展却不够重视。当时,由于硬件的价格昂贵,运行速度低,内存容量小,所以,当时的程序员非常强调“程序设计技巧”,把缩短每一一个微秒的CPU时间和节省每一个二进制存储单元,作为程序设计的重要目标。但设计的程序难读、难懂、难修改。
1.1.2程序系统时代
1956年到1968年为程序系统时代,或者称为“程序+说明”时代。在这个时代,硬件经历了从晶体管计算机到集成电路计算机的变革,CPu速度和内存容量都有了很大的提高,从而为计算机在众多领域中的应用提供了潜在的可能性。这个时代的另一个重要特征是出现了“软件作坊”。这是因为随着计算机应用的普及和深化,需要的软件往往规模相当庞大,以致单个用户无法开发,此外,许多不同的部门和企业往往需要相同或者类似的软件,各自开发就会浪费很大的人力。在这种形势下,“软件作坊”就应运而生了。不过这个时代的开发方法基本上沿用了程序设计时代的开发方法,但开始提出了结构化的方法。随着计算机应用的日益普及,软件需求量急剧增长,用户的需求和使用环境发生变化时,软件可修改性很差,往往需要重新编制程序,其研制时间很长,不能及时满足用户要求,质量得不到保证,开发人员的素质和落后的开发技术不适应规模大、结构复杂的软件开发,因此,产生了尖锐的矛盾,所谓的“软件危机”便由此产生了。
……