出版时间:2008-12 出版社:清华大学出版社有限公司 作者:曹渠江 编 页数:292
前言
自20世纪70年代人们提出“软件危机”(Software Crisis)以来,软件工程的发展已经经历了三十多个春秋。对于一门学科而言,30年不算短也并不算长。在三十多年的时间里,软件工程获得了迅速的发展,软件工程的研究内容得到了极大的丰富,软件工程的分支如雨后春笋般不断涌现、蓬勃发展。特别是20世纪90年代以来,在管理科学领域新观念不断兴起的大背景下,软件工程作为一门学科,其新兴子学科不断涌现。全面质量管理(Total Qmlity Management)的浪潮推进了软件质量管理(SoftwareQuality Management)的发展。流程观念的兴起促成了软件过程管理(Software.Process:Management)在当今IT业界方兴未艾的局面。受企业业务流程再造(BIminess process re-engineering)、结构重组(Reorganization)等管理科学中“Re'’浪潮的影响,新兴的软件再造工程(Software Reengineering)也应运而生。体现于敏捷组织(Agile()rganization)和敏捷制造(Agile jProduction),这些新生事物中的敏捷思路指引了软件工程中敏捷模式(Agile Model)的发展。当还原论逐渐退出历史舞台而系统论粉墨登场之时,学界已经逐步确立了复杂的、非线性的世界图景,受其启发,软件工程领域也逐渐开始了对其思维方法的逻辑起点进行扬弃的尝试:自适应软件开发方法(Adaptive Soltware Development),基于代理的计算方法(Agent Based Computing)都在呼唤着软件工程领域另一场革命性变革的到来。与此同时,软件行业也在不断吸取系统工程中一些定量的方法,越来越多的系统分析与设计方法被运用到软件工程的实践之中。柔性管理的浪潮也对软件工程的发展起到了深远的影响,软件工程由传统的重视软件质量的重载软件过程模型逐渐过渡到以人为本的轻载软件工程模型与之鼎立的状态。
内容概要
本书是为计算机、信息管理等相关专业高年级本科生在开设相关课程时所编写的一本教学参考书,它将全面指导学生学习、熟悉和运用当今被广泛采纳的一些主流技术去进行综合应用软件设计的有效实践。 本教材的主要内容:根据课程项目的要求,运用软件工程的理论,进行需求分析及概要设计;制订软件开发进度;运用面向对象程序设计、计算机网络、数据库原理、多媒体技术等相关知识,运用系统软件代码的开发、集成测试、修改、完善与总结等相关技术,全面实现数据库的设计。 本教材是上海理工大学计算机工程学院曹渠江教授连续七届的教学实践经验的积累,也是上海市教委重点课程建设项目的教学研究成果。 本书可作为高等院校相关课程的参考教材,也可供从事计算机软件开发的科技人员、工程技术人员及相关部门人员参阅。
书籍目录
第1章 软件工程概述 1.1 软件工程的基本概念 1.1.1 软件 1.1.2 软件工程的定义 1.1.3 软件工程的目标 1.2 软件工程的知识体系结构 1.2.1 软件开发技术 1.2.2 软件工程管理 1.2.3 软件工具及方法 1.3 软件过程 1.3.1 软件过程改进的目标 1.3.2 软件过程管理的主要内容 1.4 软件生命周期模型 1.4.1 线性顺序模型(Linear Sequential Model) 1.4.2 原型(Prototype)实现模型 1.4.3 螺旋模型(Spiral Model) 1.5 常见的软件工程过程模型 1.5.1 CMM 1.5.2 XP 思考题 参考文献 第2章 软件项目管理 2.1 可行性分析 2.2 开发过程定义 2.3 时间控制 2.4 质量管理 2.5 角色定义与分配 思考题 参考文献 第3章 软件需求分析 3.1 软件需求分析概述 3.2 软件需求分析的过程 3.2.1 需求的识别 3.2.2 需求的分析与综合 3.2.3 需求的表示 3.2.4 需求的验证 3.3 结构化分析方法(SA) 3.3.1 概述 3.3.2 工作内容和任务 3.3.3 如何画基本数据流图 3.4 面向对象的方法(OOA) 3.4.1 概述 3.4.2 UML分析设计实例 思考题 参考文献 第4章 软件设计 4.1 软件设计概还 4.2 架构设计 4.2.1 概述 4.2.2 常见的软件架构C/S, B/S, B/A/S, C/A/S及多层体系架构 4.2.3 各自的优缺点 4.2.4 关于软件体系结构的选取 4.3 结构化设计 4.3.1 概述 4.3.2 工作内容和任务 4.3.3 程序结构 4.3.4 结构图 4.3.5 变换型问题 4.3.6 模块说明 4.4 面向对象设计 4.4.1 对象结构-类图 4.4.2 类图优化 4.4.3 组织建模元素——包 4.4.4 对象行为——状态图 4.4.5 构造程序——组件图 4.4.6 ATM系统的实施图 4.4.7 回顾ATM项目的开发过程 思考题 第5章 数据分析, 设计及实现 5.1 数据库分析与设计 5.1.1 数据库分析与设计概述 5.1.2 数据库设计的基本阶段 5.2 典型数据库设计模式 5.2.1 如何设计主从关系的表 5.2.2 如何设计出入库类型的表 5.2.3 如何实现基于角色的数据库设计 5.2.4 如何设计树形结构的数据库 5.3 数据库编程常见问题 5.3.1 如何实现多表连接查询 5.3.2 如何实现主从表删除 5.3.3 如何获得自动增长量 5.3.4 如何手动实现自增长的编码 5.3.5 如何实现出入库类型的表 5.3.6 如何查询快要过期的产品 5.3.7 如何查询各门课的第一名的成绩 5.3.8 如何将SQL上的数据导出并还原到另一台机器 思考题 第6章 软件构造 6.1 软件构造概述 6.2 .NET框架介绍 6.2.1 .NET Framework 6.2.2 .NET平台的优点 6.2.3 .NET构架 6.3 VB.NET面向对象编程 6.3.1 面向对象的技术要点 6.3.2 面向对象的开发的优点 6.3.3 如何使用名称空间 6.3.4 面向对象的实现 6.3.5 如何进行继承 6.3.6 如何使用接口 6.3.7 早的和晚的捆绑的使用 6.3.8 如何使用交叉语言的继承 6.4 ADO.NET 6.4.1 ADO.NET的定义 6.4.2 使用ADO.NET 6.5 ASP.NET 6.5.1 ASP.NET概述 6.5.2 ASP.NET举例 6.6 综合应用举例 6.6.1 如何实现登录 6.6.2 如何实现注册功能 6.6.3 如何实现后台数据维护 6.6.4 如何实现购物车功能 思考题 第7章 软件测试的理论及实践 7.1 软件测试基本概念 7.1.1 软件产品质量的评定 7.1.2 软件测试的目的 7.1.3 测试和质量之间的关系 7.2 测试的重要原则和规律 7.3 测试的生命周期 7.4 测试过程中涉及的文档规范及测试流程 7.5 测试的分类和策略 7.5.1 按阶段分类 7.5.2 按内容分类 7.5.3 在测试过程中应该注意的几点问题 7.6 测试自动化工具 7.7 测试案例 7.7.1 单元测试的实例 7.7.2 压力测试的实例 7.8 主流自动化测试工具 思考题 第8章 软件工程实例——构件库管理系统 8.1 项目背景介绍 8.2 项目规划 8.2.1 项目简介 8.2.2 项目管理 8.3 项目分析设计 8.3.1 数据库设计 8.3.2 UML设计 8.3.3 网页结构图 8.3.4 网页功能与布局设计 8.4 项目实现 8.4.1 主要技术攻关 8.4.2 网页截图 8.4.3 主要源代码 思考题 附录A 各类文档模板 A1 个人任务分配 A2 个人时间记录日志 A3 会议记录 A4 角色定义 A5 缺陷记录日志 A6 数据库设计说明书 附录B 开发过程中的各类规范 B1 文档格式规范 B1.1 文档格式规范 B1.2 目录 B1.3 内容 B2 VB.NET代码命名规范 B3 数据库命名规范 B3.1 数据表命名规范 B3.2 数据库使用规范 B4 Web开发规范 B4.1 导航规范 B4.2 内容编辑规范 B5 形象设计规范 B5.1 标志(logo) B5.2 标准色 B5.3 标准字体 B6 CSS书写规范 B6.1 所有的CSS尽量采用外部调用 B6.2 CSS推荐模板 B6.3 body标识 B7 JS调用规范 B8 首页代码规范 B9 尺寸规范 B10 目录结构规范 B11 命名规范 B11.1 一般文件及目录命名规范 B11.2 图片的命名规范 附录C 互联网软件开发的各类资源
章节摘录
插图:第1章 软件工程概述当明确了要去实现一个软件时,就必须知道究竟应该怎样实现这个软件,至少应该弄明白下列问题:①这个软件值得开发吗?现有的技术水平能实现用户需要的软件吗?②怎样与客户沟通从而知道客户要求什么?又如何描述已知的要求?③怎样才能将用户用文字描述的系统转换成最终的软件?④要用到数据库吗?若要,数据库又怎么设计呢?⑤使用哪一种开发工具?使用Windows风格的界面,还是Web风格的界面?⑥与合作伙伴怎样进行分工合作?⑦软件整个开发过程应该是什么样的?只有在真正地解决了诸如此类的这些问题后,才能进入开发过程,也只有这样,才有可能实现预期的软件。而这些在软件开发之前和软件开发过程中摆在设计人员面前的问题,就是软件工程需要解决的问题。本章重点介绍一些软件工程的基本概念,帮助同学们整理出软件工程的总体知识框架,理清学习软件开发的思路。1.1 软件工程的基本概念当人们第一次听说软件工程(Software Engineering)时,第一个联想到的可能是建筑工程、水利工程等等其他类型的工程。再进一步推理,软件工程应该与建筑工程等有相似之处,因为都含有“工程”二字,但它们必定也有不同之处,因为软件工程突出了“软件”而非其他。所以要理解软件工程,必须先弄明白什么是“软件”(Software)。1.1.1 软件何谓软件?虽然人们一直把这个名词挂在嘴边,但试图给其下一个全面而严格的定义绝非易事。本书不将笔墨纠缠于概念的面面俱到的学究式阐述上,而是在博采众家之长的基础上稍加筛选,但求以点盖面,起到梳理概念,引导入门的作用。所以,对于软件的定义,只想纠正一个错误一软件就是程序。
编辑推荐
《综合应用软件设计》可作为高等院校相关课程的参考教材,也可供从事计算机软件开发的科技人员、工程技术人员及相关部门人员参阅。原理与技术的完美结合;教学与科研的最新成果;语言精炼,实例丰富;可操作性强,实用性突出。
图书封面
评论、评分、阅读与下载