第一图书网

软件工程与建模

王长元,赵莉,王淑蓉 编著 西安交通大学出版社
出版时间:

2010-8  

出版社:

西安交通大学出版社  

作者:

王长元,赵莉,王淑蓉 编著  

页数:

259  

前言

  21世纪是信息社会高速发展的时代,软件作为信息技术的核心起着至关重要的作用。面对计算机日益广泛的应用需求,研究如何更快、更好、更经济地开发出相应的软件,是软件开发技术及软件工程师所面临的问题。为摆脱软件危机,软件工程学从60年代末期开始迅速发展起来,现在已成为计算机科学技术的一个重要分支。20世纪90年代以来,软件工程不仅从方法论的角度为管理人员和开发人员提供可见的结构和有序的思考,而且大量成功软件总结出的设计经验,使软件开发人员可以充分利用设计模式、框架和组件等。  软件工程是高等学校计算机教学计划中的一门核心课程,所涉及的范围非常广泛,其主要内容包括支持软件开发和维护的理论、方法、技术、标准等。这些内容对软件研制人员、软件项目管理人员都是十分重要的。本书通过对基本概念、基本原理、基本技术、基本方法的讲解,使读者能很快运用软件工程方法和技术开发软件。  由于设计面向对象软件比较困难,设计可复用的面向对象软件就更困难。而设计模式可使人们更加方便地复用成功的设计和体系结构。设计模式帮助设计者作出有利于系统复用的选择,避免设计损害了系统复用性。鉴于此目的,在面向对象部分,我们编写了一些重要的设计模式。  软件系统的开发方法经历了面向过程的开发方法、面向对象的开发方法、基于组件的开发方法和面向服务架构的开发方法。从软件系统开发的方法可以看出抽象思维的重要性。其中抽象角度与抽象层次是软件建模中的关键思想。软件工程通过建模处理复杂性,即通过在任何特定的时间关注本质细节,而忽视次要方面等细节进行建模。在开发中,软件工程师构造许多系统和应用领域的不同模型。在本教材中,对软件建模的要求与目的,建模的方法与建模应用进行了介绍。体现软件工程是一个建模活动的主题思想。  全书共十一章。第1章是对软件工程的概述,第2章到第7章按照传统软件生命周期的过程对可行性研究、需求分析、总体设计、详细设计、编码和测试技术进行了介绍,并在第4章增加了软件体系结构基础的介绍,第8章到第9章是对面向对象概念及面向对象的分析和设计的介绍,第10章介绍软件系统建模,第11章介绍目前的建模标准一一UML技术。与同类软件工程教材的区别在于本教材把软件系统建模的原理与方法、软件体系结构、设计模式有机的引入教学过程中。

内容概要

本书全面系统地讲述了软件工程的概述、可行性研究、需求工程、软件体系结构基础、软件设计、软件编码、软件测试、面向对象技术、软件系统建模、统一建模语言(UML)等内容。与同类软件工程教材的区别在于本教材把软件系统建模的原理与方法、软件体系结构、设计模式有机地引入教学内容过程中。 本书可作为高等院校“软件工程”课程的教材或教学参考书,也可供有一定实践经验的软件工作人员和需要开发应用软件的广大计算机用户阅读参考

书籍目录

