软件工程理论与实践教学教案.docx

上传人:李司机 文档编号:6976408 上传时间:2024-03-30 格式:DOCX 页数:57 大小:110.38KB
返回 下载 相关 举报
软件工程理论与实践教学教案.docx_第1页
第1页 / 共57页
软件工程理论与实践教学教案.docx_第2页
第2页 / 共57页
软件工程理论与实践教学教案.docx_第3页
第3页 / 共57页
软件工程理论与实践教学教案.docx_第4页
第4页 / 共57页
软件工程理论与实践教学教案.docx_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《软件工程理论与实践教学教案.docx》由会员分享,可在线阅读,更多相关《软件工程理论与实践教学教案.docx(57页珍藏版)》请在三一办公上搜索。

1、程称课名软件工程基础程号课编授课时间专业及班级修课人数总学时学分课程类型必修课公=(基础)专业(学科)基础课()专业课()选修课专业限选课()专业任选课()全校任选课()授课方式理论课()实践课()学时分配课堂讲授学时;实践环节学时考核方式考试()考查()是否采用多媒体是否采用双语使用教材:(名称、作者、出版社及出版时间)教学参考书:(名称、作者、出版社及出版时间)教研室审查意见章节名称第1章软件工程概述(1)课次1(总第1次)课时2授课形式理论课案例讨论课口实验课口习题课其他口教学目的及要求 了解此课程的教学安排和考核方式。 了解软件的概念、特点。 了解软件危机的产生原因及其表现。 掌握软件

2、工程的概念,以及软件工程的基本原则。 通过案例“青鸟工程1”,进行思政教育。教学重点课程的教学安排和考核方式软件工程的概念教学难点无环节/时间授课内容教学方法课程导入10分钟一、课程的教学安排和考核方式讲授正式授课80分钟一、课程的教学安排和考核方式(续)二、软件计算机软件是由专业人员开发并长期维护的软件产品。完整的软件产品包括了在各种不同容量和体系结构计算机上的可执行的程序,运行过程中产生的各种结果,以及以硬拷贝和电子表格等多种方式存在的软件文档。三、软件危机软件危机就是指人们在开发软件和维护软件过程中所遇到的一系列的问题。软件危机出现的原因可以概括为以下几点。忽视软件开发前期的需求分析。开

3、发过程缺乏统一的、规范化的方法论的指导。软件开发是一项复杂的工程,人们需要用科学的工程化的思想来组织和指导软件开发的各个阶段。而这种工程学的视角正是很多软件开发人员所没有的,他们往往简单地认为软件开发就是程序设计。文档资料不齐全或不准确。软件文档的重要性没有得到软件开发人员和用户的足够重视。软件文档是软件开发团队成员之间交流和沟通的重要平台,还是软件开发项目管理的重要工具。如果人们不能充分重视软件文档的价值,这样势必会给软件开发带来很多不便。忽视与用户之间、开发组成员之间的交流。忽视测试的重要性。不重视维护或由于上述原因造成维护工作的困难。由于软件的抽象性和复杂性使得软件在运行之前,对开发过程

4、的进展情况很难估计。再加上软件错误的隐蔽性和改正的复杂性,这些都使得软件开发和维护在客观上比较困难。从事软件开发的专业人员对这个产业认识不充分,缺乏经验。软件产业相对于其他工业产业而言,是一个比较年轻,发展不成熟的产业,人们在对它的没若完善的质量保笳体系。完善的质量保证体系的建立需要有严格的评审制度,同时还需要有科学的软件测试技术及质量维护技术。软件的质量得不到保证,使得开发出来的软件产品往往不能满足人们的需求,同时人们还可能需要花费大量的时间、资金和精力去修复软件的缺陷,从而导致了软件质量的下降和开发预算超支等后果。讲授四、软件工程1 .软件工程的概念软件工程是以借鉴传统工程的原则、方法,以

5、提高质量、降低成本为目的,指导计算机软件开发和维护的工程学科。2 .软件工程研究的内容(1)软件开发技术(2)软件开发过程管理3 .软件工程目标和原则(1)用分阶段的生命周期计划进行严格的管理(2)坚持进行阶段评审(3)实行严格的版本控制(4)采用现代程序设计技术(5)软件工程结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性五、课程思政:简要介绍案例“青鸟工程1”思考题和作业P2123习题扩展阅读无章节名称第1章软件工程概述(2)课次1(总第2次)课时2授课形式理论课案例讨论课口实验课口习题课口其他口教学目的及要求 掌握软件过程的定义和基本活动。 熟悉常用

