超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

不再提示
关闭
图书盲袋,以书为“药”
欢迎光临中图网 请 | 注册
> >
软件工程与设计模式

软件工程与设计模式

作者:白文荣
出版社:清华大学出版社出版时间:2022-08-01
开本: 16开 页数: 396
中 图 价:¥39.1(6.3折) 定价  ¥62.0 登录后可看到会员价
加入购物车 收藏
运费6元,满39元免运费
?新疆、西藏除外
本类五星书更多>

软件工程与设计模式 版权信息

  • ISBN:9787302457145
  • 条形码:9787302457145 ; 978-7-302-45714-5
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 所属分类:>

软件工程与设计模式 本书特色

软件工程是软件开发组织根据所要开发的软件特点及项目自身的特点,选择适合的软件设计模式,把各种软件工程学原理的特性和软件设计模式有机地结合起来,充分利用它们的优点,回避缺陷,有效地提高软件质量的过程。 本书是软件开发方法体系的完整体现,有别于传统软件工程学,增加了许多实际软件开发过程中需要的实用方法技术,填补了传统软件工程的设计薄弱环节。

软件工程与设计模式 内容简介

本书是作者在多年从事软件工程、软件设计模式课程教学实践基础上编写的。全书共分为8章,通过大量的实例,介绍了实用软件工程学的原理及设计模式的相关知识,根据软件开发“工程化”思想,系统地讲授了软件工程学、软件设计过程、23种先进的设计模式、软件测试方法、软件项目管理、应用技术和实用工具等相关知识。全书采用社会所需实际案例为基线,以案例、项目式教学思路贯穿始终,根据需要安排了多个任务和子任务,读者可以通过实践掌握课程所学内容。书后配有适量的思考题和练习题,使读者能够在学习过程中提高操作能力和实际应用能力。 本书可作为高等院校学生学习软件工程、软件设计模式、软件体系结构设计等课程的教材,也可以作为读者自学的参考书。

软件工程与设计模式 目录

目录

项目1 软件工程概述 1

任务1 问题的提出 3

任务2 软件工程概述 8

任务3 面向对象的几个基本原则 11

任务4 软件项目的生命周期 13

任务5 软件项目的开发模型 15

任务6 软件工程学的基本原则 24

上机实训:机票预订系统 26

项目小结 27

习题 27

项目2 软件设计过程 29

任务1 洞悉软件设计过程 30

任务2 面向对象软件设计工具UML 32

任务3 软件设计过程管理 54

上机实训:商品销售系统 60

项目小结 61

习题 61

项目3 软件设计模式 63

任务1 创建型模式 64

任务2 结构型模式 92

任务3 行为型模式 135

上机实训:小动物模式的应用 212

项目小结 213

习题 213

项目4 设计模式案例 217

任务1 命令模式 218

任务2 观察者模式 220

任务3 装饰模式 224

任务4 策略模式 226

任务5 适配器模式 229

任务6 责任链模式 231

任务7 外观模式 234

任务8 迭代器模式 236

任务9 中介者模式 238

任务10 工厂方法模式 241

任务11 抽象工厂模式 244

任务12 生成器模式 248

任务13 原型模式 251

任务14 单件模式 254

任务15 组合模式 255

任务16 桥接模式 259

任务17 状态模式 261

任务18 模板方法模式 264

任务19 代理模式 266

任务20 享元模式 268

任务21 访问者模式 271

任务22 备忘录模式 274

任务23 解释器模式 278

上机实训:工厂方法模式的应用 283

项目小结 283

习题 283

项目5 面向对象技术概述 287

任务1 传统方法学 288

任务2 面向对象方法学 296

任务3 面向对象程序设计语言 301

上机实训:学校运动会模型 307

项目小结 308

习题 309

项目6 软件测试方法 311

任务1 软件测试概述 312

任务2 软件测试方法 316

任务3 软件测试管理 331

任务4 测试工具简介 338

上机实训:软件测试方法 345

项目小结 346

习题 347

项目7 设计模式的原则和分类 349

任务1 设计模式的原则 350

任务2 设计模式的分类 351

上机实训:观察者模式 355