前言第1章 软件工程概述 1.1 软件概论 1.1.1 软件的发展历史 1.1.2 软件的概念和特点 1.1.3 软件的分类 1.1.4 软件危机 1.2 软件工程与软件过程 1.2.1 软件工程的概念 1.2.2 软件工程项目的基本目标 1.2.3 软件工程学的原则 1.2.4 软件过程与软件生存周期 1.2.5 常见的软件开发模型 小结 习题1第2章 可行性研究 2.1 可行性研究的任务 2.2 可行性研究的具体步骤 2.3 系统流程图 2.3.1 系统流程图的作用 2.3.2 系统流程图的符号 2.3.3 系统流程图的例子 2.4 成本/效益分析 小结 习题2第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.2.6需求管理 3.3 分析建模 3.3.1 分析模型 3.3.2 数据字典 3.3.3 结构化分析过程 3.4 软件原型 3.4.1 原型的定义和作用 3.4.2 抛弃式原型和演化式原型 3.4.3 为何要采用原型法 小结 习题3第4章 软件体系结构基础 4.1 软件体系结构的概念 4.1.1 构件与软件重用 4.1.2 什么是软件体系结构 4.1.3 软件体系结构设计原则 4.1.4 软件体系结构的现状及发展方向 4.2 通用的软件体系结构 4.2.1 主机/终端结构 4.2.2 两层结构——客户/服务器体系结构 4.2.3 浏览器/服务器结构 4.2.4 三层C/S结构 4.2.5 三层C/S结构应用实例 小结 习题4第5章 软件设计 5.1 软件概要设计的基本任务 5.2 软件设计的过程 5.2.1 软件设计在开发阶段的重要性 5.2.2 软件设计的过程 5.3 软件设计的原则 5.4 有效的模块设计 5.5 结构化设计方法(structured design,SD) 5.5.1 在系统结构图(SC)中的模块 5.5.2 变换流与变换型系统结构 5.5.3 事务型系统结构图 5.5.4 变换映射 5.5.5 事务映射 5.5.6 注意“黑箱”技术的使用 5.6 数据设计和文件设计 5.6.1 数据设计的原则 5.6.2 文件设计的过程 5.7 设计规格说明与设计评审 5.8 详细设计 5.8.1 详细设计的任务和原则 5.8.2 详细设计的描述工具 5.8.3 程序复杂程度的定量度量 5.8.4 设计复审 小结 习题5第6章 编码 6.1 程序设计语言 6.1.1 程序设计语言分类 6.1.2 程序设计语言的特点 6.1.3 程序设计语言的选择 6.2 编码风格 6.2.1 源程序文档化 6.2.2 数据说明 6.2.3 语句构造 6.2.4 输入/输出 6.3 程序效率 6.3.1 算法对效率的影响 6.3.2 影响存储器效率的因素 6.3.3 影响输入/输出的因素 小结 习题6第7章 测试 7.1 测试的基本概念和原则 7.1.1 测试的必要性 7.1.2 测试的概念 7.1.3 测试的目的 7.1.4 测试复杂性 7.1.5 测试的基本原则 7.2 测试步骤 7.2.1 测试过程 7.2.2 测试的步骤 7.3 设计测试方案 7.3.1 白盒法测试的基本技术 7.3.2 黑盒法测试的基本技术 7.4 单元测试 7.4.1 单元测试的内容 7.4.2 单元测试步骤 7.5 集成测试 7.5.1 非增式组装测试 7.5.2 增式组装测试 7.6 确认测试 7.6.1 测试内容 7.6.2 测试步骤 7.7 自动测试工具 7.7.1 测试数据生成程序 7.7.2 静态生成程序 7.7.3 动态分析程序 7.7.4 文件比较程序 7.8 软件可靠性 7.8.1 基本概念 7.8.2 估算MTTF的方法 小结 习题7第8章 面向对象技术 8.1 面向对象的概念 8.1.1 对象 8.1.2 类 8.1.3 封装 8.1.4 继承 8.1.5 接口 8.1.6 消息 8.1.7 结构与连接 8.1.8 多态性 8.2 面向对象概念举例 8.2.1 静态字段和方法 8.2.2 属性 8.2.3 类中的继承和重载 8.2.4 接口 8.2.5 委托 小结 习题8第9章 面向对象分析与设计 9.1 面向对象分析(OOA) 9.1.1 论域分析 9.1.2 应用分析 9.2 对象模型技术 9.2.1 对象模型 9.2.2 动态模型 9.2.3 功能模型 9.3 面向对象设计(OOD) 9.3.1 类设计的目标和方针 9.3.2 通过复用设计类 9.4 设计模式 9.4.1 设计模式概述 9.4.2 设计模式实例 9.4.3 如何使用设计模式 小结 习题9第10章 信息系统建模 10.1 建模方法论 10.1.1 建模与仿真的基本概念 10.1.2 建模过程 10.1.3 建模方法 10.1.4 建模步骤 10.2 传统的软件开发所面临的问题 10.2.1 传统软件开发面临软件危机的问题 10.2.2 软件系统开发的方法思想发展 10.3 软件建模 10.3.1 软件建模的要求与目的 10.3.2 传统建模方法的局限性 10.3.3 软件工程与建模的关系 10.3.4 建模要素 10.4 软件建模应用 10.4.1 从现实世界到业务模型 10.4.2 从业务模型到概念模型 10.4.3 从概念模型到设计模型 小结 习题10第11章 统一建模语言(UML) 11.1 UML简介 11.1.1 UML的产生和成长 11.1.2 UML的定义及目标 11.2 UML语言概述 11.2.1 视图(views) 11.2.2 图(diagram) 11.2.3 模型元素 11.2.4 通用机制 11.2.5 UML建模工具 11.3 用例建模 11.3.1 用例图 11.3.2 参与者 11.3.3 用例 11.4 类与对象建模 11.4.1 类和对象 11.4.2 类图和对象图 11.4.3 关系 11.4.4 约束和派生(规则) 11.4.5 包 11.4.6如何确定类 11.5 动态建模 11.5.1 消息(massage) 11.5.2 状态图(state diagram) 11.5.3 顺序图(sequence diagram) 11.5.4 协作图(collaboration diagram) 11.5.5 活动图(activity diagram) 11.6 物理体系结构建模 11.6.1 逻辑体系结构 11.6.2 物理体系结构 11.6.3 构件图 11.6.4 部署图 11.7 使用UML的过程 11.7.1 软件工程的过程概念 11.7.2 Rational的统一过程 小结 习题11参考文献