6、的几种软件过程模型。 了解软件开发的方法。 了解与软件开发项目相关的常用工具。 了解软件工程人员的职业道德。 通过案例“青鸟工程2”,进行思政教育教学重点软件过程模型软件工程人员的职业道德教学难点软件过程模型环节/时间授课内容教学方法课程导入10分钟一、软件过程概述软件的诞生和生命周期是一个过程,即软件过程。过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。讲授正式授课80分钟二、软件生命周期(1)软件生命周期的概念软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验

7、收、产品发布、投入是用以及产品版本的不断更新,到最终该产品被淘汰的全过程。(2)传统软件生命周期的各个阶段可行性研究需求分析软件设计编码软件测试软件维护(3)软件过程模型瀑布模型:开发人员必须等前一阶段的任务完成后,才能开始后一阶段的工作,并且前一阶段的输出往往是后一阶段的输入(图1-2)快速原型模型:在初步的需求分析之后,马上向客户展示一个软件产品原型,对客户进行培训,让客户试用,反复循环几次,直到客户确认为止(图1-3)增量模型:把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。(图1-4)螺旋模型:用于风险较大的大型软件项目开发,将瀑布

8、模型与快速原型模型结合起来,并且加入了这两种模型忽略了的风险分析(图1-5)喷泉模型:分析模型和设计模型采用相同的符号标示体系,各阶段之间没有明显的界限,而且常常重复、迭代地进行(图1-6)基于组件的开发模型:使用现有的组件以及系统框架进行产品开发(图1-7)统一软件开发过程模型:基于UML的一种面向对象的软件开发模型,采用迭代和增量递进的开发策略,并以用例驱动为特点,集中了多个软件开发模型的优点(图1-8)(4)软件过程实例略三、软件开发方法1.基本的软件开发方法(1)结构化方法:采用自顶向下、逐步求精的讲授指导思想,应用广泛,技术成熟(2)面向数据结构方法:从目标系统的输入、输出数据结构入

9、手,导出程序框架结构,再补充其他细节,就可得到完整的程序结构图(3)面向对象方法:自底向上和自顶向下相结合,以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包括了所有对象的数据结构。(4)形式化方法2 .开源软件开发方法3 .群体化软件开发方法四、软件工程工具结合表1-3、表1-4进行讲解五、软件工程人员的职业道德(1)保护客户数据(2)知识产权(3)版权拥有权(4)许可协议(5)道德问题解决方案(6)道德教育六、“小型网上书店系统”案例介绍七、课程思政:简要介绍案例“青鸟工程2”思考题和作业P2123习题扩展阅读无章节名称第2章敏捷软件开发(1)课次1(总第3次)课时2授课形式理

10、论课案例讨论课口实验课习题课其他口教学目的及要求了解“敏捷软件开发宣言”的4个价值观和12条原则理解重要的敏捷软件开发实践,例如Scrum中的Sprint用户故事、Backlog等通过案例“微信1”,进行思政教育教学重点用户故事Scrum教学难点用户故事Scrum环节/时间授课内容教学方法课程导入10分钟一、敏捷软件开发方法(1)4个价值观:个体与交互高于过程和工具、可运行软件高于详尽的文档、与客户协作高于合同(契约)谈判、对变更及时响应高于遵循计划(2)12条原则讲授正式授课80分钟二、Scrum1.概述Scrum用不断迭代的框架方法来管理复杂产品的开发,成为当前十分流行的敏捷管理方法。1)

11、 3种角色:产品经理、敏捷专家、SCnIm团队2) SCrUm会议:整理产品需求清单、确定迭代规划、梳理产品需求清单、每日站会、迭代演示、迭代回顾3) SCrUm项目所需的常用工件:SCrUm任务板、用户故事、燃尽图(IS2-2)2 .SprintSprint是Scrum团队一起完成增量工作的实际时间段3 .每日站会每天在同一时间和地点举行的超短会议,以保持会议的简单性4 .用户故事用户故事是从用户的角度来描述用户渴望得到讲授的功能(1) 3要素:角色、活动、商业价值(2) 3C原则:卡片、交谈、确认(3) INVEST原则:独立、可协商、有价值、可估算、短小、可测试结合表2-1、表2-2、表

