出版时间:2010-2 出版社:机械工业出版社 作者:郑人杰,马素霞,殷人昆 编著 页数:356
Tag标签:无
前言
当今,软件业是社会经济发展的先导性和战略性产业,它已成为信息产业和国民经济新的增长点和重要支柱。软件工程在软件开发中起着重要的作用,对软件产业的形成及发展起着决定性的推动作用。采用先进的工程化方法进行软件开发和生产是实现软件产业化的关键技术手段。与其他产业相比,软件产业具有自己的特殊性。软件产业的发展更加依赖于人力资源,因此软件产业的竞争越来越集中到对人才的竞争。然而,刚毕业的大学生往往要经过半年到一年的培训才能适应软件企业的工作。长期以来,我国软件人才的现状远远不能满足软件产业发展的要求。因此,软件工程人员队伍的成长,特别是高层软件工程人员队伍的成长显得更为紧迫。自从软件工程概念诞生以来,学术界和工业界做了大量的研究与实践工作,也取得了许多重要成果。尤其是上个世纪90年代以后,随着网络技术及面向对象技术的广泛应用,软件工程取得了突飞猛进的发展。软件工程已从计算机科学与技术中脱离出来,逐渐形成了一门独立的学科。软件工程教育所处的地位也越来越重要。软件工程课程是实践性比较强的课程,如果学生没有实践经验,则很难理解相关的理论知识。因此,教师普遍感到软件工程课程难教,而学生则普遍感到难学。近年来,软件工程学科的发展非常迅速,新的理论、方法和工具层出不穷,其中很多已经应用到企业的实际工作中。软件工程的教学面临越来越大的压力。我们认为,除了需要在教学内容、教学方法方面进行改革之外,实践能力的培养对于建设一支企业需要的合格软件工程人才队伍显得更为关键。我们在编写中力图遵循如下原则:(1)既要强调和突出基本概念、基本方法,又要尽可能使材料内容的组织符合学生的认识规律,在讲解理论的过程中尽量结合实例,并注重软件工程方法、技术和工具的综合应用,避免讲解抽象和枯燥。(2)在兼顾传统的结构化方法的同时,注重当前广为采用的面向对象方法。紧密结合当前技术的新发展,在阐述理论知识的同时侧重实用性。(3)既要充分重视技术性内容,使其作为初学者必须掌握的知识,同时也要兼顾软件工程实践中必不可少的管理知识。总之,本书力争做到结构合理、内容丰富,讲解由浅入深,既体现知识点的连贯性、完整性,又体现其在实际中的应用。
内容概要
本书既强调和突出基本概念、基本方法,又使内容的组织符合学生的认识规律,在讲解理论的过程中尽量结合实例,并注重软件工程方法、技术和工具的综合应用,避免抽象和枯燥的论述。在兼顾传统的结构化方法的同时,注重当前广为采用的面向对象方法。紧密结合当前技术的新发展,在阐述理论知识的同时侧重实用性。既充分重视技术性内容,便于初学者掌握必要的知识和技能,同时也兼顾软件工程实践中必不可少的基本管理知识。 本书结构合理、内容丰富,讲解由浅入深,既体现知识点的连贯性、完整性,又突出了相关知识在实际中的应用。适合作为计算机科学与技术、软件工程等专业的本科生教材。
作者简介
郑人杰,清华大学教授,清华同方股份有限公司顾问,现任中国软件行业协会理事、系统与软件过程改进分会常务副会长。1961年于清华大学毕业后留校任教,多年来教学、科研工作围绕着软件工程领域,近年注重于软件质量及软件过程改进。编著有《实用软件工程》、《计算机软件测试技术》、《基于软件能力成熟度模型(CMM)的软件过程改进》等。马素霞,华北电力大学计算机科学与技术系教授。1989年获清华大学计算机系工学硕士学位,毕业后一直从事计算机软件方面的教学及研究工作,2001年赴加拿大卡尔顿(Carleton)大学计算机科学系做访问学者,主要研究方向为软件工程、数据库与信息系统。殷人昆,清华大学计算机系教授。1970年清华大学计算数学专业毕业,1980年获清华大学计算机系工学硕士学位,1985年赴日本东京理科大学做访问学者,研究方向为软件工程过程的质量管理和软件产品的质量评价。主要讲授大学本科“数据结构”、“软件工程”和研究生“软件工程”、“软件项目管理”,其中,本科“数据结构”和工程硕士“软件工程”是清华大学精品课程,此外还主持了教育部-微软精品课程“数据结构”的建设。
书籍目录
出版者的话序言前言教学建议第一部分 软件工程概述 第1章 软件与软件工程的概念 1.1 软件的概念、特性和分类 1.1.1 软件的概念及特性 1.1.2 软件的分类 1.2 软件危机与软件工程 1.2.1 软件危机 1.2.2 软件工程 1.3 系统工程的目标 1.4 软件生存期 1.5 软件生存期模型 1.5.1 瀑布模型 1.5.2 快速原型模型 1.5.3 增量模型 1.5.4 螺旋模型 1.5.5 喷泉模型 1.5.6 统一过程 1.6 软件工程知识体系及知识域 习题 第2章 软件工程方法与工具 2.1 软件工程方法概述 2.1.1 传统方法 2.1.2 面向对象方法 2.1.3 形式化方法 2.2 面向对象的概念与开发方法 2.2.1 对象 2.2.2 类与封装 2.2.3 继承 2.2.4 多态 2.2.5 消息通信 2.2.6 面向对象的软件开发方法 2.3 统一建模语言UML简介 2.3.1 UML的产生和发展 2.3.2 UML的特点 2.4 软件工具概述 2.4.1 软件工具的概念 2.4.2 软件工具的发展 2.4.3 软件工具的分类 2.4.4 常用软件工具介绍 2.5 UML建模工具Rational Rose 2.5.1 Rose的特点 2.5.2 Rose简介 2.5.3 Rose的基本操作 习题第二部分 传统的软件开发方法 第3章 软件需求获取与结构化分析方法 3.1 需求获取与需求分析阶段的任务 3.1.1 需求获取的任务和原则 3.1.2 需求获取的过程 3.1.3 软件需求分析阶段的任务 3.2 结构化分析方法 3.2.1 功能建模 3.2.2 数据建模 3.2.3 行为建模 3.2.4 数据字典 3.2.5 加工规格说明 3.3 系统需求规格说明 3.3.1 软件需求规格说明模板 3.3.2 SRS和DRD的质量要求 3.4 需求评审 3.4.1 正式的需求评审 3.4.2 需求评审中的常见风险 3.5 需求管理 3.5.1 需求跟踪 3.5.2 需求变更管理 习题 …… 第4章 结构化设计方法 第5章 编码 第6章 软件测试方法第三部分 面向对象的软件开发方法 第7章 统一建模语言UML概述 第8章 面向对象分析 第9章 软件体系结构与设计模式 第10章 面向对象设计第四部分 软件维护与软件管理 第11章 软件维护 第12章 软件过程与软件过程改进 第13章 软件项目管理 第14章 软件工程标准及软件文档 习题参考文献
章节摘录
版权页:插图:(1)形态特性软件是无形的、不可见的逻辑实体。度量常规产品的几何尺寸、物理性质和化学成分对它是毫无意义的;但绝不会因此否定它的存在和降低它的价值。(2)智能特性软件是复杂的智力产品,它的开发凝聚了人们大量的脑力劳动,它本身也体现了知识、实践经验和人类的智慧,具有一定的智能。它可以帮助我们解决复杂的计算、分析、判断和决策问题。(3)开发特性尽管已经有了一些工具(也是软件)来辅助软件开发工作,但到目前为止尚未实现自动化。软件开发仍然包含了相当分量的个体劳动,使得这一大规模知识型工作充满了个人行为和个人因素。传统制造业的工艺都已经相当成熟,早已摆脱了手工作坊式的生产,而大规模采用自动化的生产。大多数的软件产品是根据用户的需求进行定制开发的个性化产品,虽然一直梦想软件的生产能够像硬件生产那样基于已有的零部件进行组装,但实现这一目标还有相当长的距离。(4)质量特性软件产品的质量控制存在着一些实际困难,难于克服,表现在以下方面:软件的需求在软件开发之初常常是不确切的,也不容易确切地给出,并且需求还会在开发过程中变更,这就使软件质量控制失去了重要的可参照物。软件测试技术存在不可克服的局限性。任何测试都只能在极大数量的应用实例数据中选取极为有限的数据,致使我们无法检验大多数实例,也使我们无法得到完全没有缺陷的软件产品。已经长期使用或多次反复使用的软件没有发现问题,但这并不意味着今后的使用也不会出现问题。这一特性提醒我们:一定要警惕软件的质量风险,特别是在某些重要的应用场合,需要提前准备好应对策略。(5)生产特性与硬件或传统的制造业产品的生产不同,软件一旦设计开发出来,如果需要提供给多个用户,它的复制十分简单,其成本也极为有限,正因为如此,软件产品的生产成本主要是设计开发的成本,同时也不能采用管理制造业生产的办法来解决软件开发的管理问题。(6)管理特性由于上述的几个特点,使得软件的开发管理显得更为重要,也更为独特。这种管理可归结为对大规模知识型工作者的智力劳动管理,其中包括必要的培训、指导、激励、制度化规程的推行、过程的量化分析与监督,以及沟通、协调,甚至是过程文化的建立和实施。(7)环境特性软件的开发和运行都离不开相关的计算机系统环境,包括支持它的开发和运行的相关硬件和软件。软件对于计算机系统的环境有着不可摆脱的依赖性。
图书封面
图书标签Tags
无
评论、评分、阅读与下载