软件工程基础与应用-教案_第1页
软件工程基础与应用-教案_第2页
软件工程基础与应用-教案_第3页
软件工程基础与应用-教案_第4页
软件工程基础与应用-教案_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程名称软件工程基础课程编号授课时间专业及班级修课人数总学时48+16学分4课程类型必修课公共基础()专业(学科)基础课(√)专业课()选修课专业限选课()专业任选课()全校任选课()授课方式理论课(√)实践课(√)学时分配课堂讲授48学时;实践环节16学时考核方式考试(√)考查()是否采用多媒体是是否采用双语否使用教材:(名称、作者、出版社及出版时间)软件工程基础与应用教学参考书:(名称、作者、出版社及出版时间)教研室审查意见章节名称第1章软件与软件工程课次1(总第1次)课时2授课形式理论课■案例讨论课□实验课□习题课□其他□教学目的及要求了解软件的概念、特点及主要分类了解软件危机的表现及其产生原因掌握软件工程的概念,以及软件工程的基本原则了解软件开发的方法了解与软件开发项目相关的常用工具了解软件工程人员的职业道德教学重点教授软件开发的方法教授软件工程人员的职业道德教学难点无环节/时间授课内容教学方法课程导入10分钟一.软件计算机软件是由专业人员开发并长期维护的软件产品。完整的软件产品包括了在各种不同容量和体系结构计算机上的可执行的程序,运行过程中产生的各种结果,以及以硬拷贝和电子表格等多种方式存在的软件文档。二.软件危机(略讲)讲授正式授课80分钟三.软件工程1.软件工程的概念软件工程是以借鉴传统工程的原则、方法,以提高质量、降低成本为目的,指导计算机软件开发和维护的工程学科。2.软件工程研究的内容(1)软件开发技术(2)软件开发过程管理3.软件工程目标和原则(1)用分阶段的生命周期计划进行严格的管理(2)坚持进行阶段评审(3)实行严格的版本控制(4)采用现代程序设计技术(5)软件工程结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性四.软件开发方法1.基本的软件开发方法(1)结构化方法:采用自顶向下、逐步求精的指导思想,应用广泛,技术成熟(2)面向数据结构方法:从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其他细节,就可得到完整的程序结构图(3)面向对象方法:自底向上和自顶向下相结合,以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包括了所有对象的数据结构。(4)形式化方法2.开源软件开发方法3.群体化软件开发方法五.软件工程工具结合表1-1、表1-2讲解六.软件工程人员的职业道德(1)保护客户数据(2)知识产权(3)版权拥有权(4)许可协议(5)道德问题解决方案(6)道德教育七.”小型二手货交易平台案例介绍讲授思考题和作业本章习题扩展阅读无章节名称第2章软件过程课次1(总第2次)课时2授课形式理论课■案例讨论课□实验课□习题课□其他□教学目的及要求掌握软件过程的定义和基本活动熟悉软件生命周期及阶段任务熟悉常用的几种软件过程模型教学重点生动形象的讲述软件生命周期,每阶段的任务,以及常用的几种软件过程模型教学难点软件生命周期环节/时间授课内容教学方法课程导入10分钟软件过程概述软件的诞生和生命周期是一个过程,即软件过程。过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。讲授正式授课80分钟二.软件生命周期(1)软件生命周期的概念软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、产品发布、投入是用以及产品版本的不断更新,到最终该产品被淘汰的全过程。(2)传统软件生命周期的各个阶段①可行性研究②需求分析③软件设计④编码⑤软件测试⑥软件维护(3)软件过程模型①瀑布模型:开发人员必须等前一阶段的任务完成后,才能开始后一阶段的工作,并且前一阶段的输出往往是后一阶段的输入(图2-2)②快速原型模型:在初步的需求分析之后,马上向客户展示一个软件产品原型,对客户进行培训,让客户试用,反复循环几次,直到客户确认为止(图2-3)③增量模型:把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。(图2-4)④螺旋模型:用于风险较大的大型软件项目开发,将瀑布模型与快速原型模型结合起来,并且加入了这两种模型忽略了的风险分析(图2-5)⑤喷泉模型:分析模型和设计模型采用相同的符号标示体系,各阶段之间没有明显的界限,而且常常重复、迭代地进行(图2-6)⑥基于组件的开发模型:使用现有的组件以及系统框架进行产品开发(图2-7)⑦统一软件开发过程模型:基于UML的一种面向对象的软件开发模型,采用迭代和增量递进的开发策略,并以用例驱动为特点,集中了多个软件开发模型的优点(图2-8)(4)软件过程实例略讲授思考题和作业本章习题扩展阅读无章节名称第3章敏捷软件开发课次1(总第3次)课时2授课形式理论课■案例讨论课□实验课□习题课□其他□教学目的及要求了解“敏捷软件开发宣言”的4个价值观和12条原则理解重要的敏捷软件开发实践,例如Sprint、用户故事、Backlog理解面向敏捷软件开发的Scrum、Kanban、XP方法理解敏捷软件开发和DevOps是一种理念,而CI/CD是实现这两种理念的一种方法教学重点解释什么是敏捷软件开发通过实际举例,让学生有对敏捷软件开发的整体观念教学难点敏捷软件开发的阐述环节/时间授课内容教学方法课程导入