12、2-3进行讲述5.BacklogBacklog是Scrum中经过优先级排序的动态刷新的产品需求清单,用来制订发布计划和迭代计划6.结对编程结对编程,即两个程序员肩并肩地坐在同一台计算机前合作编程,在一个程序员编程的同时,另一个负责检查代码的正确性和可读性三、课程思政:简要介绍案例“微信1”思考题和作业P4143习题扩展阅读无章节名称第2章敏捷软件开发(2)课次1(总第4次)课时2授课形式理论课案例讨论课口实验课习题课其他口教学目的及要求理解面向敏捷软件开发的Kanban、XP方法理解敏捷软件开发和DeVC)PS是一种理念,而CI/CD是实现这两种理念的一种方法通过案例“微信2”,进行思政教育教

13、学重点CI/CD教学难点CI/CD环节/时间授课内容教学方法课程导入10分钟回顾上一次所讲的内容讲授正式授课80分钟一、看板1.概述看板作为可视化框架可以用于敏捷方法,能够清晰地向团队成员展示整个项目进度原则:可视化工作流程、限制WIP、管理和改进流程、制订明确的执行策略、持续改进2.看板和SCrUm的区别看板对团队的个人能力要求较高,更灵活,适合新开发的产品,而SCrUm适合成熟一些的产品和团队,结合表2-4进行讲授二、极限编程极限编程是一种实践性较强的规范化的软件开发方法,它强调用户需求和团队工作,结合图2-4进行讲授。(1)4个价值观:交流、简单、反馈、勇气(2)12个核心实践三、CI/

