软件工程及软件方法学
-
软件工程学实验周苏等编著本书通过一系列学习软件工程工具的实验练习,把软件工程的概念和理论知识融入到实践当中,从而加深对软件工程知识的认识和理解。实验内容几乎包含了软件生存周期的各个阶段,内容涉及软件工程计算环境、软件工程国家标准、软件开发绘图工具Microsoft Visio、软件分析与建模工具Sybase PowerDesigner、软件自动化测试Mercury Interactive WinRenner、软件项目管理Microsoft Project和软件配置管理Microsoft Visual SourceSafe等,全书共16个小实验、2个课程设计和1个实验总结。每个实验中都包含背景知识介绍、所需的工具、准备工作和实验步骤指导等,以帮助读者加深对课程教材中所介绍概念的理解以及掌握一些主流软件工程工具的基本使用方法。 本书是高等院校计算机及相关专业“软件工程”课程的实验辅助教材,也可作为单独开设“软件工程学实验”课程的主教材。欢迎教师索取为本书教学配套的课件:zs@mail.hz.zj.cn。 -
软件技术基础刘云主编本书是依据中央广播电视大学软件开发与应用专业教学大纲的要求而编写的。本册共分9章,系统介绍了计算机的操作系统,计算机网络的基本概念、体系结构和数据通信知识。分析了常用的计算机网络协议,其中包括广域网、局域网以及Internet。最后,对计算机网络的管理于安全等方面的内容也进行了介绍。结合本书的内容与特点,提供了配套的实验指导书,安排了5个典型实验,即从物理网络的选型、搭建、网络配置及网络软件的安装与调试和网络管理等方面给出了描述与指导。本书内容丰富,技术先进,结构新颖,条理清晰,难度适中,可读性好。既重视基本概念、基本原理和基本技术的阐述,又注意理论结合实际,写作风格上特别适合于读者自学。本书既可以作为电大、高职高专教材,也适用于计算机专业、通信专业、信息专业、电子商务专业的专科生以及其他从事计算机网络及相关工作的人员学习参考。 -
管理信息系统唐晓波主编本书从社会技术系统的角度介绍管理信息系统的基本概念、基本理论、技术基础、应用、系统规划、系统分析、系统设计、系统实施、开发案例、数据挖掘与决策支持系统,以及基于Internet的管理信息系统等内容。本书强调基本理论,概念清晰,论述严谨,内容新颖,图文并茂。既考虑到书中所介绍的理论与技术的成熟性,又保持其具有一定的先进性。本书可供信息管理与信息系统专业、计算机类和管理类专业的本科生、MBA学生、管理干部培训班学员及相关专业的硕士生学习,也可供从事信息系统开发人员以及软件开发人员、企事业单位的管理人员参考。 -
IT职业素质雷瑛主编本书根据教育部《高等职业教育计算机应用与软件专业领域技能型紧缺人才培养指导方案》编写而成。本书通俗易懂,内容新颖,注重知识性与趣味性的结合。全书共七章,系统地讲述了IT职业素养的内容:职业个体结构;项目制工作方法;如何高效地完成工作;如何有效地进行时间管理;如何进行沟通,增进人际关系;如何构建高效团队,解决团队中的冲突,提高团队战斗力,如何进行职业生涯规划,逐渐走向成功。为提高教学效果,每个章节中有大量的学生学习活动、学习参考、案例思考、案例活动等内容,能更好地调动学生参与的积极性,实现教学互动,促进教学方法的改革。本书适合于高等职业教育技能型紧缺人才培养培训工程使用,也可供高等职业学校(含示范性软件职业技术学院)、高等专科学校、成人高校、本科院校举办的二级职业技术学院使用,还可供本科院校师生、计算机从业人员和爱好者参考使用。 -
监控组态软件及其应用技术曾庆波等编著监控组态软件是完成数据采集与过程控制的专用软件,它以计算机为基本工具,为实施数据采集、过程监控、生产控制提供了基础平台和开发环境。PCAuto 3.1是优秀的监管组态软件之一,它功能强大、使用方便,其预设置的各种软件模块可以非常容易实现监控层的各项功能,并可向控制层和管理层提供软、硬件的全部接口。使用PCAuto 3.1可以方便、快速地进行系统集成,构造不同需求的数据采集与监控系统。《高等学校“十一五”规划教材:监控组态软件及其应用技术》以监控组态软件PCAuto 3.1为背景,从使用角度出发,以工程示例的方式对PCAuto 3.1的各项功能、使用方法及组态过程进行介绍。《高等学校“十一五”规划教材:监控组态软件及其应用技术》体系合理、层次清楚、示例丰富并且实用,可作为高等学校计算机应用、自动控制、电子技术专业的教材,同时还可作为相关专业工程技术人员的自学用书。 -
嵌入式系统开发与应用教程田泽编著内容简介目录本书是《嵌入式系统开发与应用系列教程》中的理论教程。在本教程内容设计上,首先完整讲述了嵌入式系统开发技术的基础知识和ARM技术,然后结合基于ARM处理器的嵌入式实际工程例程,系统讲述了嵌入式应用开发技术,形成了从易到难、相对完整、贴近实际工程应用的嵌入式理论教学体系。结合本系列教程的实验教程,可使读者快速、全面地掌握嵌入式系统开发与应用技术和开发技能。本书是基于32位ARM处理器的嵌入式系统开发与应用教学体系的重要组成部分,并配套多媒体教学课件。本书可作为高等院校计算机、电类专业本科生、研究生以及相关工程技术人员进行嵌入式系统教学及培训的教材,也可作为基于ARM核嵌入式系统开发的工程技术人员的参考资料。本书属于《嵌入式系统开发与应用系列教程》的理论教程,是基于32位ARM的嵌入式系统教学体系建设的重要组成部分。本书以嵌入式系统的基本开发技术为主线,以ARM处理器核及国内应用广泛的SAMSUNG公司S3C44B0X(基于ARM7TDMI)为硬件平台,系统讲述了嵌入式系统开发的基本知识、基本流程和基本方法及以ARM微处理器为核心的嵌入式系统开发过程。为了提升目前我国嵌入式系统的教学水平而又不脱离目前的教学实际,在本系列教程中的理论课程内容的设置和实验教学内容的开发过程中,我们既强调嵌入式基础教育,打好嵌入式系统开发与应用的基础,又面向实际工程应用,提升嵌入式系统教学的实用性和工程性。本书按技术内容分为7章,共5大部分,各部分具体内容及包含的章节如下。第1部分: 为书的第1章,主要介绍了嵌入式系统开发的基础知识。内容包括嵌入式系统基本概念、组成结构、硬件组成、操作系统、应用软件开发、开发流程和发展趋势。通过本章的学习,可使读者系统地建立起嵌入式系统开发的整体概念和知识体系。第2部分:为书的第2章,主要对ARM技术进行全面论述。通过本章的学习,可使读者对ARM技术有个全面的了解,并建立起以ARM技术为基础的嵌入式系统应用和以ARM核为基础的嵌入式SoC芯片设计的技术框架。在学习本部分时,读者可根据不同情况有所取舍。第3部分: 为书的第3、4、5章。主要介绍了嵌入式系统的应用程序设计。第3章主要介绍ARM指令集。第4章主要介绍Thumb指令集。ARM和Thumb两种指令集只是基于ARM的嵌入式编程的基础。第5章主要讲述如何运用前面学过的汇编指令并结合C语言来进行嵌入式程序设计。首先介绍了伪操作、宏指令和伪指令等嵌入式汇编语言程序设计基础知识,然后讲述了ARM汇编语言程序设计。本章以实际例程中用到的C语言讲述了嵌入式C语言程序设计基础,并在此基础上列举了一个嵌入式C程序设计实例;对于嵌入式编程技巧和C语言与汇编语言混合编程也进行了简述;最后通过一个基于Embest IDE for ARM开发环境下的嵌入式软件开发与调试实例讲述了嵌入式软件开发流程和开发工具的使用。在本章讲述中,密切结合嵌入式系统开发的实际例程,通过学习,可使读者掌握嵌入式程序设计的基本知识、基本方法和基本流程。本部分一些程序代码和内容可见《嵌入式系统开发与应用实验教程(第2版)》所附光盘。第4部分:为书的第6章。主要讲述的是基于S3C44B0X的嵌入式系统开发。SAMSUNG公司的S3C44B0X片上功能很强大,是国内应用广泛的基于ARM7TDMI内核的SoC。本部分以S3C44B0X为例,对嵌入式系统开发进行全面介绍,涉及片上基本功能模块及这些模块的应用开发;在此基础上还介绍了基于S3C44B0X的S3CEV40开发板设计,并对基于S3CEV40的启动程序开发进行了讲述。基于S3C44B0X的应用功能开发详见《嵌入式系统开发与应用实验教程》。通过这些嵌入式外围主要模块应用功能开发的学习,可使读者对于嵌入式系统开发有一个全面了解。本部分一些程序代码和内容可见《嵌入式系统开发与应用实验教程(第2版)》所附光盘。第5部分: 为书的第7章,主要对于嵌入式操作系统μC/OSⅡ和μCLinux的基本知识进行讲述,在此基础上分别对基于S3C44B0X的移植及应用开发进行介绍。通过本书的学习,可使学生用最短的时间掌握32位嵌入式系统应用开发的基础理论知识,培养学生良好的实际操作能力和高端嵌入式产品研发设计能力,尽而满足社会对高素质、开拓型嵌入式系统开发人才的需求。本书包含大量软件和硬件设计资源,可作为基于ARM核嵌入式系统开发的技术参考手册;也可作为计算机、电类专业本科生和研究生以及相关工程技术人员进行嵌入式系统教学及培训的实验和参考教材。基于ARM的嵌入式系统教学体系建设刚刚开始,而嵌入式应用开发又涉及软、硬件及操作系统等复杂的知识,因此它的教学体系,尤其是面向实际开发应用的教学体系的建立,是一项非常复杂的系统工程。本书力求为该系统工程的建设做一些基础性工作,并真诚地欢迎读者就此提出宝贵的意见和建议。田泽2005年1月 第1章 嵌入式系统开发基础1.1 嵌入式系统的基本概念11.1.1 嵌入式计算机11.1.2 嵌入式系统的概念51.1.3 嵌入式系统的特点61.1.4 嵌入式系统的分类91.1.5 嵌入式系统的应用范围91.1.6 嵌入式技术是中国IT发展的难得机遇91.2 嵌入式系统的组成结构101.2.1 嵌入式系统硬件基本结构介绍111.2.2 嵌入式系统软件的层次结构121.2.3 启动程序BootLoader介绍141.3 嵌入式系统的硬件组成151.3.1 嵌入式处理器151.3.2 典型嵌入式处理器介绍161.3.3 嵌入式SoC211.3.4 可编程片上系统SOPC221.3.5 嵌入式外围接口电路和设备接口241.4 嵌入式操作系统251.4.1 嵌入式操作系统介绍261.4.2 嵌入式实时操作系统261.4.3 典型嵌入式操作系统介绍281.5 嵌入式应用软件开发311.5.1 嵌入式软件开发的特点和技术挑战311.5.2 嵌入式软件开发环境321.5.3 嵌入式应用软件开发的基本流程351.5.4 嵌入式软件开发的可移植性和可重用性391.6 嵌入式系统的开发流程401.6.1 嵌入式系统开发考虑的要素411.6.2 软硬件协同设计411.6.3 嵌入式系统开发的基本流程421.7 嵌入式系统的发展趋势441.7.1 即将来临的以ARM为核心的32位浪潮441.7.2 嵌入式系统与Internet的融合461.7.3 嵌入式系统的发展趋势47习题48第2章 ARM技术概述2.1 ARM体系结构的发展历史和技术特征502.1.1 ARM技术的发展历程512.1.2 ARM体系结构的技术特征532.2 ARM体系结构不同版本的发展概述542.2.1 ARM体系结构的基本版本542.2.2 ARM体系结构的演变572.2.3 ARM体系结构的命名规则592.3 Thumb技术介绍592.3.1 Thumb的技术概述602.3.2 Thumb的技术特点602.4 ARM处理器工作状态602.5 ARM处理器工作模式612.6 ARM寄存器组成622.6.1 ARM寄存器组成概述622.6.2 ARM状态下的寄存器组织632.6.3 Thumb状态下的寄存器组织682.7 ARM的异常中断692.7.1 ARM的异常中断响应过程702.7.2 从异常中断处理程序中返回712.7.3 异常中断向量表732.7.4 异常中断的优先级732.8 ARM典型流水线技术简介742.8.1 ARM的3级流水线简介742.8.2 ARM的5级流水线简介752.9 ARM存储器接口及存储器层次772.9.1 ARM存储数据类型和存储格式772.9.2 ARM的存储器层次简介782.10 ARM协处理器792.11 ARM片上总线AMBA792.12 ARM的调试结构802.13 ARM核综述812.13.1 ARM7系列核822.13.2 ARM9系列核872.13.3 ARM10系列核892.13.4 StrongARM和XScale系列核912.13.5 SecurCore系列核942.14 基于ARM核的芯片选择952.14.1 应用角度的ARM芯片选择原则952.14.2 多内核ARM角度的芯片选择原则97习题98第3章 ARM指令集3.1 ARM指令集概述993.1.1 ARM指令集编码993.1.2 条件执行1003.1.3 指令分类及指令格式1013.2 ARM寻址方式1023.2.1 立即寻址1023.2.2 寄存器寻址1043.2.3 寄存器间接寻址1053.2.4 基址加偏址寻址1063.2.5 堆栈寻址1083.2.6 块拷贝寻址1093.2.7 相对寻址1113.3 ARM指令详细介绍1113.3.1 数据处理指令1113.3.2 Load/Store指令1193.3.3 状态寄存器与通用寄存器之间的传送指令1283.3.4 转移指令1313.3.5 异常中断产生指令1353.3.6 协处理器指令1383.3.7 未使用的指令空间142习题144第4章 Thumb指令集4.1 Thumb指令集概述1474.1.1 Thumb指令集编码1484.1.2 Thumb状态切换1484.1.3 编程模型1494.1.4 Thumb指令集特点1504.2 Thumb指令详细介绍1514.2.1 Thumb数据处理指令1514.2.2 Thumb转移指令1594.2.3 数据存取指令1634.2.4 异常中断指令169习题171第5章 基于ARM的嵌入式系统应用程序设计5.1 ARM汇编语言的伪操作、宏指令与伪指令1735.1.1 2种编译模式的集成开发环境IDE介绍1745.1.2 ADS编译环境下的ARM伪操作和宏指令1745.1.3 GNU编译环境下的ARM伪操作与宏指令2015.1.4 ARM汇编语言的伪指令2115.2 ARM汇编语言程序设计2155.2.1 ARM汇编中的文件格式2155.2.2 ARM汇编语言语句格式2155.2.3 ARM汇编语言编程的重点2255.2.4 ARM汇编程序实例2325.3 嵌入式C语言程序设计基础2385.3.1 C语言的"预处理伪指令"在嵌入式程序设计中的应用2385.3.2 嵌入式程序设计中的函数及函数库2445.3.3 嵌入式程序设计中常用的C语言语句2475.3.4 嵌入式程序设计中C语言的变量、数组、结构和联合2525.4 嵌入式C语言程序设计实例2595.4.1 实例实现功能介绍2595.4.2 实例实现程序源代码介绍2615.5 嵌入式C语言程序设计技巧2695.5.1 变量定义2695.5.2 参数传递2715.5.3 循环条件2725.6 C语言与汇编语言混合编程2735.6.1 ATPCS介绍2735.6.2 内嵌汇编2775.6.3 C语言和ARM汇编语言程序间相互调用2835.7 基于Embest IDE for ARM 环境的软件开发实例286习题286第6章 基于S3C44B0X的嵌入式系统应用开发实例6.1 S3C44B0X处理器介绍2906.1.1 SAMSUNG S3C44B0X简介2906.1.2 SAMSUNG S3C44B0X特点2906.1.3 S3C44B0X功能结构框图2946.1.4 S3C44B0X引脚信号描述2946.2 S3C44B0X存储控制器功能及应用开发2996.2.1 S3C44B0X存储控制器概述3006.2.2 S3C44B0X存储器空间划分简述3006.2.3 S3C44B0X存储控制器功能描述3016.2.4 S3C44B0X存储控制器的特殊功能寄存器3026.2.5 S3C44B0X存储器应用编程3066.3 S3C44B0X I/O端口功能及应用开发3066.3.1 S3C44B0X I/O功能概述3066.3.2 S3C44B0X端口功能配置3076.3.3 S3C44B0X端口功能控制描述3086.3.4 S3C44B0X I/O端口的特殊功能寄存器3106.3.5 S3C44B0XI/O端口应用编程3156.4 S3C44B0X DMA功能及应用开发3166.4.1 S3C44B0XDMA概述3166.4.2 S3C44B0XZDMA/BDMA操作3166.4.3 S3C44B0X DMA特殊功能寄存器3216.4.4 S3C44B0XDMA应用编程3276.5 S3C44B0X UART接口功能及应用开发3276.5.1 S3C44B0X UART概述3276.5.2 S3C44B0X UART的操作3286.5.3 S3C44B0X UART的特殊功能寄存器3326.5.4 S3C44B0X UART应用编程3376.6 S3C44B0X中断控制器功能及应用开发3386.6.1 S3C44B0X中断概述3386.6.2 S3C44B0X中断控制器的操作3386.6.3 S3C44B0X中断源3396.6.4 S3C44B0X矢量中断模式3416.6.5 S3C44B0X中断控制器的特殊功能寄存器3426.6.6 S3C44B0X中断控制器应用编程3476.7 S3C44B0X时钟电源管理器功能及应用开发3486.7.1 S3C44B0X时钟电源管理器概述3486.7.2 S3C44B0X时钟电源管理器功能描述3486.7.3 S3C44B0X时钟发生器与电源管理特殊功能寄存器3536.7.4 S3C44B0X时钟与电源管理器应用编程3556.8 S3C44B0X PWM定时器功能及应用开发3566.8.1 S3C44B0X PWM定时器概述3566.8.2 S3C44B0X PWM定时器工作原理3566.8.3 S3C44B0X PWM 定时器操作3576.8.4 S3C44B0X PWM定时器的特殊功能寄存器3606.8.5 S3C44B0X PWM定时器应用编程3646.9 S3C44B0X LCD控制器功能及应用开发3656.9.1 S3C44B0X LCD控制器概述3656.9.2 S3C44B0X LCD控制器的特性3656.9.3 S3C44B0X LCD外部接口信号3666.9.4 S3C44B0X LCD控制器框图3666.9.5 S3C44B0X LCD 控制操作3676.9.6 S3C44B0X LCD视频操作3686.9.7 S3C44B0X LCD控制器的特殊功能寄存器3716.9.8 S3C44B0X LCD控制器应用编程3766.10 S3C44B0X A/D转换器功能及应用开发3766.10.1 S3C44B0X A/D转换器概述3766.10.2 S3C44B0X A/D转换器特点3766.10.3 S3C44B0X A/D转换操作3766.10.4 S3C44B0X A/D转换的特殊功能寄存器3796.10.5 S3C44B0X A/D转换器应用编程3806.11 S3C44B0X RTC功能及应用开发3806.11.1 S3C44B0X RTC概述3806.11.2 S3C44B0X RTC特性3816.11.3 S3C44B0X RTC操作3816.11.4 S3C44B0X RTC特殊功能寄存器3836.11.5 S3C44B0X RTC应用编程3896.12 S3C44B0X看门狗定时器功能及应用开发3896.12.1 S3C44B0X看门狗定时器概述3896.12.2 S3C44B0X看门狗定时器特殊功能寄存器3906.12.3 S3C44B0X看门狗定时器应用编程3916.13 S3C44B0X I2C总线接口功能及应用开发3916.13.1 S3C44B0X I2C总线概述3926.13.2 S3C44B0X I2C总线接口操作3936.13.3 S3C44B0X I2C接口特殊功能寄存器3966.13.4 S3C44B0X I2C总线应用编程3996.14 S3C44B0X IIS总线接口功能及应用开发3996.14.1 S3C44B0X IIS概述3996.14.2 S3C44B0X IIS特性3996.14.3 S3C44B0X IIS功能描述4006.14.4 S3C44B0X IIS接口工作模式4006.14.5 S3C44B0X音频串行接口格式4016.14.6 S3C44B0X IIS接口特殊功能寄存器4036.14.7 S3C44B0X IIS应用编程4066.15 S3C44B0X SIO功能及应用开发4066.15.1 S3C44B0X SIO概述4066.15.2 S3C44B0X SIO特点4066.15.3 S3C44B0X SIO正常操作模式 4076.15.4 S3C44B0X SIO DMA 操作4086.15.5 S3C44B0X SIO 接口特殊功能寄存器4096.16 基于S3C44B0X的S3CEV40开发介绍4106.16.1 S3CEV40基本功能介绍4116.16.2 S3CEV40X外围接口硬件资源简介4116.17 S3C44B0X启动程序设计416习题416第7章 嵌入式操作系统及开发简介7.1 μCLinux操作系统概述4187.1.1 μCLinux简介4187.1.2 μCLinux的结构4197.1.3 μCLinux的设计特征4207.1.4 系统引导程序4227.1.5 μCLinux在 S3C44B0X上的移植4237.2 μC/OSⅡ操作系统概述4257.2.1 μC/OSⅡ简介4257.2.2 μC/OSⅡ的内核4257.2.3 μC/OSⅡ的文件体系4267.2.4 μC/OSⅡ在S3C44B0X上的移植427参考文献428 -
UML和模式应用(美)Craig Larman著本书是当今最畅销的介绍面向对象的分析/设计、迭代开发和UML的书籍。本书的目的是帮助开发人员或学生掌握关于面向对象的分析和设计的核心原理和最佳实践,并将它们真正应用到软件设计中去。本书的作者是颇有声望的对象技术和迭代方法的领军人物。本书在第一版的基础上做了全面的修订,增加了新的案例研究,更新了关于模式、用况、统一过程、架构分析等的探讨。前言PrefaceThankyouforreadingthisbook!Thisisapracticalintroductiontoobject-orientedanalysisanddesign(OOA/D),andtorelatedaspectsofiterativedevelopment.IamgratefulthatthefirsteditionwasreceivedasapopularintroductiontoOOA/Dthroughouttheworld,translatedintomanylanguages.Therefore,thissecondeditionbuildsuponandrefines-ratherthanreplaces-thecontentinthefirst.Iwanttosincerelythankallthereadersofthefirstedition.Hereishowthebookwillbenefityou.Designrobustandmaintainableobjectsystems.First,theuseofobjecttechnologyhasproliferatedinthedevelopmentofsoftware,andmasteryofOOA/Discriticalforyoutocreaterobustandmaintainableobjectsystems.Followaroadmapthroughrequirements,analysis,design,andcoding.Second,ifyouarenewtoOOA/D,youareunderstandablychallengedabouthowtoproceedthroughthiscomplexsubject;thisbookpresentsawell-definedroadmap-theUnifiedProcess-sothatyoucanmoveinastep-by-stepprocessfromrequirementstocode.UsetheUMLtoillustrateanalysisanddesignmodels.Third,theUnifiedModelingLanguage(UML)hasemergedasthestandardnotationformodeling;soitisusefulforyoutobeconversantinit.ThisbookteachestheskillsofOOA/DusingtheUMLnotation.Improvedesignsbyapplyingthe"gang-of-four"andGRASPdesignpatterns.Fourth,designpatternscommunicatethe"bestpractice"idiomsandsolutionsthatobject-orienteddesignexpertsapplyinordertocreatesystems.Inthisbookyouwilllearntoapplydesignpatterns,includingthepopular"gang-of-four"patterns,andtheGRASPpatternswhichcommunicatefundamentalprinciplesofresponsibilityassignmentinobjectdesign.Learningandapplyingpatternswillaccelerateyourmasteryofanalysisanddesign.Learnefficientlybyfollowingarefinedpresentation.Fifth,thestructureandemphasisinthisbookisbasedonyearsofexperienceintrainingandmentoringthousandsofpeopleintheartofOOA/D.Itreflectsthatexperiencebyprovidingarefined,proven,andefficientapproachtolearningthesubjectsoyourinvestmentinreadingandlearningisoptimized.Learnfromarealisticexercise.Sixth,itexhaustivelyexaminesasinglecasestudy-torealisticallyillustratetheentireOOA/Dprocess,andgoesdeeplyintothornydetailsoftheproblem;itisarealisticexercise.Translatetocode.Seventh,itshowshowtomapobjectdesignartifactstocodeinJava.Designalayeredarchitecture.Eighth,itexplainshowtodesignalayeredarchitectureandrelatethegraphicaluserinterfacelayertodomainandtechnicalserviceslayers.Designaframework.Finally,itshowsyouhowtodesignanobject-orientedframeworkandappliesthistothecreationofaframeworkforpersistentstorageinadatabase.ObjectivesTheoverarchingobjectiveisthis:Helpstudentsanddeveloperscreateobjectdesignsthroughtheapplicationofasetofexplainableprinciplesandheuristics.Bystudyingandapplyingtheinformationandtechniquespresentedhere,youwillbecomemoreadeptatunderstandingaproblemintermsofitsprocessesandconcepts,anddesigningasolidsolutionusingobjects.IntendedAudienceThisbookisanintroductiontoOOA/D,relatedrequirementsanalysis,andtoiterativedevelopmentwiththeUnifiedProcessasasampleprocess;itisnotmeantasanadvancedtext.Itisforthefollowingaudience:Developersandstudentswithexperienceinanobject-orientedprogramminglanguage,butwhoarenew—orrelativelynew—toobject-orientedanalysisanddesign.Studentsincomputerscienceorsoftwareengineeringcoursesstudyingobjecttechnology.ThosewithsomefamiliarityinOOA/DwhowanttolearntheUMLnotation,applypatterns,orwhowanttosharpenanddeepentheiranalysisanddesignskills.PrerequisitesSomeprerequisiteknowledgeisassumed—andnecessary—tobenefitfromthisbook:Knowledgeandexperienceinanobject-orientedprogramminglanguagesuchasJava,C#,C++,orSmalltalk.Knowledgeoffundamentalobjecttechnologyconcepts,suchasclass,instance,interface,polymorphism,encapsulation,interfaces,andinheritance.Fundamentalobjecttechnologyconceptsarenotdefined.JavaExamplesIngeneral,thebookpresentscodeexamplesinJavaordiscussesJavaimplementations,duetoitswidespreadfamiliarity.However,theideaspresentedareapplicabletomost—ifnotall—object-orientedprogramminglanguages.BookOrganizationTheoverallstrategyintheorganizationofthisbookisthatanalysisanddesigntopicsareintroducedinanordersimilartothatofasoftwaredevelopmentprojectrunningacrossan"inception"phase(aUnifiedProcessterm)followedbythreeiterations.Theinceptionphasechaptersintroducethebasicsofrequirementsanalysis.Iteration1introducesfundamentalOOA/Dandhowtoassignresponsibilitiestoobjects.Iteration2focusesonobjectdesign,especiallyonintroducingsomehigh-use"designpatterns."Iteration3introducesavarietyofsubjects,suchasarchitecturalanalysisandframeworkdesign.Web-RelatedResourcesPleaseseewww.craiglarman.comforarticlesrelatedtoobjecttechnology,patterns,andprocess.Someinstructorresourcescanbefoundatwww.phptr.com/larmanEnhancementstotheFirstEditionWhileretainingthesamecoreasthefirstedition,thesecondisrefinedinmanyways,including:UsecasesareupdatedtofollowtheverypopularapproachofCockburn1.Thewell-knownUnifiedProcess(UP)isusedastheexampleiterativeprocesswithinwhichtointroduceOOA/D.Thus,allartifactsarenamedaccordingtoUPterms,suchasDomainModel.Newrequirementsinthecasestudy,leadingtoathirditeration.Updatedtreatmentofdesignpatterns.Introductiontoarchitecturalanalysis.IntroductionofProtectedVariationsasaGRASPpattern.A5/5balancebetweensequenceandcollaborationdiagrams.ThelatestUMLnotationupdates.DiscussionofsomepracticalaspectsofdrawingusingwhiteboardsorUMLCASEtools.AbouttheAuthorCraigLarmanservesasDirectorofProcessforValtech,aninternationalconsultingcompanywithdivisionsinEurope,Asia,andNorthAmerica,specializingine-businesssystemsdevelopment,objecttechnologies,anditerativedevelopmentwiththeUnifiedProcess.Sincethemid198s,Craighashelpedthousandsofdeveloperstoapplyobject-orientedprogramming,analysis,anddesign,andassistedorganizationsadoptiterativedevelopmentpractices.Afterafailedcareerasawanderingstreetmusician,hebuiltsystemsinAPL,PL/I,andCICSinthe197s.Startingintheearly198s-afterafullrecovery-hebecameinterestedinartificialintelligence(havinglittleofhisown),naturallanguageprocessing,andknowledgerepresentation,andbuiltknowledgesystemswithLispmachines,Lisp,Prolog,andSmalltalk.Heplaysbadleadguitarinhispart-timeband,theChangingRequirements(itusedtobecalledtheRequirements,butsomebandmemberschanged...).HeholdsaB.Sc.andM.Sc.incomputersciencefromSimonFraserUniversityinVancouver,Canada.Craigcanbereachedatclarman@acm.organdwww.craiglarman.com -
数据结构教程李春葆编著本书特色:◆内容组织上层次分明,结构清晰。内容叙述深入浅出,表述严谨。强调实验动手能力的提高,每章给出与内容相一致的上机实验题。与本书配套的《数据结构教程学习指导》和《数据结构教程上机实验指导》两书,构成一个完整的教学系列。◆本系列中所有程序均在VisualC++6.0环境下调试通过。本教程和相关学习指导的编写得到武汉大学教务部“数据结构综合教学改革”和“数据结构精品课程建设”教学项目的支持,是集体课程组许多教师多年来数据结构课程教学研究和教学改革经验和成果于一体。◆书中精编了大量的实例,这些实例体现了良好的程序设计风格。本书介绍了数据结构的基本知识和各种数据结构的具体应用。全书分为14章,主要内容包括数据结构的基本概念、线性表、栈和队列、串、数组和稀疏矩阵、递归算法、树和二叉树、广义表、图、各种查找算法的实现、排序算法的实现,文件结构以及采用面向对象方法描述算法等。本书突出上机实习内容,第1~13章给出大量的上机实验题,供读者选用。书中精编了大量的实例,这些实例体现了求解问题的方法和良好的程序设计风格。本书适合作为高等院校计算机及其相关专业的本科生教材,也可作为软件技术人员的参考用书。 -
UML软件开发(英)Ken Lunn著;马蔷,杨南海等译本书主要面向IT专业领域的大学一二年级本科学生,将UML符号和软件开发的方法协调融合起来,进行从整个项目概念到测试、系统配置和强化方面的介绍,这在其他同类书籍中是很少见的。 对于那些没有UML知识并且在IT系统和软件开发方面的能力稍显不足的IT管理者和开发人员来说,本书将会对入门很有帮助。 本书包含非常广泛的例子,这是我读一本书时所喜欢的,也是我在大学中和商业培训中的学生们所喜欢的。书中有一些例子遍布各个章节,并且在附录中有一个完整的实例。本书是给出了以UML作为建模语言进行软件开发的过程指导。书中紧密结合UML的符号与具体的软件开发方法,通过一个实例,贯穿从整体构想到测试、发布及升级的项目全过程。以一家拥有多元化业务流程的石油公司ICANDO为例,具体讲述了软件开发的整个流程。本书的各部分内容包括引言和实例研究,IT项目的开端、组织和管理,分析,构架和设计,构造、测试与部署,以及总结。在最后,提供了一个颇具代表性的完整实例。 本书的实用性与可读性强,实例生动有趣,十分有助于读者学习和理解。本书可作为高等学校统一建模语言课程的教材,也可作为IT行业管理和开发人员的参考书和使用指南。 主要网站和参考资料 全套讲稿的辅助资料,包括幻灯片、拓展练习和例子,可以从下面的网址获得: http://www.palgrave.com/science/computing/lunn/ -
实用软件工程教程王珍玲主编软件工程是介绍软件开发方法、提高学生软件开发能力的一门课程。《实用软件工程教程》一书全面系统地介绍了软件工程的概念、原?砗偷湫偷募际醴椒ǎ弊帕樯芰巳砑こ痰囊恍┳钚录际醴椒ā1臼榧冉樯芰巳砑こ痰睦砺壑叮庇峙浜鲜道镏莆绽砺壑逗图际醴椒ǖ氖迪帧H楣卜志耪拢谌莅ㄈ砑こ谈攀觥⑷砑尚行匝芯俊⑷砑枨蠓治觥⑷砑杓啤⒊绦虮嗦搿⑷砑馐浴⒚嫦蚨韵蟮娜砑こ獭⑷砑诵杏胛ず腿砑钅抗芾恚恳徽潞竺媾溆邢嘤Φ南疤猓靡园镏屠斫獗菊碌闹叮保诟铰贾懈隽巳肯疤獾牟慰即鸢福┒琳卟慰际褂谩?本书是针对高职高专院校计算机应用专业学生编写的教材,同时适宜高等专科院校、成人教育学院、函授大学等大专层次的理工科计算机专业的学生使用,也可供有一定实践经验的软件开发人员、计算机科学爱好者参考使用。
