书籍详情

面向对象软件工程

面向对象软件工程

作者:David C. Kung 著,牟永敏 邢颖 译

出版社:清华大学出版社

出版时间:2017-01-01

ISBN:9787302460947

定价:¥98.00

购买这本书可以去
内容简介
暂缺《面向对象软件工程》简介
作者简介
暂缺《面向对象软件工程》作者简介
目录
第1部分引言与系统工程第1章引言31.1什么是软件工程31.2为什么要用软件工程41.3软件生命周期行为51.3.1软件开发过程51.3.2软件质量保证81.3.3软件项目管理91.4面向对象的软件工程101.4.1面向对象的建模和设计语言101.4.2面向对象的开发过程101.4.3面向对象的开发方法111.4.4OO会取代传统的方法吗111.5软件工程和计算机科学11小结12深入阅读12章节复习问题13练习13第2章软件过程和方法142.1系统开发的挑战142.2软件过程152.3瀑布模型的优势和问题162.4软件开发是一个险恶问题162.5软件过程模型172.5.1原型过程182.5.2演化过程182.5.3螺旋模型182.5.4统一过程192.5.5个人软件过程202.5.6团队软件过程242.5.7敏捷过程262.6软件开发方法302.6.1过程和方法的区别302.6.2方法的好处312.6.3结构化方法322.6.4经典的面向对象方法322.7敏捷方法322.7.1动态系统开发方法(DSDM)342.7.2Scrum352.7.3特征驱动的开发352.7.4极限编程362.7.5敏捷还是计划驱动362.8本书中的过程和方法一览37小结41深入阅读41章节复习问题42练习42第3章系统工程433.1什么是系统433.2什么是系统工程443.3系统需求定义473.3.1识别业务需求473.3.2定义系统需求483.4系统结构设计483.4.1系统分解493.4.2需求分配513.4.3结构设计图523.4.4子系统功能和接口规格说明553.5子系统开发563.5.1面向对象的上下文图563.5.2面向对象的上下文图的用途573.5.3工程团队的协作583.6系统集成、测试和部署583.7系统配置管理58小结60深入阅读60章节复习问题60练习60第2部分分析和体系结构设计第4章获取软件需求654.1什么是需求获取654.2获取需求的重要性674.3获取需求的挑战674.4需求的类型684.5获取需求的步骤694.5.1收集信息704.5.2构建分析模型734.5.3获取需求和约束744.5.4需求规格标准774.5.5进行可行性研究774.5.6审查需求规格说明书774.6应用敏捷原则794.7需求管理和工具80小结81深入阅读81章节复习问题81练习82第5章领域建模845.1什么是领域建模845.2为什么要进行领域建模855.3面向对象和类图855.3.1外延定义和意向定义855.3.2类和对象865.3.3对象和属性875.3.4关联885.3.5多重性和角色895.3.6聚合905.3.7继承905.3.8继承和多态915.3.9关联类915.4领域建模的步骤935.4.1收集应用领域信息945.4.2头脑风暴945.4.3对头脑风暴结果分类955.4.4领域模型可视化985.4.5领域建模审查清单1025.5综合1035.6领域建模的方针1055.7应用敏捷原则1065.8领域建模的工具支持107小结108深入阅读109章节复习问题109练习109第6章架构设计1116.1什么是架构设计1116.2架构设计的重要性1126.3架构设计过程1126.3.1确定架构设计目标1136.3.2确定系统类型1146.3.3应用架构样式1176.3.4进行定制的架构设计1246.3.5明确子系统功能和接口1246.3.6审查架构设计1256.4架构样式和包图1256.5应用软件设计准则1266.5.1什么是软件设计准则1276.5.2为改变而设计1276.5.3关注点分离1286.5.4信息隐藏1296.5.5高内聚1296.5.6低耦合1296.5.7保持简单和直接1306.6架构设计的方针1316.7架构设计和设计模式1316.8应用敏捷原则132小结132深入阅读132章节复习问题133练习133第3部分交互式系统的建模和设计第7章从需求获取用例1377.1什么是参与者1377.2什么是用例1387.3业务过程、操作和活动1387.4从需求获取用例的步骤1407.4.1识别用例1407.4.2明确用例范围1467.4.3用例上下文可视化1477.4.4检查用例规约1517.4.5将用例分配给迭代1527.5导出用例的方针1537.6应用敏捷原则1557.7用例建模的工具支持155小结157深入阅读157章节复习问题157练习158第8章参与者系统交互建模1598.1什么是参与者系统交互建模1598.2参与者系统交互建模的重要性1608.3参与者系统交互建模的步骤1608.3.1初始化一个两列的表1618.3.2明确参与者系统交互的步骤1618.3.3检查参与者系统交互规约1618.4明确可替换的流1628.5使用用户界面原型1638.6不要显示异常处理1668.7用例的先决条件和后置条件1668.8包含其他用例1678.9用其他用例继续1678.10常见问题1688.11应用敏捷原则170小结170深入阅读171章节复习问题171练习171第9章对象交互建模1729.1什么是对象交互建模1729.2UML顺序图1739.2.1概念和表示法1739.2.2展示类的实例1739.2.3顺序图说明1749.2.4顺序图用于分析和设计1769.2.5正确使用表示方法1789.3对象交互建模的步骤1799.3.1收集业务过程的信息1809.3.2识别非普通步骤1809.3.3为非普通步骤书写场景1819.3.4构建场景表1839.3.5怎么写场景1839.3.6从场景表得到顺序图1889.3.7对象交互建模检查清单1949.4应用敏捷原则1959.5对象交互建模的工具支持197小结197深入阅读197章节复习问题197练习198第10章应用职责分配模式19910.1什么是设计模式19910.2为什么要用设计模式20010.3情景特定模式和职责分配模式20010.4模式规约20110.5控制器模式20210.5.1激励示例20210.5.2什么是控制器20410.5.3应用控制器模式20410.5.4控制器的类型20610.5.5跟踪记录用例状态 20610.5.6臃肿的控制器20710.5.7比较不同的设计20810.5.8何时应用控制器模式20910.5.9使用控制器的方针21010.6专家模式21010.6.1信息专家21010.6.2应用专家模式21110.6.3包含不止一个对象的专家模式21210.6.4何时应用专家模式21310.6.5使用专家模式的方针21310.7创建者模式21310.7.1什么是创建者21310.7.2应用创建者模式21410.7.3创建者模式的优势21510.7.4何时应用创建者模式215小结216深入阅读216章节复习问题216练习217第11章获取设计类图21911.1什么是设计类图22011.2设计类图的用途22011.3获取设计类图的步骤22111.3.1识别类22111.3.2识别方法22211.3.3识别属性22411.3.4类之间的关系22611.3.5识别关系22611.3.6设计类图检查清单22811.4用包图组织类22811.5应用敏捷原则23011.6设计类图的工具支持231小结231深入阅读231章节复习问题231练习231第12章用户接口设计23212.1什么是用户接口设计23212.2用户接口设计为什么重要23312.3图形用户接口组件23412.3.1容器组件23512.3.2输入、输出和信息展示组件23512.3.3使用GUI组件的方针23712.4用户接口设计过程23712.4.1案例研究: 为状态图编辑器设计用户接口23812.4.2识别系统主要显示方式23812.4.3生成布局设计草图24012.4.4明确交互行为24212.4.5构建原型24212.4.6用户评估用户接口设计24312.4.7用户接口设计检查清单24412.5设计用户支持功能24512.6用户接口设计的方针24512.7应用敏捷原则24712.8用户接口设计的工具支持247小结248深入阅读248章节复习问题248练习249第4部分其他类型系统的建模和设计第13章事件驱动系统的对象状态建模25313.1什么是对象状态建模25313.2为什么要进行对象状态建模25413.3基本定义25413.4对象状态建模的步骤25513.4.1收集和分类状态行为信息25613.4.2构建领域模型来展示上下文25813.4.3构建状态迁移表26013.4.4状态迁移表的用途26113.4.5将状态迁移表转换为分析状态图26213.4.6将分析状态图转换为设计状态图26413.4.7状态建模检查清单26513.5状态模式26513.5.1约定的方法26513.5.2什么是状态模式26613.5.3应用状态模式26613.6实时系统的建模与设计26913.6.1转换图式27013.6.2定时状态机27113.6.3中断处理27213.7应用敏捷原则27313.8对象状态建模的工具支持274小结274深入阅读275章节复习问题275练习275第14章转换型系统的活动建模27814.1什么是活动建模27814.2为什么使用活动建模27914.3活动建模: 技术背景27914.3.1流程图28014.3.2佩特里网28014.3.3数据流图28114.4UML活动图28214.5活动建模的步骤28314.5.1识别活动和工作流28414.5.2产生一个初步活动图28614.5.3引入条件分支、分叉和连接28714.5.4精炼复杂的活动28714.5.5活动建模审核检查表28814.6与其他图之间的关系28814.7应用敏捷原则28914.8活动建模的工具支持289小结289深入阅读290章节复习问题290练习290第15章基于规则的系统的建模与设计29115.1什么是决策表29215.2决策表的用处29315.3系统化的决策表构造29315.4渐进式决策表构造29415.5检查所需的属性29515.6决策表合并29615.7根据决策表生成代码29615.8应用解释器模式29715.8.1定义业务规则语法29715.8.2在类图中表示规则29815.8.3构建解析器和变量查找上下文29915.8.4解释业务规则29915.8.5动态更新规则30015.8.6解释方法的优点30015.9在测试驱动开发中使用决策表30015.10决策树30115.11应用敏捷原则301小结302深入阅读302章节复习问题302练习303第5部分应用情景特定模式第16章应用模式来设计状态图编辑器30716.1应用模型的过程30816.2案例研究: 状态图编辑器31016.3处理复杂的结构31116.3.1表示递归的整体部分结构31116.3.2使用策略提供布局选择31516.3.3用迭代器访问复杂的结构31616.3.4通过访问者分析复杂的结构31716.3.5通过备忘录存储和恢复对象状态32016.4创建和构造复杂的对象32116.4.1创建系列产品32116.4.2构建大型的复杂对象32416.4.3通过享元重用对象32616.5图形用户界面的设计和显示32716.5.1跟踪编辑状态32716.5.2响应编辑事件32816.5.3转换接口33016.5.4提供上下文相关的帮助33316.5.5使用装饰增强显示能力33516.6应用敏捷原则338小结338深入阅读338章节复习问题339练习339第17章应用模式来设计持久性框架34017.1直接访问数据库会出现的问题34017.2通过桥隐藏持久存储34117.3将数据库请求封装为命令34417.4用远程代理隐藏网络访问34817.5用模板方法共享通用代码35117.6通过工厂方法检索不同的对象35317.7用原型减少类的数量35517.8应用敏捷原则358小结358深入阅读358章节复习问题358练习358第6部分实现和质量保证第18章实现方面的考虑36318.1编码标准36318.1.1什么是编码标准36318.1.2为什么要建立编码标准36718.1.3代码审查清单36718.1.4编码标准实施准则36718.2组织实现部件36918.3根据设计生成代码37018.3.1实现类和接口37018.3.2从顺序图到方法代码骨架37018.3.3实现关联关系37118.4给团队成员分配任务37218.5结对编程37218.6测试驱动开发37318.6.1测试驱动开发的工作流程37318.6.2测试驱动开发的优点37518.6.3潜在问题37518.7应用敏捷原则37618.8对实现的工具支持376小结376深入阅读377章节复习问题377练习377第19章软件质量保证37919.1软件质量保证的益处37919.2软件质量属性37919.3质量测量和度量38119.3.1质量测量和度量的实用性38219.3.2常规质量度量38219.3.3对面向对象软件重用传统度量38719.3.4面向对象质量度量38719.4软件验证与确认技术38919.4.1审查38919.4.2走查39019.4.3同行审查39119.5生命周期中的验证和确认39219.6软件质量保证功能39319.6.1过程和标准的定义39419.6.2质量管理39619.6.3过程改进39719.7应用敏捷原则39819.8SQA的工具支持399小结399深入阅读400章节复习问题400练习400第20章软件测试40120.1什么是软件测试40220.2为什么进行软件测试40220.3传统的黑盒测试40320.3.1功能性测试: 一个例子40320.3.2等价类划分40420.3.3边界值分析40520.3.4因果分析40720.4传统的白盒测试40720.4.1基路径测试40820.4.2圈复杂度40920.4.3流图测试覆盖准则40920.4.4测试循环41020.4.5数据流测试41120.4.6数据流测试的覆盖准则41220.4.7过程间数据流测试41220.5测试覆盖率41320.6一个通用的软件测试过程41320.7面向对象的软件测试41520.7.1基于用例的测试41520.7.2用ClassBench进行对象状态测试41620.7.3测试类的层次结构41820.7.4测试异常处理能力41920.8测试Web应用程序42020.8.1Web应用程序测试的面向对象模型42020.8.2使用面向对象模型进行静态分析42120.8.3使用面向对象模型生成测试用例42120.8.4用httpUnit进行Web应用程序测试42220.9非功能性需求的测试42220.9.1性能和压力测试42220.9.2安全测试42320.9.3测试用户界面42320.10生命周期中的软件测试42420.11回归测试42620.12什么时候停止测试42620.13应用敏捷原则42720.14测试的工具支持427小结427深入阅读428章节复习问题428练习428第7部分维护和配置管理第21章软件维护43321.1什么是软件维护43321.2软件变化的因素43421.3系统演化的雷曼定律43421.4软件维护的类型43521.5软件维护过程和活动43521.5.1维护过程模型43621.5.2理解程序43721.5.3变更识别和分析43721.5.4配置变更控制43921.5.5变更实施、测试和交付44021.6逆向工程44021.6.1逆向工程工作流44021.6.2逆向工程的用途44021.6.3逆向工程: 案例研究44121.7软件再工程44121.7.1再工程的目标44121.7.2软件再工程的过程44221.7.3软件再工程: 案例研究44321.8软件维护的模式44421.8.1用外观模式简化客户端接口44421.8.2用中介者模式简化组件交互44521.8.3软件维护的模式44521.9应用敏捷原则44921.10软件维护的工具支持449小结450深入阅读450章节复习问题450练习450第22章软件配置管理45222.1软件生命周期的基准45222.2什么是软件配置管理45322.3为什么需要软件配置管理45422.4软件配置管理的功能45422.4.1软件配置识别45522.4.2软件配置变更控制45622.4.3软件配置审核45722.4.4软件配置状态的审计45822.5敏捷项目中的配置管理45822.6软件配置管理工具458小结460深入阅读460章节复习问题460练习461第8部分项目管理和软件安全第23章软件项目管理46523.1项目组织46623.1.1项目形式46623.1.2团队结构46723.2工作量评估方法46823.2.1功能点方法46823.2.2COCOMO Ⅱ模型46923.2.3Delphi评估方法47423.2.4敏捷评估47423.3项目计划和调度47623.3.1PERT图47623.3.2Gantt图和人员分配47723.3.3敏捷规划47823.4风险管理47923.4.1风险识别47923.4.2风险分析和优先级划分48023.4.3风险管理规划48223.4.4风险解决和监控48223.5过程改进48223.6应用敏捷原则48423.7项目管理的工具支持484小结485深入阅读485章节复习问题486练习486第24章软件安全48824.1什么是软件安全48924.2安全要求48924.3安全软件设计原则49024.4安全软件设计模式49124.5软件安全的7个最佳实践49324.6通过攻击树进行风险分析49424.7生命周期中的软件安全性49424.7.1规划阶段的安全49524.7.2迭代阶段的安全50124.8应用敏捷原则50324.9软件安全的工具支持504小结504深入阅读505章节复习问题505练习506附录A个人软件过程: 估计、规划和质量保证507A.1PSP中的工作量估计507A.2PSP中的软件质量保证508A.3设计和质量508附录BJava技术510B.1使用数据库连接510B.1.1什么是数据库连接510B.1.2设置数据源510B.1.3从程序中访问数据库511B.2使用Swing512B.2.1用JFrame创建主窗口512B.2.2利用布局管理器来布局组件513B.2.3使用动作监听器处理按钮事件515B.2.4实现绘图功能515B.3使用JSP517B.3.1什么是JSP517B.3.2JSP工作流517B.3.3用JSP容器安装Web服务器518B.3.4使用JSP518附录C软件工具521C.1NetBeans521C.2使用JUnit522C.3在NetBeans中运行JUnit525C.4Emma覆盖工具525C.5Cobertura覆盖工具526C.6使用HttpUnit测试Web应用程序527C.6.1配置IDE以使用HttpUnit527C.6.2在HttpUnit中实现测试用例528C.7在NetBeans中使用cvs和Subversion529C.7.1创建CVS远程存储库529C.7.2在NetBeans中安装Subversion530C.7.3从存储库检出文件531C.7.4编辑源和查看变更533C.7.5查看文件状态533C.7.6比较文件版本534C.7.7合并存储库中的更改534C.7.8解决冲突534C.7.9更新本地副本534C.7.10提交本地文件到存储库535 C.7.11导入文件到存储库535附录D项目概要536D.1汽车租赁系统536D.2国家贸易展览服务系统536D.3海外留学管理系统537D.4UML类图编辑器539D.5无线电通信模拟器540D.6对象状态测试环境541参考文献543
猜您喜欢

读书导航