14、CD(1)概述持续集成(CD持续交付(CD)持续测试(2) CI/CD的优势更快、更可靠的版本发布、更高的可见性、早期错误检测、快速反馈循环、更快乐的开发和运维团队四、DevOps1 .DevOps生命周期策划、开发、集成、部署、运维、学习2 .敏捷软件开发、CI/CDDevOps五、敏捷软件开发实例讲授六、课程思政:简要介绍案例“微信2”思考题和作业P4143习题扩展阅读无章节名称第3章可行性研究与项目开发计划课次1(总第5次)课时2授课形式理论课案例讨论课口实验课口习题课口其他口教学目的及要求 了解可行性研究的目的、意义和内容 掌握可行性研究的主要步骤 了解项目开发计划的内容 通过案例“钉

15、钉软件”,进行思政教育教学重点可行性研究的任务、过程、成本效益分析教学难点成本效益分析环节/时间授课内容教学方法课程导入10分钟引入项目的立项讲授正式授课80分钟一、项目立项概述项目立项包括项目发起、项目论证、项目审核和项目批准四个过程二、可行性研究的任务可行性研究需要从多个方面进行评估,主要包括战略可行性、操作可行性、计划可行性、技术可行性、社会可行性、市场可行性、经济可行性和风险可行性等1.计划可行性主要研究待开发的系统的功能、性能和限制条件,确定现有技术能否实现有关的解决方案,在现有的资源条件下实现新系统的技术风险有多大2.操作可行性3.经济可行性(1)成本估算代码行技术任务分解技术(2

16、)成本一一效益分析开发成本运行费用经济效益(3)货币的时间价值(4)投资回收期(5)纯收入三、可行性研究的步骤一个典型的可行性研究的步骤可以归结为以下几步:明确系统的目标、分析研究现行系统、设计新系统的高层逻辑模型、获得并比较可行的方案、撰写可行性研究报告(图3-1)四、可行性研究实例五、制订项目开发计划项目开发计划主要包括:项目概述、实施计戈1、人员组织及分工、交付期限六、课程思政:简要介绍案例“钉钉软件”讲授思考题和作业P5052习题扩展阅读无章节名称第4章需求分析与结构化分析(1)课次1(总第6次)课时2授课形式理论课案例讨论课口实验课口习题课口其他口教学目的及要求 了解需求分析的任务和

17、原则 熟悉进行需求分析的步骤和方法 了解需求管理 熟悉需求分析的常用方法 了解软件原型通过案例“汉字激光照排系统1”,进行思政教育教学重点需求分析的常用方法教学难点软件原型环节/时间授课内容教学方法课程导入10分钟引入需求分析讲授正式授课80分钟一、需求分析1 .需求分析的任务和原则2 .需求分析的步骤(1)需求获取收集并明确用户需求,获取需求的方法有多种。问卷调查访谈实地操作建立原型(2)分析建模模型是为了理解事物而对事物做出的一种抽象,通常由一组符号和组织这些符号的规则组成。(3)需求描述需求描述就是编制需求分析阶段的文档,一般包括三个文档:系统定义文档(用户需求报告)、系统需求文档(系统

18、需求规格说明书)、软件需求文档(软件需求规格说明书)(图4-2)。(4)需求验证与评审3 需求管理有效需求管理的关键在于维护需求的明确阐述、每种需求类型所使用的属性,以及与其他需求和其他项目之间的可追踪。4 .需求分析的常用方法(1)功能分解方法(2)结构化分析方法(3)信息建模方法(4)面向对象的分析方法5 .软件原型软件原型是指在项目的前期阶段,系统分析人员根据对客户需求的理解和客户希望实现的结果,快速地给出一个翔实的产品雏形二、课程思政:简要介绍案例“汉字激光照排系统1”讲授思考题和作业P7274习题扩展阅读无章节名称第4章需求分析与结构化分析(2)课次1(总第7次)课时2授课形式理论课

19、案例讨论课口实验课口习题课口其他口教学目的及要求 了解结构化分析 掌握结构化分析的几种常用建模方法 掌握结构化分析的几种图形工具 通过案例“汉字激光照排系统2”,进行思政教育教学重点结构化分析方法教学难点结构化分析方法环节/时间授课内容教学方法课程导入10分钟回顾上一次课需求分析的内容讲授正式授课80分钟一、结构化分析概述1 .建立当前系统的“具体模型”2 .抽象出当前系统的逻辑模型3 .建立目标系统的逻辑模型4 .考虑人机界面和其他一些问题二、结构化分析方法结构化分析实质上是一种创建模型的活动(图4-5)1 .功能建模功能建模是用抽象模型的概念,按照软件内部数据传递和变换的关系,自顶向下逐层

20、分解,直到能够构建满足功能要求的可实现的软件为止(1)数据流图的表示符号4种表示符号,外部实体、数据流、数据变换、数据存储(图4-6)(2)环境图环境图仅包含一个数据处理过程,即要开发的目标系统。环境图的作用是确定系统在其环境中的位置,通过确定系统的输入和输出与外部实体的关系确定其边界(图4-7、图4-8)(3)数据流图的分解结合图4-9、图4-10、图4-11讲授分解的流程2 .数据建模数据建模是在较高的抽象层次上对数据库结构进行建模,数据模型用E-R图来描述E-R图以实体、关系和属性3个基本概念概括数据的基本结构。实体是现实世界的事物,多用矩形框表示。属性多用椭圆形表示,关系用菱形表示。实

21、体之间存在一对一、一对多、多对多三种关系类型,结合图4-12、图4-13、图4-14中的具体例子进行讲授3.行为建模状态转换图是一种描述系统对内部或外部事件响应的行为模型,描述系统状态、事件和事件引发系统在状态之间的转换(1)状态及状态转换状态是任何可以被观察到的系统行为模式,规定了系统对事件的响应方式,结合图5-15进行状态转换图的讲授(2)事件事件是在某个特定时刻发生的事情,状态转换讲授+演示通常是由事件触发的,在这种情况下应在表示状态转换的箭头线上标出触发转换的事件表达式(3)例子结合图4-16演示图书馆管理系统的例子4 .数据字典数据字典以一种系统化的方式定义在分析模型中出现的数据对象

22、及控制信息的特性,给出它们的准确定义,包括数据流、数据存储、数据项、数据加工,以及数据源点、数据汇点等(表4-1)。5 .加工规格说明在对数据流图的分解中,位于最底层数据流图的数据处理,称为基本加工,对于每一个基本加工都需要进一步说明,称为加工规格说明,一般用结构化语言、判定表和判定树来表述(结合图表4-2、图4-17进行讲授)三、结构化分析的图形工具图形工具包括层次方框图、Wamier图和IPO图,结合图4-18、图4-19、图4-20、图4-21进行讲授四、结构化分析实例结合图4-22、图4-23、图4-24、图4-25对某培训机构入学管理系统进行结构化分析和演示五、课程思政:简要介绍案例

23、“汉字激光照排系统2”思考题和作业P7274习题扩展阅读无章节名称第5章软件设计与结构化设计(1)课次1(总第8次)课时2授课形式理论课案例讨论课口实验课口习题课其他口教学目的及要求 了解软件设计的意义和目标。 掌握软件设计的原则。 了解软件设计的分类。 了解软件体系结构。 通过案例“高斯数据库1”,进行思政教育教学重点软件设计的原则教学难点软件体系结构环节/时间授课内容教学方法课程导入10分钟设计是将用户需求转变为软件构建蓝图的过程,在软件开发过程中处于核心地位。一、软件设计的原则1 .模块化2 .抽象3 .逐步求精4 .信息隐藏5 .复用性设计6 .灵活性设计软件设计追求使用抽象和逐步求精

24、的方式实现高内聚,低耦合的模块划分,并遵循信息隐藏的原则,使已有设计能更灵活,更具有可复用性。二、软件设计的分类软件设计包括数据设计,体系结构设计,接口设计,构件设计,部署设计五个部分。讲授正式授课80分钟三、软件体系结构的概念体系结构相当于一个系统的整体框架的草图,描述系统组成的估价。软件体系结构对于一个软件系统来说具有至关重要的作用。四、软件体系结构包括:软件的组成元素;这些元素的外部可见特性;这些元素之间的相互关系。五、软件体系结构的作用软件体系结构在软件开发过程中的作用如下。1)规范软件开发的基本架构2)便于开发人员与用户的沟通3)模块化、层次化设计,有利于减少返工,提高效率4)便于系

