软件工程课程介绍
(完整word版)软件工程课程教学大纲

《软件工程》课程教学大纲一、课程代码与名称(小四号宋体加粗)课程代码: CS132201中文名称: 软件工程英文名称: Software Engineering二、课程概述及与相关课程关系软件工程是计算机科学与技术专业的专业必修课, 是指导学生按照工程化、标准化和规范化的方法开发软件系统的一门课程。
通过本课程学习, 学生能够掌握现代软件设计与开发的基本原理、方法和技术;熟悉结构化和面向对象软件设计与开发的全过程;了解软件项目管理、软件维护等方面知识。
软件工程与前后课程间关联关系、课程群对应的局部鱼骨图分别如下所示:图例:应用方向软件工程课程群及对应课程群项目、学年项目(局部)图图例:三、课程教学对象与教学目的适用专业: 计算机科学与技术教学目的:通过理论教学和实践相结合, 使学生初步具备运用软件工程的概念、原理、技术和方法开发与维护软件的能力, 并提高学生编写相关技术文档的能力, 及分析问题和解决问题的能力和团队工作交流能力。
*注: 该表所列指标可对照培养方案中所列指标来解释。
A: 认知, 指从教、学活动中、从生活经验和社会经验等多种信息渠道获得知识, 侧重知识的获取, 没有实训要求。
B: 训练, 指教、学活动中由教师引导开展的基础测试或练习, 匹配有课程讨论、课后研讨等环节。
C: 实践, 指以学生为主导, 通过实练而形成的对完成某种任务所必须的活动方式, 匹配有课程的三级项目或其它实践环节。
D: 探索, 指学生独立探寻问题、摸索、解答的活动, 不设置专门的考核。
(留空表示无该项要求)四、课程内容、学时分配及主要的教学方法本课程对主要软件开发方法采用项目驱动教学模式, 结合实验和项目开发实践, 使课程的实践与理论教学内容紧密配合, 同步进行, 达到理论指导实践, 实践促进理论学习目的。
通过理论教学、实践(实验)、团队项目开发实践3环节将理论与实践紧密联系。
教学中采用问题引导方式推进学生基于问题的学习(problem based learning), 以为学生为中心鼓励学生参与课程讨论, 促进学生采用主动学习方法(active learning)。
软件工程课程表

软件工程课程表软件工程课程表1.课程概述1.1 课程名称:软件工程1.2 课程编号:SE1011.3 课程学分.3学分1.4 授课教师:教授1.5 上课时间:每周一、周三、周五上午8:00-9.401.6 上课地点:教学楼101室2.课程目标在本课程中,学生将会学习软件工程的基本原理和方法,了解软件开发过程中的需求分析、设计、编码、测试等关键环节,掌握常用的软件开发工具和技术,培养软件工程实践能力和团队合作精神。
3.课程大纲3.1 软件工程概述3.1.1 软件工程定义3.1.2 软件过程模型3.1.3 软件开发生命周期3.2 软件需求分析3.2.1 需求获取与分析3.2.2 需求规约与验证3.2.3 需求管理与变更控制3.3 软件设计3.3.1 软件设计原则3.3.2 结构化设计与面向对象设计 3.3.3 UML建模3.4 软件编码与测试3.4.1 编码规范与质量保证3.4.2 单元测试与集成测试3.4.3 软件测试方法与工具3.5 软件项目管理3.5.1 项目计划与进度管理3.5.2 风险管理与质量管理3.5.3 团队协作与沟通4.课程安排---- 日期 ---- 内容 ----------------------------------------- 第1周 ---- 软件工程概述 -------- 第2周 ---- 需求分析 -------- 第3周 ---- 软件设计 -------- 第4周 ---- 软件编码与测试 -------- 第5周 ---- 软件项目管理 -------- ---- ----5.课程评估方式5.1 平时成绩:占总评成绩的30%,包括课堂参与、作业完成情况等5.2 课程项目:占总评成绩的40%,完成一个小型软件项目5.3 期末考试:占总评成绩的30%6.参考资料6.1 《软件工程导论》6.2 《软件工程原理与实践》6.3 《软件工程教程》附件:1.课程项目要求2.课程作业说明法律名词及注释:1.软件工程:软件工程是指应用科学和数学原理,通过系统化、规范化的方法开发和维护软件的一门工程学科。
软件工程专业课程

