课程概述
一、软件工程学科介绍 二、学习目标
三、部分参考资料
四、课程特点和学习的注意事项 五、教材简介
六、课程考核方式
一、软件工程学科介绍
软件程学科发展历史
三个阶段:概念提出、学科雏形、学科确立 第一阶段:概念提出
1968 年 NATO 会议(北大西洋公约组织的计算机科学家的国际会议)提出“软件工程”概念。
当时对“软件工程”代表性定义:为了经济地获得在真实机器上可靠工作的软件而制定和使用的合理工程原则和方法。
1972 年 IEEE 学会的计算机分会 IEEE 一 CS 第一次出版了“软件工程学报” 第二阶段:学科雏形
上世纪 70 年代末,美国将软件工程教程列入研究生教育计划。
1980 年代末和 1990 年代初,软件工程教育得到卡内基一梅隆大学软件工程研究所( CMU / SEI )的支持。
1991 年,“软件工程”被 ACM (美国计算机协会)和 IEEE / CS 列为计算学科的九个知识领域之一。
1993 年, IEEE 一 CS 和ACM 为了把软件工程建设成为一个专业,建立了 IEEE 一 CS / ACM 联合指导委员会。 第三阶段:学科确立
2004 年 8 月,IEEE 一 CS 和 ACM 给出:
软件工程知识体( SWEBOK , Software Engineering Body of Knowledge ) 软件工程教育知识体( SEEK ) 最终版,标志着软件工程学科在世界范围正式确 立。
软件工程、计算机科学、计算机工程、信息系统、信息技术并列成为计算学科下的独立学科。
软件工程知识体( SWEBOK ) :全面描述了软件工程实践所需的知识。
SWEBOK (软件工程知识体 》 10 个领域
?软件需求 ?软件设计 ?软件构造 ?软件测试 ?软件维护
?软件配置管理 ?软件工程管理 ?软件工程过程
?软件工程工具和方法 ?软件质量
SWEBOK详细结构(1)
软件工程与其他学科的关系
1 、软件工程是计算学科 9 个领域之一.
? 算法和数据结构 ? 计算机系统结构 ? 人工智能和机器人学 ? 数据库和信息检索 ? 人一机交互 ? 操作系统
? 程序设计语言
? 软件方法学和软件工程 ? 数字和符号计算
计算学科中12个重复出现的基本概念 ?绑定.
?概念和形式模型 ?效率 ?抽象层次 ?按时间排序 ?安全性
?大问题的复杂性 ?一致性和完备性
?演化
?按空间排序 ?重用
?折衷与决策
2 、 8 个相关学科知识域 ?计算机工程 ?计算机科学 ?数学 ?管理学 ?项目管理 ?质量管理 ?系统工程学
?软件人类工程学
其中:计算机科学、数学是基础工程学科、管理学科也非常重要 软件程是一门什么样的学科?
它是指导计算机软件开发与维护的一门工程学科。
工程:将科学及数学原理运用于实际用途的应用手段,如:设计、制造、机器操纵、构架等。
典型的传统工程:建筑工程、机械工程、电力工程等。
概括的说,软件工程即用工程、科学和数学的原则和方法研制、维护计算机软件的有关技术及方法,其优点是以较小的代价开发高质量的软件并有效地维护它。
二、学习目标(1)
掌握软件工程的基础知识和理论,对软件工程学有一个全貌的了解; 熟悉软件项目开发和维护的一般过程;
熟练掌握软件需求分析、设计、编码和测试等阶段的主要思想和技术方法;
二、学习目标(2)
通过学习,特别是通过课程设计,真正运用和深刻体会软件工程的思想方法,转变对软件开发的认识:从个人的单纯编程活动转移到进行系统分析与设计方面上来转变思维定式:程序员 ― 系统工程师(系统分析员)
三、部分参考资料
《 软件工程理论与实践 》许家冶等编著,高等教育出版社, 2005 年 《 软件工程 》 (第二版),齐治昌等,高等教育出版社, 2004 年 《 面向对象的系统分析 》 ,杨芙清等编著,清华大学出版社, 2001 年 《 UML 用户指南 》 G Booch 等著,邵维忠等译,机械工业出版社 2002 年
四、课程特点和学习的注肯事项
1 、知易行难
要将理论知识与实践运用结合,进行对照,以加深理解和掌握。 2 、内容纷杂
软件工程涉及计算机科学、数学、工程科学和管理科学等多个领域。其中:
?计算机科学和数学用于构造模型与算法;
?工程科学用于制定规范、设计范型、评估成本及确定权衡 ?管理科学用于计划、资源、质量和成本的管理。
五、教材总目录
第 1 章软件工程学概述 第 2 章可行性研究 第 3 章需求分析
第 4 章形式化说明技术 第 5 章总体设计 第 6 章详细设计 第 7 章实现 第 8 章维护
第9 章面向对象方法学引论 第 10 章面向对象分析 第 11 章面向对象设计 第 12 章面向对象实现 第 13 章软件项目管理
附录 AC + +类库管理系统分析与设计 附录 B 汉字行编辑程序设计
课程内容学时安排
章节 课程内容 学时 l 软件工程学概述 4 2 可行性研究 4 3 需求分析 4 5 总体设计 6 6 详细设计 4 7 实现 8 章节 课程内容 学时 8 软件维护 2 9 面向对象方法学引论 4 10 面向对象分析 2 11 面向对象设计 2 12 面向对象实现 2 13 软件项目管理 6 14 总结 2
六、课程考核方式
分数组成:
平时成绩( 10 % ) :以理论课课堂表现为主。 作业( 30 % ) :书面作业 期末考试(60 % ) :