《软件工程》教案-05 结构化分析与设计
- 格式:doc
- 大小:133.50 KB
- 文档页数:12
《软件工程》教学教案一、第1章软件工程概述1.1 教学目标了解软件工程的定义、目的和重要性掌握软件开发生命周期的基本概念理解软件工程的基本原则和方法1.2 教学内容软件工程的定义和目的软件开发生命周期(需求分析、设计、实现、测试、维护等)软件工程的基本原则和方法(如模块化、抽象化、逐步求精等)1.3 教学活动引入软件工程的定义和目的,引发学生对软件工程的理解和兴趣通过实例讲解软件开发生命周期的各个阶段及其重要性介绍软件工程的基本原则和方法,并通过案例进行说明1.4 作业与练习课后阅读材料:软件工程概述的相关文章完成课后练习题,巩固对软件工程的理解二、第2章软件需求分析2.1 教学目标掌握需求分析的概念和过程学会使用需求分析工具和技术能够编写需求规格说明书2.2 教学内容需求分析的概念和过程(需求收集、需求分析、需求规格说明书等)需求分析工具和技术(如数据流图、实体关系图、用例分析等)需求规格说明书的编写方法和注意事项2.3 教学活动引入需求分析的概念和过程,让学生了解需求分析的重要性通过实例讲解需求分析的工具和技术,并展示如何编写需求规格说明书学生分组讨论并编写一个简单的需求规格说明书2.4 作业与练习课后阅读材料:需求分析的相关文章完成课后练习题,巩固对需求分析的理解三、第3章软件设计3.1 教学目标掌握软件设计的基本概念和方法学会使用设计工具和技术能够编写设计文档3.2 教学内容软件设计的基本概念和方法(如结构化设计、面向对象设计等)设计工具和技术(如流程图、类图、序列图等)设计文档的编写方法和注意事项3.3 教学活动引入软件设计的基本概念和方法,让学生了解设计的重要性通过实例讲解设计工具和技术,并展示如何编写设计文档学生分组讨论并编写一个简单的设计文档3.4 作业与练习课后阅读材料:软件设计的相关文章完成课后练习题,巩固对软件设计的理解四、第4章软件实现4.1 教学目标掌握软件实现的基本概念和方法学会使用编程语言和开发工具能够编写高质量的代码4.2 教学内容软件实现的基本概念和方法(如编码规范、代码重构等)编程语言和开发工具的选择和使用(如Java、Python、Git等)编写高质量的代码的技巧和注意事项4.3 教学活动引入软件实现的基本概念和方法,让学生了解实现的重要性通过实例讲解编程语言和开发工具的使用,并展示如何编写高质量的代码学生分组讨论并进行代码编写练习4.4 作业与练习课后阅读材料:软件实现的相关文章完成课后练习题,巩固对软件实现的理解五、第5章软件测试5.1 教学目标掌握软件测试的基本概念和方法学会使用测试工具和技术能够编写测试用例和测试计划5.2 教学内容软件测试的基本概念和方法(如黑盒测试、白盒测试、灰盒测试等)测试工具和技术(如JUnit、Selenium等)编写测试用例和测试计划的技巧和注意事项5.3 教学活动引入软件测试的基本概念和方法,让学生了解测试的重要性通过实例讲解测试工具和技术的使用,并展示如何编写测试用例和测试计划学生分组讨论并进行测试编写练习5.4 作业与练习课后阅读材料:软件测试的相关文章完成课后练习题,巩固对软件测试的理解六、第6章项目管理6.1 教学目标理解项目管理的基本概念和原则掌握软件项目管理的方法和工具能够制定项目计划和监控项目进度6.2 教学内容项目管理的基本概念和原则(如范围管理、时间管理、成本管理、风险管理等)软件项目管理的方法和工具(如敏捷开发、看板、项目管理软件等)项目计划的制定和项目进度的监控6.3 教学活动引入项目管理的概念和重要性,让学生了解项目管理在软件工程中的作用通过实例讲解项目管理的方法和工具,并展示如何制定项目计划和监控项目进度学生分组讨论并进行项目管理练习6.4 作业与练习课后阅读材料:项目管理的理论和实践相关文章完成课后练习题,巩固对项目管理的理解七、第7章软件维护7.1 教学目标理解软件维护的定义和重要性掌握软件维护的方法和技巧能够制定维护计划和处理维护问题7.2 教学内容软件维护的定义和重要性软件维护的方法和技巧(如变更管理、版本控制、问题跟踪等)维护计划的制定和维护问题的处理7.3 教学活动引入软件维护的概念和重要性,让学生了解维护在软件工程中的作用通过实例讲解维护的方法和技巧,并展示如何制定维护计划和处理维护问题学生分组讨论并进行维护实践练习7.4 作业与练习课后阅读材料:软件维护的理论和实践相关文章完成课后练习题,巩固对软件维护的理解八、第8章软件工程实践8.1 教学目标掌握软件工程实践的基本方法和技巧学会使用软件工程工具和实践方法能够应用软件工程实践解决实际问题8.2 教学内容软件工程实践的基本方法和技巧(如代码审查、单元测试、持续集成等)软件工程工具和实践方法(如版本控制系统、自动化测试工具、持续部署等)实际案例分析,展示软件工程实践在软件开发中的应用8.3 教学活动引入软件工程实践的概念和重要性,让学生了解实践在软件工程中的作用通过实例讲解软件工程实践的方法和技巧,并展示如何使用工具和实践方法学生分组讨论并进行软件工程实践练习8.4 作业与练习课后阅读材料:软件工程实践的理论和实践相关文章完成课后练习题,巩固对软件工程实践的理解九、第9章软件工程案例分析9.1 教学目标了解软件工程案例分析的方法和步骤能够运用软件工程原则解决实际问题9.2 教学内容软件工程案例分析的方法和步骤(如问题陈述、原因分析、解决方案等)运用软件工程原则解决实际问题的技巧和方法9.3 教学活动引入软件工程案例分析的概念和重要性,让学生了解案例分析在软件工程中的作用学生分组讨论并进行软件工程案例分析练习9.4 作业与练习课后阅读材料:软件工程案例分析的理论和实践相关文章完成课后练习题,巩固对软件工程案例分析的理解十、第10章软件工程未来趋势10.1 教学目标了解软件工程的未来发展趋势掌握新兴技术和方法在软件工程中的应用能够预测和应对软件工程的未来挑战10.2 教学内容软件工程的未来发展趋势(如、区块链、云计算等)新兴技术和方法在软件工程中的应用(如机器学习、容器化、微服务架构等)预测和应对软件工程的未来挑战的策略和方法10.3 教学活动引入软件工程未来趋势的概念和重要性,让学生了解软件工程的发展方向通过实例讲解新兴技术和方法在软件工程中的应用,并展示如何应对未来挑战学生分组讨论并进行软件工程未来趋势分析练习10.4 作业与练习课后阅读材料:软件工程未来趋势的理论和实践相关文章完成课后练习题,巩固对软件工程未来趋势的理解重点和难点解析一、第1章软件工程概述补充说明:需求分析是软件工程的基础,要着重讲解其方法和技巧,以及如何编写需求规格说明书。
《软件工程》实验教案一、实验目的1. 让学生了解软件工程的基本概念、原则和方法。
2. 培养学生运用软件工程知识分析和解决实际问题的能力。
3. 加深学生对软件开发过程的理解,提高团队协作和沟通能力。
二、实验内容1. 实验一:软件工程概述了解软件工程的定义、目的、历史和发展趋势。
掌握软件开发过程中的基本活动和相关工具。
2. 实验二:需求分析学习需求分析的基本方法,如问卷调查、访谈、观察等。
实践使用需求分析工具,如UseCase图、DFD图等。
3. 实验三:软件设计掌握软件设计的基本原则,如模块化、抽象、封装等。
学习软件设计的方法,如结构化设计、面向对象设计等。
4. 实验四:编码与实现熟悉编程语言的基本语法和编程规范。
5. 实验五:软件测试了解软件测试的目的、方法和过程。
学习使用测试工具进行单元测试、集成测试和系统测试。
三、实验步骤1. 实验一:软件工程概述讲解软件工程的定义、目的、历史和发展趋势。
介绍软件开发过程中的基本活动和相关工具。
2. 实验二:需求分析讲解需求分析的基本方法。
练习使用需求分析工具,如UseCase图、DFD图等。
3. 实验三:软件设计讲解软件设计的基本原则和方法。
练习进行结构化设计和面向对象设计。
4. 实验四:编码与实现讲解编程语言的基本语法和编程规范。
5. 实验五:软件测试讲解软件测试的目的、方法和过程。
练习使用测试工具进行单元测试、集成测试和系统测试。
四、实验要求1. 实验一:软件工程概述2. 实验二:需求分析完成一个简单的需求分析案例,绘制UseCase图和DFD图。
3. 实验三:软件设计完成一个简单的软件设计案例,包括结构化设计和面向对象设计。
4. 实验四:编码与实现5. 实验五:软件测试五、实验评价1. 实验一:软件工程概述评价学生对软件工程基本概念的理解程度。
2. 实验二:需求分析评价学生对需求分析方法的掌握程度。
3. 实验三:软件设计评价学生对软件设计原则和方法的掌握程度。
《软件工程》
配套教学教案第1章软件工程概述
第2章可行性研究与软件工程开发计划
圆圈中的字母代表各项子任务的开始或结束事件的编号,箭头上方的数字表示完成各项子任务所需的周数。
要求:
(1)标出每个事件的最早时刻、最迟时刻与机动时间。
估算完成该工程项目总共需要多
第3章需求分析
第4章概要设计
第5章详细设计
第6章软件实现
第7章软件维护
第8章面向对象方法、UML及应用
第9章 WebApp软件工程
第10章软件重用和再工程
第11章软件工程管理
第12章实例——网上商品竞拍系统。
软件工程结构化分析实验软件工程结构化分析实验1. 引言软件工程是一个涉及到软件开发过程的学科,它包括开发、维护和管理软件的方法和工具。
在软件工程中,结构化分析是一个重要的步骤,它旨在理解和描述软件系统的功能和结构,并将其转化为具体的设计和实现。
本实验旨在通过一个具体的例子,介绍软件工程中的结构化分析方法和技术,并通过使用简单的工具和技术,展示结构化分析的过程和结果。
2. 实验目标本实验的目标是让学生了解和掌握软件工程中的结构化分析方法和技术,并通过实际操作和实验,掌握实际应用结构化分析的能力。
3. 实验内容本实验的内容包括以下几个部分:3.1. 问题定义通过和客户的沟通和交流,明确软件系统的需求和功能。
3.2. 系统描述描述软件系统的各个功能模块和组件,以及它们之间的关系和交互。
3.3. 数据流图绘制根据系统描述,使用数据流图描述系统中的数据流和处理过程。
3.4. 数据字典编制编制系统中使用的各种数据的定义和描述,包括输入数据、输出数据和中间数据。
3.5. 结构化文档编写根据数据流图和数据字典,编写结构化文档,描述系统的各个模块和组件。
4. 实验步骤本实验的步骤如下:1. 确定一个软件系统的需求和功能。
2. 根据系统的需求和功能,绘制系统的数据流图。
3. 编制系统的数据字典,包括输入数据、输出数据和中间数据的定义和描述。
4. 根据数据流图和数据字典,编写结构化文档,描述系统的各个模块和组件的功能。
5. 完成实验报告,包括实验目标、实验内容、实验步骤和实验结果等。
5. 实验结果本实验的结果包括以下几个部分:1. 确定了一个软件系统的需求和功能。
2. 绘制了系统的数据流图。
3. 编制了系统的数据字典。
4. 编写了结构化文档,描述了系统的各个模块和组件的功能。
6. 实验通过本实验,我对软件工程中的结构化分析方法和技术有了更深入的了解。
通过实际操作和实验,我不仅掌握了相关的工具和技术,还提高了自己的实践能力和解决问题的能力。
大学软件工程教案一、教材名称及编写者《软件工程》是由清华大学计算机科学与技术系李国杰、贾仕武、林晓斌三位教师共同编写完成的。
二、教学目标通过本课程的学习,学生应该达到以下目标:1.掌握软件工程的基本概念和理论知识,理解软件开发的过程和方法。
2.了解软件工程各阶段的活动和主要工作内容,能够进行软件需求分析、设计、编码、测试等基本工作。
3.掌握常用的软件开发工具和技术,能够熟练运用软件开发工具和技术解决实际问题。
4.能够编写符合软件工程规范的软件产品,具备软件设计和项目管理的能力。
三、教学内容1.软件工程引论1.1 软件工程的起源和发展1.2 软件危机和软件生命周期模型1.3 软件过程和软件度量2.软件需求分析2.1 软件需求的定义和分类2.2 软件需求获取和分析方法2.3 软件需求文档的编写3.软件设计3.1 软件设计的原则和方法3.2 结构化设计和面向对象设计3.3 UML和设计模式4.软件编码4.1 编程语言和编程工具4.2 编码规范和编码风格4.3 软件测试和调试5.软件测试5.1 测试的基本概念和分类5.2 测试计划和测试策略5.3 测试方法和工具6.软件维护6.1 软件维护的定义和类型6.2 软件维护的过程和方法6.3 软件重构和重用7.软件项目管理7.1 软件项目的定义和特点7.2 软件项目的组织和管理7.3 软件质量保证和评审四、教学方法本课程采用讲座教学与案例分析相结合的教学方法,对软件工程的各个阶段进行深入讲解,并通过具体案例分析进行实际操作,加深学生对软件开发过程的理解和掌握常用的软件开发工具和技术。
五、考核与评价本课程的考核方式包括考试、作业和项目实践。
平时作业主要包括相关软件开发工具和技术的学习和实践;项目实践主要针对一个实际的软件开发项目进行计划、设计、编码、测试与维护,并形成报告和演示。
在知识掌握方面,考试主要涉及软件开发的基本原理和技术,以及软件项目管理和质量保证方面的知识。
山东轻工业学院 教师授课教案
课程名称: 软件工程
课程代码: 0310040
学 分: 3
课程类别: 选修课
开课单位: 信息科学与技术学院
授课班级: 计科07-12
授课教师: 赵培英
山东轻工业学院教务处制 2 3
授课时间 2009年 10 月 16 日 星期 五 第 34 节 2009年 10 月 21 日 星期 三 第 34 节 2009年 10 月 23 日 星期 五 第 34 节
授课内容概要
第五章 结构化分析与设计 第一节 结构化分析 第二节 结构化设计 本章小结、部分习题选讲
目的要求
了解结构化分析模型; 了解DFD的审查; 掌握DFD画法; 掌握DD内容; 掌握DFD到结构图的变换。
重 点 分层DFD画法;
DFD到结构图的变换。
难 点 分层DFD画法; DFD到结构图的变换。 作业布置 1.请说明结构化分析模型的结构? 2.简述画分层数据流图的步骤? 3.简述如何进行分层数据流图的审查。 4.简述如何将DFD映射到结构图?
参考书
1. 《软件工程》钱乐秋等 清华大学出版社 2.软件工程导论(第四版),张海藩主编,清华大学出版社,2003年。 3.面向对象与经典软件工程(第5版)(英文影印版),(美)Stephen R.Schach主编,机械工业出版社,2002年。 课 型 理论课 学 时 分 配 复 习 5 分钟 主要教具 多媒体 讲 授 35 分钟 教学方法 多媒体课件 指 导 2 分钟 教学手段 讲授结合实例 总 结 3 分钟
备注 授课:双周周三34,每周周五34,轻化B507 答疑:每周四78节,机电C415 学时分配:指本章节每节课(45分钟)的平均分配情况 4
第五章 结构化分析与设计 一、结构化分析概述 1. 主要思想: 抽象: 从作为整体的软件系统开始, 每一抽象层次上只关注于系统的输入输出 分解: 自顶向下逐层分解, 不断分解为子系统, 模块„„ 随着分解层次的增加,抽象的级别越来越低,也越接近问题的解( 算法和数据结构) 2. 结构化分析过程 • 获得当前系统的具体模型(物理模型) • 抽象出当前系统的逻辑模型 • 分析建立目标系统的逻辑模型 • 为目标系统的逻辑模型作补充 3. 结构化分析模型 • DD:核心,包含所有数据的描述 • DFD:用于功能建模,描述系统的输入数据流如何经过一系列的加工变换逐步变换成系统的输出数据流 • ERD:用于数据建模,描述DD中数据之间的关系 • 状态转换图:用于行为建模,描述系统接收哪些外部事件,以及在外部事件的作用下的状态迁移情况 二、数据流图 1. Data Flow Diagram(简称DFD): • 描述输入数据流到输出数据流的变换(即加工)过程,用于对系统的功能建模。 • 基本元素包括:p88图 示例:图书订购系统DFD • 数据流图的扩充符号:描述一个加工的多个数据流之间的关系 星号(*):表示数据流之间存在“与”关系 加号(+):表示数据流之间存在“或”关系 异或(⊕):表示数据流之间存在“异或”(互斥)关系 2. 对数据流图进行分层 • George Miller在著名的论文“神奇的数字7加减2:我们处理信息的能力的某种限制”中指出:人们在一段时间内的短期记忆似乎限制在5~9件事情之内 • 根据自顶向下逐层分解的思想将数据流图画成层次结构 • 每个层次画在独立的数据流图中,加工个数可大致控制在“7加减2”的范围中 3. 数据流图的各个层次 • 顶层图只有代表整个软件系统的1个加工,描述了软件系统与外界(源或宿)之间的数据流 • 顶层图中的加工经分解后的图称为0层图(只有1张) • 中间层图中至少有一个加工(也可以有多个)在下层图中分解成一张子图 • 处于最底层的图称为底层图,其中所有的加工不再分解成新的子图 4. 图和加工的编号 • 顶层图只有一个代表整个软件系统的加工,该加工不必编号。 • 0层图中的加工编号分别为1,2,3,„ • 子图号:若父图中的加工号x分解成某一子图,则该子图号记为“图x” • 子图中加工的编号:若父图中的加工号为x的加工分解成某一子图,则该子图中的加工编号分别为x.1、x.2、x.3„ 5
5. 分层数据流图画法示例——资格和水平考试的考务处理系统 • 简化的资格和水平考试的考务处理系统 • 分成多个级别,如初级程序员、程序员、高级程序员、系统分析员等,凡满足一定条件的考生都可参加某一级别的考试 • 考试的合格标准将根据每年的考试成绩由考试中心确定 • 考试的阅卷由阅卷站进行,因此,阅卷工作不包含在软件系统中 资格和水平考试的考务处理系统 —功能需求 1). 对考生送来的报名单进行检查 2). 对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站 3). 对阅卷站送来的成绩清单进行检查,并根据考试中心制订的合格标准审定合格者 4). 制作考生通知单送给考生 5). 进行成绩分类统计(按地区、年龄、文化程度、职业、考试级别等分类)和试题难度分析,产生统计分析表 资格和水平考试的考务处理系统 —部分数据流的组成 • 报名单=地区+序号+姓名+文化程度+职业+考试级别+通信地址 • 正式报名单=准考证号+报名单 • 准考证=地区+序号+姓名+准考证号+考试级别+考场 • 考生名单={准考证号+考试级别},其中{w}表示w重复多次 • 考生名册=正式报名单 • 统计分析表=分类统计表+难度分析表 • 考生通知单=准考证号+姓名+通信地址+考试级别+考试成绩+合格标志 (1).画系统顶层图 确定源或宿 确定加工 确定数据流 顶层图通常没有文件 (2).画系统0层图 • 以下确定加工、数据流、文件、源或宿的一般方法适用于0层图及其各层子图 • 确定加工:指父图中某加工分解的子加工 根据功能分解来确定加工:将一个复杂的功能分解成若干个较小的功能,较多应用于高层DFD中的分解 根据业务处理流程确定加工:父图中待分解加工的业务处理流程中的每一步都可能是一个子加工,较多应用于低层DFD中的分解 特别要注意在业务流程中数据流发生变化或数据流的值发生变化的地方,应该存在一个加工,例如:图5.6 • 确定数据流 在父图中某加工分解而成的子图中,父图中相应加工的输入/输出数据流都是且仅是子图边界上的输入/输出数据流 分解后的子加工之间应增添相应的新数据流表示加工过程中的中间数据 如果某些中间数据需要保存以备后用,那么可以成为流向文件的数据流 同一个源或加工可以有多个数据流流向一个加工,如果它们不是一起到达和一起加工的,那么可以将它们分成若干个数据流,例如:图5.7 • 确定文件 如果父图中该加工存在读写文件的数据流 ,则相应的文件和数据流都应画在子图中 6
在分解子图中,如需要保存某些中间数据以备后用,则可将这些数据组成一个新文件 新文件( 首次出现的文件) 至少应有一个加工为其写入记录,同时至少存在另一个加工来读该文件的记录 注意:从父图中继承下来的文件在子图中可能只对其进行读,或只进行写 • 确定源和宿 0层图和其它子图中通常不必画出源和宿 有时为了提高可读性,可以将顶层图中的源和宿画在0层图中 • 案例分析:最终得到考务处理系统0 层图 根据功能分解方法识别出两个加工:考试报名、统计成绩 数据流 继承顶层图中的输入数据流和输出数据流 定义二个加工之间的数据流:由于这二个加工分别在考试前后进行,因此登记报名单所产生的结果“考生名册”应作为文件保存以便考试后由统计成绩加工引用 (3).加工细化(1„n层图) • 复杂的加工可以继续分解成1张DFD子图,分解方法 将该加工看作一个小系统,该加工的输入/输出数据流就是这个假设的小系统的输入/输出数据流 然后采用画0层图的方法,画出该加工的子图 • 以0层图中加工1(考试报名)为例 根据业务处理流程 来确定由加工1 的分解 与加工1 相关的业务流程:首先检查考生送来的报名单,然后编准考证号,并产生准考证,最后产生考生名单和考生名册( 文件) 加工1(考试报名)子图 3个子加工:检查报名单、编准考证号、登记考生 “合格报名单”和“正式报名单”是新增加的数据流,其它数据流都是加工1原有的 在加工1的分解中没有新的文件产生 • 加工2(统计成绩)子图 总结:画分层数据流图的步骤 • 1.画系统的输入和输出,得顶层图 • 2.画系统内部,得0层图 • 3.画加工内部,得到各级子图 • 4.重复第3步,直至每个尚未分解的加工都足够简单(即不必再分解) 三、分层数据流图的审查 • 分层数据流图的一致性和完整性 一致性:分层DFD中不存在矛盾和冲突 完整性:分层DFD本身的完整性,即是否有遗漏的数据流、加工等元素 • 需注意的问题 • 分解的程度 1.分层数据流图的一致性 1). 父图与子图平衡:任何一张DFD子图边界上的输入/输出数据流必须与其父图中对应的加工的输入/输出数据流保持一致 2). 数据守恒 一个加工所有输出数据流中的数据,必须能从该加工的输入数据流中直接获