10分钟敏捷软件开发方法(1)4个价值观:个体与交互高于过程和工具、可运行软件高于详尽的文档、与客户协作高于合同(契约)谈判、对变更及时响应高于遵循计划(2)12条原则讲授正式授课80分钟二.Scrum1.概述Scrum用不断迭代的框架方法来管理复杂产品的开发,成为当前十分流行的敏捷管理方法。1)3种角色:产品经理、敏捷专家、Scrum会议2)Scrum会议:整理产品需求清单、确定迭代规划、梳理产品需求清单、每日站会、迭代演示、迭代回顾3)Scrum项目所需的常用工件:Scrum任务板、用户故事、燃尽图(图3-2)2.SprintSprint是Scrum团队一起完成增量工作的实际时间段3.每日站会每天在同一时间和地点举行的超短会议,以保持会议的简单性4.用户故事用户故事是从用户的角度来描述用户渴望得到的功能(1)3要素:角色、活动、商业价值(2)3C原则:卡片、交谈、确认(3)INVEST原则:独立性、可协商性、有价值、可估算性、短小、可测试性结合表3-1、表3-2、表3-3进行教授5.BackingBacklog是Scrum中经过优先级排序的动态刷新的产品需求清单,用来制订发布计划和迭代计划6.结对编程结对编程,即两个程序员肩并肩地坐在同一台计算机前合作编程,在一个程序员编程的同时,另一个负责检查代码的正确性和可读性三.看板1.概述看板作为可视化框架可以用于敏捷方法,能够清晰地向团队成员展示整个项目进度原则:可视化工作流程、限制WIP、管理和改进流程、制订明确的执行策略、持续改进2.看板和Scrum的区别看板对团队的个人能力要求较高,更灵活,适合新开发的产品,而Scrum适合成熟一些的产品和团队,结合表3-4进行讲授四.极限编程极限编程是一种实践性较强的规范化的软件开发方法,它强调用户需求和团队工作,结合图3-4教授。(1)4个价值观:交流、简单、反馈、勇气(2)12个核心实践五.CI/CD(1)概述①持续集成(CI)②持续交付(CD)③持续测试(2)CI/CD管道典型的CI/CD管道分为4个主要阶段:提交、构建、测试和部署,结合表3-5讲授(3)CI/CD的优势更快、更可靠的版本发布、更高的可见性、早期错误检测、快速反馈循环、更快乐的开发和运维团队六.DevOps1.DevOps生命周期策划、开发、集成、部署、运维、学习2.DevOps文化3.DevOps工具七.敏捷软件开发、CI/CD和DevOps八.敏捷软件开发实例讲授思考题和作业本章习题扩展阅读无章节名称第4章项目立项、可行性研究与项目开发计划课次1(总第4次)课时2授课形式理论课■案例讨论课□实验课□习题课□其他□教学目的及要求了解可行性研究的目的、意义和内容掌握可行性研究的主要步骤了解项目开发计划的内容教学重点生动形象地讲述可行性研究的主要步骤教学难点可行性研究环节/时间授课内容教学方法课程导入10分钟引入项目的立项讲授正式授课80分钟项目立项概述项目立项包括项目发起、项目论证、项目审核和项目批准四个过程二.可行性研究的任务可行性研究需要从多个方面进行评估,主要包括战略可行性、操作可行性、计划可行性、技术可行性、社会可行性、市场可行性、经济可行性和风险可行性等计划可行性主要研究待开发的系统的功能、性能和限制条件,确定现有技术能否实现有关的解决方案,在现有的资源条件下实现新系统的技术风险有多大操作可行性经济可行性成本估算代码行技术任务分解技术成本——效益分析开发成本运行费用经济效益货币的时间价值投资回收期纯收入三.可行性研究的步骤一个典型的可行性研究的步骤可以归结为以下几步:明确系统的目标、分析研究现行系统、设计新系统的高层逻辑模型、获得并比较可行的方案、撰写可行性研究报告(图4-1)四.可行性研究实例五.制订项目开发计划项目开发计划主要包括:项目概述、实施计划、人员组织及分工、交付期限讲授思考题和作业本章习题扩展阅读无章节名称第5章结构化分析(1)课次1(总第5次)课时2授课形式理论课■案例讨论课□实验课□习题课□其他□教学目的及要求了解需求分析的任务和原则熟悉进行需求分析的步骤和方法了解需求管理熟悉需求分析的常用方法了解软件原型教学重点熟悉需求分析的步骤、方法教学难点需求分析、结构化分析环节/时间授课内容教学方法课程导入10分钟引入需求分析讲授正式授课80分钟一.需求分析1.需求分析的任务和原则2.需求分析的步骤(1)需求获取收集并明确用户需求,获取需求的方法有多种。问卷调查访谈实地操作建立原型(2)分析建模模型是为了理解事物而对事物做出的一种抽象,通常由一组符号和组织这些符号的规则组成。(3)需求描述需求描述就是编制需求分析阶段的文档,一般包括三个文档:系统定义文档(用户需求报告)、系统需求文档(系统需求规格说明书)、软件需求文档(软件需求规格说明书)(图5-2)。(4)需求验证与评审3.需求管理有效需求管理的关键在于维护需求的明确阐述、每种需求类型所使用的属性,以及与其他需求和其他项目之间的可追踪。需求分析的常用方法功能分解方法结构化分析方法信息建模方法面向对象的分析方法软件原型软件原型是指在项目的前期阶段,系统分析人员根据对客户需求的理解和客户希望实现的结果,快速地给出一个翔实的产品雏形二.结构化分析概述1.建立当前系统的“具体模型”2.抽象出当前系统的逻辑模型3.建立目标系统的逻辑模型4.考虑人机界面和其他一些问题讲授思考题和作业本章习题扩展阅读无章节名称第5章结构化分析(2)课次1(总第6次)课时2授课形式理论课■案例讨论课□实验课□习题课□其他□教学目的及要求掌握结构化分析的几种常用建模方法掌握结构化分析的几种图形工具教学重点掌握结构化分析教学难点结构化分析环节/时间授课内容教学方法课程导入10分钟回顾上节课需求分析内容讲授正式授课80分钟结构化分析方法结构化分析实质上是一种创建模型的活动(图5-6)功能建模功能建模是用抽象模型的概念,按照软件内部数据传递和变换的关系,自顶向下逐层分解,直到能够构建满足功能要求的可实现的软件为止数据流图的表示符号4种表示符号,外部实体、数据流、数据变换、数据存储(表5-1)环境图环境图仅包含一个数据处理过程,即要开发的目标系统。环境图的作用是确定系统在其环境中的位置,通过确定系统的输入和输出与外部实体的关系确定其边界(图5-7、图5-8)数据流图的分解结合图5-9、图5-10、图5-11讲授分解的流程数据建模数据建模是在较高的抽象层次上对数据库结构进行建模,数据模型用E-R图来描述E-R图以实体、关系和属性3个基本概念概括数据的基本结构。实体是现实世界的事物,多用矩形框表示。属性多用椭圆形表示,关系用菱形表示。实体之间存在一对一、一对多、多对多三种关系类型,结合图5-12、图5-13、图5-14中的具体例子进行讲授行为建模状态转换图是一种描述系统对内部或外部事件响应的行为模型,描述系统状态、事件和事件引发系统在状态之间的转换状态及状态转换状态是任何可以被观察到的系统行为模式,规定了系统对事件的响应方式,结合图5-15进行状态转换图的讲授事件事件是在某个特定时刻发生的事情,状态转换通常是由事件触发的,在这种情况下应在表示状态转换的箭头线上标出触发转换的事件表达式例子结合图5-16演示图书馆管理系统的例子数据字典数据字典以一种系统化的方式定义在分析模型中出现的数据对象及控制信息的特性,给出它们的准确定义,包括数据流、数据存储、数据项、数据加工,以及数据源点、数据汇点等(表5-2)。加工规格说明在对数据流图的分解中,位于最底层数据流图的数据处理,称为基本加工,对于每一个基本加工都需要进一步说明,称为加工规格说明,一般用结构化语言、判定表和判定树来表述(结合图5-17、图5-18讲授)结构化分析的图形工具图形工具包括层次方框图、Warnier图和IPO图,结合图5-19、图5-20、图5-21、图5-22讲授五.结构化分析实例结合图5-23、图5-24、图5-25、图5-26对培训机构入学管理系统进行结构化分析和演示讲授+演示思考题和作业本章习题扩展阅读无章节名称第6章结构化设计课次2(总第1次)课时4授课形式理论课■案例讨论课□实验课□习题课□其他□教学目的及要求了解软件设计评判指标了解软件设计中过程设计,接口设计,体系结构设计以及数据设计四个过程教学重点如何实现体系结构设计如何实现用户界面设计如何实现数据设计和接口设计教学难点模块划分和接口定义环节/时间授课内容教学方法课程导入20分钟设计是将用户需求转变为软件构建蓝图的过程,在软件开发过程中处于核心地位。评判设计优良的标准软件设计追求使用抽象和逐步求精的方式实现高内聚,低耦合的模块划分,并遵循信息隐藏的原则,使已有设计能更灵活,更具有可复用性。软件设计的分类软件设计包括数据设计,体系结构设计,接口设计,构件设计,部署设计五个部分。讲授正式授课160分钟数据库结构设计数据库概念结构设计具体介绍数据库的概念结构描述了系统最基础的数据结构,独立于特定的数据库系统。数据库逻辑结构介绍数据库的逻辑结构在概念结构的基础上进一步接近具体实现,提供了比较接近数据库内部构造的逻辑描述。范式介绍数据库设计中为避免异常和冗余应遵循的规范,包括三类范式:第一范式:所有关系中的每一个分量都必须是不可分的数据项。第一范式是建立关系数据表的最基本的要求。第二范式:满足第一范式的条件,并且每个非键属性都由整个键决定第三范式:满足第二范式的条件,并且每个非键属性不依赖于其他非键属性。用户界面设计目标用户群体分析在功能设计之前必须明确软件所针对的主要用户群体及其特征,符合用户特征的界面设计才能带来良好的用户体验设计应规范,可用,易用设计应遵循平台的设计规范;设计的界面对用户来说应易于使用。界面应简洁,清晰,一致,并具有容错用户界面设计应考虑功能重要性,采用层次化设计突出重要功能,避免罗列堆叠。界面之间应该具有一致的风格,应用应对用户操作具有容错性。体系结构设计面向数据流的设计根据应用中数据流通的途径对应用的系统结构进行划分与建模。面向数据结构的设计根据数据结构设计程序处理过程的方法,也就是面向数据结构的设计方法按输入、输出以及计算机内部存储信息的数据结构进行软件结构设计。接口设计介绍外部接口,内部接口概念本系统和外界所有接口的安排,包括软件和硬件之间的接口、本系统和支持软件之间的接口关系。讲授正式授课160分钟用户接口设计理念三条“黄金原则”将控制权交给用户;减少用户的记忆负担;界面保持一致界面设计过程界面设计是一个迭代的活动,包括以下六点核心活动:创建系统功能的外部模型;确定为完成此系统功能,人和计算机应分别完成的任务;考虑界面设计中的典型问题;借助CASE工具构造界面原型;实现设计模型;评估界面质量。界面设计过程中设计四个模型:设计模型;用户模型;系统假想;系统映像。界面设计问题系统设计时应考虑:系统响应时间;用户求助机制;出错信息;键盘命令等四个问题。UX设计与UI设计UX(用户体验设计)与具体的视觉或模型无关,着眼于宏观方面整个服务流程,致力于提高用户与企业各方面互动质量,创造可用、高效、相关、简单、全方位的愉悦体验。UI(用户界面设计)决定产品的视觉外观,确保产品的用户界面尽可能直观。讲授思考题和作业本章习题扩展阅读无章节名称第7章面向对象方法与UML课次3(总第3次)课时6授课形式理论课■案例讨论课□实验课□习题课□其他□教学目的及要求掌握面向对象的基本概念理解面向对象软件工程的特征与优势掌握面向对象的实施步骤了解统一建模语言UML熟悉UML的九种图教学重点面向对象设计思想的培养UML的理解与掌握教学难点掌握面向对象设计思想环节/时间授课内容教学方法课程导入30分钟面向对象的基本概念1、面向对象是指:按照人们认识客观世界的系统思维方式,采用基于对象的概念建立模型,模拟客观世界分析、设计、实现软件的办法。面向对象涉及的概念包括:对象:现实世界中各种各样的实体具有自己的属性和行为类:具有相似内部状态和运动规律的实体的集合与抽象。消息:对象之间相互联系和相互作用的方式类具有以下七点特性:抽象、继承、封装、多态、重写、包、包的接口类。讲授正式授课240分钟统一建模语言UMLUML简述UML是一种通用的可视化建模语言,用来描述、可视化、构造、和文档化软件密集型系统的各种工作。UML特点统一标准:UML提供了标准的面向对象的模型元素的定义和表示方法,并已经成为OMG的标准面向对象:UML提供了表述模型元素的图形与方法可视化,表达能力强大:系统的逻辑模型或实现模型都可以用相应的图形清晰表示。独立于过程:UML是系统建模语言,独立于开发过程容易掌握与使用与现有开发语言(如JAVA,C++等)良好结合UML的图用例图对系统提供的功能的描述静态图描述系统的静态结构,包括类图、对象图、包讲授正式授课240分钟图。行为图描述系统的动态模型和组成对象之间的交互关系。其中的状态图描述类的对象的有可能的状态以及事件发生时状态的转移条件。交互图交互图描述对象之间的交互关系。其中顺序图描述对象之间的动态合作关系,协作图描述对象之间的协作关系。实现图实现图提供关于系统实现方面的信息。其中构建图描述代码构建的物理结构以及构建之间的依赖关系。部署图用于定义系统中软硬件的物理体系结构。静态建模机制UML的静态建模机制包括用例图、类图、对象图、包图等。用例图用例图从用户的角度描述系统的功能,由用例,参与者,以及他们的关系连线组成。此图从用户角度描述系统的行为,使用人型符号表示参与者并唯一命名,使用椭圆形表示用例,参与者和用例之间使用带箭头的实线连接。用例之间有三种关系:包含关系提取出多个用例的共同特征,用例包含其公有特征拓展关系用例的异常行为和分支可作为拓展用例泛化关系类图和对象图类图使用类描述系统的结构,展示了系统中类的静态结构,即类与类之间的相互关系。对象图是类图的实例,它展示了系统在某一时刻的快照。类与类之间的关系有关联、依赖、泛化、实现等。包图包图是用于描述模型中的包和其所包含元素的组织方式的图。包图通过对途中的各个包元素以及包之间关系的描述,展示出系统的模块,以及模块之间的依赖关系讲授正式授课240分钟动态建模机制系统中的对象在执行期间的不同时间点如何通信以及通信结果如何,这就是系统的动态行为1、顺序图表示完成某项行为的对象和这些对象之间传递消息的时间顺序。顺序图由对象、生命线、控制焦点、消息等组成。2、协作图用于显示系统的动作协作,类似于顺序图中的交互片段,但协作图也显示对象之间的关系。3、状态图描述对象对外部对象响应的历史状态序列,即描述对象所有可能的状态,以及那些事件将导致状态的变化。活动图活动图中的活动是展示整个计算步骤的控制流(及其操作)的节点和流的图。描述物理架构架构图架构图根据系统的代码构建显示系统代码的物理结构。其中的构建可以是源代码构建、二进制构建或可执行构建。部署图部署图用于显示系统中硬件和软件的物理结构,可以显示实际中的计算机和设备,以及它们之间的互联关系。讲授思考题和作业本章习题扩展阅读无章节名称第8章面向对象分析课次3(总第6次)课时6授课形式理论课■案例讨论课□实验课□习题课□其他□教学目的及要求理解面向对象分析的过程和原则掌握面向对象建模的三种模型教学重点对象模型的建立动态模型的建立功能模型的建立教学难点面向对象设计思想的理解环节/时间授课内容教学方法课程导入30分钟面向对象分析方法面向对象分析过程面向对象分析主要以用例模型为基础。开发人员在原始需求的基础上,通过构建用例模型从而得到系统的需求,在通过对用例模型的完善来改善需求。确定系统的外部参与人员确定系统的用例划分目标系统中的类与对象识别对象之间的动态交互行为将需求分析的结构用多种模型图表示出来面向对象分析原则定义有实际意义的对象模型的描述要规范、准确共享性封装性讲授正式授课240分钟建立对象模型对象模型描述了现实世界中的“类与对象”以及他们之间的关系,表示了目标系统的静态数据结构。在面向对象的分析中,一般都是先建立对象模型,然后在建立动态模型和功能模型。对象模型为建立动态模型和功能模型提供了实质性的框架对象模型的组成层次主体层用于划分主题,主题是将一组具有较强联系的类组织在一起形成的类的聚合,具有以下三个特点:主题是类的聚合,但主题自身不是一个类;主体内部的类之间往往有内部联系;主题的划分没有固定的规则主题的划分有以下两种方式:自底向上的划分方式和自顶向下的划分方式。主题图:主题的划分结果可以形成一个完整的类图和一个主题图。类与对象层建立对象模型首先需要确定所选的对象与类候选的类与对象包括:可感知的物理实体;人或组织的角色;应该记忆的事件;两个或多个事件的相互作用;需要说明的概念;筛选候选对象与类的标准有:冗余,无关,笼统,属性,操作,实现六点。结构层确定类与类之间的结构关系(如继承属性层确定应用的属性,属性的确定既与问题域有关,也和目标系统的人物有关。应该只考虑有具体应用直接相关的属性。表示属性的启发性准则如下:每个类至少需要一个属性;属性取值必须适合类的所有实例;出现在泛化关系中的类所继承的属性必须与泛化关系一致;类的导出属性应当略去;应将描述类的外部不可见状态的属性删去。服务层确定类中需要定义的服务。建立动态模型对象模型建立后,就需考察对象和关系的动态变化情况,即建立动态模型。讲授正式授课240分钟编写脚本脚本描述用户与目标系统之间的一个或多个典型的交互过程,以便对目标系统的行为有更具体的认识。设计用户界面确定用户界面的信息交换方式,快速建立用户界面原型,供用户评价和修改。画UML顺序图或活动图画状态图建立功能模型功能模型表明了系统中数据之间的依赖关系,以及有关的数据处理功能,它由一系列流程图组成。建立功能模型的步骤如下:确定输入和输出值画数据流图定义服务讲授思考题和作业本章习题扩展阅读无章节名称第9章面向对象设计课次3(总第1次)课时6授课形式理论课■案例讨论课■实验课□习题课□其他□教学目的及要求了解面向对象设计与结构化设计的不同理解面向对象设计与面向对象分析的关系理解面向对象设计的过程、原则和启发规则熟悉面向对象系统分解方法熟悉面向对象问题域、人机交互、任务管理和数据管理各子系统的设计方法掌握对象设计的方法教学重点一.面向对象设计的过程和原则1.设计过程1)建立软件体系结构环境图。描述各系统的关系、接口等2)软件体系结构设计。自顶向下等方式设计3)设计各个子系统。问题域子系统、人机交互子系统、任务管理子系统和数据管理子系统4)对象设计及优化。细化对象类、接口与继承关系2.设计原则1)模块化2)抽象化3)信息隐藏4)低耦合5)高内聚6)复用性3.启发规则1)设计结果清晰易懂2)类深度适当3)尽量设计简单类4)使用简单的协议5)使用简单的操作6)降低设计变动概率二.系统设计1.问题域子系统设计1)调整需求2)重用已有的类3)将问题域类组合在一起4)增添一般化类以建立公共协议接口5)调整继承层次2.人机交互子系统设计1)安全/登录窗口。2)设置窗口。3)业务功能窗口4)对各类信息的报告3.任务管理子系统设计1)确定事件驱动型任务2)确定时钟驱动型任务3)确定优先任务和关键任务4)确定协调任务5)审查每个任务6)确定资源需求7)定义任务4.数据管理子系统设计1)设计数据格式。先设计第一范式,建立相应文件;再转化成第三范式,建立关系数据库;最后扩展关系数据库途径,建立面向对象数据库管理系统。2)设计服务。设计对象的存储、检索等服务。3)使用面向对象数据库进行数据管理设计。如存储、管理持久对象等。三、对象设计1.设计类中的服务1)从各类模型中确定服务2)设计相应的算法和数据结构,定义内部类和方法2.设计类的关联1)单向关联实现。单指针引用2)双向关联实现。双指针引用或正向查找或新建独立关联对象3)链属性实现。3.对象设计优化1)确定优先级2)数据访问效率优化(1)冗余关联提高访问效率(2)查询次序调整(3)保留派生属性3)调整继承关系(1)具体到抽象再到具体(2)修改类定义以提高继承程度(3)利用组合关系实现行为共享教学难点对象设计的方法和实例应用环节/时间授课内容教学方法课程导入10分钟面向对象设计的概念、意义讲授正式授课80分钟一.面向对象设计的过程和原则二.系统设计讲授正式授课90分钟三.对象设计讲授讨论课90分钟“小型二手货交易平台软件设计说明书中分析讨论系统设计、对象设计等讨论思考题和作业本章习题扩展阅读无