项目小结 356

习题 356


项目8 软件项目管理 357

任务1 软件项目管理导论 358

任务2 项目管理流程及方法 362

上机实训:项目管理工具Project 2010的

应用 376

项目小结 380

习题 380

参考文献 385


展开全部

软件工程与设计模式 节选

项目2 软件设计过程 项目导入 软件工程是一种建模活动和解决问题的活动,也是一种知识获取的活动。在对应用域和解决方案域进行建模时,软件工程师收集数据,将这些数据转化为信息,并将这些信息形式化为知识。对知识的获取不是线性的,因为单个多余数据就能让整个模型变得无效。软件开发分为分析、设计、实现三个环节,分析就是获取项目需求,设计就是根据整理后的项目需求进行合理、准确、完善的项目设计,实现就是使用软件开发工具实现软件设计方案等。 项目分析 本项目以先进的面向对象方法学为开发基线,讲解了软件设计过程的基本原理、软件设计建模工具UML(统一建模语言)及其操作工具PowerDesigner、Violet的安装使用方式等,*后通过饮料自动售货机系统的设计,总结了软件设计全过程。 任务1 洞悉软件设计过程 任务要求 根据软件工程生命周期及项目内容确定软件设计过程原理,介绍软件设计过程中需遵守的规则及相关概念。 知识储备 软件工程是一种建模活动。软件工程师通过建模来处理复杂性,以做到每次只专注于相关联的细节而忽略其他一切因素。在开发过程中,软件工程师要构建许多不同的系统模型以及应用域模型。 软件工程是一种解决问题的活动。模型用于寻找一种可接受的解决问题的方法,而这种寻找方法受实验的驱动。软件工程师没有无限可用的资源,并且会受到预算的限制和提交的*后期限的限制。由于缺乏基本理论,他们通常得依靠实验方法来评价各种可选方案的优劣。 软件工程是一种知识获取的活动。在对应用域和解决方案域进行建模时,软件工程师收集数据,将这些数据转化为信息,并将这些信息形式化为知识。 软件工程的传统方法将结构化分析和结构化设计人为地分离成两个独立的部分,将描述数据对象和描述作用于数据上的操作看成两个独立的部分分别进行处理。实际上,数据和对数据的处理是密切相关、不可分割的,分别处理会增加软件开发和维护的难度。 面向对象方法是1979年以后发展起来的,是当前软件工程方法的主要方向,也是目前*有效、*实用和*流行的软件开发方法之一。面向对象方法是在汲取结构化方法的思想和优点的基础上发展起来的,是对结构化方法的进一步发展和扩充。 面向对象方法是一种将数据和处理相结合的方法。面向对象的设计(英文缩写为OOD)与结构化设计有很大的不同,面向对象的设计是在面向对象的分析(英文缩写为OOA)的基础上,对OOA模型逐渐扩充的过程。OOD和OOA采用相同的符号表示,OOD和OOA没有明显的分界线,它们往往反复迭代地进行。 在面向对象的设计(OOD)时,主要解决系统如何做,因此需要在面向对象的分析(OOA)的模型中为系统的实现补充一些新的类,或在原有类中补充一些属性和操作。OOD时应能从类中导出对象,以及知道这些对象如何互相关联,还要描述对象间的关系、行为以及知道对象间的通信如何实现的等。 任务实施 在面向对象的软件开发过程中,面向对象的设计往往要经历三个阶段:需求分析、系统分析和系统设计等。 1. 需求分析 需求分析阶段所需要解决的问题是从"用户"的角度说明系统即将"做什么"。 软件开发是一个专业领域的人(软件开发人员)在为另一个专业领域的人(行业用户)服务的活动行为。用户了解他们所面对的问题,知道必须做什么,但是通常不能完整准确地表达出他们的要求,更不知道怎样利用计算机解决他们的问题。软件开发人员知道怎样用软件实现客户的要求,但是对特定用户的具体要求并不完全清楚。因此,系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,与用户达成共识。 需求分析阶段的两个任务是捕获需求和分析整理需求,需求分析阶段确定的系统模型是以后设计和实现目标系统的基础,必须准确完整地体现用户的要求。这个阶段的一项重要任务是用正式文档准确地记录对目标系统的需求,即规格说明书。需求分析是否准确对软件项目的成败将会产生重要影响。 2. 系统分析 系统分析阶段所需要解决的问题是从"开发者"的角度来描述系统需要"做什么"。它从系统的角度来看待软件应该为用户提供的服务,进行逻辑上的分析,独立于具体的程序语言,得到相应的逻辑模型即系统分析模型。 3. 系统设计 系统设计阶段所需要解决的问题是从"开发者"的角度来描述系统需要"怎么做"。因此,需要考虑具体的实施方式,包括技术方案的选择、软件的部署、模式的运用、框架的使用等。 面向对象的系统设计又分为总体设计和详细设计两个子阶段。在总体设计子阶段主要重点放在解决系统高层次问题上,如将系统分析模型如何划分成子系统、选择构造系统的策略等,通常在面向对象的设计中把它称为系统总体设计阶段。在详细设计阶段主要解决系统的一些细节问题,如类、关联、接口的形式及实现服务的算法等,通常在面向对象的设计中把它称为系统对象设计阶段。 任务2 面向对象软件设计工具UML 任务要求 掌握面向对象软件设计过程的原理及相关概念,熟练掌握统一建模语言UML,并且能够自行设计UML模型。 知识储备 统一建模语言(Unified Modeling Language,UML)是由Jim Rumbaugh、Grady Booch、Ivar Jacobson 提出的一种定义良好、易于表达、功能强大且普遍适用的建模语言。它是一种构建软件系统和文档的通用可视化建模语言。UML能与所有的开发方法一同使用,可用于软件开发的整个生命周期。 UML能表达系统的静态结构和动态信息,并能管理复杂的系统模型,便于软件团队之间的合作开发。UML不是编程语言,但支持UML语言的工具可以提供从UML到各种编程语言的代码生成,也可以提供从现有程序逆向构建UML模型等。UML并不是万能的,它是一种离散的建模语言,对于特定的领域,比如GUI、VLSI电路设计或基于规则的人工智能,用特定的语言和工具可能更合适。 UML不是完整的开发方法,它不包括逐步的开发流程,但它提供所有必要的概念,具备足够的表达能力,UML的目标是能尽量简洁地表达系统的模型。 1. UML的历史 UML是在多种面向对象建模方法的基础上发展起来的建模语言,它的演化可以划分为以下四个阶段,*初的阶段是专家的联合行动,由三位OO(面向对象)方法学家Grady Booch、Jim Rumbaugh和Ivar Jacobson将他们各自的方法结合在一起,形成UML0.9;第二阶段是公司的联合行动,由十几家公司组成的"UML伙伴组织"将各自的意见加入UML,形成UML1.0和UML 1.1,并作为向OMG(对象管理组织)申请成为建模语言规范的提案;第三阶段是在OMG控制下的修订与改进,出台UML1.1作为建模语言规范;第四阶段是做出重大修订后于2003年推出UML2.0,此时UML得到了广泛认可和使用。UML是许多人共同努力的结果,是集体智慧的结晶。 2. UML的特点 统一建模语言UML的特点如下。 (1) 易于使用,表达能力强,能够进行可视化建模。 (2) 与具体的软件开发过程无关,可应用于任何软件开发的过程。 (3) 使用简单、可扩展。扩展无须对核心概念进行修改。 (4) 为面向对象的设计和开发过程中涌现出的高级概念(例如协作、框架、组件)提供支持。 (5) 吸收当代*好的软件工程实践经验。 (6) 工具可以升级,具有广阔的适用性和可用性。 (7) 有利于面向对象工具的市场成长。 3. UML概念的范围 UML概念的范围可以划分为以下八个方面。 (1) 系统需求:又称用例视图,它是从外部用户的角度来描述系统的行为,它将系统功能划分为对用户有意义的事务,这些事务被称为用例,用户被称为执行者,用例视图也就是描述活动者在各个用例中的参与情况,它指导所有的行为视图。 (2) 静态结构:又称静态视图,定义各种事物的内部特征和相互之间的关系,应用概念建模成类,类描述事物的属性和操作,类之间可以存在不同的关系,比如泛化(继承)、关联和依赖等。静态视图表示成类图,静态视图在某一时刻的快照称为对象图。 (3) 动态行为:使用状态机视图或活动视图来表示系统对象的动态行为。其中的状态机视图,通过对每个类的对象的生命周期进行建模,描述单个对象在时间上的动态行为和移动状态。状态机是由状态和迁移组成的图,状态机通常附属于类,描述类实例对接受事件的响应。活动视图是利用状态机对运算和工作流进行建模的特殊形式。活动视图的状态代表了运算执行的状态,而非一般对象的状态,活动视图和流程图很相似,不同之处是活动视图支持并发行为。 (4) 交互行为:又称交互视图,它通过对象间协作来进行建模,协作具有结构和行为两个方面,结构包含一系列角色和关系,行为包含绑定于角色对象间的一系列交换的消息等,这些消息在协作中称为交互,消息序列可用两种图来表示:顺序图(重点在消息的时间顺序)和协作图(重点在交换消息的对象间的关系)。 (5) 物理实现:又称物理视图,许多系统模型独立于*终的实现,在实现方面,必须充分考虑系统的重用性。UML有两种视图来表示系统的实现,分别是实现视图和部署视图,实现视图将可重用的系统片段打包成组件,部署视图描述系统运行时资源的物理分布情况。 (6) 各种视图之间的关系:静态视图(类图、对象图)和物理视图(实现视图、部署视图)是描述系统的静态结构的,用例视图是描述系统的外部视图的,活动视图是描述系统的外部/内部视图结构的,交互视图(顺序图、协作图)是描述系统的内部视图结构的,而状态机视图描述单个类的动态行为等。 (7) 模型组织:任何大系统都必须划分为较小的单元,以使人们能在某一时刻只接触有限的信息,而不影响团队间的并行工作。模型是利用包和包的依赖来进行管理的。包是UML模型中通用的层次组织结构,包上的依赖总结了包内容的依赖关系。 (8) 扩展机制:UML能满足绝大部分系统建模的需要,但任何语言都不是万能的,它必须考虑一定的扩展机制,UML的扩展机制包括约束、标签值和原型等。这些扩展机制可以用来为特定领域剪裁UML的配置,使得设计人员根据自身需要来选取建模语言。 在面向对象的系统开发过程中,每个阶段都要建造不同的模型。需求分析阶段建造的模型用来捕获系统需求信息;设计阶段的模型是分析模型的扩充,为实现阶段作指导性和技术性的解决方案;实现阶段的模型是真正的源代码及编译后的组件;发布阶段是描述系统物理上的架构等。 4. UML的内容 统一建模语言UML包含三方面的内容 (1) UML基本图素:它是构成UML模型图的基本元素。 (2) UML模型图:它是由UML基本图素按照UML建模规则构成的若干种图。 (3) UML建模规则:UML模型图必须按特定的规则组合,从而构成一个有机的、完整的UML模型图。 一个模型必须首先定义各种事物的内部特征和相互之间的关系,下面详细介绍UML的模型图素。 1) 基本图素--角色 角色是与系统、子系统或类交互的外部人员、进程或事务,符号如图2-1所示。在运行时,具体人员会充当系统的多个执行者,不同用户可能会成为一个执行者。 2) 基本图素--用例 用例是系统提供的外部可感知的功能单元,用例的目的是定义清晰的系统行为,但不解释系统的内部结构。 用例可以与角色关联,也可以参与其他的多种关系,比如扩展、泛化和包含等关系。 用例用椭圆来表示,符号如图2-2所示,用例名标在椭圆的下方或内部,用实线与自身通信的角色相连。 3) 基本图素--系统 系统也叫作系统边界,用于界定系统功能范围。它用一个矩形框表示,符号如图2-3所示。描述该系统功能的用例都置于其中,而描述的内容与系统交互的角色都置于其外。 注:系统(边界)常常省略不画。

商品评论(0条)
暂无评论……
书友推荐
本类畅销
编辑推荐
返回顶部
中图网
在线客服