25、统开发前、后期的筹备与服务五、典型的软件体系结构风格1、数据流风格数据到达时被激活处理工作,无数据时不工作。2、调用/返回风格各个构件通过调用其他构件和获得返回参数来进行交流。3、独立构件风格通过对事件的发布和注册实现关联4、虚拟机风格创建了一种虚拟的环境,将用户与底层平台隔离开来,或将高层抽象和底层实现隔离开来。5、仓库风格由表示当前数据状态的中心数据结构和一组对中心数据进行操作的独立构建组成。六、客户端/服务器模式的分布式体系结构1)服务器负责给其子系统提供服务2)客户端通常是独立的子系统,通过向服务器请求约定的资源获取数据3)网络连接服务器和客户端七、MVC模型MVC强调将用户的输入、数

26、据模型和数据表示方式分开设计,一个交互式应用系统由模讲授型、视图、控制器3部分组成,分别对应内部数据、数据表示和输入/输出控制部分八、课程思政:简要介绍案例“高斯数据库1”思考题和作业P107109习题扩展阅读无章节名称第5章软件设计与结构化设计(2)课次1(总第9次)课时2授课形式理论课案例讨论课口实验课口习题课口其他口教学目的及要求 了解结构化设计与结构化分析的关系。 熟悉表示软件结构的图形工具。 掌握面向数据流的软件设计方法。 熟悉面向数据结构的设计方法。 熟悉接口设计和数据设计。 掌握过程设计的工具和方法。 了解软件设计评审。通过案例“高斯数据库2”,进行思政教育教学重点面向数据流的软

27、件设计方法教学难点面向数据结构的设计方法环节/时间授课内容教学方法课程导入10分钟回顾上一节课所讲的内容讲授正式授课80分钟一、结构化设计概述结构化设计的任务是从软件需求规格说明书出发,设计软件系统的整体结构、确定每个模块的实现算法以及如何编写具体的代码,形成软件的具体设计方案,解决“怎么做”的问题。二、结构化设计与结构化分析的关系由数据模型、功能模型和行为模型表示的软件需求被传送给软件设计者,软件设计者使用适当的设计方法完成数据设计、体系结构设计、接口设计和过程设计。三、结构化设计1、面向数据流的设计根据应用中数据流通的途径对应用的系统结构进行划分与建模。2、面向数据结构的设计根据数据结构设