软件工程专业课程软件工程作为一门学科,自上世纪70年代初以来便成为计算机学科的一个重要分支,以计算机科学和工程科学的交叉研究为基础,致力于计算机软件的开发和设计。
软件工程专业课程以解决实际软件问题为主,旨在培养具有良好软件工程理论及软件设计与开发能力的高素质实用型人才,进而推动软件开发的发展。
软件工程专业的主要内容主要集中在软件开发的理论和实践,包括软件工程基础理论、软件工程系统开发实践、软件测试技术、软件项目管理、软件架构设计等。
一般来说,软件工程专业课程强调概念和实践相结合,要求学生掌握软件开发方法和技术。
第一,软件工程基础理论课程,主要包括软件工程基本原理、历史、基本方法、技术和工具,以及软件工程的分析、设计、开发、维护、测试的方法与原理等内容。
第二,软件工程实践课程,主要为学生提供一系列实践操作,让学生从实践中学习如何设计、开发和管理软件。
其中包括专业编程、软件需求分析、系统设计、软件架构设计、软件测试等实践内容。
第三,软件项目管理,主要包括项目管理方法论、项目资源管理、项目进度管理、项目风险分析等。
第四,软件工程相关技术,主要包括软件工程质量管理、软件文件管理、软件可用性管理以及软件工程的可持续发展等内容。
软件工程专业课程不仅要教授理论知识,还要提倡培养学生的实践能力,使他们能够将所学知识运用到实践中去。
通过这些课程,学生可以学习如何运用目标管理、可视化软件开发、项目管理技术、软件架构设计、软件测试技术、软件需求分析、软件文件管理等,进而掌握软件工程设计、开发及维护技术,以应对软件开发所面临的现实问题。
综上所述,软件工程专业课程在培养实用型人才方面有重要意义,受到了企业界的普遍认可和赞赏。
软件工程专业在鼓励学生提高知识储备和技能水平,探索软件开发新技术,践行可持续发展的方面有重大贡献。
因此,软件工程专业课程开设必将对促进软件技术的发展作出重大贡献。
软件工程大一至大四课程表

软件工程大一至大四课程表【原创实用版】目录1.引言:介绍软件工程专业及其重要性2.大一课程:基础课程及编程语言3.大二课程:软件开发方法和数据库4.大三课程:软件工程实践和项目管理5.大四课程:软件架构和前沿技术6.结论:软件工程专业的发展前景正文一、引言随着信息技术的飞速发展,软件工程专业在我国受到了越来越多的关注。
软件工程师作为信息产业的基础力量,肩负着软件开发、系统维护、项目管理等重要任务。
本文将介绍软件工程专业的大一至大四课程表,帮助读者了解该专业的学习内容和发展方向。
二、大一课程:基础课程及编程语言1.计算机基础:计算机组成原理、操作系统、计算机网络等2.编程语言:C 语言、C++、Java 等3.数据结构与算法:线性表、栈与队列、排序算法等三、大二课程:软件开发方法和数据库1.软件开发方法:面向对象编程、软件工程、设计模式等2.数据库:关系型数据库、非关系型数据库、SQL 语言等3.软件测试:软件测试基础、测试用例设计等四、大三课程:软件工程实践和项目管理1.软件工程实践:软件项目管理、软件质量保证、软件工程与计算等2.项目管理:项目管理基础、项目成本管理、项目风险管理等3.软件工程与计算:软件工程与计算导论、软件工程与计算实践等五、大四课程:软件架构和前沿技术1.软件架构:软件架构设计、软件架构模式等2.前沿技术:人工智能、大数据、云计算等3.毕业设计:软件工程相关领域的毕业设计六、结论软件工程专业涉及多个领域,从基础课程到前沿技术,旨在培养具备扎实理论基础和实际操作能力的软件工程师。
随着我国信息技术产业的持续发展,软件工程专业的发展前景十分广阔。
软件工程课程目录