章节名称第10章软件实现课次1(总第4次)课时4授课形式理论课■案例讨论课■实验课□习题课□其他□教学目的及要求了解编程语言的发展与分类了解选择编程语言时所需考虑的因素掌握良好的编程风格与编码规范熟悉面向对象实现了解代码重用了解分析和评价代码的质量教学重点一、编程语言1.编程语言发展和分类1)机器语言2)汇编语言3)高级语言4)超高级语言了解流行语言C、Python、Java、C++、C#、JavaScript、PHP的特征和应用2.选择编程语言需考虑的因素1)项目的应用范围2)用户的需求3)使用的软件开发工具4)开发人员的喜好和能力5)软件的可移植性要求6)算法和数据结构的复杂性7)平台支持二、编码风格和规范1.版权和版本声明1)版权信息2)文件名称、标识符、摘要3)当前版本号、作者/修改者、完成日期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)避免使用多维数组和复杂的表三、面向对象实现面向对象方法的优点是通过重用提高软件的效率。因此,应该优先选用能够最完善、准确地表达问题域语言的面向对象语言。类的实现为核心问题,主要涉及的技术有:类的封装和信息隐藏、类继承、多态和重载、模板、持久保存对象、参数化类和异常处理等。四、代码重用重用方式:1)源代码剪贴2)源代码包含3)继承开源代码重用,优点是缩减开发成本,提高开发效率;缺点一是开源许可证容易侵权,二是重用的代码难以及时更新,有安全风险。五、分析和评价代码质量1.可读性2.可扩展性3.灵活性4.简洁性5.可重用性6.可测试性7.可维护性教学难点面向对象具体实现环节/时间授课内容教学方法课程导入20分钟编程语言的介绍和选择一.编程语言的发展(略讲)二.流行编程语言各自的特点和选择语言时所考虑的因素讲授正式授课100分钟三.编码风格和规范(略讲)四.面向对象实现(对照P259的具体实例讲解)五.代码重用六.代码质量分析和评价讲授实验课60分钟P269使用VisualStudioCode实现”小型二手货交易平台的“用户登陆”模块实验思考题和作业本章习题扩展阅读无章节名称第11章软件测试课次3(总第5次)课时6授课形式理论课■案例讨论课■实验课□习题课□其他□教学目的及要求掌握软件测试的原则了解软件测试的常用模型了解软件测试的分类了解测试用例和测试用例设计方法掌握等价类划分法;熟悉黑盒测试的其他方法掌握逻辑覆盖法;熟悉白盒测试的其他方法掌握软件测试的一般,以及每个阶段测试的关注点了解回归测试、面向对象测试和自动化测试熟悉软件调试教学重点一、软件测试的基本概念软件测试是软件开发过程中的重要阶段,用来保证软件产品的稳定性、安全性、一致性、完全性等要求,从而保证软件质量,软件测试工作应该贯穿整个开发过程。1.基本原则1)完全测试是不可能的2)测试中存在风险和缺陷3)软件测试只能表明缺陷的存在,不能证明没有其他方面的缺陷4)潜在的错误数和发现的错误数成正比5)让不同测试人员参与测试6)开发小组和测试小组分立7)尽早不断测试,让测试工作贯穿开发过程8)设计测试用例时要包括输入数据和预期的输出结果两个部分,输入数据还应该包括非法情况9)集中测试容易出错或是出错较多的模块10)长期保留所有的测试用例,方便回归测试2.测试模型1)V模型。在编码后才进行测试工作,无法及时纠正错误2)W模型。测试与各个设计过程同步进行,局限是测试不能跨阶段3)H模型。测试活动独立,与其他流程并行。二、软件测试分类1.按测试阶段分为单元、集成、系统、验收测试2.按是否运行程序分为静态测试和动态测试3....三、测试用例为节省时间、资源,提高测试效率,应该挑选有代表性的或特殊性的测试数据进行测试。1.测试用例设计1)边界值分析2)等价类划分3)错误推测4)检查测试用例对程序的逻辑覆盖度5)因果图法2.测试用例场景描述每个经过测试用例可能的路径四、软件测试方法静态测试主要为人工审查代码,检测有效但是对测试人员要求高。动态测试需要实际运行程序,主要分为白盒和黑盒测试1.黑盒测试1)等价类划分法。将输入根据不同条件划分为若干子集,只取各个子集中的部分输入测试。2)边界值分析法。取输入范围的边界值以及边界附近的值进行测试。3)错误推测法。主要靠直觉和经验,选择程序中可能的错误和容易发生错误的特殊情况。4)因果图法和决策表法。考虑不同输入条件的组合,条件之间的制约关系,条件与结果之间的逻辑关系。先根据程序规格说明书划定可能的原因、结果,画出相应的因果图,再转化为决策表,根据决策表的不同条件组合设计测试用例。5)场景法。对于有各种中间状态、事件的软件,可以根据程序执行的基本流和各个备选流,生成不同的场景,对每个流程场景设计相应的测试用例。2.白盒测试一般来说,采取先静态后动态的方式,先进行代码检查和静态结构分析,再进行覆盖测试。覆盖测试是重点,应尽可能提高覆盖率。不同测试阶段测试重点不同,需要白盒黑盒相结合进行测试。1)代码检查法。根据设计文档和一般编码原则检查代码。2)静态结构分析。分析源代码的内部结构,各模块的逻辑关系,如控制流分析、数据流分析、信息流分析、接口分析、表达式分析等,进而找出错误。3)程序插桩技术。往被测试程序中插入输出等操作来了解变量、语句的执行情况,从而查出错误。4)逻辑覆盖法和基本路径法。根据程序的流程图,设计测试用例,以覆盖所有的执行路径或语句。五、分阶段测试1.单元测试2.集成测试3.系统测试4.验收测试5.回归测试六、面向对象测试教学难点白盒、黑盒测试方法,面向对象测试环节/时间授课内容教学方法课程导入10分钟软件测试的概念、基本原则和模型(略讲)讲授正式授课80分钟一.黑盒测试方法二.白盒测试方法三.黑盒、白盒对比,结合使用讲授正式授课90分钟四.分阶段测试五.面向对象测试(结合P306实例)讲授实验90分钟P320使用VisualStudioCode对”小型二手货交易平台的“用户登录”模块进行单元测试实验思考题和作业本章习题扩展阅读无 章节名称第12章软件维护与软件工程管理课次2(总第8次)课时4授课形式理论课■案例讨论课□实验课□习题课□其他□教学目的及要求熟悉软件维护的基本概念了解软件估算的概念、方法、原则与技巧掌握制订软件开发进度计划的方法了解软件开发人员组织的形式了解软件开发风险管理的概念了解软件质量保

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论