28、计程序处理过程的方法,也就是面向数据结构的设计方法按输入、输出以及计算机内部存储信息的数据结构进行软件结构设计。四、接口设计1 .接口设计一般包括如下的3个方面。(1)用户接口:用来说明将向用户提供的命令和它们的语法结构以及软件回答信息。(2)外部接口:用来说明本系统同外界的所有接口的安排,包括软件与硬件之间的接口、本系统与各支持软件之间的接口关系。(3)内部接口:用来说明本系统之内的各个系统元素之间的接口的安排。2 .界面设计1)三条“黄金原则”将控制权交给用户;减少用户的记忆负担;界面保持一致2)界面设计过程界面设计是一个迭代的活动,包括以下六点核心活动:创建系统功能的外部模型;确定为完成

29、此系统功能,人和计算机应分别完成的任务;考虑界面设计中的典型问题;借助CASE工具构造界面原型;实现设计模型;评估界面质量。界面设计过程中设计四个模型:设计模型;用户模型;系统假想;系统映像。讲授3)界面设计问题系统设计时应考虑:系统响应时间;用户求助机制;出错信息;键盘命令等四个问题。五、数据设计数据设计就是将需求分析阶段定义的数据对象(E-R图、数据字典)转换为设计阶段的数据结构和数据库,包括两个方面。(1)程序级的数据结构设计:采用(伪)代码的方式定义数据结构(数据的组成、类型、缺省值等信息)。(2)应用级的数据库设计:采用物理级的E-R图表示。六、过程设计这里讲述程序流程图、N-S图、

30、PAD图,以及结构化语言七、软件设计评审八、结构化设计实例九、课程思政:简要介绍案例“高斯数据库2”思考题和作业P107-109习题扩展阅读无章节名称第6章软件实现课次1(总第10次)课时2授课形式理论课案例讨论课实验课习题课其他口教学目的及要求 了解编程语言的发展与分类 了解选择编程语言时所需考虑的因素 掌握良好的编程风格与编码规范 了解代码重用 了解分析和评价代码的质量通过案例“杀毒软件之父”一王江民,进行思政教育教学重点良好的编程风格与编码规范教学难点良好的编程风格与编码规范环节/时间授课内容教学方法课程导入10分钟编程语言的介绍和选择讲授正式授课80分钟一、编程语言1.编程语言发展和分

31、类1)机器语言2)汇编语言3)高级语言4)超高级语言了解流行语言C、Python、Java、C+、C#JavaScriptPHP的特征和应用2.选择编程语言需考虑的因素D项目的应用范围2)用户的需求3)使用的软件开发工具4)开发人员的喜好和能力5)软件的可移植性要求6)算法和数据结构的复杂性7)平台支持二、编码风格和规范1 .版权和版本声明1)版权信息2)文件名称、标识符、摘要3)当前版本号、作者/修改者、完成日期4)版本历史信息2 .程序版式如缩进、空格、空行、代码行最大长度等规则,增加代码可读性。3.注释注释一般位于:1)版本、版权声明2)函数接口说明3)重要代码行或段落揭示注释规则:1)

32、尽量精简2)准确、易懂,不能有二义性3)注释放在被描述的代码上方或右方4)代码较长时在段落结束处加注释4.命名规则D按照标识符的实际意义命名2)标识符尽可能短3)命名与开发工具或操作系统的风格保持一致4)变量名不要过于相似5)注释解释变量命名6)不要出现仅靠大小写区分的标识符讲授7)尽量避免出现数字编号5 .数据说明1)按照一定次序,如数据类型,说明类内数据2)说明同一语句中的相同类型变量时,按字母序排列3)添加必要注释说明复杂数据结构6 .语句构造1)不同语句分行写2)合理利用缩进体现层次结构3)复杂运算式中使用括号清晰表达运算顺序4)经常使用的代码段独立封装成函数或过程5)避免使用got。

