




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程
课程
软件工程基础编号授课时间
名称
专业及修课
班级人数
总学时48+16学分3.5
公共基础专业(学科)基础课专业课
必修课
课程类()(J)()
型专业限选课专业任选课全校任选课
选修课
()()()
授课方式理论课(V)实践课(V)
学时分配课堂讲授48学时;实践环节16学时
考核方式考试(J)考查()
是否采用多媒体是是否采用双语否
教研室
审查意
见
章节名称第1章软件工程概述(1)
课次1(总第1次)课时2
授课形式理论课■案例讨论课口实验课口习题课口其他口
•了解此课程的教学安排和考核方式。
•了解软件的概念、特点。
教学目的
•了解软件危机的产生原因及其表现。
及要求
•掌握软件工程的概念,以及软件工程的基本原则。
•通过案例“青鸟工程1”,进行思政教育。
•课程的教学安排和考核方式
教学重点•软件工程的概念
教学难点无
教学方
环节/时间授课内容
法
课程导入
一、课程的教学安排和考核方式讲授
10分钟
一、课程的教学安排和考核方式(续)
二、软件
计算机软件是由专业人员开发并长期维护的软件
产品。完整的软件产品包括了在各种不同容量和体系
结构计算机上的可执行的程序,运行过程中产生的各
种结果,以及以硬拷贝和电子表格等多种方式存在的
软件文档。
二、软件危机
软件危机就是指人们在开发软件和维护软件过程
中所遇到的一系列的问题。软件危机出现的原因可以
概括为以下几点。
•忽视软件开发前期的需求分析。
•开发过程缺乏统一的、规范化的方法论的指导。软
件开发是一项复杂的工程,人们需要用科学的工程
化的思想来组织和指导软件开发的各个阶段。而这
种工程学的视角正是很多软件开发人员所没有的,
他们往往简单地认为软件开发就是程序设计。
•文档资料不齐全或不准确。软件文档的重要性没有
正式授课得到软件开发人员和用户的足够重视。软件文档是
讲授
80分钟软件开发团队成员之间交流和沟通的重要平台,还
是软件开发项目管理的重要工具。如果人们不能充
分重视软件文档的价值,这样势必会给软件开发带
来很多不便。
•忽视与用户之间、开发组成员之间的交流。
•忽视测试的重要性。
•不重视维护或由于上述原因造成维护工作的困难。
由于软件的抽象性和复杂性使得软件在运行之前,
对开发过程的进展情况很难估计。再加上软件错误
的隐蔽性和改正的复杂性,这些都使得软件开发和
维护在客观上比较困难。
•从事软件开发的专业人员对这个产业认识不充分,
缺乏经验。软件产业相对于其他工业产业而言,是
一个比较年轻,发展不成熟的产业,人们在对它的
认识上缺乏深刻性。
•没有完善的质量保证体系。完善的质量保证体系的
建立需要有严格的评审制度,同时还需要有科学的
软件测试技术及质量维护技术。软件的质量得不到
保证,使得开发出来的软件产品往往不能满足人们
的需求,同时人们还可能需要花费大量的时间、资
金和精力去修复软件的缺陷,从而导致了软件质量
的下降和开发预算超支等后果。
四、软件工程
1.软件工程的概念
软件工程是以借鉴传统工程的原则、方法,以提高
质量、降低成本为目的,指导计算机软件开发和维护的
工程学科。
2.软件工程研究的内容
(1)软件开发技术
(2)软件开发过程管理
3.软件工程目标和原则
(1)用分阶段的生命周期计划进行严格的管理
(2)坚持进行阶段评审
(3)实行严格的版本控制
(4)采月现代程序设计技术
(5)软件工程结果应能清楚地审查
(6)开发小组的人员应该少而精
(7)承认不断改进软件工程实践的必要性
五、课程思政:简要介绍案例“青鸟工程1”
思考题
P21〜23习题
和作业
扩展阅读无
章节名称第1章软件工程概述(2)
课次1(总第2次)课时2
授课形式理论课■案例讨论课口实验课口习题课口其他口
•掌握软件过程的定义和基本活动。
•熟悉常用的几种软件过程模型。
•了解软件开发的方法。
教学目的
•了解与软件开发项目相关的常用工具。
及要求
•了解软件工程人员的职业道德。
•通过案例“青鸟工程2”,进行思政教育
•软件过程模型
教学重点•软件工程人员的职业道德
教学难点软件过程模型
环节/时间授课内容教学方法
一、软件过程概述
软件的诞生和生命周期是一个过程,即软件
课程导入
过程。过程定义了运用方法的顺序、应该交付的讲授
10分钟
文档资料、为保证软件质量和协调变化所需要采
取的管理措施,以及标志软件开发各个阶段任务
完成的里程碑。
二、软件生命周期
(1)软件生命周期的概念
软件产品的生命周期是指从设计该产品的
构想开始,到软件需求的确定、软件设计、软件
实现、产品测试与验收、产品发布、投入是用以
及产品版本的不断更新,到最终该产品被淘汰的
全过程。
(2)传统软件生命周期的各个阶段
①可行性研究
②需求分析
③软件设计
④编码
⑤软件测试
⑥软件维护
(3)软件过程模型
①瀑布模型:开发人员必须等前一阶段的任务
完成后,才能开始后•阶段的工作,并且前•阶
段的输出往往是后一阶段的输入(图1-2)
②快速原型模型:在初步的需求分析之后,马
上向客户展示一个软件产品原型,对客户进行培
正式授课训,让客户试用,反复循环儿次,直到客户确认
讲授
80分钟为止(图1-3)
③增量模型:把待开发的软件系统模块化,将
每个模块作为一个增量组件,从而分批次地分
析、设计、编码和测试这些增量组件。(图1-4)
④螺旋模型:用于风险较大的大型软件项目开
发,将瀑布模型与快速原型模型结合起来,并且
加入了这两种模型忽略了的风险分析(图1-5)
⑤喷泉模型:分析模型和设计模型采用相同的
符号标示体系,各阶段之间没有明显的界限,而
且常常重复、迭代地进行(图1-6)
⑥基于组件的开发模型:使用现有的组件以及
系统框架进行产品开发(图1-7)
⑦统一软件开发过程模型:基于UML的一种
面向对象的软件开发模型,采用迭代和增量递进
的开发策略,并以用例驱动为特点,集中了多个
软件开发模型的优点(图1-8)
(4)软件过程实例
略
三、软件开发方法
1.基本的软件开发方法
(1)结构化方法:采用自顶向下、逐步求精的
指导思想,应用广泛,技术成熟
(2)面向数据结构方法:从目标系统的输入、
输出数据结构入手,导出程序框架结构,再补充
其他细节,就可得到完整的程序结构图
(3)面向对象方法:自底向上和自顶向下相结
合,以对象建模为基础,从而不仅考虑了输入、
输出数据结构,实际上也包括了所有对象的数据
结构。
C)形式化方法
2.开源软件开发方法
3.群体化软件开发方法
四、软件工程工具
结合表1-3、表1-4进行讲解
五、软件工程人员的职业道德
(1)保护客户数据
(2)知识产权
(3)版权拥有权
(4)许可协议
(5)道德问题解决方案
(6)道德教育
六、“小型网上书店系统”案例介绍
七、课程思政:简要介绍案例“青鸟工程2”
思考题
P21〜23习题
和作业
扩展阅读无
章节名称第2章敏捷软件开发(1)
课次1(总第3次)课时2
授课形式理论课■案例讨论课口实验课□习题课口其他口
•了解“敏捷软件开发宣言”的4个价值观和12条原则
教学目的及•理解重要的敏捷软件开发实践,例如Scrum中的Sprint>
要求用户故事、Backlog等
•通过案例“微信1”,进行思改教育
•用户故事
教学重点・Scrum
•用户故事
教学难点
•Scrum
教学方
环节/时间授课内容
法
一、敏捷软件开发方法
(1)4个价值观:个体与交互高于过程和工具、
课程导入可运行软件高于详尽的文档、与客户协作高于
讲授
10分钟合同(契约)谈判、对变更及时响应高于遵循
计戈IJ
(2)12条原则
二、Scrum
1.概述
Scrum用不断迭代的框架方法来管理复杂产品
的开发,成为当前十分流行的敏捷管理方法。
1)3种角色:产品经理、敏捷专家、Scrum团队
2)Scrum会议:整理产品需求清单、确定迭代规
划、梳理产品需求清单、每日站会、迭代演示、迭
代回顾
正式授课
3)Scrum项目所需的常用工件:Scrum任务板、讲授
8()分钟
用户故事、燃尽图(图2-2)
2.Sprint
Sprint是Scrum团队一起完成增量工作的实际
时间段
3.每日站会
每天在同一时间和地点举行的超短会议,以保
持会议的简单性
4.用户故事
用户故事是从用户的角度来描述用户渴望得到
的功能
(1)3要素:角色、活动、商业价值
(2)3c原则:卡片、交谈、确认
(3)INVEST原则:独立、可协商、有价值、可
估算、短小、可测试
结合表2-1、表2-2、表2-3进行讲述
5.Backlog
Backlog是Scrum中经过优先级排序的动态刷
新的产品需求清单,用来制订发布计划和迭代计划
6.结对编程
结对编程,即两个程序员肩并肩地坐在同一台
计算机前合作编程,在一个程序员编程的同时,另
一个负责检查代码的正确性和可读性
三、课程思政:简要介绍案例“微信1”
思考题
P41〜43习题
和作业
扩展阅读无
章节名称第2章敏捷软件开发(2)
课次1(总第4次)课时2
授课形式理论课■案例讨论课口实验课口习题课口其他口
•理解面向敏捷软件开发的Kanban、XP方法
•理解敏捷软件开发和DevOps是一种理念,而C1/CD是实
教学目的及
现这两种理念的一种方法
要求
•通过案例“微信2”,进行思政教育
CFCD
教学重点
教学难点CI/CD
教学方
环节/时间授课内容
法
课程导入
回顾上一次所讲的内容讲授
10分钟
一、看板
1.概述
看板作为可视化框架可以用于敏捷方法,能够
清晰地向团队成员展示整个项目进度
原则:可视化工作流程、限制W1P、管理和改
进流程、制订明确的执行策略、持续改进
2.看板和Scrum的区别
看板对团队的个人能力要求较高,更灵活,适
合新开发的产品,而Scrum适合成熟一些的产品和
团队,结合表2-4进行讲授
二、极限编程
极限编程是一种实践性较强的规范化的软件开
发方法,它强调用户需求和团队工作,结合图2-4
进行讲授。
(1)4个价值观:交流、简单、反馈、勇气
正式授课(2)12个核心实践
讲授
80分钟
三、CI/CD
(1)概述
①持续集成(CI)
②持续交付(CD)
③持续测试
(2)CI/CD的优势
更快、更可靠的版本发布、更高的可见性、早
期错误检测、快速反馈循环、更快乐的开发和运维
团队
四、DevOps
1.DevOps生命周期
策划、开发、集成、部署、运维、学习
2.敏捷软件开发、CI/CD和DevOps
五、敏捷软件开发实例
六、课程思政:简要介绍案例“微信2”
思考题
P41〜43习题
和作业
扩展阅读无
章节名称第3章可行性研究与项目开发计划
课次1(总第5次)课时2
授课形式理论课■案例讨论课口实验课口习题课口其他口
•了解可行性研究的目的、意义和内容
•掌握可行性研究的主要步骤
教学目的及
•了解项目开发计划的内容
要求
•通过案例“钉钉软件”,进行思政教育
教学重点可行性研究的任务、过程、成本效益分析
教学难点成本效益分析
教学方
环节/时间授课内容
法
课程导入
引入项目的立项讲授
10分钟
一、项目立项概述
项目立项包括项目发起、项目论证、项目审核
和项目批准四个过程
二、可行性研究的任务
可行性研究需要从多个方面进行评估,主要包
括战略可行性、操作可行性、计划可行性、技术可
行性、社会可行性、市场可行性、经济可行性和风
险可行性等
1.计划可行性
主要研究待开发的系统的功能、性能和限制条
件,确定现有技术能否实现有关的解决方案,在现
有的资源条件下实现新系统的技术风险有多大
2.操作可行性
3.经济可行性
(1)成本估算
①代码行技术
②任务分解技术
(2)成本效益分析
正式授课
①开发成本讲授
80分钟
②运行费用
③经济效益
(3)货币的时间价值
(4)投资回收期
(5)纯收入
三、可行性研究的步骤
•个典型的可行性研究的步骤可以归结为以下
几步:明确系统的目标、分析研究现行系统、设计
新系统的高层逻辑模型、获得并比较可行的方案、
撰写可行性研究报告(图3-1)
四、可行性研究实例
五、制订项目开发计划
项目开发计划主要包括:项目概述、实施计
划、人员组织及分工、交付期限
六、课程思政:简要介绍案例“钉钉软件”
思考题
P50〜52习题
和作业
扩展阅读无
章节名称第4章需求分析与结构化分析(1)
课次1(总第6次)课时2
授课形式理论课■案例讨论课口实验课口习题课口其他口
•了解需求分析的任务和原则
•熟悉进行需求分析的步骤和方法
•了解需求管埋
教学目的及
•熟悉需求分析的常用方法
要求
•了解软件原型
•通过案例“汉字激光照排系统1”,进行思政教育
教学重点需求分析的常用方法
教学难点软件原型
教学
法
环节/时间授课内容方
课程导入
引入需求分析讲授
10分钟
一、需求分析
1.需求分析的任务和原则
2.需求分析的步骤
(1)需求获取
收集并明确用户需求,获取需求的方法有多种。
①问卷调查
②访谈
③熨地操作
④建立原型
(2)分析建模
模型是为了理解事物而对事物做出的一种抽象,通
常由一组符号和组织这些符号的规则组成。
(3)需求描述
需求描述就是编制需求分析阶段的文档,一般包
括三个文档:系统定义文档(用户需求报告)、系统需
求文档(系统需求规格说明书)、软件需求文档(软件
需求规格说明书)(图4-2)。
正式授课
(4)需求验证与评审讲授
80分钟3.需求管理
有效需求管理的关键在于维护需求的明确阐述、
每种需求类型所使用的属性,以及与其他需求和其他
项目之间的可追踪。
4.需求分析的常用方法
(1)功能分解方法
(2)结构化分析方法
(3)信息建模方法
(4)面向对象的分析方法
5,软件原型
软件原型是指在项目的前期阶段,系统分析人员根
据对客户需求的理解和客户希望实现的结果,快速地给
出一个翔实的产品雏形
二、课程思政:简要介绍案例“汉字激光照排系统1”
思考题
P72〜74习题
和作业
扩展阅读无
章节名称第4章需求分析与结构化分析(2)
课次1(总第7次)课时2
授课形式理论课■案例讨论课口实验课口习题课口其他口
•了解结构化分析
•掌握结构化分析的几种常用建模方法
教学目的及
•掌握结构化分析的几种图形工具
要求
•通过案例“汉字激光照排系统2”,进行思政教育
教学重点结构化分析方法
教学难点结构化分析方法
教学方
环节/时间授课内容
法
课程导入
回顾上一次课需求分析的内容讲授
10分钟
一、结构化分析概述
1.建立当前系统的“具体模型”
2.抽象出当前系统的逻辑模型
3.建立目标系统的逻辑模型
4.考虑人机界而和其他一些问题
二、结构化分析方法
结构化分析实质上是一种创建模型的活动(图
4-5)
1.功能建模
功能建模是用抽象模型的概念,按照软件内部
数据传递和变换的关系,自顶向下逐层分解,直到能
够构建满足功能要求的可实现的软件为止
(1)数据流图的表示符号
4种表示符号,外部实体、数据流、数据变换、
数据存储(图4-6)
(2)环境图
环境图仅包含一个数据处理过程,即要开发
的目标系统。环境图的作用是确定系统在其环境
中的位置,通过确定系统的输入和输出与外部实
正式授课体的关系确定其边界(图4-7、图4-8)讲授+演
80分钟(3)数据流图的分解示
结合图4-9、图4-10、图4-11讲授分解的流
程
2.数据建模
数据建模是在较高的抽象层次上对数据库结构
进行建模,数据模型用E-R图来描述
E-R图以实体、关系和属性3个基本概念概括
数据的基本结构。实体是现实世界的事物,多用矩
形框表示。属性多用椭圆形表示,关系用菱形表示。
实体之间存在一对一、一对多、多对多三种关系类
型,结合图4-12、图4-13、图4-14中的具体例子进
行讲授
3.行为建模
状态转换图是一种描述系统对内部或外部事件
响应的行为模型,描述系统状态、事件和事件引发
系统在状态之间的转换
(1)状态及状态转换
状态是任何可以被观察到的系统行为模式,规
定了系统对事件的响应方式,结合图5-15进行状态
转换图的讲授
(2)事件
事件是在某个特定时刻发生的事情,状态转换
通常是由事件触发的,在这种情况下应在表示状态
转换的箭头线上标出触发转换的事件表达式
(3)例子
结合图4-16演示图书馆管理系统的例子
4.数据字典
数据字典以一种系统化的方式定义在分析模型
中出现的数据对象及控制信息的特性,给出它们的
准确定义,包括数据流、数据存储、数据项、数据
加工,以及数据源点、数据汇点等(表4-l)u
5.加工规格说明
在对数据流图的分解中,位于最底层数据流图
的数据处理,称为基本加工,对于每一个基本加工
都需要进一步说明,称为加工规珞说明,一般用结
构化语言、判定表和判定树来表述(结合图表4-2、
图4-17进行讲授)
三、结构化分析的图形工具
图形工具包括层次方框图、Warnier图和IPO
图,结合图4-18、图4-19、图4-20、图4-21进行讲
授
四、结构化分析实例
结合图4-22、图4-23、图4-24、图4-25对某
培训机构入学管理系统进行结构化分析和演示
五、课程思政:简要介绍案例“汉字激光照排系统
2,,
思考题
P72〜74习题
和作业
扩展阅读无
章节名称第5章软件设计与结构化设计(1)
课次1(总第8次)课时2
授课形式理论课■案例讨论课口实验课口习题课口其他口
•了解软件设计的意义和目标。
•掌握软件设计的原则。
教学目的•了解软件设计的分类。
及要求•了解软件体系结构。
•通过案例“高斯数据库1”,进行思政教育
教学重点软件设计的原则
教学难点软件体系结构
环节/时间授课内容教学方法
设计是将用户需求转变为软件构建蓝图的
过程,在软件开发过程中处于核心地位。
一、软件设计的原则
1.模块化
2.抽象
3.逐步求精
4.信息隐藏
课程导入
5.复用性设计讲授
10分钟
6.灵活性设计
软件设计追求使用抽象和逐步求精的方式实
现高内聚,低耦合的模块划分,并遵循信息隐臧
的原则,使已有设计能更灵活,更具有可复用性。
二、软件设计的分类
软件设计包括数据设计,体系结构设计,接口
设计,构件设计,部署设计五个部分。
三、软件体系结构的概念
体系结构相当于一个系统的整体框架的草
图,描述系统组成的估价。软件体系结构对于一
个软件系统来说具有至关重要的作用。
四、软件体系结构包括:软件的组成元素;这些
元素的外部可见特性;这些元素之间的相互关
系。
五、软件体系结构的作用
软件体系结构在软件开发过程中的作用如
下。
1)规范软件开发的基本架构
2)便于开发人员与用户的沟通
3)模块化、层次化设计,有利于减少返工,提高
效率
4)便于系统开发前、后期的筹备与服务
五、典型的软件体系结构风格
1、数据流风格
正式授课数据到达时被激活处理工作,无数据时不工
讲授
80分钟作。
2、调用/返回风格
各个构件通过调用其他构件和获得返回参数
来进行交流。
3、独立构件风格
通过对事件的发布和注册实现关联
4、虚拟机风格
创建了一种虚拟的环境,将用户与底层平台
隔离开来,或将高层抽象和底层实现隔离开来。
5、仓库风格
由表示当前数据状态的中心数据结构和一组
对中心数据进行操作的独立构建组成。
六、客户端/服务器模式的分布式体系结构
1)服务器负责给其子系统提供服务
2)客户端通常是独立的子系统,通过向服务器
请求约定的资源获取数据
3)网络连接服务器和客户端
七、MVC模型
MVC强调将用户的输入、数据模型和数据
表示方式分开设计,一个交互式应用系统由模
型、视图、控制器3部分组成,分别对应内部数
据、数据表示和输入/输出控制部分
八、课程思政:简要介绍案例“高斯数据库1”
思考题
P107-109习题
和作业
扩展阅读无
章节名称第5章软件设计与结构化设计(2)
课次1(总第9次)课时2
授课形式理论课■案例讨论课口实验课口习题课口其他口
•了解结构化设计与结构化分析的关系。
•熟悉表示软件结构的图形工具。
•掌握面向数据流的软件设计方法。
•熟悉面向数据结构的设计方法。
教学目的
•熟悉接口设计和数据设计。
及要求
•掌握过程设计的工具和方法。
■了依是软件讲计评宙
•通过案例“高斯数加库2”,进行思政教育
教学重点面向数据流的软件设计方法
教学难点面向数据结构的设计方法
环节/时间授课内容教学方法
课程导入
回顾上一节课所讲的内容讲授
10分钟
一、结构化设计概述
结构化设计的任务是从软件需求规格说明
书出发,设计软件系统的整体结构、确定每个模
块的实现算法以及如何编写具体的代码,形成软
件的具体设计方案,解决“怎么做”的问题。
二、结构化设计与结构化分析的关系
由数据模型、功能模型和行为模型表示的软
件需求被传送给软件设计者,软件设计者使用适
当的设计方法完成数据设计、体系结构设计、接
口设计和过程设计。
三、结构化设计
1、面向数据流的设计
根据应用中数据流通的途径对应用的系统结
构进行划分与建模。
2、面向数据结构的设计
根据数据结构设计程序处理过程的方法,也
就是面向数据结构的设计方法按输入、输出以及
计算机内部存储信息的数据结构进行软件结构
正式授课设计。
讲授
8()分钟
四、接口设计
1.接口设计一般包括如下的3个方面。
(1)用户接口:用来说明将向用户提供的命令和
它们的语法结构以及软件回答信息。
(2)外部接口:用来说明本系统同外界的所有接
口的安排,包括软件与硬件之间的接
口、本系统与各支持软件之间的接口关系。
(3)内部接口:用来说明本系统之内的各个系统
元素之间的接口的安排。
2.界面设计
1)三条“黄金原则”
将控制权交给用户:减少用户的记忆负担:
界面保持一致
2)界面设计过程
界面设计是一个迭代的活动,包括以下六点
核心活动:创建系统功能的外部模型;确定为完
成此系统功能,人和计算机应分别完成的任务;
考虑界面设计中的典型问题;借助CASE工具构
造界面原型;实现设计模型;评估界面质量。
界面设计过程中设计四个模型:设计模型;
用户模型;系统假想;系统映像。
3)界面设计问题
系统设计时应考虑:系统响应时间;用户求助
机制;出错信息;键盘命令等四个问题。
五、数据设计
数据设计就是将需求分析阶段定义的数据
对象(E.R图、数据字典)转换为设计阶段的数
据结构和数据库,包括两个方面。
(1)程序级的数据结构设计:采用(伪)代码的
方式定义数据结构(数据的组成、类型、缺省值
等信息)O
(2)应生级的数据库设计:采用物理级的E-R图
表示。
六、过程设计
这里讲述程序流程图、N-S图、PAD图,以
及结构化语言
七、软件设计评审
八、结构化设计实例
九、课程思政:简要介绍案例“高斯数据库2”
思考题
P107-109习题
和作业
扩展阅读无
章节名称第6章软件实现
课次1(总第10次)课时2
授课形式理论课■案例讨论课口实验课口习题课口其他口
•了解编程语言的发展与分类
•了解选择编程语言时所需考虑的因素
•掌握曳好的编程风格与编码规范
教学目的
•了解代码重用
及要求
•了解分析和评价代码的质量
•通过案例“杀毒软件之父”一王江民,进行思政教育
良好的编程风格与编码规范
教学重点
教学难点良好的编程风格与编码规范
教学方
环节/时间授课内容
法
课程导入
编程语言的介绍和选择讲授
1()分钟
一、编程语言
1.编程语言发展和分类
1)机器语言
2)汇编语言
3)高级语言
4)超高级语言
了解流行语言C、Python>Java、C++、C#^JavaScript>
PHP的特征和应用
2.选择编程语言需考虑的因素
1)项目的应用范围
2)用户的需求
3)使用的软件开发工具
4)开发人员的喜好和能力
5)软件的可移植性要求
6)算法和数据结构的复杂性
7)平台支持
二、编码风格和规范
1.版权和版本声明
1)版权信息
正式授课2)文件名称、标识符、摘要
讲授
80分钟3)当前版本号、作者/修改者、完成H期
4)版本历史信息
2.程序版式
如缩进、空格、空行、代码行最大长度等规则,增
加代码可读性。
3.注释
注释一般位于:
1)版本、版权声明
2)函数接口说明
3)重要代码行或段落揭示
注释规则:
1)尽量精简
2)准确、易懂,不能有二义性
3)注释放在被描述的代码上方或右方
4)代码较长时在段落结束处加注释
4.命名规则
1)按照标识符的实际意义命名
2)标识符尽可能短
3)命名与开发工具或操作系统的风格保持一致
4)变量名不要过于相似
5)注释解释变量命名
6)不要日现仅靠大小写区分的标识符
7)尽量避免出现数字编号
5.数据说明
1)按照一定次序,如数据类型,说明类内数据
2)说明同一语句中的相同类型变量时,按字母序排列
3)添加必要注释说明复杂数据结构
6.语句构造
1)不同语句分行写
2)合理利用缩进体现层次结构
3)复杂运算式中使用括号清晰表达运算顺序
4)经常使用的代码段独立封装成函数或过程
5)避免使用goto语句
6)避免使用多层嵌套
7)避免使用复杂的判定条件
7.输入输出
1)对输入数据施行严格的数据检查,及时识别错误和
异常
2)简化输入的步骤、操作
3)输入格式限制不要太严格
4)允许默认输入
5)交互式输入中要给予用户正确的提示
6)对输匕数据添加注释
7)输出数据遵循一定的格式
8.效率
主要取决于使用的算法和数据结构,代码可由编译
器优化。
1)减少循环嵌套的层数
2)循环结构改为嵌套结构
3)简化算术和逻辑表达式,少用混合数据类型的运算
4)避免使用多维数组和复杂的表
三、代码复用
复用方式:
I)源代码剪贴
2)源代码包含
3)继承
开源代码复用,优点是缩减开发成本,提高开发效
率;缺点一是开源许可证容易侵权,二是复用的代码难
以及时更新,有安全风险。
四、分析和评价代码质量
1.可读性
2.可扩展性
3.灵活性
4.简洁性
5.可复用性
6.可测试性
7.可维护性
五、软件实现实例
六、课程思政:简要介绍案例“杀毒软件之父”一王江
民
思考题
P123〜124习题
和作业
扩展阅读无
章节名称第7章软件测试(1)
课次1(总第11次)课时2
授课形式理论课■案例讨论课口实验课口习题课口其他口
•掌握软件测试的原则
•了解软件测试的常用模型
教学目的•了解软件测试的分类
及要求•了解测试用例和测试用例设计方法
•掌握等价类划分法;熟悉黑盒测试的其他方法
•通过案例“中国的工业软件1”,进行思政教育
教学重点等价类划分法
教学难点等价类划分法
环节/时间授课内容教学方法
课程导入
软件测试的概念、基本原则和模型(略讲)讲授
10分钟
一、软件测试的基本概念
软件测试是软件开发过程中的亘要阶段,用
来保证软件产品的稳定性、安全性、一致性、完
全性等要求,从而保证软件质量,软件测试工作
应该贯穿整个开发过程。
1.基本原则
1)完全测试是不可能的
2)测试中存在风险和缺陷
3)软件测试只能表明缺陷的存在,不能证明
没有其他方面的缺陷
4)潜在的错误数和发现的错误数成正比
5)让不同测试人员参与测试
6)开发小组和测试小组分立
7)尽早不断测试,让测试工作贯穿开发过程
8)设计测试用例时要包括输入数据和预期
的输出结果两个部分,输入数据还应该包括非法
情况
9)集中测试容易出错或是出错较多的模块
10)长期保留所有的测试用例,方便回归测
试
正式授课2.测试模型
讲授
80分钟1)V模型。在编码后才进行测试工作,无法
及时纠正错误
2)W模型。测试与各个设计过程同步进行,
局限是测试不能跨阶段
3)H模型。测试活动独立,与其他流程并行。
二、软件测试分类
1.按测试阶段分为单元、集成、系统、验收
测试
2.按是否运行程序分为静态测试和动态测
试
3....
三、测试用例
为节省时间、资源,提高测试效率,应该挑
选有代表性的或特殊性的测试数据进行测试。
1.测试用例设计
2.测试用例场景
描述每个经过测试用例可能的路径
四、软件测试方法
静态测试主要为人工审查代码,检测有效但
是对测试人员要求高。动态测试需要实际运行程
序,主要分为白盒和黑盒测试
1.黑盒测试
1)等价类划分法。将输入根据不同条件划分
为若干子集,只取各个子集中的部分输入测试。
2)边界值分析法。取输入范围的边界值以及
边界附近的值进行测试。
3)错误推测法。主要靠直觉和经验,选择程
序中可能的错误和容易发生错误的特殊情况u
4)因果图法和决策表法。考虑不同输入条件
的组合,条件之间的制约关系,条件与结果之间
的逻辑关系。先根据程序规格说明书划定可能的
原因、结果,画出相应的因果图,再转化为决策
表,根据决策表的不同条件组合设计测试用例。
5)场景法。对于有各种中间状态、事件的软
件,可以根据程序执行的基本流和各个备选流,
生成不同的场景,对每个流程场景设计相应的测
试用例。
五、课程思政:简要介绍案例“中国的工业软件
思考题和
P163〜165习题
作业
扩展阅读无
章节名称第7章软件测试(2)
课次1(总第12次)课时2
授课形式理论课■案例讨论课口实验课口习题课口其他口
•掌握逻辑覆盖法;熟悉白盒测试的其他方法
教学目的
•掌握软件测试的一般,以及每个阶段测试的关注点
及要求
•了解回归测试、自动化测试
•熟悉软件调试
•通过案例“中国的工业软件2”,进行思政教育
逻辑覆盖法;单元测试
教学重点
教学难点逻辑覆盖法;单元测试
环节/时间授课内容教学方法
课程导入
回顾上节课软件测试的内容讲授
10分钟
一、软件测试方法
2.白盒测试
一般来说,采取先静态后动态的方式,先进
行代码检查和静态结构分析,再进行覆盖测试。
覆盖测试是重点,应尽可能提高覆盖率。不同测
试阶段测试重点不同,需要白盒黑盒相结合进行
测试。
1)代码检查法。根据设计文档和一般编码原
则检查代码。
2)静态结构分析。分析源代码的内部结构,
各模块的逻辑关系,如控制流分析、数据流分析、
信息流分析、接口分析、表达式分析等,进而找
出错误。
3)程序插桩技术。往被测试程序中插入输出
等操作来了解变量、语句的执行情况,从而查出
错误。
正式授课
4)逻饵覆盖法和基本路径法。根据程序的流讲授
8()分钟
程图,设计测试用例,以覆盖所有的执行路径或
语句。
二、分阶段测试
1.单元测试
2.集成测试
3.系统测试
4.验收测试
5.回归测试
6.自动化测试
7.软件调试
三、软件测试实例
三、课程思政:简要介绍案例“中国的工业软件
2”
思考题和
P163〜165习题
作业
扩展阅读无
章节名称第8章软件维护
课次1(总第13次)课时2
授课形式理论课■案例讨论课口实验课口习题课口其他口
•熟悉软件部署与软件交付。
•了解软件维护的过程和分类。
•了解软件的可维护性。
教学目的及
•了解软件维护的副作用。
要求
•了解软件运维。
•了解软件再工程一逆向工程、重构、正向工程。
•通过案例“12306”,进行思政教育
教学重点软件维护的过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年质检人员考试题及答案
- 2025年麻醉专业的试题及答案
- 2025年中医工作面试试题及答案
- 2025年中医膀胱的试题及答案
- 2025年水电专业试题及答案
- 村民开发协议书
- 村级分红协议书
- 杭州家装协议书
- 果脯代卖协议书
- 柑橘合作协议书
- 2025年设备监理师《设备工程质量管理与检验》考前点题卷一
- 第一章空间向量与立体几何(压轴题专练全题型压轴)
- 投标企业履约能力证明
- 生猪屠宰兽医卫生检验人员理论考试题库及答案
- DL∕T 2622-2023 1000kV高压并联电抗器局部放电现场测量技术导则
- 【正版授权】 ISO 4833-2:2013/Amd 1:2022 EN Microbiology of the food chain - Horizontal method for the enumeration of microorganisms - Part 2: Colony count at 30 °C by the surface plating
- DZ∕T 0221-2006 崩塌、滑坡、泥石流监测规范(正式版)
- 创业问题及解决方案(2篇)
- Unit2-Love市公开课一等奖省赛课微课金奖课件
- GB/T 18916.13-2024工业用水定额第13部分:乙烯和丙烯
- (高清版)DZT 0426-2023 固体矿产地质调查规范(1:50000)
评论
0/150
提交评论