软件工程课程目录第一章:导论
1.1 软件工程概述
1.2 软件工程的定义和特点
1.3 软件工程的发展历程
第二章:软件开发过程模型
2.1 瀑布模型
2.2 增量模型
2.3 螺旋模型
2.4 敏捷开发模型
2.5 DevOps模型
第三章:需求工程
3.1 需求获取与分析
3.2 需求规格说明
3.3 需求验证与确认
3.4 变更管理
第四章:软件设计与实现
4.1 结构化设计
4.2 面向对象设计
4.3 软件架构设计
4.4 系统建模
4.5 设计原则和模式
第五章:软件测试与维护5.1 测试基础知识
5.2 测试设计技术
5.3 测试用例编写
5.4 软件维护流程及策略5.5 缺陷管理
第六章:软件项目管理6.1 项目启动与规划
6.2 项目进度管理
6.3 资源管理
6.4 风险管理
6.5 团队协作与沟通
第七章:软件质量保证和评估
7.1 质量保证概述
7.2 质量标准与度量
7.3 代码审查
7.4 归纳测试
7.5 质量评估与改进
第八章:软件工程伦理与职业道德
8.1 软件工程伦理概述
8.2 软件专业人员责任
8.3 知识产权保护
8.4 软件工程师的职业道德
结语:
软件工程课程目录涵盖了软件工程学科的基本知识和方法,帮助学生全面了解软件开发的过程和要素。
通过学习本课程,学生可以系统学习软件工程的理论和实践知识,培养良好的软件开发习惯和职业道德意识,为将来的软件开发工作奠定坚实的基础。
软件工程大一课程表

软件工程大一课程表
大一的软件工程课程通常包括一系列基础课程,帮助学生建立计算机科学和软件工程的基本知识。
以下是一个简要的大一软件工程专业的课程表,每门课程附有简短的描述。
第一学期
1.计算机导论
–介绍计算机科学和软件工程的基本概念,包括硬件和软件方面。
2.程序设计基础
–学习基本的编程概念和技能,使用常见的编程语言如C 或Python。
3.离散数学
–强调在计算机科学中的离散数学概念,如逻辑、集合论和图论。
4.英语写作与交流
–提升学生英语写作和口头表达的能力,以便进行有效的技术沟通。
5.大学物理
–探讨与计算机科学相关的基本物理原理,如电磁学和力学。
第二学期
1.数据结构与算法
–学习数据结构和算法的基本原理,包括数组、链表、树和排序算法。
2.计算机组成原理
–理解计算机硬件组成和工作原理,包括中央处理器、存储器和输入输出设备。
3.数据库原理
–介绍数据库的基本概念,学习SQL语言和数据库设计。
4.软件工程导论
–简要介绍软件工程的基本原理和流程,强调团队合作和项目管理。
5.线性代数
–学习与计算机图形学和机器学习等领域相关的线性代数基础知识。
这是一个典型的大一软件工程专业的课程表,具体课程和学分要求可能因学校和课程设置而有所不同。
软件工程专业导论课

