《软件工程》大纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件工程》大纲
编写:金钊
2010年9月
《软件工程》大纲
课程简介:本课程为计算机类专业必修课程,学分数4,周学时4,总学时72。
该课程的主要介绍了传统结构化软件工程和面向对象软件工程的基本概念,原理和方法技术。
介绍了传统软件生命周期方法学的8个软件开发阶段:问题定义,可行性研究,需求分析,总体设计,详细设计,编码和单元测试,维护。
在此基础上结合流行的面向对象软件开发技术介绍了面向对象的软件工程,从面向对象分析,面向对象设计和面向对象实现全面阐述了面向对象的软件工程。
最后以软件项目管理作为管理技术应用总结。
该课程强调了以工程化的方法技术结合有效的管理技术来实现更好更块地开发大型软件项目。
教学目的与基本要求:通过该课程的学习,要使学生理解采用软件工程的思想,原理,方法,技术以及相应的支持工具是加速大型复杂软件系统开发和保证产品质量的关键。
掌握软件开发分析,设计,实现,测试及维护各阶段所使用的方法,技术和工具。
重点掌握面向对象开发方法和技术,能够利用统一建模语言UML对软件各阶段的成果进行建模。
在这些学习内容的基础上,使学生初步具备组织实施开发大型复杂软件系统的能力。
能够有效地管理控制软件开发过程,保障软件质量,能够顺利完成分析,设计,实现,测试以及维护各阶段的工作任务,并保证各阶段产品的质量。
使学生基本具备实施软件工程所要求的开发能力和管理能力。
主要教学方法:本课程采用课堂理论讲授,多媒体教学演示及课外作业与辅导相结合的教学方式。
第一章软件工程概述(教学时数6)
本章主要介绍软件危机、软件工程的形成。
掌握什么是软件工程及软件工程的基本原理。
并清楚软件生存周期的概念。
了解几种主要软件开发模型。
第一节软件危机
一.软件危机的介绍
二.产生危机的原因
三.消除软件危机的途径
第二节软件工程
一.软件工程的介绍
二.软件工程的基本原理
三.软件工程方法学
第三节软件生命周期
一.软件生命周期定义
二.软件生命周期的8个阶段
第四节软件过程
一.瀑布模型
二.快速原型模型
三.渐增模型
四.螺旋模型
第二章可行性研究(教学时数6)
本章重点讲解可行性研究的必要性,以及它的基本任务和基本步骤。
第一节可行性研究的任务
一、目的
二、实质
三、要考虑的几方面的可行性
第二节可行性研究的过程
第三节系统流程图
一、符号
二、例子
三、分层
第四节数据流图
一、符号
二、例子
三、命名
四、用途
第五节数据字典
一、数据字典的内容
二、定义数据的方法
三、数据字典的用途
第六节成本/效益分析
一、成本估计
二、成本/效益分析的方法
第三章需求分析(教学时数10)
需求分析是软件生存周期的一个重要阶段,应先阐述需求分析的基
本任务,然后介绍需求分析的一般过程,最后介绍具体的需求分析方法。
本章重点应是需求分析的图形工具及文档。
第一节需求分析的任务
一、确定对系统的综合要求
二、分析系统的数据要求
三、导出系统的逻辑模型
四、修正系统开发计划
第二节与用户沟通获取需求的方法
一.访谈
二.面向数据流自顶向下求精
三.简易的应用规格说明技术
四.快速建立软件原型
第三节分析建模与规格说明
一.分析建模
二.软件需求规格说明
第四节实体联系图
一、数据对象
二、属性
三、联系
第五节数据规范化
第六节状态转换图
一、状态
二、事件
三、符号
四、例子
第七节其它图形工具
第八节验证软件需求
一、从4个方面验证软件需求的正确性
二、验证软件需求的方法
三、用于需求分析的软件工具
第五章总体设计(教学时数4)
通过本章的学习,让学生在了解总体设计的目的及基本任务的基础上,掌握软件设计的基本原理,并能使用具体设计方法进行实际软件结构的设计。
重点是分解和模块化思想,耦合与内聚。
难点是掌握自顶向下,逐步求精的设计方法。
第一节设计过程
一、系统设计
二、结构设计
第二节设计原理
一、模块化
二、抽象
三、逐步求精
四、信息隐藏和局部化
五、模块独立
第三节启发规则
第四节描绘软件结构的图形工具
一、层次图和HIOP图
二、结构图
第五节面向数据流的设计方法
一、概念
二、变换分析
三、事务分析
四、设计优化
第六章详细设计(教学时数6)
要求学生重点掌握好的程序的标准,好的程序风格,结构化程序设计方法和思想。
第一节结构程序设计
第二节人机界面设计
一、设计问题
二、设计过程
三、人机界面设计指南
第三节过程设计的工具
一、程序流程图
二、PAD图
三、判定树
四、过程设计语言
第四节面向数据结构的设计方法
一、Jackson图
二、改进的Jackson图
三、Jackson方法
第五节程序复杂程度的定量度量
第七章实现(教学时数8)
本章介绍编码和测试,重点介绍软件测试技术及软件测试的步骤。
要求学生掌握主要的测试用例的设计和实用的测试原则和经验。
第一节编码
一.选择程序设计语言
二.编码风格
第二节软件测试基础
一、软件测试的目标
二、软件测试准则
三、测试方法
四、测试步骤
五、测试阶段的信息流
第三节单元测试
一、测试重点
二、代码审查
三、计算机测试
第四节集成测试
一、自顶向下集成
二、自底向上集成
三、不同集成测试策略比较
四、回归测试
第五节确认测试
一、确认测试的范围
二、软件配置复查
第六节白盒测试技术
一、逻辑覆盖
二、控制结构测试
第七节黑盒测试技术
一、等价划分
二、边界值分析
三、错误推测
第八节调试
一、调试过程
二、调试途径
第九节软件可靠性
第八章维护(教学时数4)
本章重点掌握软件维护概念及软件的可维护性。
第一节软件维护的定义
第二节软件维护的特点
一、结构化维护与非结构化维护差别巨大
二、维护的代价高昂
三、维护的问题很多
第三节软件维护过程
第四节软件的可维护性
一、决定软件可维护性的因素
二、文档
三、可维护性复审
第五节预防性维护
第六节软件在工程过程
第九章面向对象方法学引论(教学时数6)本章主要介绍面向对象方法学的概念,基本原理,对象模型,动态模型和功能模型。
第一节面向对象方法学概述
一、面向对象方法学要点
二、面向对象方法学优点
三、喷泉模型
第二节面向对向概念
一、对象
二、其它概念
第三节面向对象建模
第四节对象模型
一、类图的基本符号
二、表示关系的符号
第五节动态模型
第六节功能模型
一、用例图
二、用例建模
第十章面向对象分析(教学时数6)
本章主要介绍面向对象分析的过程,对象模型,动态模型和功能模型的建立。
第一节面向对象分析(OOA)的基本过程
一、概述
二、3个子模型与5个层次
第二节需求陈述
一、书写要点
二、例子
第三节建立对象模型
一、确定类-&-对象
二、确定关联
三、划分主题
四、确定属性
五、识别继承
六、反复修改
第四节建立动态模型
一、编写脚本
二、设想用户界面
三、画事件跟踪图
四、画状态图
五、审查动态模型
第五节建立功能模型
一、画出基本系统模型
二、画出功能及数据流图
三、描述处理框功能
第六节定义服务
第十一章面向对象设计(教学时数4)
本章主要介绍面向对象设计方法技术,各子系统的设计,最后讲述了设计的优化方法。
第一节面向对象设计的准则
第二节启发规则
第三节软件重用
一、概述
二、类构件
三、软件重用的效益
第四节系统分解
第五节设计问题域子系统
第六节设计人机交互子系统
第七节设计任务管理子系统
第八节设计数据管理子系统
一、选择数据存储管理模式
二、设计数据管理子系统
第九节设计类中的服务
一、确定类中应有的服务
二、设计实现服务的方法
第十节设计关联
第十一节设计优化
一、确定优先级
二、提高效率的几项技术
三、调整继承关系
第十三章软件项目管理(教学时数6)
本章主要介绍项目管理技术,项目质量保证
第一节估算软件规模
一、代码行技术
二、功能点技术
第二节工作量估算
一、静态单变量模型
二、动态多变量模型
三、COCOMO2
第三节进度计划
一、估算开发时间
二、Gantt图
三、工程网络
四、估算工程进度
五、关键路径
六、机动时间
第四节人员组织
一、民主制程序员组
二、主程序员组
三、现代程序员组
第五节质量保证
一、软件质量
二、软件质量保证措施(SQA)
第六节软件配置管理
一、软件配置
二、软件配置管理过程
第七节能力成熟度模型
参考书目
[1] 张海藩,软件工程导论(第5版),清华大学出版社,2008年2月
[2] 齐治昌等,软件工程,高等教育出版社,2001年8月
[3]Grady Booch, James Rumbaugh, Ivar Jacobson, The United Modeling Language User Guide(Second Edition), 影印版, 机械工业出版社,2006年4月
[4] Ivar Jacobson, Grady Booch, James Rumbaugh, The Unified Software Development Process, 影印版, 清华大学出版社(Pearson Education, Inc), 2005.01
[5] Michael Blaha, James Rumbaugh, Object-Oriented Modeling and Design with UML (second edition), Pearson Education, Inc., 2005
[6] Grady Booch, James Rumbaugh, Ivar Jacobson, The United Modeling Language User Guide,影印版, 机械工业出版社,2006年4月
[7] Grady Booch, Robert A. Maksimchuk, Object-oriented analysis and design with Applications, Third edition, Pearson Education, Inc, 2008年4月
[8]Shari Lawrence Pfleeger, Joanne M.Atlee, Software Engineering Theory
and Practice,Fourth Edition, 影印版,高等教育出版社, Pearson Education Inc., 2009.12.
11。