面向工作流的软件工程教材课程
- 格式:ppt
- 大小:237.50 KB
- 文档页数:12
《软件工程》教学教案一、第一章:软件工程概述1. 教学目标了解软件工程的定义、目的和重要性,掌握软件开发的基本过程和原则。
2. 教学内容软件工程的定义和重要性;软件开发的基本过程;软件工程的原则和方法。
3. 教学方法采用讲授法,结合案例分析,让学生了解和掌握软件工程的基本概念和原则。
4. 教学资源教材、课件、案例分析。
5. 教学评价通过课堂提问和案例分析,评估学生对软件工程的理解和应用能力。
二、第二章:软件需求分析1. 教学目标掌握软件需求分析的基本概念、方法和过程,能够运用需求分析工具进行需求收集和分析。
2. 教学内容软件需求分析的基本概念;需求分析的方法和过程;需求分析工具的使用。
3. 教学方法采用讲授法和实例分析,让学生了解和掌握需求分析的方法和过程。
4. 教学资源教材、课件、实例分析。
5. 教学评价通过课堂提问和实例分析,评估学生对需求分析的理解和应用能力。
三、第三章:软件设计1. 教学目标掌握软件设计的基本概念、方法和过程,能够运用设计工具进行软件架构和详细设计。
2. 教学内容软件设计的基本概念;设计方法和过程;设计工具的使用。
3. 教学方法采用讲授法和实例分析,让学生了解和掌握软件设计的方法和过程。
4. 教学资源教材、课件、实例分析。
5. 教学评价通过课堂提问和实例分析,评估学生对软件设计的理解和应用能力。
四、第四章:软件实现1. 教学目标掌握软件实现的基本概念、方法和过程,能够运用编程语言进行软件编码和测试。
2. 教学内容软件实现的基本概念;实现方法和过程;编程语言和测试工具的使用。
3. 教学方法采用讲授法和编程实践,让学生了解和掌握软件实现的方法和过程。
4. 教学资源教材、课件、编程环境和测试工具。
5. 教学评价通过编程实践和测试结果,评估学生对软件实现的理解和应用能力。
五、第五章:软件维护1. 教学目标掌握软件维护的基本概念、方法和过程,能够进行软件维护和优化。
2. 教学内容软件维护的基本概念;维护方法和过程;软件优化技巧。
软件工程课程表软件工程课程表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.软件工程:软件工程是指应用科学和数学原理,通过系统化、规范化的方法开发和维护软件的一门工程学科。
软件工程专业课程介绍软件工程专业主要课程主干学科:马克思主义理论、大学外语、高等数学、大学物理、物理实验、线性代数、概率论与数理统计、程序设计语言、数据结构、离散数学、操作系统、编译技术、软件工程概论、统一建模语言、软件体系结构、软件需求、软件项目管理该专业除了学习公共基础课外,还将系统学习离散数学、数据结构、算法分析、面向对象程序设计、现代操作系统、数据库原理与实现技术、编译原理、软件工程、软件项目管理、计算机安全等课程,根据学生的兴趣还可以选修一些其它选修课。
软件工程专业培养目标软件工程专业面向社会经济发展和国防现代化建设的需求,培养具有基础宽厚,知识、能力、素质协调发展,系统地掌握计算机软件领域的基本理论、知识和技能,具有较强的国际交流能力,德才兼备、身心健康、求真务实、敢于创新、勇于实践,能在科研院所、教育、企事业和行政管理等单位从事计算机软件开发、科研、教学和应用的高素质研究应用型专门人才。
本专业是培养适应计算机应用学科的发展,特别是软件产业的发展,具备计算机软件的基础理论、基本知识和基本技能,具有用软件工程的思想、方法和技术来分析、设计和实现计算机软件系统的能力,毕业后能在IT行业、科研机构、企事业中从事计算机应用软件系统的开发和研制的高级软件工程技术人才。
软件工程书籍推荐软件工程(原书第9版)《软件工程》的八篇内容重构为四个部分,使教师讲授软件工程课程更加容易。
每一章都有30%~40%的更新,增加了敏捷软件开发和嵌入式系统等新章,补充了模型驱动工程、开源开发、测试驱动开发、可依赖系统体系结构、静态分析和模型检查、COTS复用、服务作为软件以及敏捷规划等新内容。
着重讨论了开发可靠的分布式系统的相关主题以及敏捷方法和软件复用。
反映敏捷方法先进性的同时,不忘强调传统的计划驱动软件工程的作用,阐述了两者结合构建优秀软件系统的重要性。
以一个新的病人记录系统案例研究贯穿始终,系统、完整地讲解软件工程的各个方面。
软件工程专业课程教学大纲计算机导论课程教学大纲课程名称:计算机导论课程编号:学时/学分:48 / 3 开课学期:1适用专业:计算机科学与技术/软件工程/网络工程课程类型:学科与专业基础必修课一、课程的目的和任务1.初步了解计算机的基本知识,为后续课程的学习打下一定的基础;2.初步了解计算机科学与技术学科知识体系,了解社会对计算机人才的需求情况,培养学生学习兴趣和专业自豪感;3.初步掌握文献检索、资料查询及运用现代信息技术获取相关信息的基本方法;4.了解与计算机相关职业和行业的法律、法规;5.初步培养学生对终身学习的正确认识和学习能力;二、课程的基本要求1.了解计算机的入门基础知识,掌握计算机的运算基础知识;2.了解计算机系统的基本组成和工作原理;3.了解计算机程序设计和数据结构基础知识;4.了解计算机系统软件的基础知识;5.掌握常用办公软件的操作应用;6.了解数据库系统基本概念及其应用基础知识;7.了解多媒体技术及其应用基础知识;8.了解计算机网络及其应用基础知识9.了解软件工程的基本概念;10.了解计算机信息安全技术;11.了解计算机在各领域的应用发展趋势;12.了解计算机与信息技术相关的法律法规,了解相关的职业及其道德准则。
三、课程基本内容和学时安排第1章绪论(2学时)1.1计算机的基本概念;1.2信息化社会的挑战;1.3 计算机科学技术的研究范畴;1.4计算机工程教育认证通用标准与补充标准。
第2章计算机科学技术的基础知识(8学时)2.1计算机的运算基础;2.2逻辑代数基础;2.3计算机的基本结构与工作原理;2.4程序设计基础;2.5算法基础;2.6数据结构基础。
第3章计算机硬件结构(2学时)3.1计算机系统3.2系统单元3.3输入输出系统第4章计算机系统软件与工具软件(2学时)4.1程序设计语言翻译系统4.2操作系统4.3工具软件第5章计算机应用软件(2学时)5.1文字处理软件5.2电子表格软件5.3文稿演示软件第6章数据库系统及其应用(2学时)6.1数据库系统的基本概念6.2结构化查询语言6.3数据仓库6.8数据库系统的应用第7章多媒体技术及其应用(2学时)7.1多媒体7.2超文本与超媒体7.3多媒体技术第8章计算机网络及其应用(2学时)8.1数据通信与连通性8.2计算机网络体系结构8.3计算机网络的分类和使用方式8.4internet与tcp/ip协议8.5internet的服务功能8.6web和浏览器8.7局域网的基础构架第9章软件工程(2学时)9.1软件工程的概念9.2软件开发模型9.4软件过程和过程改进第10章计算机信息安全技术(2学时)10.1计算机信息安全面临的威胁10.2保密技术10.3防御技术第11章计算机的应用领域第12章职业道德与择业第11、12章共10课时,由企业工程师与本校任课教师共同完成。
软件工程课程目录第一章:导论
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.能力目标:能够运用软件工程方法进行项目规划和开发,掌握常见的软件开发工具。
3.情感态度和价值观:培养学生对软件工程的热爱和兴趣,使其认识到软件工程对社会和经济发展的重要性。
二、教学内容1.软件工程的定义和重要性。
2.软件开发生命周期。
3.需求分析、设计、编码、测试和维护的软件开发阶段。
4.常见的软件开发工具。
三、教学难点与重点难点:理解软件开发生命周期的各个阶段及其关系。
重点:需求分析和设计阶段。
四、教具和多媒体资源1.黑板或白板。
2.投影仪和PPT。
3.软件工程实例展示。
五、教学方法1.激活学生的前知:回顾软件开发的基本概念和流程。
2.教学策略:讲解、示范、小组讨论和案例分析。
3.学生活动:分组进行案例分析和讨论。
六、教学过程1.导入:故事导入,介绍一个成功的软件开发案例,强调软件工程的重要性。
2.讲授新课:详细讲解软件工程的定义、原理和方法,以及软件开发生命周期的各个阶段。
3.巩固练习:提供几个软件开发案例,让学生进行需求分析和设计。
4.归纳小结:回顾本节课的重点和难点,总结软件工程的基本概念和方法。
七、评价与反馈1.设计评价策略:小组报告和口头反馈。
2.为学生提供反馈,指导改进:根据学生的报告和讨论,指出问题并给予建议。
八、作业布置1.阅读教材中关于软件工程的章节。
2.选择一个实际项目,进行需求分析和设计,写出报告。
3.收集关于软件工程的最新动态或新闻,进行阅读和理解。
第一章绪论1.1 软件工程概念的提出与发展1.2 软件开发的本质1.3 本章小结第二章软件需求与软件需求规约2.1 需求与需求获取2.1.1需求定义2.1.2 需求分类2.1.3 需求发现技术2.2 需求规约2.2.1 需求规约定义2.2.2 需求规约(草案)格式2.2.3 需求规约(规格说明书)的表达2.2.4 需求规约的作用2.3 本章小结第三章结构化方法3.1 结构化需求分析3.1.1 基本术语1.数据流2.数据存储3.数据源和数据谭3.1.2 系统功能模型表示数据流图(Dataflow Diagram)3.1.3 建模过程1.建立系统环境图, 确定系统语境2.自顶向下, 逐步求精, 建立系统的层次数据流图3.定义数据字典数据流条目给出所有数据流的结构定义数据存储条目给出所有数据存储的结构定义数据项条目给出所有数据项的类型定义4.描述加工(1)结构化自然语言(2)判定表(3)判定树3.1.4 应用中注意的问题(1)模型平衡问题(2)信息复杂性控制问题3.1.5 需求验证3.2 结构化设计3.2.1 总体设计1.总体设计的目标及其表示(1)Yourdon提出的模块结构图(2)层次图(3)HIPO图2.总体设计步骤(1)变换型数据流图——变换设计(2)事物型数据流图——事物设计3.模块化及启发式规则(1)模块化1)耦合①内容耦合②公共耦合③控制耦合④标记耦合⑤数据耦合2)内聚①偶然内聚②逻辑内聚③时间内聚④过程内聚⑤通信内聚⑥顺序内聚⑦功能内聚(2)启发式规则1)改进软件结构, 提高模块独立性2)力求模块规模适中3)力求深度、宽度、扇出和扇入适中4)尽力使模块的作用域在其控制域之内5)尽力降低模块接口的复杂度6)力求模块功能可以预测3.2.2 详细设计1.结构化程序设计2.详细设计工具(1)程序流程图(2)盒图(N-S图)(3)PAD图(Problem Analysis Diagram)(4)类程序设计语言IPO图、判定树和判定表等也可以作为详细设计工具3.3 本章小结第四章面向对象方法——UML 4.1 UML术语表4.1.1 表达客观事物的术语1.类与对象1)类的属性(Attribute)2)类的操作3)关于类语义的进一步表达①详细叙述类的职责(Responsibility)②通过类的注解和/或操作的注解, 以结构化文本的形式和/编程语言, 详述注释整个类的语义和/或各个方法③通过类的注解或操作的注解, 以结构化文本形式, 详述注释各个操作的前置条件和后置条件, 甚至注释整个类的不变式④详述类的状态机⑤详述类的内部结构⑥类与其他类的协作4)类在建模中的主要用途①模型化问题域中的概念(词汇)②建立系统的职责分布模型③模型化建模中使用的基本类型2.接口(Interface)(1)采用具有分栏和关键字《interface》的矩形符号来表示(2)采用小圆圈和半圆圈来表示3.协作(Collaboration)4.用况(Use Case)5.主动类(Action Class)6.构件(Component)7.制品(Artifact)8.节点(Node)4.1.2 表达关系的术语1.关联(Association)(1)关联名(Name)(2)导航(3)角色(Role)(4)可见性(5)多重性(Multiplicity)(6)限定符(Qualifier)(7)聚合(Aggregation)(8)组合(Composition)(9)关联类(10)约束①有序(ordered)②无重复对象(set)③有重复对象(bag)④列表(list)或序列(sequence)⑤只读(readonly)2.泛化(Generalization)①完整(Complete)②不完整(Incomplete)③互斥(Disjoint)④重叠(Overlapping)3.细化(Realization)4.依赖①绑定(Bind)②导出(Derive)③允许(Permit)④实例(InstanceOf)⑤实例化(Instantiate)⑥幂类型(Powertype)⑦精化(Refine)⑧使用(Use)可模型化以下各种关系(1)结构关系1)以数据驱动2)以行为驱动(2)继承关系(3)精化关系(4)依赖关系4.1.3 表达组合信息的术语——包1)访问(Access)2)引入(Import)4.2 UML模型表达格式1.类图(Class Diagram)(1)模型化待建系统的概念(词汇), 形成类图的基本元素(2)模型化待建系统的各种关系, 形成该系统的初始类图(3)模型化系统中的协作, 给出该系统的最终类图(4)模型化逻辑数据库模式2.用况图(Use Case Diagram)所包含的内容(1)主题(Subject)(2)用况(Use Case)(3)参与者(Actor)(4)关联、泛化与依赖模型化工作1)关于系统/业务语境的模型化①系统边界的确定②参与者与用况的交互③参与者的语义表达④参与者的结构化处理2)关于系统/业务需求的模型化①确定系统/业务的基本用况②用况的结构化处理③用况的语义表达3.状态图(1)状态1)名字2)进入/退出效应(Effect)①entry②exit③状态内部转移3)do动作或活动4)被延迟的事件(2)事件1)信号(Signal)事件2)调用(Call)事件3)时间事件4)变化事件(3)状态转移①源状态②转移触发器③监护(guard)条件④效应(effect)⑤目标状态实际应用中, 使用状态图的作用①创建一个系统的动态模型②创建一个场景的模型4.顺序图(1)术语解析1)消息2)对象生命线3)聚焦控制(the Focus of Control)(2)控制操作子1)选择执行操作子(Operator for Optional Execution)2)条件执行操作子(Operator for Conditional Execution)3)并发执行操作子(Operator for Parallel Execution)4)迭代执行操作子(Operator for Iterative Execution)4.3 本章小结第五章面向对象方法——RUP5.1 RUP特点1.以用况为驱动2.以体系结构为中心3.迭代增量式开发5.2 核心工作流5.2.1 需求获取1.列出候选需求2.理解系统语境(1)业务用况模型(2)业务对象模型3.捕获系统功能需求(1)活动1: 发现并描述参与者(2)活动2: 发现并描述用况(3)活动3: 确定用况的优先级(Priority)(4)活动4: 精化用况(5)活动5: 构造用户界面原型1)用户界面的逻辑设计2)物理用户界面的设计3)开发用户界面原型并演示为了执行该用况, 用户怎样使用该系统(6)活动6: 用况模型的结构化5.2.2 需求分析1.基本术语(1)分析类(Analysis Class)1)边界类(Boundary Classes)2)实体类(Entity Classes)3)控制类(Control Classes)(2)用况细化(Use Case Realization)(3)分析包(Analysis Package)2.分析模型的表达3.分析的主要活动(1)活动1: 体系结构分析(Architectural Analysis)1)任务1: 标识分析包2)任务2: 处理分析包之间的共性3)任务3: 标识服务包4)任务4: 定义分析包的依赖5)任务5: 标识重要的实体类6)任务6: 标识分析包和重要实体类的公共特性需求(2)活动2: 用况分析1)任务1: 标识分析类①标识实体类②标识边界类③标识控制类2)任务2: 描述分析(类)对象之间的交互(3)活动3: 类的分析1)任务1: 标识责任2)任务2: 标识属性①关于实体类属性的标识②关于边界类属性的标识③关于控制类属性的标识3)任务3: 标识关联和聚合①关于关联的标识②关于聚合的标识③关于泛化的标识(4)活动4: 包的分析4.小结(1)关于分析模型1)分析包2)分析类3)用况细化(2)关于分析模型视角下的体系结构描述(3)用况模型和分析模型比较(4)分析模型对以后工作的影响1)对设计中子系统的影响2)对设计类的影响3)对用况细化[设计]的影响5.2.3 设计1.设计层的术语(1)设计类(Design Class)(2)用况细化[设计](3)设计子系统(4)接口(Interface)2.设计模型、部署模型以及相关视角下的体系结构描述(1)设计模型及其视角下的体系结构描述1)子系统结构2)对体系结构有意义的设计类3)对体系结构有意义的用况细化[设计](2)部署模型及该模型视角下的体系结构描述3设计的主要活动(1)活动1: 体系结构的设计1)任务1: 标识节点和它们的网络配置2)任务2: 标识子系统和它们的接口①标识应用子系统②标识中间件和系统软件子系统③定义子系统依赖④标识子系统接口3)任务3: 标识在体系结构方面有意义的设计类和它们的接口4)任务4: 标识一般性的设计机制①标识处理透明对象分布的设计机制②标识事务管理的设计机制(2)活动2: 用况的设计1)标识参与用况细化的设计类2)标识参与用况细化的子系统和接口(3)活动3: 类的设计1)任务1: 概括描述设计类2)任务2: 标识操作3)任务3: 标识属性4)任务4: 标识关联和聚合5)任务5: 标识泛化6)任务6: 描述方法7)任务7: 描述状态(4)活动4: 子系统的设计1)任务1: 维护子系统依赖2)任务2: 维护子系统所提供的接口3)任务3: 维护子系统内容4.RUP设计小结1)RUP设计的突出特点2)关于RUP的设计方法①给出用于表达设计模型中基本成分的4个术语, 包括子系统, 设计类, 接口, 用况细化[设计]②规约了设计模型的语法, 指导模型的表达③给出了创建设计模型的过程以及相应的指导3)RUP的设计模型①设计子系统和服务子系统②设计类(其中包括一些主动类), 以及他们具有的操作、属性、关系及其实现需求。