软件工程专业导论课软件工程专业导论课是软件工程专业的入门课程,旨在为学生介绍软件工程的基本概念、方法和技术,培养学生对软件工程的理解和兴趣。
本文将从课程内容、教学方法、学习收获等方面对软件工程专业导论课进行详细介绍,为学生和教师提供参考。
一、课程内容软件工程专业导论课的主要内容包括以下几个方面:1. 软件工程概述:介绍软件工程的定义、发展历程、重要性以及软件工程专业的基本知识体系,对软件工程的基本概念进行概述。
2. 软件开发流程:介绍软件开发的基本流程,包括需求分析、设计、编码、测试、部署和维护等各个阶段,以及各个阶段的主要任务和方法。
3. 软件工程方法和技术:介绍软件工程中常用的方法和技术,如面向对象分析与设计、UML建模、软件测试方法、软件配置管理等,帮助学生了解软件工程实践中的常用方法和技术。
4. 软件质量与项目管理:介绍软件质量的概念、评价标准和保障方法,以及项目管理的基本原理和方法,培养学生的软件质量意识和项目管理能力。
5. 软件工程伦理与规范:介绍软件工程领域的伦理道德和规范要求,引导学生在软件工程实践中遵守伦理规范,培养学生的职业道德和责任感。
二、教学方法软件工程专业导论课通常采用多种教学方法,其中包括理论讲授、案例分析、实践操作和课堂讨论等。
教师通过理论讲授,向学生介绍软件工程的基本概念和知识;通过案例分析,向学生展示软件工程在实际项目中的应用和效果;通过实践操作,让学生亲自实践软件工程方法和技术;通过课堂讨论,激发学生的学习兴趣,培养学生的团队合作和沟通能力。
三、学习收获软件工程专业导论课的学习收获主要包括以下几个方面:1. 理论知识:学生通过学习,掌握了软件工程的基本理论知识,理解了软件工程的发展历程、重要性和基本概念,为今后的学习和实践奠定了基础。
2. 实践能力:学生通过案例分析和实践操作,掌握了软件工程中常用的方法和技术,提高了软件设计、开发、测试和管理的实际能力。
3. 团队合作:学生通过课堂讨论和项目实践,培养了团队合作和沟通能力,了解了软件工程团队合作的重要性和方法。
软件工程课程全部课程