33、语句6)避免使用多层嵌套7)避免使用复杂的判定条件7 .输入输出1)对输入数据施行严格的数据检查,及时识别错误和异常2)简化输入的步骤、操作3)输入格式限制不要太严格4)允许默认输入5)交互式输入中要给予用户正确的提示6)对输出数据添加注释7)输出数据遵循一定的格式8.效率主要取决于使用的算法和数据结构,代码可由编译器优化。D减少循环嵌套的层数2)循环结构改为嵌套结构3)简化算术和逻辑表达式,少用混合数据类型的运算4)避免使用多维数组和复杂的表三、代码复用复用方式:1)源代码剪贴2)源代码包含3)继承开源代码复用,优点是缩减开发成本,提高开发效率;缺点一是开源许可证容易侵权,二是复用的代码难以

34、及时更新,有安全风险。四、分析和评价代码质量1 .可读性2 .可扩展性3 .灵活性4 .简洁性5 .可复用性6 .可测试性7 .可维护性五、软件实现实例六、课程思政:简要介绍案例“杀毒软件之父”一王江民思考题和作业P123124习题扩展阅读无章节名称第7章软件测试(1)课次1(总第11次)课时2授课形式理论课案例讨论课口实验课口习题课口其他口教学目的及要求 掌握软件测试的原则 了解软件测试的常用模型 了解软件测试的分类 了解测试用例和测试用例设计方法 掌握等价类划分法;熟悉黑盒测试的其他方法 通过窠例“中国的工业软件1”,进行思政教育教学重点等价类划分法教学难点等价类划分法环节/时间授课内容教

35、学方法课程导入10分钟软件测试的概念、基本原则和模型(略讲)讲授正式授课80分钟一、软件测试的基本概念软件测试是软件开发过程中的重要阶段,用来保证软件产品的稳定性、安全性、一致性、完全性等要求,从而保证软件质量,软件测试工作应该贯穿整个开发过程。1.基本原则1)完全测试是不可能的2)测试中存在风险和缺陷3)软件测试只能表明缺陷的存在,不能证明没有其他方面的缺陷4)潜在的错误数和发现的错误数成正比5)让不同测试人员参与测试6)开发小组和测试小组分立7)尽早不断测试,让测试工作贯穿开发过程8)设计测试用例时要包括输入数据和预期的输出结果两个部分,输入数据还应该包括非法情况9)集中测试容易出错或是出

36、错较多的模块10)长期保留所有的测试用例,方便回归测试2.测试模型I)V模型。在编码后才进行测试工作,无法及时纠正错误2)W模型。测试与各个设计过程同步进行,局限是测试不能跨阶段3)H模型。测试活动独立,与其他流程并行。二、软件测试分类1 .按测试阶段分为单元、集成、系统、验收测试2 .按是否运行程序分为静态测试和动态测试3 .三、测试用例为节省时间、资源,提高测试效率,应该挑选有代表性的或特殊性的测试数据进行测试。1.测试用例设计4 .测试用例场景描述每个经过测试用例可能的路径四、软件测试方法静态测试主要为人工审查代码,检测有效但讲授是对测试人员要求高。动态测试需要实际运行程序,主要分为白盒

37、和黑盒测试1.黑盒测试1)等价类划分法。将输入根据不同条件划分为若干子集,只取各个子集中的部分输入测试。2)边界值分析法。取输入范围的边界值以及边界附近的值进行测试。3)错误推测法。主要靠直觉和经验,选择程序中可能的错误和容易发生错误的特殊情况。4)因果图法和决策表法。考虑不同输入条件的组合,条件之间的制约关系,条件与结果之间的逻辑关系。先根据程序规格说明书划定可能的原因、结果,画出相应的因果图,再转化为决策表,根据决策表的不同条件组合设计测试用例。5)场景法。对于有各种中间状态、事件的软件,可以根据程序执行的基本流和各个备选流,生成不同的场景,对每个流程场景设计相应的测试用例。五、课程思政:

38、简要介绍案例“中国的工业软件思考题和作业P163165习题扩展阅读无章节名称第7章软件测试(2)课次1(总第12次)课时2授课形式理论课案例讨论课口实验课口习题课口其他口教学目的及要求掌握逻辑覆盖法;熟悉白盒测试的其他方法掌握软件测试的一般,以及每个阶段测试的关注点了解回归测试、自动化测试熟悉软件调试通过案例“中国的工业软件2”,进行思政教育教学重点逻辑覆盖法;单元测试教学难点逻辑覆盖法;单元测试环节/时间授课内容教学方法课程导入10分钟回顾上节课软件测试的内容讲授正式授课80分钟一、软件测试方法2.白盒测试般来说,采取先静态后动态的方式,先进行代码检查和静态结构分析,再进行覆盖测试。覆盖测试

