软件工程教学大纲
软件工程课程教学大纲
软件工程课程教学大纲一、课程概述软件工程课程旨在培养学生的软件开发能力和团队协作能力,通过理论学习和实践项目开发,使学生能够独立完成软件开发项目并具备解决实际问题的能力。
二、教学目标1. 理解软件工程的基本概念和原理;2. 掌握软件开发过程中的需求分析、设计、编码和测试等关键技术;3. 培养软件项目管理和团队协作的能力;4. 培养解决实际软件开发问题的能力。
三、教学内容1. 软件工程导论- 软件工程的定义与目标- 软件工程的发展历程- 软件工程的重要性和应用领域2. 软件开发过程- 瀑布模型- 增量模型- 敏捷开发模型- 迭代开发模型- 螺旋模型3. 需求分析与规格说明- 需求获取技术- 需求分析与建模- 法律、伦理和专业责任问题4. 软件设计与建模- 结构化设计- 面向对象设计- UML建模工具的使用- 设计原则与模式5. 软件测试与验证- 软件测试的基本概念- 黑盒测试和白盒测试- 单元测试、集成测试和系统测试- 测试策略与自动化测试工具6. 软件项目管理- 项目计划与进度管理- 项目风险管理- 团队协作与沟通- 质量管理与过程改进四、教学方法1. 理论授课:讲解软件工程基本概念和原理;2. 实践项目:学生以小组形式参与软件开发项目,包括需求分析、设计、编码和测试等环节;3. 讨论与案例分析:通过分析实际软件开发案例,学习解决问题的方法和策略;4. 实验与实践:使用软件工程相关工具进行实验和实践,加深对理论知识的理解和应用能力。
五、教材与参考书目主教材:- 《软件工程导论》(第4版),Ian Sommerville,人民邮电出版社,2020年。
参考书目:- 《软件工程:实践者导向》(第9版),Roger Pressman,机械工业出版社,2020年。
- 《UML和模式应用》(第3版),Craig Larman,机械工业出版社,2017年。
- 《软件测试:原理、技术与工具》(第3版),武汉大学软件工程研究所软件测试团队,清华大学出版社,2018年。
(完整word版)软件工程课程教学大纲
《软件工程》课程教学大纲一、课程代码与名称(小四号宋体加粗)课程代码: CS132201中文名称: 软件工程英文名称: Software Engineering二、课程概述及与相关课程关系软件工程是计算机科学与技术专业的专业必修课, 是指导学生按照工程化、标准化和规范化的方法开发软件系统的一门课程。
通过本课程学习, 学生能够掌握现代软件设计与开发的基本原理、方法和技术;熟悉结构化和面向对象软件设计与开发的全过程;了解软件项目管理、软件维护等方面知识。
软件工程与前后课程间关联关系、课程群对应的局部鱼骨图分别如下所示:图例:应用方向软件工程课程群及对应课程群项目、学年项目(局部)图图例:三、课程教学对象与教学目的适用专业: 计算机科学与技术教学目的:通过理论教学和实践相结合, 使学生初步具备运用软件工程的概念、原理、技术和方法开发与维护软件的能力, 并提高学生编写相关技术文档的能力, 及分析问题和解决问题的能力和团队工作交流能力。
*注: 该表所列指标可对照培养方案中所列指标来解释。
A: 认知, 指从教、学活动中、从生活经验和社会经验等多种信息渠道获得知识, 侧重知识的获取, 没有实训要求。
B: 训练, 指教、学活动中由教师引导开展的基础测试或练习, 匹配有课程讨论、课后研讨等环节。
C: 实践, 指以学生为主导, 通过实练而形成的对完成某种任务所必须的活动方式, 匹配有课程的三级项目或其它实践环节。
D: 探索, 指学生独立探寻问题、摸索、解答的活动, 不设置专门的考核。
(留空表示无该项要求)四、课程内容、学时分配及主要的教学方法本课程对主要软件开发方法采用项目驱动教学模式, 结合实验和项目开发实践, 使课程的实践与理论教学内容紧密配合, 同步进行, 达到理论指导实践, 实践促进理论学习目的。
通过理论教学、实践(实验)、团队项目开发实践3环节将理论与实践紧密联系。
教学中采用问题引导方式推进学生基于问题的学习(problem based learning), 以为学生为中心鼓励学生参与课程讨论, 促进学生采用主动学习方法(active learning)。
软件工程实验教学大纲
软件工程实验教学大纲
一、课程简介
软件工程实验是软件工程专业的一门基础实验课程。
本课程旨在通过实践操作和实验项目,培养学生软件开发与测试的能力,提升学生的团队协作和解决问题的能力。
本课程将通过一系列实验项目,引导学生掌握软件工程的基本概念、方法和流程。
二、教学目标
1.了解软件开发的基本原理和方法;
2.理解软件工程的基本概念和软件开发的生命周期;
3.掌握常用的软件开发工具和方法;
4.培养团队合作和项目管理能力;
5.提升解决问题和分析能力。
三、教学内容
本课程的教学内容主要包括以下几个方面:
1.软件开发基本原理
- 软件开发的基本概念和流程
- 需求分析与规格说明
- 设计与架构
- 编码与测试
- 部署与维护
2.软件开发工具和方法
- Agile开发方法
- 敏捷开发工具和项目管理工具的使用
- 版本控制工具的使用
3.实验项目
本课程将根据教学内容设计一系列实验项目,每个实验项目都将涉及到一定的软件开发和测试任务。
具体的实验项目将在课程开始前公布,并根据学生的实际情况进行调整。
四、教学方法。
软件工程专业教学大纲
软件工程专业教学大纲软件工程专业教学大纲:
第一部分:导论
软件工程的定义与概念
软件工程发展历程
软件工程的重要性与应用领域
第二部分:基础知识
计算机科学与软件工程的关系
软件工程的基本原理
软件生命周期与软件开发过程
需求分析与软件设计
软件测试与质量保证
第三部分:主要课程及内容
数据结构与算法
计算机网络原理
操作系统与系统编程
数据库原理与应用
面向对象程序设计
软件项目管理与团队协作
第四部分:实践教学
软件工程实践课程介绍
软件系统设计与开发实践
软件测试与调试实践
软件项目管理实践
软件质量保证实践
第五部分:教学方法与评估
课堂教学与实践相结合
案例分析与小组讨论
考试、作业与实验报告评估
课程设计与项目实践评估
第六部分:教学目标与培养要求培养学生的计算机基本功
培养学生的软件开发能力
培养学生的团队合作与沟通能力
培养学生的解决问题能力与创新思维
第七部分:教学资源与保障
教材与参考书目
实验室设备与软件环境
教师团队与指导导师
学校资源与实习机会
第八部分:教学内容更新与发展
结合当前软件工程领域热点
引入新技术与新方法
持续改进课程内容与教学方法
总结:
通过本教学大纲的设计,旨在为软件工程专业的学生提供系统全面的课程安排,培养学生的软件工程能力,提高学生在软件领域的竞争力,为其未来的职业发展打下坚实的基础。
愿每一位学生在本专业的学习过程中都能获得实实在在的收获,成为优秀的软件工程师。
软件工程》实践教学大纲(3篇)
第1篇一、课程简介《软件工程》是一门研究软件开发原理、方法和工具的学科,旨在培养学生具备软件开发的基本理论、实践技能和工程素养。
本课程通过实践教学,使学生能够掌握软件工程的基本方法,提高软件开发能力,为后续课程学习和实际工作打下坚实基础。
二、教学目标1. 理解软件工程的基本概念、原理和方法。
2. 掌握软件开发过程中的需求分析、设计、编码、测试和维护等基本技能。
3. 具备使用常用软件开发工具进行实际项目开发的能力。
4. 培养良好的团队协作和沟通能力,提高工程素养。
三、教学内容1. 软件工程概述- 软件工程的定义和发展历程- 软件生命周期和开发模型- 软件工程的目标和原则2. 需求分析- 需求获取和分析方法- 需求规格说明和文档编写- 需求管理3. 软件设计- 设计原则和模式- 数据库设计- 系统架构设计4. 软件开发- 编码规范和最佳实践- 集成开发环境(IDE)的使用- 版本控制工具的使用5. 软件测试- 测试方法和技术- 测试用例设计- 软件测试管理6. 软件维护- 维护过程和方法- 软件配置管理- 软件质量保证7. 软件项目管理- 项目管理的基本概念和原理- 项目计划、执行和监控- 团队协作和沟通四、实践教学安排1. 实践教学课时:共40学时,其中理论课24学时,实践课16学时。
2. 实践教学环节:(1)课堂演示:讲解软件工程的基本概念、原理和方法,演示常用软件开发工具的使用。
(2)案例分析与讨论:分析实际软件项目案例,讨论软件工程在实际开发中的应用。
(3)上机实验:完成以下实验项目:1. 需求分析实验:完成一个简单软件的需求分析,编写需求规格说明书。
2. 设计实验:完成一个简单软件的设计,包括数据库设计、系统架构设计等。
3. 编码实验:使用一种编程语言实现一个简单软件的功能。
4. 测试实验:编写测试用例,对软件进行功能测试和性能测试。
5. 维护实验:对已完成的软件进行维护,修复已知问题和优化性能。
软件工程教学大纲
《软件工程》教学大纲总学时数:20 年月《软件工程》教学大纲总学时数:讲授课:适合专业:计算机本科及其相关专业一、课程内容第1章概述1.教学基本要求了解软件工程的产生和原因,掌握软件工程的概念,7个周期及各种模型的优缺点。
2.教学内容1.1 软件工程的产生1.2 软件工程1.3 软件生命周期1.4 软件过程模型本章小结3.主要知识点与重点软件工程的概念,软件生命周期和软件过程模型。
第2章可行性研究与软件开发计划1.教学基本要求掌握软件工程的可行性分析,软件开发计划的步骤和内容。
2.教学内容2.1 软件定义与可行性研究2.2 软件工程开发计划的制订本章小结3.主要知识点与重点可行性研究及项目开发计划。
第3章需求分析1.教学基本要求掌握需求分析的基本内容和特点,需求分析的图形工具,数据字典。
2.教学内容3.1 需求分析的任务3.2 结构化分析步骤3.3 需求分析图形工具3.4 数据字典3.5 软件需求分析举例3.6 需求分析文档本章小结3.主要知识点与重点结构化,图形工具和数据字典。
第4章概要设计1.教学基本要求掌握概要设计的基本内容和任务,图形工具,概要设计的方法。
2.教学内容4.1 概要设计步骤4.2 软件结构设计的基本原理4.3 软件结构设计的图形工具4.4 概要设计方法4.5 概要设计文档与复审本章小结3.主要知识点与重点概要设计步骤、方法及工具。
第5章详细设计1.教学基本要求掌握详细设计的基本内容和任务,详细设计的方法。
2.教学内容5.1 过程设计5.2 用户界面设计5.3 数据代码设计5.4 数据输入输出设计5.5 数据安全设计本章小结3.主要知识点与重点详细设计步骤、方法及工具。
第6章软件实现1.教学基本要求了解程序设计风格,程序设计质量评价和设计文档,掌握软件测试的目标、方法、步骤及方案等。
2.教学内容6.1 结构化程序设计6.2 选择程序设计语言6.3 程序设计风格6.4 程序设计质量的评价6.5 程序设计文档6.6 软件测试目标和原则6. 7 软件测试方法6.8 软件测试步骤6.9 设计测试方案6.10 软件调试、验证与确认6.11 软件测试计划和分析报告本章小结3.主要知识点与重点软件测试的目标、方法、步骤及方案。
软件工程课程教学大纲
软件工程课程教学大纲软件工程课程教学大纲一、课程概述软件工程课程是一门面向软件开发和管理的综合性学科,旨在培养学生的软件系统分析、设计、实现和维护的能力,以及理解并应用软件工程原理和方法进行软件开发和管理的能力。
本课程涵盖软件开发的全过程,包括需求分析、设计、编码、测试、部署、维护和管理等方面。
二、课程目标通过本课程的学习,学生将能够:1、掌握软件工程的基本概念和方法;2、熟悉软件开发的全过程,理解并应用各种软件开发方法和模型;3、掌握常用的软件开发工具和技术,如面向对象编程、设计模式、版本控制等;4、掌握软件测试的基本技术和方法,理解并应用测试流程和管理方法;5、掌握软件维护和管理的基本技术和方法,理解并应用配置管理和版本控制等工具;6、增强团队协作和沟通能力,能够有效地参与和领导软件开发团队。
三、课程内容本课程将分为以下四个模块:1、软件工程基本概念和方法:介绍软件工程的基本概念、软件的生命周期、常用的软件开发方法和管理模型等;2、需求分析和设计:介绍需求分析的方法和工具,如USE Case图、数据流图等,以及软件设计的基本原理和方法,如面向对象设计、设计模式等;3、软件实现和测试:介绍编码的基本技术和规范,如代码风格、代码结构等,以及软件测试的基本技术和方法,如黑盒测试、白盒测试等;4、软件维护和管理:介绍软件维护和管理的基本技术和方法,如Bug 管理、版本控制等,以及配置管理和版本控制等工具的使用。
四、课程安排本课程将持续一个学期,共计36个学时,具体安排如下:1、软件工程基本概念和方法:10学时;2、需求分析和设计:12学时;3、软件实现和测试:10学时;4、软件维护和管理:4学时。
五、评估方式本课程的评估方式将包括以下方面:1、平时作业:占总评分的30%;2、期末考试:占总评分的50%;3、出勤率:占总评分的20%。
六、参考资料本课程将使用以下教材和参考书籍:1、《软件工程》(机械工业出版社,作者:史济民);2、《Head First Software Development》(中国电力出版社,作者:Andy Oram等);3、《敏捷软件开发》(人民邮电出版社,作者:Scott W. Ambler 等)。
《软件工程》课程教学大纲
软件工程课程教学大纲(SoftwareEngineering)学时数:32其中:实验学时:6课外学时:0学分数:2适用专业:计算机科学与技术一、课程的性质、目的与任务《软件工程》是计算机科学与技术专业教学计划中一门综合性和实践性很强的核心课程,主要内容包括软件工程概述、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件质量与质量保证、项目计划与管理。
根据培养基层应用型人才的需要,本课程的目的与任务是使学生通过本课程的学习,了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,为更深入地学习和今后从事软件工程实践打下良好的基础。
二、课程教学的基本要求(-)基本概念和基本知识:软件与软件工程,生存周期与软件开发模式,结构化分析、设计与编码,面向对象分析、设计与编码,软件的评审、测试与维护,项目计划与项目管理。
(二)基本技能:能用软件工程的方法参与软件项目的分析、设计、实现和维护重点:系统分析、系统设计、系统实现、系统维护难点:需求分析、软件测试课程的教学要求在每一章教学内容之后给出,大体上分为三个层次:了解、理解和掌握。
了解即能正确判别有关概念和方法:理解是能正确表达有关概念和方法的含义;掌握是在理解的基础上加以灵活应用三、课程的教学内容、重点和难点第一章概论一、软件(一)软件的发展;(二)软件的定义;(三)软件的特点、软件的种类。
二、软件工程的概念(一)软件危机与软件工程的定义;(二)软件工程的目标;(三)软件工程的原则。
三、软件生存周期与软件开发模型(一)瀑布模型、原型模型、螺旋模型、基于四代技术模型、面向对象与组件模型、混合模型。
教学要求:软件和软件工程的基本概念,软件生命周期及软件开发的各个模型重点:软件生存周期与软件开发模型第二章可行性分析一、可行性研究的任务二、可行性研究的步骤三、系统流程图四、成本/效益分析第三章需求分析一、需求分析的任务与步骤(一)需求分析的任务;(二)需求分析的步骤;(三)需求分析的原则。
2024版软件工程完整PPT教程大纲
质量保证体系建立
质量保证团队建设
组建专业的质量保证团队,负责质量保证 计划的执行和监督。
A 质量保证计划制定
根据项目需求和质量目标制定质量 保证计划,明确质量保证工作的内
容和要求。
B
C
D
质量评估与持续改进
通过定期的质量评估和审计,发现质量问 题并进行持续改进,提高软件质量水平。
质量保证流程实施
按照质量保证计划实施质量保证流程,确 保项目质量符合要求。
如用例图、活动图、状态图等UML工具,以 及需求管理工具如DOORS等。
系统设计原则与策略
系统设计原则
包括模块化、高内聚低耦合、可维护性、可扩展性等。
常用系统设计策略
如分层设计、设计模式、中间件技术等。
系统架构风格
如客户端-服务器架构、分布致性、完整性、安全性等 。
评估改进结果
对改进后的软件进行评估和测试,确 保达到预期目标。
05
04
实施改进过程
按照计划进行软件改进,包括代码优 化、流程改进等。
THANKS
感谢观看
收集用户反馈
定期收集用户反馈,整理和分析用户需求 和问题。
反馈处理结果
将处理结果及时反馈给用户,提高用户满 意度。
持续改进计划制定
分析现有问题
对软件现有问题进行深入分析,找出 根本原因。
制定改进目标
明确改进后的软件质量、效率等目标。
02
01
03
制定改进计划
包括改进时间、人员、资源、风险等 计划,确保改进过程可控。
包括缺陷的提交、确认、修复、验证和 关闭等环节,确保缺陷得到及时处理。
缺陷报告与跟踪 编写清晰的缺陷报告,记录缺陷的详 细信息,并通过缺陷跟踪系统实时跟
《软件工程》教学大纲
《软件工程》课程教学大纲课程类别:专业基础课总课时:40(讲授30, 实验10)适用专业:计算机科学与技术一、课程的性质和任务本课程是计算机科学与技术专业本科生的一门专业基础课程。
本课程从系统工程的角度讲述软件开发的过程、步骤、方法与技术,要求学生掌握软件开发的基本过程与技术,培养学生用工程的方法进行软件开发的能力。
二、课程教学的基本要求1. 掌握软件开发的基本过程与技术。
2. 能用工程的方法进行软件开发。
三、课程主要内容及学时分配第一部分传统的软件工程(一) 软件工程引论(1学时)软件产品的概念与特征,软件危机,软件工程的产生及发展(二) 软件工程过程模型(2学时)软件工程的技术基础,软件工程过程,软件过程模型线性顺序模型,原型模型,快速应用开发模型,演化软件过程模型软件过程技术,软件重用技术(三) 系统工程基础与可行性研究(2学时)系统需求识别,可行性研究与分析,系统体系结构建模,系统定义与评审(四) 软件需求分析与建模(2学时)需求分析,数据建模,功能建模,行为建模,数据字典结构化需求分析的若干技术,验证软件需求(五) 软件设计(3学时)软件设计中的基本概念和原理,体系结构设计,面向数据流的体系结构设计方法面向数据流的详细设计方案,面向数据结构的设计方法(六) 软件编码(2学时)程序设计语言,编码风格几软件效果,程序复杂度的概念及度量方法(七) 软件测试技术(2学时)软件测试基础,白盒测试技术,黑盒测试技术软件测试计划和测试分析报告,软件测试策略第二部分面向对象的软件工程(八) 面向对象的方法学引论(2学时)软件工程的新途径,面向对象建模,对象模型,动态模型,功能模型(九) 面向对象分析(2学时)面向对象分析过程,建立对象模型,建立动态模型,建立功能模型,定义服务(十) 面向对象设计(2学时)面向对象的设计准则,问题域子系统设计,人机交互子系统设计,任务管理子系统设计数据管理子系统设计,服务与关联的设计,面向对象设计的优化(十一) 面向对象实现(2学时)面向对象的程序设计语言,面向对象的程序实现特征,面向对象测试,组建技术第三部分软件工程项目管理(十二) 软件工程项目管理基础(1学时)项目管理的范围,人员角色管理,问题管理,过程管理(十三) 软件度量(1学时)软件度量,面向规模的度量,面向功能的度量,软件质量的度量在软件过程中集成度量数据(十四) 软件计划(2学时)软件范围界定,资源需求,项目估算,软件项目计划的结构,项目计划的分解求精计划跟踪监督,计划执行情况的度量与计划调控(十五) 软件工程风险管理(1学时)软件风险,风险识别,风险预测,风险缓解、监控与管理,RMMM计划(十六) 软件质量保证(2学时)软件质量与SQA,软件复审,正式的技术复审,基于统计的质量保证软件可靠性,SQA计划(十七) 软件配置管理(1学时)软件配置管理的任务,SCM过程,软件配置中对象的标识版本控制,变更控制,配置审核与状态报告四、实验要求课程实验要求学生完成一个较大的工程实例分析与设计。
软件工程教学大纲
软件工程教学大纲[简介]软件工程是计算机科学中的一门学科,旨在教授学生软件开发以及项目管理的理论和实践知识。
本文将介绍软件工程教学大纲的内容和目标,以及教学方法和评估方式。
[第一部分:引言]1. 软件工程的定义:软件工程是一种系统化、规范化和可重复的方法,用于开发高质量的软件。
2. 软件工程的重要性:软件在现代社会中的应用广泛,软件工程的实践能够提高软件开发的效率和质量。
[第二部分:教学目标]1. 理论知识:学生应该掌握软件工程的基本原理和方法,包括需求分析、设计、开发、测试和维护等方面的知识。
2. 实践能力:学生应该能够应用软件工程的理论知识解决实际问题,包括软件开发过程中的各个环节。
3. 团队合作:软件开发是一项团队活动,学生应该培养良好的沟通和协作能力。
[第三部分:教学内容]1. 需求分析:介绍需求工程的基本概念和方法,包括需求获取、分析和规格说明等内容。
2. 软件设计:讲解软件设计的原理和方法,包括结构化设计、面向对象设计以及设计模式等知识。
3. 软件开发:介绍软件开发的流程和方法,包括编码、调试、版本控制和软件测试等。
4. 质量保证:教授软件质量保证的理论知识和实践方法,包括软件测试、代码审查和性能优化等。
5. 项目管理:介绍项目管理的基本知识和技巧,包括项目计划、资源管理和风险管理等。
[第四部分:教学方法]1. 理论讲授:通过课堂讲解,向学生传授软件工程知识和理论。
2. 实践操作:安排实践环节,让学生亲自参与软件开发项目,提高他们的实践能力。
3. 小组讨论:组织小组讨论,让学生共同解决软件工程中的问题,培养他们的团队合作能力。
4. 项目实践:安排真实的软件开发项目,让学生在实际环境中应用所学知识,提高他们的实践能力。
[第五部分:评估方式]1. 考试:通过理论考试,评估学生对软件工程理论知识的掌握情况。
2. 项目评估:对学生在实际项目中的表现进行评估,包括项目成果和团队合作能力等方面。
《软件工程》课程教学大纲
《软件工程》课程教学大纲一、课程基本信息课程名称:软件工程英文名称:Software Engineering课程编码:11223C课程类别:专业主干课总学时:48学时(含实验10学时)总学分:3适用专业:计算机科学与技术/网络工程方向先修课程:高级语言程序设计,数据库设计原理,数据结构开课系部:计算机科学与技术系二、课程的性质和任务《软件工程》是计算机科学与技术专业本科生的一门专业主干课程。
它是一门指导计算机软件系统开发和维护的工程学科,也是计算机科学与技术领域的一个重要学科。
软件工程学是用以指导软件人员进行软件的开发、维护和管理的科学,通过本课程的学习,使学生掌握软件工程的基本概念、基本原理、实用的开发方法和技术,了解软件工程各领域的发展动向;开发软件项目的工程化的方法及在开发过程中应遵循的流程、准则、标准和规范等。
使学生掌握开发高质量软件的方法,以及有效地策划和管理软件开发活动,为今后从事软件开发和应用打下良好的基础。
通过本课程的学习,培养学生对软件开发能力和项目管理能力。
三、课程教学基本要求(一)理论教学内容和基本要求第1章软件工程概述了解软件工程的产生和发展、软件危机的原因,知道如何消除软件危机。
明白软件工程的基本概念,知道软件工程中包含的领域范围重点:软件危机的产生和消除方法第2章软件过程软件与软件生命周期任务,软件开发过程中的基本开发模型,软件开发工具与软件开发环境。
掌握软件生存期模型,软件开发模型方法介绍。
重点:软件与软件生存期,软件开发过程模型难点:软件开发过程模型第3章结构化分析掌握软件需求获取的方法、软件需求工程的任务、软件需求的原则、主要的需求分析方法;需求工程的基本活动、需求的有效性验证、需求变动管理、需求规格说明;建立结构化分析的三种模型;三种模型对应的描述方法:E-R图,数据流图,状态图。
掌握分层数据流图、数据词典和加工逻辑说明的基本构造方法。
重点:软件需求获取方法、结构化分析方法、分析建模方法难点:结构化分析建模方法第4章结构化设计理解软件结构化分析与结构化设计的映射关系,软件设计的基本原理。
《软件工程》教学大纲
《软件工程》教学大纲一、课程概述本课程向学生介绍与大型软件相关的规划. 分析. 设计. 实现. 测试. 维护等概念. 原理. 技术与工具,同时向学生讲述传统的结构化开发方法与当前流行的面向对象开发方法。
要求学生牢固掌握软件生命周期. 软件质量. 软件成本等基本概念以及传统的结构化分析. 设计与实现方法;掌握面向对象软件工程的基本概念与表示技术,基本掌握软件开发中的管理技术。
通过本课程的学习,让学生对软件工程学有一个全貌的了解,对其所涉及的基本概念. 原理. 方法和有关技术逐步领会并进行运用。
要求学生能够在已有的程序设计. 数据结构. 数据库等理论基础上,为今后进行实际的软件开发奠定一个良好的基础。
本课程应强调实际运用,最好在教学中安排学生参予系统开发的策划. 分析. 设计. 编码. 测试等阶段工作的环节,积极引导学生从个人的单纯编程活动转移到进行系统分析与设计方面上来。
如果受条件所限,可让学生在毕业设计中将这一环节补上。
本课程的先修课程为“面向对象程序设计”. “数据结构与算法”与“数据库”。
本课程的后续课程可以为“程序设计方法学”与“算法分析与设计”。
二、课程目标1.知道《软件工程》这门学科的性质. 地位. 独立价值. 研究范围. 基本框架. 研究方法. 学科进展和未来方向等。
2.理解该门学科的主要概念. 基本原理和策略等。
3.学会运用一些具体的策略或技术等,如软件测试过程中所用到的黑盒测试法和白盒测试法。
4.能够把所学的原理应用到具体的实践中去,如对于具体系统开发过程中所遇到的问题能够自行进行处理,培养学生发现. 分析和解决问题的能力等。
三、课程内容和教学要求这门学科的知识与技能要求分为知道、理解、掌握、学会四个层次。
这四个层次的一般涵义表述如下:知道———是指对这门学科和教学现象的认知。
理解———是指对这门学科涉及到的概念、原理、策略与技术的说明和解释,能提示所涉及到的教学现象演变过程的特征、形成原因以及教学要素之间的相互关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件工程》教学大纲课程编号:4111209英文名称名:Software Engineering总学时:64学时学分:3课程类别:专业必修课适用专业:计算机科学与技术先修课程:程序设计语言、数据结构、数据库原理、大学数学一、课程性质与目的、要求《软件工程》是计算机专业的一门工程性基础课程,在软件工程学科人才培养体系中占有重要的地位。
软件开发是建立计算机应用系统的重要环节,人们通过软件工程学把软件开发纳入工程化的轨道,而软件工程学是用以指导软件人员进行软件的开发、维护和管理的科学。
《软件工程》已成为高等学校计算机软件教学体系中的一门核心课程,本课程以IEEE最新发布的软件工程知识体系为基础构建内容框架,注重贯穿软件开发整个过程的系统性认识和实践性应用,以当前流行的统一开发过程、面向对象技术和UML 语言作为核心,密切结合软件开发的先进技术、最佳实践和企业案例,力求从“可实践” 软件工程的角度描述需求分析、软件设计、软件测试以及软件开发管理,使学生在理解和实践的基础上掌握当前软件工程的方法、技术和工具。
通过本课程的学习,要求学生能掌握软件工程的基本概念、基本原理、开发软件项目的工程化的方法和技术及在开发过程中应遵循的流程、准则、标准和规范等;学生应能掌握开发高质量软件的方法,以及有效地策划和管理软件开发活动,为学生参加大型软件开发项目打下坚实的理论基础。
本课程注重培养学生理论应用于实践的能力,课堂上教师向学生讲述软件工程中的相关原理和概念,并通过课程设计,培养学生对整个软件开发过程的能力,让学生能切实体会到软件工程在实践中的指导作用,并按软件工程的要求完成规范的各项软件开发文档。
本课程对提高学生的软件开发能力和项目管理能力有重要的现实意义。
二、教学内容及学时分配本课程的教学内容共分十五章。
第1章软件工程学概述(4课时)学习目的与要求:通过本章的学习,了解和掌握软件工程的基本概念(如软件和软件工程的定义、等),软件危机的表现形式、产生的原因及消除的途径,软件工程的基本原理、方法学,软件的生存期,几种主要的软件开发模型等。
知识点:①软件危机的产生、典型表现形式、产生的原因及消除的途径;②软件工程的基本原理、包括软件工程的定义、特性、方法学;③二种主要的软件开发方法;④软件生存周期;⑤软件过程、几种主要的开发模型。
1.1 软件危机1.2 软件工程1.3 软件生命周期1.4 软件过程1.5 小结第2章可行性研究(4课时)学习目的与要求:深刻理解可行性研究的必要性,掌握可行性研究的任务、过程、成本效益分析以及可行性研究报告的主要内容;掌握系统流程图、数据流程图、数据字典概念以及项目开发计划的基本内容。
知识点:①可行性研究的任务、具体步骤、成本效益分析、可行性研究报告;②系统流程图;③数据流图;④数据字典。
2.1 可行性研究的任务2.2 可行性研究过程2.3 系统流程图2.4 数据流图2.5 数据字典2.6 成本/效益分析2.7 可行性研究报告2.8 小结第3章需求分析(6课时)学习目的与要求:掌握需求分析的任务,需求获取的方法、分析建模与需求规格说明,掌握数据建模的实体联系图、数据规范化,掌握描述系统行为模型的状态转换图,掌握层次方框图、Warnier图、IPO(HIPO)图。
掌握验证软件需求的必要性、方法。
知识点:①需求分析的任务,需求获取、分析建模与需求规格说明;②实体联系图与数据规范化;③状态转换图;④层次方框图;⑤ Warnier图;⑥IPO(HIPO)图;⑦验证软件需求。
3.1 需求分析的任务3.2 与用户沟通获取需求的方法3.3 分析建模与规格说明3.4 数据规范化3.5 验证软件需求3.6 小结第4章形式化说明技术(1课时)学习目的与要求:掌握形式化方法的概念、优点和应用准则,初步掌握有穷状态机、Petri 网、Z语言的概念和使用。
知识点:①形式化方法、非形式化方法、半形式化方法;②形式化方法的应用准则;③有穷状态机;④Petri网;⑤Z语言。
4.1 概述4.2 有穷状态机4.3 Petri网4.4 Z语言4.5 小结第5章总体设计(6课时)学习目的与要求:了解软件总体设计的目的、任务,掌握软件总体设计的过程、设计原理和启发规则,掌握描述软件结构的工具以及面向数据流的设计方法。
能够将具体的数据流图的转换为软件的结构图,即变换分析技术和事务分析技术。
知识点:①总体设计、概要设计、初步设计;②软件总体设计的阶段和过程;③模块化、抽象、逐步求精、信息隐藏、模块独立;④启发规则;⑤层次图、HIPO图、结构图;⑥面向数据流的设计方法(结构化设计方法-SD方法)。
5.1 设计过程5.2 设计原理5.3 启发规则5.4 描绘软件结构的图形工具5.5 面向数据流的设计方法5.6 小结第6章详细设计(4课时)学习目的与要求:了解软件详细设计阶段的目的、任务和结构化程序设计的概念,掌握人机界面设计的方法、过程设计的工具以及面向数据结构的设计方法,了解程序复杂程度的定量度量。
知识点:①结构化程序设计;②人机界面设计的问题、设计方法;③程序流程图、盒图(N-S图)、PAD图、判定表、判定树、过程设计语言;④JACKSON图、JACKSON方法。
6.1 结构程序设计6.2 人机界面设计6.3 过程设计的工具6.4 面向数据结构的设计方法6.5 程序复杂程度的定量度量6.6 小结第7章实现(10课时)学习目的与要求:了解如何选择程序设计语言,培养良好的编码风格,掌握软件测试的目标、准则、方法和步骤,掌握单元测试、集成测试、确认测试的方法步骤,掌握白盒测试和黑盒测试技术的概念、方法,掌握调试过程与途径,了解软件可靠性的概念及其计算方法。
能够按照测试的原则和技术,分析确定高效的测试用例。
知识点:①选择程序设计语言、编码风格;②软件测试基础;③单元测试、集成测试、确认测试;④白盒测试技术和黑盒测试技术;⑤调试;⑥软件可靠性、可用性。
7.1 编码7.2 软件测试基础7.3 单元测试7.4 集成测试7.5 确认测试7.6 白盒测试技术7.7 黑盒测试技术7.8 调试7.9 软件可靠性7.9 小结第8章维护(2课时)学习目的与要求:了解软件维护的定义,掌握软件维护的特点和过程,软件的可维护性的定义及提高可维护性的方法。
掌握预防性维护和软件再工程过程的概念、方法。
知识点:①软件维护;②软件的可维护性;③预防性维护;④软件再工程过程。
8.1 软件维护的定义8.2 软件维护的特点8.3 软件维护过程8.4 软件的可维护性8.5 预防性维护8.6 软件再工程过程8.7 小结第9章面向对象方法学引论(2课时,选讲)学习目的与要求:了解面向对象方法学的要点和优点,掌握面向对象的概念、建模,掌握对象模型、动态模型、功能模型以及三种模型的关系。
知识点:①面向对象方法学的特点;②面向对象;③面向对象建模;④对象模型、动态模型、功能模型。
9.1 面向对象方法学概述9.2 面向对象的概念9.3 面向对象建模9.4 对象模型9.5 动态模型9.6 功能模型9.7 3种模型之间的关系9.8 小结第10章面向对象分析(4课时,选讲)学习目的与要求:掌握面向对象分析的过程、需求陈述,能够根据具体问题建立对象模型、动态模型、功能模型以及确定对象的服务。
知识点:①对象模型的层次;②面向对象分析与需求陈述;③建立对象模型;④建立动态模型;⑤建立功能模型;⑥确定服务。
10.1 面向对象分析的基本过程10.2 需求陈述10.3 建立对象模型10.4 建立动态模型10.5 建立功能模型10.6 定义服务10.7 小结第11章面向对象设计(4课时,选讲)学习目的与要求:了解面向对象设计的准则和启发规则,掌握软件重用的概念和方法,掌握系统分解的方法,掌握设计问题域子系统、设计人机交互子系统、设计任务管理子系统、设计数据管理子系统、设计类中的服务、设计关联以及设计优化的方法。
知识点:①面向对象设计的准则、启发规则;②软件重用;③系统分解;④设计问题域子系统;⑤设计人机交互子系统;⑥设计任务管理子系统;⑦设计数据管理子系统;⑧设计类中的服务;⑨设计关联;⑩设计优化。
11.1 面向对象设计的准则11.2 启发规则11.3 软件重用11.4 系统分解11.5 设计问题域子系统11.6 设计人机交互子系统11.7 设计任务管理子系统11.8 设计数据管理子系统11.9 设计类中的服务11.10 设计关联11.11 设计优化11.12 小结补充内容:UML基础与ROSE建模(8课时,选讲)学习目的与要求:掌握UML基础知识,并能画出ROSE建模图,包括UML用例图、类图、对象图、包图、顺序图和合作图、状态图、构件图和部署图。
第12章面向对象实现(2课时,选讲)学习目的与要求:掌握面向对象语言的特点以及如何选择面向对象的开发工具,养成良好的程序设计风格,掌握面向对象的软件测试的特点和策略,能够设计测试用例。
知识点:①面向对象语言;②程序设计风格以及对可重用性、可扩充性、健壮性的影响;③面向对象的单元测试、集成测试、确认测试;④测试类的方法;⑤面向对象的测试用例。
12.1 程序设计语言12.2 程序设计风格12.3 测试策略12.4 设计测试用例12.5 小结第13章软件项目管理(2课时,选讲)学习目的与要求:掌握估算软件规模和工作量的技术,能够根据项目制定合理的进度计划,掌握团队组织的基本方法,了解软件的质量指标并掌握软件质量保证的措施,掌握软件配置管理,了解能力成熟度模型。
知识点:①代码行、功能点估算软件规模的技术;②进度计划中的甘特图、工程网络、关键路径;③团队组织;④软件质量指标、质量保证措施;⑤软件配置、软件配置管理过程;⑥CMM。
13.1 估算软件规模13.2 工作量估算13.3 进度计划13.4 人员组织13.5 质量保证13.6 软件配置管理13.7 能力成熟度模型13.8 小结第14章软件开发环境(1课时,选讲)学习目的与要求:了解软件工具或软件开发环境对软件开发的影响,了解CASE生存周期、软件工程环境、软件工程方法的研究在软件开发中的作用。
知识点:①编程环境;②需求分析、设计、建模工具,CASE;③测试工具、配置管理工具;④工具集成机制。
14.1 软件支持环境14.2 软件工具14.3 计算机辅助软件工程(CASE)14.4 小结第15章软件工程标准化与文档(2课时,选讲)学习目的与要求:了解软件工程标准、软件开发规范与文档对软件开发的影响,掌握软件工程标准和规范的内容及其利用,掌握软件文档的写作方法。
知识点:①软件工程标准;②ISO9000系列标准;③软件开发规范、软件文档制作。
15.1 软件工程标准化15.2 计算机软件开发规范15.3 软件文档的任务15.4 小结三、教学方法教师在课堂上采用多媒体教学手段授课,上课时强调理论与实践的同等重要性,不断积累教学素材指导课堂讨论和实践,以提高学生的学习兴趣。