软件工程课程全部课程•软件工程概述•需求分析与管理•系统设计与架构•编程实现与测试目•项目管理及团队协作•质量保障与持续改进录01软件工程概述软件工程定义与发展软件工程的定义软件工程是一种系统性的方法,用于开发、运行和维护软件。
它涵盖了从需求分析、设计、编码、测试到维护的整个软件生命周期。
软件工程的发展软件工程自20世纪60年代诞生以来,经历了多个发展阶段。
从最初的瀑布模型到敏捷开发方法,软件工程的方法论和工具不断演进,以适应不断变化的软件开发需求。
软件工程方法论传统软件工程方法论包括瀑布模型、螺旋模型等,强调严格的阶段划分和文档化,适用于需求明确且稳定的项目。
敏捷软件工程方法论包括Scrum、极限编程等,强调快速响应变化、持续集成和交付,适用于需求变化频繁的项目。
软件工程伦理与职业规范软件工程伦理涉及软件开发过程中的道德和伦理问题,如隐私保护、数据安全、软件可靠性等。
软件工程职业规范包括软件开发人员的职业道德、行为规范、团队协作等方面的要求,以确保软件开发过程的高效和质量。
02需求分析与管理与客户或利益相关者进行初步沟通,了解项目背景和目的通过访谈、问卷调查、观察等方式收集用户需求对收集到的需求进行整理、分类和优先级排序需求获取与整理1 2 3明确项目的范围、目标和约束条件对每个功能需求进行详细描述,包括输入、输出和处理过程编写清晰、准确、可验证的需求规格说明书需求规格说明书编写需求变更管理建立需求变更管理流程,明确变更申请、审批和执行等环节对变更需求进行评估,包括影响范围、成本和风险等及时更新需求规格说明书和相关文档,确保与项目实际情况保持一致03系统设计与架构系统总体设计系统需求分析对用户需求进行深入理解,明确系统应具备的功能和性能。
系统总体架构设计根据需求分析结果,设计系统的整体架构,包括各组成部分及其相互关系。
系统可行性分析评估所设计的系统架构是否满足用户需求、技术可行性及经济合理性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程介绍
课程特点: -既是一门技术学课程,也是一门管理学课程;
一既具有理论性,也具有较强的实操性。
课程目的:
一基本:
掌握软件工程的基本概念和基本原理;
掌握分析、设计、测试与维护软件系统的理论与方法; 实践软件系统
开发的全过程,构建一个软件系统。
一进一步:
转变对软件的认识:程序---------- 系统;
转变思维定式:程序员---------- 系统分析员/系统设计员;
工程化训练:规范、准则、项目管理。
课程的主要内容:
软件工程人才分布示意图
-软件工程的产生、软件的生命周期、生命周期模型;
-软件开发各阶段的目标、任务、特点、步骤和文档;
-传统软件工程的基本思想,开发过程和步骤,应遵循的原则和准则;
-面向对象软件工程的基本思想、基本过程和基本模型;
-软件工程的管理技术。
课程重点:
-掌握结构化方法开发软件系统的过程、步骤、应遵循的原则以及工_ 具。
Chp.7编码与测试(实现)
教学安排:
-48学时讲授;
-课后作业和课后实验。
考核:
—期末考试:70%;
一作业+分组实验:30%。
教材:
-软件工程导论(5th),张海藩,清华大学出版社
参考文献
-软件工程(第二版),齐治昌,高等教育出版社
-软件工程实践教程,谭庆平等,高等教育出版社
先修课程:
-程序设计语言
-数据结构
-数据库原理与设计
课程实验:
—实验题目:
题目1:课程注册系统
为高校教务管理部门开发一个选修课程注册管理系统。
在每学期开学前,教务管理人员可利用该系统输入课程信息、设定课表(每门课的任课教师、上课地点、上课时间)。
开学后,学生可以利用该系统查询课程和课表信息,在第一周内注册课程和取消对课程的注册。
软件系统负责将学生所选课的列表通知计费系统以确定学生应缴纳的选课费用。
在学期内,任课教师可随时查询选修其所授课程的学生的信息,学生可以随时查询课程信息、课表、本人已选课程列表,教务管理人员可以随时查询所有信息。
学期结束,
教师可登记学生考试成绩。
题目2:航空定票系统
为某家机票预订服务商开发一个机票预订和查询管理系统。
该系统中的航班和机票信息由多家航空公司负责提供。
客户通过上网方式查询航班时间表、机票可用信息、机票折扣信息,可以远程订票、退票、通过信用卡支付票款。
客户分为三类:金牌客户、银牌客户和普通客户。
普通客户通过订票积分至一定的额度可以逐步升级为银牌客户、金牌客户。
不同类别的客户可享有不同的机票折扣。
系统还必须每日、每周、每月给出机票销售的统计分析报表。
题目3:试题库系统
为高校某门课程开发试题库系统,要求:(1)试题有单选(4选1)、多选(5选2)、判断、填空等几类;(2)试题编辑。
对每道试题可进行录入、修改、删除等操作;每一章的每一类题,题量有一个临界值,当系统中某一章的某类题量低于临界值时,应提示用户增加题目;(3)试卷生成。
三种方法:(a)用户依次输入某章某类题的数量,系统随机抽题,依次写入试卷(txt文件);(b)用户打开题库,边阅读题目边抽题,抽出的题目一经确认,即写入试卷;(c)系统登记、保存已生成的完整试卷,用户可以直接抽取完整试卷。
(4)试卷评价。
记录每份已生成的完整试卷的考试情况,评价其难易程度。
-实验要求:
按照基于数据流的软件工程的要求完成各阶段的主要文档,实现的程序能初步运行。
分组进行,每组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) 主要模块(一级、二级)的功能描述。
⑷对模块间的接口进行说明。
(5) 设计系统的主界面。
(6) 用户设计
详细设计
(1) 数据库设计。
(2) 系统使用的全局变量
(3) 每个模块内的数据结构设计、处理流程(图)设计。
(4) 模块的主界面、主要的交互界面的设计。
实现
(1) 编码。
(2) 测试:对主要功能模块进行单元测试,对整个系统进行集成测试。
对每个测试活动记录:测试采用的技术;测试用例;测试运行的结果
写开发总结
写操作手册。