惠州学院软件工程导论课程介绍 刘宇芳老师
- 格式:doc
- 大小:134.00 KB
- 文档页数:7
软件工程导论课程思政教学改革探索软件工程导论课程是计算机科学与技术专业的基础课程之一,旨在全面介绍软件工程的基本原理、方法和技术。
然而,随着时代的发展和社会需求的变化,传统的软件工程导论课程已经无法满足现代软件工程师的培养需求。
为了提升学生的综合素质和思想道德素养,我校软件学院积极探索软件工程导论课程的思政教学改革。
首先,我们加强了软件工程导论课程中的思政教育内容。
课程中融入了马克思主义、中国特色社会主义等重要理论,增强了学生对社会主义核心价值观的理解和认同。
同时,我们关注当代软件工程发展的伦理道德问题,引导学生树立正确的职业道德和社会责任意识。
通过案例分析和讨论,学生能够更好地理解软件工程伦理道德规范,培养良好的职业操守。
其次,我们注重培养学生的创新能力和实践能力。
通过软件工程导论课程的教学,我们引导学生关注软件工程的前沿技术和热点问题,激发他们的创新思维和探索精神。
同时,我们组织学生参与实践项目,如软件工程实训、软件开发比赛等,让学生能够将所学知识应用于实际项目中,提升他们的实践能力和团队合作意识。
第三,我们加强了软件工程导论课程的实践教学环节。
除了经典的理论教学外,我们还加大了实践教学的比重。
引入实验课程和项目实践,让学生亲自动手实施软件开发过程中的各个环节。
通过实际操作,学生能够了解软件工程项目的全过程和实际应用技巧,培养他们的动手能力和解决问题的能力。
第四,我们建立了良好的导师制度,为学生提供个性化的指导和辅导。
每个学生都有一位导师负责指导他们的学业和发展规划。
导师会与学生进行定期的面谈,了解他们的学习情况和困难,并为他们提供针对性的帮助和指导。
通过导师制度,学生能够得到更多的关心和关注,增强他们的学习动力和自主学习能力。
最后,我们注重与企业的合作和交流,增强软件工程导论课程的实践性和应用性。
我们与各大软件企业建立了校企合作关系,邀请企业专家来校进行讲座和实践指导。
学生还有机会到企业进行实习和实训,与实际项目接触,了解企业的工作流程和需求。
第二章可行性研究一、可行性研究的任务可行性研究就是确定问题是否值得去解。
可行性研究工作是在初步的需求定义(澄清问题的定义)之后进行的,其的目的是用最小的代价在尽量短的时间内(总成本的5%~10%)确定该项目是否值得去解决,是否存在可行的解决方案。
对每一种可能的解决方案,就以下几个方面研究其可行性:(1)经济可行性:这个系统的经济效益能超过它的开发成本吗?估算项目的开发成本和系统投入使用后可能带来的利润,进行成本/效益分析,从经济角度判断系统开发是否“合算”。
(2)技术可行性:使用现有的技术能实现这个系统吗?根据客户提出的系统功能、性能要求,从开发者的技术实力、以往工作基础、问题的复杂性等出发,判断系统开发在时间、费用及其他各项约束条件限制下成功的可能性。
(3)运行、操作可行性:系统的操作方式在这个用户组织内行得通吗?主要研究系统的运行方式在用户单位是否可以被有效地实施,是否与原有其他系统相矛盾;系统的操作规程在用户单位内是否可行,它包括人事、科技政策、管理方法等等。
(4)法律可行性:系统的开发使用,在当国当地当时合法吗?研究系统的开发和使用是否会侵犯他人的权益,是否触犯了国家和地方的法律法规。
另外,可行性研究还要有开发方案的选择结论:如果问题没有可行的解,分析人员应建议停止该项目,以避免造成进一步的浪费;如果问题值得解决,则提出并评价实现系统的各种可行的开发方案,从中选择一种较好方案,并为系统制定一个初步的开发计划。
二、可行性研究的步骤1、复查初步分析结果,确定系统目标与规模,清晰地描述对系统的所有约束条件;P72、研究现有的系统,找出其基本功能和信息,指出其缺点或局限性(功能性能上的、经济上的);P93、借助某种图形工具导出新系统的高层(比较粗略的)逻辑模型,并与现有系统进行比较。
以后可以从这个逻辑模型出发设计新系统;P104、进一步定义问题。
可行性研究的前3个步骤实质上构成一个循环,目的是逐步改善逻辑模型。
软件工程导论 课程设计一、课程目标知识目标:1. 了解软件工程的基本概念、原则和方法,掌握软件开发的基本流程和模型;2. 理解软件需求分析、软件设计、编码、测试等阶段的任务和目标;3. 掌握软件项目管理的基本知识,了解软件质量保证和风险管理的重要性。
技能目标:1. 能够运用软件工程的基本方法进行小规模软件项目的需求分析和设计;2. 学会使用至少一种编程语言进行软件编码,并掌握基本的调试技巧;3. 能够运用项目管理方法,对软件项目进行计划、执行和监控。
情感态度价值观目标:1. 培养学生对软件工程的兴趣,激发他们探索软件世界的热情;2. 培养学生的团队合作意识,使他们学会在团队中分工合作、共同解决问题;3. 培养学生具备良好的软件工程伦理素养,关注软件质量、用户体验和社会责任。
本课程针对高中年级学生,结合课程性质、学生特点和教学要求,将课程目标分解为具体的学习成果。
通过本课程的学习,使学生能够掌握软件工程的基本知识,具备初步的软件开发能力,同时培养他们的团队合作意识和软件工程伦理素养。
为后续深入学习软件工程相关领域知识打下坚实基础。
二、教学内容1. 软件工程基本概念:软件、软件工程、软件生命周期、软件开发模型;2. 软件需求分析:需求获取、需求分析、需求规格说明书;3. 软件设计:总体设计、详细设计、设计原则和模式;4. 编码与实现:编程语言选择、编码规范、调试技巧;5. 软件测试:测试方法、测试策略、测试用例设计;6. 软件项目管理:项目计划、项目执行、项目监控、风险管理;7. 软件质量保证:质量标准、质量保证方法、质量评估;8. 软件工程伦理:软件工程伦理原则、伦理问题案例解析。
教学内容依据课程目标,按照科学性和系统性原则,结合教材章节进行组织。
教学大纲明确以下安排和进度:第一周:软件工程基本概念;第二周:软件需求分析;第三周:软件设计;第四周:编码与实现;第五周:软件测试;第六周:软件项目管理;第七周:软件质量保证;第八周:软件工程伦理。
软件工程专业导论课软件工程专业导论课是软件工程专业的入门课程,旨在为学生介绍软件工程的基本概念、方法和技术,培养学生对软件工程的理解和兴趣。
本文将从课程内容、教学方法、学习收获等方面对软件工程专业导论课进行详细介绍,为学生和教师提供参考。
一、课程内容软件工程专业导论课的主要内容包括以下几个方面:1. 软件工程概述:介绍软件工程的定义、发展历程、重要性以及软件工程专业的基本知识体系,对软件工程的基本概念进行概述。
2. 软件开发流程:介绍软件开发的基本流程,包括需求分析、设计、编码、测试、部署和维护等各个阶段,以及各个阶段的主要任务和方法。
3. 软件工程方法和技术:介绍软件工程中常用的方法和技术,如面向对象分析与设计、UML建模、软件测试方法、软件配置管理等,帮助学生了解软件工程实践中的常用方法和技术。
4. 软件质量与项目管理:介绍软件质量的概念、评价标准和保障方法,以及项目管理的基本原理和方法,培养学生的软件质量意识和项目管理能力。
5. 软件工程伦理与规范:介绍软件工程领域的伦理道德和规范要求,引导学生在软件工程实践中遵守伦理规范,培养学生的职业道德和责任感。
二、教学方法软件工程专业导论课通常采用多种教学方法,其中包括理论讲授、案例分析、实践操作和课堂讨论等。
教师通过理论讲授,向学生介绍软件工程的基本概念和知识;通过案例分析,向学生展示软件工程在实际项目中的应用和效果;通过实践操作,让学生亲自实践软件工程方法和技术;通过课堂讨论,激发学生的学习兴趣,培养学生的团队合作和沟通能力。
三、学习收获软件工程专业导论课的学习收获主要包括以下几个方面:1. 理论知识:学生通过学习,掌握了软件工程的基本理论知识,理解了软件工程的发展历程、重要性和基本概念,为今后的学习和实践奠定了基础。
2. 实践能力:学生通过案例分析和实践操作,掌握了软件工程中常用的方法和技术,提高了软件设计、开发、测试和管理的实际能力。
3. 团队合作:学生通过课堂讨论和项目实践,培养了团队合作和沟通能力,了解了软件工程团队合作的重要性和方法。
《软件工程导论》课 程 介 绍课程特点:既是一门技术学课程,也是一门管理学课程;既具有理论性,也具有较强的实操性。
课程目的:基本:✧ 掌握软件工程学的基本概念和基本原理;✧ 掌握分析、设计、测试与维护软件系统的理论与方法;✧ 实践用软件工程的方法开发软件系统的全过程,构建一个软件系统。
进一步:✧ 转变对软件的认识:程序 系统;✧ 转变思维定式:程序员 系统分析员/系统设计员;需求获取、定义、建模、分析软件体系结构设计软件概要设计软件评审与测试软件评审/测试软件评审/确认软件详细设计软件构造软件项目管理软件工程人才分布示意图✧ 学习以团队合作的形式开发软件;✧ 工程化训练:规范、准则、项目管理。
课程的主要内容:软件工程的产生、软件的生命周期、生命周期模型;软件开发各阶段的目标、任务、特点、步骤和文档;传统软件工程的基本思想,开发过程和步骤,应遵循的原则和准则;面向对象软件工程的基本思想、基本过程和基本模型;软件工程的管理技术。
课程重点:掌握结构化方法开发软件系统的过程、步骤、应遵循的原则以及工具。
教学安排:56学时讲授;8-10学时课内实验;课后作业和课后实验。
考核:期末考试:70%;作业+分组实验报告+点名:30%。
教材:软件工程导论(5th),张海藩,清华大学出版社参考文献软件工程(第二版),齐治昌,高等教育出版社软件工程实践教程,谭庆平等,高等教育出版社软件工程分析案例,李代平等,清华大学出版社先修课程:程序设计语言数据结构数据库原理与设计课程实验:实验要求:按照面向数据流的软件工程的要求完成各阶段的主要文档,实现的程序能初步运行。
✧分组进行,每组3~4人,自由组合,每组设项目负责人一个;✧每组抽签选择开发题目1、2或3,一组同学合作完成一个项目,每人负责项目中的1~2个开发步骤;✧工作步骤:问题初步定义和可行性研究→需求分析(资源采集)→界面原型设计→概要设计→详细设计→实现与测试→项目验收✧需要交付的文档:(1)可行性研究报告(2)项目开发计划(含小组成员分工)(3)需求规格说明书(4)概要设计说明书(5)详细设计说明书(6)数据库设计说明书(7)测试计划(8)测试分析报告(9)项目开发总结报告(10)系统源代码(11)操作手册建议开发步骤:⏹可行性研究:用系统流程图描述系统的工作流程。
《软件工程导论》课程教学大纲软件工程导论课程教学大纲一、课程介绍软件工程导论课程致力于介绍软件工程的基本概念、原理和技术,帮助学生了解软件开发的整体流程以及相关的管理和质量控制方法。
通过本课程的学习,学生将掌握软件工程的基本理论和实践技能,为日后的软件项目开发奠定坚实的基础。
二、教学目标1. 让学生了解软件工程的发展历程和重要性,并理解软件工程在实际应用中的作用。
2. 掌握软件工程的基本概念和核心原理,包括需求分析、设计、编码、测试和运维等方面。
3. 学会运用常见的软件工程方法和工具,提高软件开发的效率和质量。
4. 培养学生的团队合作能力和项目管理能力,使其能够适应未来的软件开发工作。
三、教学内容1. 软件工程导论1.1 软件工程的定义和背景1.2 软件工程的发展历程1.3 软件工程的重要性和挑战2. 软件生命周期2.1 软件生命周期模型2.2 软件需求与分析2.3 软件设计与体系结构2.4 软件编码与测试2.5 软件维护与升级3. 需求工程3.1 需求获取与分析3.2 需求规格说明3.3 需求验证与验证4. 软件设计4.1 结构化设计原理4.2 面向对象设计原理4.3 软件设计工具和方法5. 软件测试5.1 测试的基本概念和原理5.2 测试用例设计和执行5.3 软件缺陷的管理和修复6. 软件项目管理6.1 软件项目计划与组织6.2 软件项目进度控制与风险管理6.3 软件质量管理和配置管理四、教学方法1. 理论讲授:通过课堂讲解,介绍软件工程的基本概念、原理和方法。
2. 实践操作:引导学生使用常见的软件工程方法和工具进行实践,加深对软件开发流程的理解。
3. 项目实践:组织学生进行小型软件项目开发,培养团队合作和项目管理能力。
4. 讨论与互动:鼓励学生在课堂上提问和讨论,促进知识的深入理解和应用。
五、评价方式1. 平时表现:包括课堂参与、作业完成情况、实践操作等。
2. 课程项目:对学生参与的实际软件开发项目进行评估。
软件工程说课稿(通用)一、课程简介本课程旨在介绍软件工程的基本概念、原理和方法,帮助学生掌握软件开发过程中的有效管理和高效运作的技能。
通过研究本课程,学生将了解软件工程的重要性,并掌握软件工程的基本流程和实践技能。
二、教学目标本课程的教学目标主要包括以下几个方面:1. 了解软件工程的基本概念和发展历程;2. 掌握软件工程的主要原理和方法;3. 理解软件开发过程中的需求分析、系统设计、编码实现等关键阶段;4. 研究软件工程中的项目管理和团队协作技巧;5. 培养学生的问题分析和解决能力,提高软件开发质量和效率。
三、教学内容1. 软件工程概述- 软件工程定义和特点- 软件开发生命周期- 软件工程发展历程2. 软件开发过程- 需求分析和规格说明- 系统设计和架构- 编码与测试- 部署和维护3. 软件质量保证- 软件测试方法和技术- 质量评估和控制- 缺陷管理和修复4. 项目管理与团队协作- 项目计划与进度管理- 需求管理和变更控制- 团队组织与沟通- 软件配置管理四、教学方法1. 讲授:通过课堂讲授的方式介绍软件工程的基本概念、原理和方法;2. 实践:组织学生进行软件开发案例分析和实践操作,提升实际应用能力;3. 讨论:鼓励学生参与课堂讨论,促进思维交流和知识探索;4. 小组项目:组织学生分组进行软件开发项目实践,培养团队合作精神和项目管理能力。
五、教学评估1. 课堂作业:布置相关案例分析和问题解答,检验学生对知识的理解与掌握程度;2. 实践项目:根据学生的小组项目成果评估其软件开发能力和团队合作水平;3. 期末考试:考察学生对软件工程概念和方法的综合应用能力。
六、教学资源1. 教材:《软件工程导论》2. 参考书:《软件工程:实践者的研究方法》3. 软件开发工具:Eclipse、Visual Studio等以上就是本课程的基本内容和教学安排,希望通过学习本课程,学生能够对软件工程有更深入的理解,并在实践中掌握软件开发的方法和技巧。
第六章详细设计一、详细设计概述1、目的:为软件系统的H图/SC图中的每一个模块确定采用的算法(处理流程)和模块内数据结构,用某种选定的表达工具给出清晰的描述。
2、任务:用一定的工具精确描述目标系统,从而方便在编码阶段可以把这种描述直接翻译成用某种程序设计语言书写的程序。
(1) 确定每一模块的算法(处理流程)(2) 确定每一模块使用的数据结构(3) 确定本模块的外部接口和用户界面(4) 为每一模块设计一组测试用例(单元测试计划)详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码。
因此,详细设计的结果基本上决定了最终的程序代码的质量。
考虑程序代码的质量时必须注意,程序的“读者”有两个,那就是计算机和人。
详细设计不仅要逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程容易阅读和理解。
二、结构化程序设计1、什么是结构化程序设计(1) 如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块是单入口、单出口的,则称这个程序是结构化的。
(2) 结构化程序设计是尽可能少用GO TO语句的程序设计方法。
最好仅在检测出错误时才使用GO TO语句,而且应该总是使用前向GO TO 语句。
(3) 如果允许使用LEAVE(或BREAK)结构,则不仅方便而且会使效率提高很多。
LEAVE或BREAK结构实质上是受限制的GO TO 语句,用于转移到循环结构外面的语句。
(4) 如果只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE型循环这3种基本控制结构,P5,则称为经典的结构程序设计;如果除了上述3种基本控制结构之外,还允许使用DO-CASE型多分支结构和DO-UNTIL 型循环结构,则称为扩展的结构程序设计;如果再加上允许使用LEAVE(或BREAK)结构,则称为修正的结构化程序设计。
2、结构化程序设计中基本的控制流程三、人机界面的设计1、重要性人机界面设计是接口设计的一个重要的组成部分。
《软件工程导论》课 程 介 绍
课程特点:
既是一门技术学课程,也是一门管理学课程;
既具有理论性,也具有较强的实操性。
课程目的:
基本:
✧ 掌握软件工程学的基本概念和基本原理;
✧ 掌握分析、设计、测试与维护软件系统的理论与方法;
✧ 实践用软件工程的方法开发软件系统的全过程,构建一个软件系统。
进一步:
✧ 转变对软件的认识:程序 系统;
✧ 转变思维定式:程序员 系统分析员/系统设计员;
需求获取、定义、建模、分析
软件体系结构设计
软件概要设计软
件
评
审
与
测
试软件评审/测试
软件评审/确认软件详细设计软件构造软件项目管理
软件工程人才分布示意图
✧ 学习以团队合作的形式开发软件;
✧ 工程化训练:规范、准则、项目管理。
课程的主要内容:
软件工程的产生、软件的生命周期、生命周期模型;
软件开发各阶段的目标、任务、特点、步骤和文档;
传统软件工程的基本思想,开发过程和步骤,应遵循的原则和准则;
面向对象软件工程的基本思想、基本过程和基本模型;
软件工程的管理技术。
课程重点:
掌握结构化方法开发软件系统的过程、步骤、应遵循的原则以及工具。
教学安排:
56学时讲授;8-10学时课内实验;
课后作业和课后实验。
考核:
期末考试:70%;
作业+分组实验报告+点名:30%。
教材:
软件工程导论(5th),张海藩,清华大学出版社
参考文献
软件工程(第二版),齐治昌,高等教育出版社
软件工程实践教程,谭庆平等,高等教育出版社
软件工程分析案例,李代平等,清华大学出版社
先修课程:
程序设计语言
数据结构
数据库原理与设计
课程实验:
实验要求:
按照面向数据流的软件工程的要求完成各阶段的主要文档,实现的程序能初步运行。
✧分组进行,每组3~4人,自由组合,每组设项目负责人一个;
✧每组抽签选择开发题目1、2或3,一组同学合作完成一个项目,每
人负责项目中的1~2个开发步骤;
✧工作步骤:
问题初步定义和可行性研究→需求分析(资源采集)→界面原型设计→概要设计→详细设计→实现与测试→项目验收
✧需要交付的文档:
(1)可行性研究报告
(2)项目开发计划(含小组成员分工)
(3)需求规格说明书
(4)概要设计说明书
(5)详细设计说明书
(6)数据库设计说明书
(7)测试计划
(8)测试分析报告
(9)项目开发总结报告
(10)系统源代码
(11)操作手册
建议开发步骤:
⏹可行性研究:
用系统流程图描述系统的工作流程。
从技术上和人员(分工)上简单说明项目的可行性。
⏹项目开发计划:
项目时间(例如20个工作日),任务分解(每个任务需要的人数和时间),做项目开发的工程网络图和计划进度表,注明关键任务和关键路径。
使用“瀑布模型”:
⏹需求分析:
(1)获取需求:对8个方面的需求(A 功能需求;B 性能需求;C 可靠性和可用性需求;D 出错处理需求;E 接口需求;F 约束;G 逆向需求;H 将来可能提出的要求)进行获取、分析和记录,不必要的方面可以略去。
(2)建立系统的逻辑模型:数据模型----数据字典和E-R图(数据规范到3范式);功能模型----功能级或进一步细化的数据流图;行为模型----状态转换图。
(3)对系统中的关键部分必要的说明。
⏹概要设计
(1)确定系统的物理实现方案,用系统结构图描述之。
(2)分解系统功能,做出系统的软件结构图(总体结构图)。
(3)主要模块(一级、二级)的功能描述。
(4)对模块间的接口进行说明。
(5)设计系统的主界面。
(6)用户设计
⏹详细设计
(1)数据库设计。
(2)系统使用的全局变量
(3)每个模块内的数据结构设计、处理流程(图)设计。
(4)模块的主界面、主要的交互界面的设计。
⏹实现
(1)编码。
(2)测试:对主要功能模块进行单元测试,对整个系统进行集成测试。
对每个测试活动记录:测试采用的技术;测试用例;测试运行的结果。
⏹写开发总结
⏹写操作手册
实验题目:
题目1:作业提交系统
实现的主要功能:基于局域网,解决学校机房管理上机作业的问题;用户主要有三类:老师、学生、管理员;通过系统,用户可以注册、修改密码、登录、退出。
老师通过系统可以:布置和删除作业、下载学生提交的作业、发布/修改成绩;学生通过系统可以:查看作业任务、上传作业、查看作业成绩;管理员根据课表,通过系统可以进行教师和学生管理,保证和老师通信的是自己的学生。
另外,老师和学生间可以进行实时或非实时交互。
题目2:小型超市管理系统
实现的主要功能:基于局域网;用户主要有三类:收银员、仓库管理员、老板;通过系统,用户可以注册、修改密码、登录、退出。
收银员通过系统进行前台售货(当用户结算时,根据扫描的条码检索到对应的货物信息,计算货物的价格,并更新库存数量、出货情况等。
根据客户支付的款额和应付款额,计算出应返还客户的款额。
);仓库管理员通过系统进行库存、销售、进货等管理;老板通过系统进行成本/效益管理、人员管理等。
题目3、教室管理系统:
实现的主要功能:基于Intenet;
(1)管理全校的教室资源信息,包括教室的编号、地址、最大容量、是否支持多媒体教学等等;管理这学期学校的课程信息,包括课程的任课老师、上课时间、选课人数和是否要求多媒体教学等等。
(2)根据课程信息和教室资源信息,给每门课安排一个最佳的上课时间和上课地点,保证同一个老师不在同一个时间段授两门或两门以上的课程(即授课的时间不交叉),同一个教室不在同一个时间段安排两门或两门以上的课程(即授课地点不冲突),安排的教室能够满足选课人数和多媒体的要求(假设学校的教学资源能够满足这些要求),使教室资源利用情况好(每门课在尽量合适的教室里上课)。
(3)如果有临时讲座,能够尽可能安排一个满足讲座要求的教室,如时间、容纳人数、多媒体等。
(4)如果遇见意外情况,如老师临时停课,则要实时更新教室的使用情况信息;老师有临时变更上课时间的要求,则能够查询教室的使用情况信息,并尽力为其变更时间并重新安排教室。
(5)提供教室资源使用情况统计,为后面补充教室资源提供参考。