39、是重点,应尽可能提高覆盖率。不同测试阶段测试重点不同,需要白盒黑盒相结合进行测试。1)代码检查法。根据设计文档和一般编码原则检查代码。2)静态结构分析。分析源代码的内部结构,各模块的逻辑关系,如控制流分析、数据流分析、信息流分析、接口分析、表达式分析等,进而找出错误。3)程序插桩技术。往被测试程序中插入输出等操作来了解变量、语句的执行情况,从而查出错误。4)逻辑覆盖法和基本路径法。根据程序的流程图,设计测试用例,以覆盖所有的执行路径或语句。二、分阶段测试1 .单元测试2 .集成测试3 .系统测试4 .验收测试5 .回归测试6 .自动化测试7 .软件调试三、软件测试实例三、课程思政:简要介绍案例

40、“中国的工业软件2”讲授思考题和作业P163165习题扩展阅读无章节名称第8章软件维护课次1(总第13次)课时2授课形式理论课案例讨论课口实验课口习题课口其他口教学目的及要求 熟悉软件部署与软件交付。 了解软件维护的过程和分类。 了解软件的可维护性。 了解软件维护的副作用。 了解软件运维。 了解软件再工程一逆向工程、重构、正向工程。 通过案例“12306”,进行思政教育教学重点软件维护的过程教学难点软件再工程一逆向工程、重构、正向工程环节/时间授课内容教学方法课程导入10分钟软件维护的意义讲授正式授课80分钟一、软件维护软件维护是软件产品交付并投入使用后,为弥补软件测试阶段未发现的缺陷,改进软

41、件产品的性能,补充软件产品的新功能等所进行的修改软件的过程。通常软件维护周期和费用都很大。1 .软件部署与交付。需要完成软件的安装部署、验收测试、交付验收结果,然后对用户进行必要的培训,交付相关文档,再进入维护阶段。2 .软件维护的过程。1)建立维护机构2)用户提出维护申请并提交维护申请报告3)维护人员确认维护类型并实话相应的维护工作4)整理维护记录并对维护工作进行评审5)对维护工作进行评审讲授3 .软件维护的分类1)纠错性维护2)适应性维护3)完善性维护4)预防性维护4 .软件的可维护性影响因素有可理解性、可测试性和可修改性等。提升方法:1)明确软件质量目标和优先级,重点保证主要影响的质量因

42、素2)建立完整文档3)采用行进的维护工具和技术4)注重可维护性的评审环节5 .软件维护的副作用1)代码修改产生新错误2)修改数据产生不兼容等错误3)文档更新不及时导致用户和维护人员不便6 .软件运维7 .软件再工程D重构。对源代码和数据修改,使其便于理解或维护。2)正向工程。改造原软件,加入新功能和改善整体性能。3)逆向工程。对源代码进行抽象分析,导出更高层次的表达。二、软件维护实例三、课程思政:简要介绍案例“12306”思考题和作业P174176习题扩展阅读无章节名称第9章面向对象方法与UML(1)课次1(总第14次)课时2授课形式理论课案例讨论课口实验课口习题课口其他口教学目的及要求 掌握

43、面向对象的基本概念 理解面向对象软件工程的特征与优势 掌握面向对象的实施步骤 了解统一建模语言UML 熟悉UML的用例图、类图、对象图、包图 通过案例“抖音1”,进行思政教育教学重点用例图、类图教学难点用例图、类图环节/时间授课内容教学方法课程导入10分钟一、面向对象的基本概念1、面向对象是指:按照人们认识客观世界的系统思维方式,采用基于对象的概念建立模型,模拟客观世界分析、设计、实现软件的办法。面向对象涉及的概念包括:对象:现实世界中各种各样的实体具有自己的属性和行为类:具有相似内部状态和运动规律的实体的集合与抽象。消息:对象之间相互联系和相互作用的方式类具有以下七点特性:抽象、继承、封装、多态、重写、包、包

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号