章节摘录

  1.早期阶段  在计算机发展的早期阶段,人们认为计算机的主要用途是快速计算,软件编程简单,不存在什么系统化的方法,开发过程没有任何管理,程序的质量完全依赖于程序员个人的技巧。  2.第二阶段  计算机软件发展的第二阶段跨越了从60年代中期到70年代末期的十余年,多用户系统引入了人机交互的新概念,实时系统能够从多个源收集、分析和转换数据,从而使得进程的控制和输出的产生是以毫秒而不是分钟来进行,在线存储的发展产生了第一代数据库管理系统。  在这个时期,出现了软件产品和“软件作坊”的概念,设计人员开发程序不再像早期阶段那样只为自己的研究工作需要,而是为了用户更好地使用计算机,人们开始采用“软件工程”的方法来解决“软件危机”问题。  3.第三阶段  计算机软件发展的第三阶段始于20世纪70年代中期,分布式系统极大地提高了计算机系统的复杂性,网络的发展对软件开发提出了更高的要求,特别是微处理器的出现和广泛应用,孕育了一系列的智能产品。软件开发技术的度量问题受到重视,最著名的有软件工作量估计COCOM0模型、软件过程改进模型CMM等。  4.第四阶段  计算机软件发展的第四阶段是强大的桌面系统和计算机网络迅速发展的时期,计算机体系结构由中央主机控制方式变为客户机/服务器方式,专家系统和人工智能软件终于走出实验室进人了实际应用,虚拟现实和多媒体系统改变了与最终用户的通讯方式,出现了并行计算和网络计算的研究,面向对象技术在许多领域迅速取代了传统软件开发方法,人们现在又向高层次迈进,开始研究服务计算与云计算的关键技术和方法。  在软件的发展过程中,软件从个性化的程序变为工程化的产品,人们对软件的看法发生了根本性的变化,从“软件-程序”发展为“软件-程序+数据+文档”及软件变服务。软件的需求成为软件发展的动力,软件的开发从自给自足模式发展为可以在市场中流通以满足广大用户的需要。软件工作的考虑范围也发生了很大变化,人们不再只顾及程序的编写,而是涉及到软件的整个生命周期。


图书封面

广告

下载页面


软件工程与建模 PDF格式下载



相关图书