




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程实践设计概述软件工程课程实践教学之为什么要高度重视实践教学软件工程课程实践存在问题如何设计软件工程课程实践如何实施软件工程课程实践*内容课程实践的设计及要求加深对所学课程知识的理解和掌握学会运用所学知识来分析解决问题培养专业方向的多方面能力和素养积累工程实践的心得、经验和体会3课程实践教学很重要软件工程是一门实践性很强的课程课程教学绝不能仅仅停留在纸上谈兵层面通过实践教学着力培养“解决复杂工程问题”能力软件是一项极为复杂逻辑产品,软件开发是复杂工程行为它是软件工程专业核心能力,充分体现软件工程专业特点软件工程课程实践教学的特点*能力和素养的培养是软件工程课程教学的主要目标专业课程及其能力培养计算思维能力程序构造与分析类课程系统能力计算机原理类课程复杂工程问题能力软件工程课程能力不是由老师“教”出来的,而是学生在实践过程中“学、做、练、悟”中逐步形成的能力培养不是一次性的,而是一个循序渐进、长期实践的过程需对实践教学进行针对性设计,达成能力培养目的5实践是达成能力培养的主要途径实践设计实践实施实践考评老师全程参与实践内容要求不高不具备复杂工程问题实践手段缺工程性未能体现工程化要求实践方法过时陈旧难以保证实践的开展实践目的性不明确能力培养成效不明显6软件工程实践教学存在问题形式大于效果教与做相脱节难达预期成效没有足够的时间投入不知道如何去做实践许多问题找不到解答获得帮助的渠道有限无法获得有效的指导不知道做的结果如何7对老师和学生带来的具体挑战没有大规模工程经验没有足够精力来投入解答不了所问的问题无法提供所需的资源跟不上技术发展步伐缺乏有创意实践项目老师角度学生角度有“心”无“力”,有“力”不得“法”难以达成能力培养目标方法1:将课程实践融入到软件工程课程之中示例:课程实践伴随着软件工程课程进行,讲到哪里就落实相关的实践内容不足:基于局部知识点和阶段性教学内容,难以运用系统性的知识和技能,无法做到持续性的迭代、改进和完善方法2:独立设计一门软件工程综合实践课程示例:软件工程课程结束之后,给定2周时间集中开展综合实践不足:实践周期短,单位时间实践强度大,无法满足复杂工程问题所需的时间要求,学生缺乏反思,难以做到持续性的迭代、改进和完善8问题1:实践设计的不合理性9问题2:课程实践衔接的局限性计算机程序设计实践软件项目开发实践聚焦于编码,关注于实现,存在规模小、忽视质量、缺乏好的编程经验,不足以体现复杂工程问题聚焦于完整软件开发,关注多个方面,要求有一定规模和复杂度,对工程能力培养提出更高要求实践存在较大Gap,需要有过渡软件工程、软件项目管理等课程程序设计、数据结构、算法分析等课程无从下手、无法开展、不知对错难以应对、茫然困惑、......实践知识和时间的碎片性遇到问题多样性和差异性实践问题的解决的经验性教师学生间非持续接触性实践个体个性化和同一性实践的参与性以及体验性实践实施过程的长周期性10问题3:实践教学特殊性及问题难解性无法系统性讲授难做到及时答复不可能一一回答做不到量身定做找不到完美老师学生互助不现实靠优秀TA不可能实践教学与课堂教学有很大差异性需要在实践教学理念和方法找出路11问题4:实践教学方法的局限性教师和TA学生(个体或团队)物理或局域网络空间实施空间的局部性参与对象的封闭性辅助渠道的单一性实践资源的有限性教室或软件平台实践教学成效高度依赖于教师的决心、投入、经验和水平今年的成功并不意味着明年的成功,难以复制以代码和质量为切入点,从学习他人工程经验入手循序渐进开展实践,不能一蹴而就软件工程课程实践的设计原则(1)12阅读和维护开源软件代码开发软件系统实践任务1实践任务2多次迭代从读代码、理解质量、学习经验再到完整开发一个软件系统13对实践教学和能力培养的认识理解和掌握高质量程序学习(产品、过程等)实践(技术和管理活动)编写具有一定规模高质量程序开发一定规模高质量软件系统评价-学习再学习和实践(改进与提高)开发一定规模高质量有创意软件系统须有大规模高质量软件、长时间实践、团队协作的工程经历突出“规模、综合、集成、创意、质量”内容要求反映“复杂工程问题”特征,强化“能力”培养软件工程课程实践的设计原则(2)14实践内容要求规模性创意性集成性演变性综合性高质量规模反映复杂性,>10000行程序代码问题和需求、解决方法、技术手段等人机物、遗留系统、异构、分布式需求和设计等变化,反复权衡、完善综合多种知识、技术、语言和平台对质量提出明确要求且可验证迭代开发,持续点评和指导,不断改进和提升软件工程课程实践的设计原则(3)*第一次迭代第二次迭代第n次迭代分析设计编码测试不要寄期望学生能够一次性就能完成实践并达成能力培养互联网大众成为指导学生实践和能力培养的“老师”互联网资源成为指导学生实践和能力培养的“教材”互联网平台成为指导学生实践和能力培养的“空间”*课程实践教学的实施原则(1)高质量的开源软件GitHub用户2800+万人海量高水平的软件开发人员“考”为辅“评”为主持续考评,以“评”促“改”针对“能力考评”设计考核要素及指标课程实践教学的实施原则(2)*借助工具辅助实践的开展及考评掌握现代、主流的软件开发工具提高软件开发的效率和质量及时掌控、分析和考评实践情况课程实践教学的实施原则(3)18Trustie-Forge协同开发和版本管理Trustie-CodePedia代码阅读、分析和标注Trustie-Ossean开源软件检索和开发知识分享LearnerHub实践交流、分享和讨论19软件工程课程实践设计与实施阅读和改进高质量开源软件开发有创意、较大规模、高质量软件项目实践支撑软件工具开源软件和软件开发知识迭代
课程实践设计概述软件工程课程实践教学之阅读和维护开源软件软件工程课程实践教学之动机和任务组织和准备步骤和活动实施和要求考评和成效*内容阅读和维护开源软件实践动机学习和模仿成功的软件开发实践为后续的“开发软件系统”奠定工程基础向谁学互联网上高水平软件开发者学什么软件制品:开源软件代码开发经验:软件开发知识软件开发技能、经验、素养、质量等在哪里软件开发知识分享社区开源软件托管网站*实践的动机针对开源社区软件开发者以及开源软件开展实践和学习理解高质量软件设计及编码风格高水平的编程技巧和方法运用用所学的方法来维护开源软件用开源软件来维护开源系统用开源社区中的群智知识来解决实践中遇到的问题用分布式协同手段来进行软件开发认知理解代码“质量”(可扩展、可维护、可理解性)的重要性理解代码“变化”对软件开发及质量带来的影响*实践的任务这些实践方法和经验将推广到“开发软件系统”实践之中软件功能易于理解面向实际应用代码质量高值得学习,如高质量的软件设计、良好的编程风格代码规模适中不能太小、也不能太大5000-20000LOC编程语言熟知立马上手,不用学习编程语言开源社区活跃促进交流、问答和问题解决25实践准备:选择合适的开源软件小米便签记事、提醒等功能基于Android约8800代码高质量,无注释开源社区不活跃到Github/码云等开源社区中检索和获取开源软件实践准备:寻找开源软件26代码阅读和标注工具阅读代码及结构、代码标注、分享和评价标注Codepedia()代码维护和管理工具分布式系统开发代码版本管理Trustie()问题讨论和经验分享工具技术博客、问题讨论、经验分享LearnerHub()实践准备:实践支撑软件工具*28实践准备:组织方式个体模式阅读结对模式团队模式个体(1人)独立阅读、标注和维护结对(2人)合作完成阅读、标注和维护团队集成和演示维护后的开源软件标注分析维护29实践实施过程阅读标注分析维护设计模型代码标注质量模型新代码考评考评考评考评阅读代码泛读开源代码,理解软件功能,描述软件的结构标注代码精读开源代码,理解代码语义,对代码进行注释分析代码分析代码质量,理解编码规范,发现代码的缺陷维护代码纠正代码缺陷,完善软件功能,形成新版本软件30实践活动任务:阅读和理解开源代码从开源社区获取并安装、部署和运行开源软件泛读开源软件的所有代码(如8800多行)理解开源软件的整体功能和架构,绘制体系结构图描述软件功能与实现模块间的对应关系输出开源软件的功能描述(文档)开源软件的架构图(包图和类图)软件功能和代码间的实现对应图(文档)*1.阅读开源软件任务:精读部分代码(约2500-3000行)理解软件详细设计(类设计)理解子系统、类、方法和语句的语义掌握代码编写风格和规范、代码的实现方法和技巧对类、方法、语句三个层次进行代码标注输出代码注释(类、方法、语句三个层次)*2.标注开源软件33代码标注工具:Trustie-Coderpedia结构标注统计34示例:标注开源软件标注开源代码任务:分析代码编写风格、发现代码缺陷等运用SonarQube等工具,分析代码质量学习优秀的代码编写风格和编程实践基于代码分析结果自动生成相应问题,学生通过回答问题加深对代码的理解和认识输出开源软件代码质量分析报告(文档),包括:代码编写规范、好的软件设计、好的编程风格、代码缺陷和问题*3.分析开源软件完善功能让学生自己去构想和创意老师职责是引导和建议纠正缺陷根据测试和质量分析的情况修改相关的程序代码实现方法利用开源软件维护要求遵循代码风格满足质量要求364.维护开源软件输出维护后的高质量开源软件可运行和可演示软件系统重用开源软件以实现粗粒度功能重用开源代码片段以实现细粒度功能借助于Git支持分布式协同开发遵循一致的代码风格遵循设计原则,确保代码质量维护开源软件的要求*代码维护工具:Trustie-Forge38版本管理协同任务代码合并建立实践项目软件版本库Github全球最大的开源软件托管平台/SourceForge开源软件仓库和开发平台/码云中国最大的开源软件托管网站/*开源软件托管网站*示例:维护开源软件引导界面欢迎界面夜间模式便签日历手势创建摇晃换景隐藏便签手势密码手势输入插入时间完善性维护后的可演示系统新增的小米便签功能课程实践过程中会遇到多样、个性化的问题要求学生到开源社区、知识问答社区去寻求解答41在开源社区解决实践中遇到的问题大部分问题可以找到答案,如果找不到自己在社区提问寻求解答StackOverFlow软件开发者和IT技术问答社区/开源中国中国最大开源社区,交流问题、分享经验/CSDN程序开发知识交流与分享/*软件开发知识分享社区问题问答技术博客分享开发经验交流技术咨询和动态Stackoverflow上的知识超过8600万在线文档问题1300万+回答2000万+评论5300万+标签47500+平均响应时间<16分钟被回答的问题91.3%基本原则以评促实践、以评促改进、以评防“打酱油”考评对象成果:模型、文档、标注、代码行为:协同软件开发、交流和讨论、资源提交考评方法:人工评判和自动分析相结合实践考评*实践成果成果形式考评方法开源软件的体系结构模型人工评判开源代码的质量分析报告文档人工评判技术博客文档人工评判代码标注标注人工评判和自动分析维护后的开源软件代码人工评判和自动分析基本原则对实践成果及行为持续跟踪对发现问题进行针对性点评要求根据点评加以改进完善持续迭代和提升地开展实践点评内容文档类:内容是否符合要求,规范性,语言表达等代码标注:注释正确性和规范性、表达准确性和简洁性等程序代码:遵循编码规范,代码质量等软件模型:模型准确性、图符正确性等可运行软件系统:界面展示和功能实现的效果等实践点评*系统地阅读一个具有较大规模、高质量的开源代码深入地学习高水平开发人员的编程经验和技巧具体地实践编写高水平的程序代码切身地体会代码质量对于软件及其维护的重要性感受到了规模和变化给软件及其质量带来的影响提升了应对较大规模软件开发的能力、信心和勇气45实践成效分析规模质量技能变化
每个结对平均最多最少每周课外花费时间(小时/周)10204编写代码量(行)5001000200复用开源代码(行)120020000添加注释量(行)8002000200Git提交次数(次践投入和结果代码总量:8887LOC;文件数:39注释总数:5627LOC;
注释行数:
2706;
注释率:30.4%问题数量:
1654LOC2017年秋季学期的实践数据实践时间投入与剪裁47序号实践活动任务描述持续时间剪裁说明1阅读泛读开源软件代码理解代码功能绘制软件体系结构大约1周“绘制开源软件体系结构”可剪裁2标注精读代码标注代码注释大约1-2周--3分析分析来源代码质量大约1周可被剪裁4维护修改代码缺陷完善软件功能演示开源软件大约1-2周“修改代码缺陷”可被剪裁结对泛读10000+代码每人精读和标注2000+代码结对维护和新增1000+代码加入软件开发知识分享社区来寻求问题解决加入开源软件托管社区以寻求开源软件鼓励重用开源软件及代码片段维护后的软件可运行、可演示每周撰写并分享技术博客新增的代码必须遵循原有的代码风格并保证质量实践总结汇报实践总体要求48有准备选择好恰当开源代码,预读,判断质量、规模及可行性等有步骤循序渐进开展标注和维护,分阶段来开展实践,任务明确有监督借助工具及时、持续地掌握学生的阅读、标注和维护情况有考核对学生实践成果和行为进行持续、定量、科学考核和分析有点评对学生的实践行为和结果进行点评,指出问题,提供建议*注意事项
阅读和维护开源软件软件工程课程实践教学之开发软件系统软件工程课程实践教学之动机和任务组织和准备步骤和活动实施和要求考评和成效*内容开发软件系统实践培养解决复杂工程问题的能力利用群智知识解决问题重用开源软件想象和创意学会分布式协同开发独立开展实践和自主学习宣传和展示,交流和沟通53实践的动机理解和掌握理论知识撰写规范化文档抽象和建模书面和口头语言表达提炼、总结和汇报通过互联网获得信息、帮助和服务运用工具和平台组织、协调和领导团队3-5人组成一个项目开发团队1人担任团队负责人(轮流)实践准备:项目人员组织54老师:创建课程和授课班级老师:布置实践任务学生:加入课程班级学生:创建实践项目实践准备:布置实践任务55实践准备:实践支撑软件工具56/版本管理协同任务代码合并建立项目软件版本库技术博客、问题讨论、经验分享实践准备:实践支撑软件工具*http://学生创建项目简练,体现内容及创意,如ElderCarer,老人看护助手建立项目版本库,目录组织如下model:存在UML模型doc:存放各类文档src:存在源程序代码readme.txt58在Trustie建立项目软件版本库第n次59实践过程和步骤:迭代开发需求获取与分析软件设计与建模代码编写与测试软件部署和运行需求获取与分析软件设计与建模代码编写与测试软件部署和运行需求获取与分析软件设计与建模代码编写与测试软件部署和运行第一次第二次任务构思软件系统欲解决的问题,导出和描述软件需求建立软件需求模型撰写和评审软件需求规格说明书输出软件需求构思描述文档(文档)软件需求模型(模型)软件需求规格说明书(文档)软件确认测试用例(数据,可选)601.需求获取与分析有创意欲解决的问题或者解决问题的方法有新意上规模足够的软件功能需求,10000+LOC集成性集成多个系统、分布式部署和运行如机器人、智能手机、云服务、开源软件、遗留系统等综合性综合运用多种方法、技术、工具和平台如运用多个编程语言、采用多种开发技术、借助多个软件工具待开发软件系统的要求(cont.)*演变性在迭代开发过程中,不断加强对软件需求的认知,软件需求在开发过程中会持续变化导致软件设计、模型、代码、测试等随需求的变化而变化高质量外部质量,如满足用户的要求、可靠性好内部质量,如遵循编码规范,良好的可理解性、可维护性、可扩展性等等可行性软件系统在时间、技术、条件、经济等方面是可行待开发软件系统的要求(cont.)*要从构思待开发软件系统欲解决的问题入手,从中导出软件需求要从创意性、可行性、集成性等方面持续构思、讨论、改进和完善软件需求在开源社区中借助群智的力量来构思软件需求确保UML需求模型的正确性、准确性、一致性、完整性确保软件需求文档的规范性以及语言表达的正确性、准确性、逻辑性、简洁性需求获取与分析的其它要求63独居老人智能看护无人值守图书馆基于AR的3D导航家庭客人来访接待多无人机联合搜寻......示例:构思软件需求64缺乏调研,没有事实根据,仅仅凭自己的现象不明确欲解决的问题欲解决的问题不具有新意需求太多太杂,不收敛不聚焦软件系统及需求不具有新意缺乏实现软件系统的现实条件,不具备条件可行性实现软件系统的技术太复杂,不具备技术可行性系统太庞大难以短时间内解决,不具备时间可行性.......潜在的问题*需要老师在了解需求构思的情况下进行必要的干预和指导任务根据需求设计软件,形成设计方案建立软件设计模型,如架构、用户界面、用例、子系统、构建、类、数据、测试用例等方面的设计撰写和评审软件设计规格说明书输出软件设计模型(模型)软件设计规格说明书(文档)软件集成测试用例(数据,可选)2.软件设计与建模*根据需求进行设计,遵循设计原则提高设计质量对设计结果要持续进行反复的权衡、折中、讨论、改进、优化和完善鼓励通过重用开源软件来构建软件系统确保UML设计模型的正确性、准确性、一致性、完整性确保设计模型与需求模型间的一致性、完整性、可追踪性软件设计文档的规范性以及语言表达的正确性、准确性、逻辑性、简洁性软件设计与建模的要求*设计脱离需求,没有根据需求进行设计设计没有遵循软件工程原则,导致设计质量不高设计模型没有经过深思熟虑,导致设计存在问题UML设计模型存在问题,如不正确、不准确、不完整、不一致等软件设计不够详尽,难以指导后续的编码软件设计文档不规范,语言表达没有逻辑性,费解啰嗦,不具备简洁性......潜在的问题*任务编写程序代码测试程序代码(单元测试、集成测试和确认测试)输出经过测试的程序代码(代码)软件测试报告(文档,可选)3.代码编写与测试*根据设计模型和文档来编写代码鼓励重用开源软件或者代码片段遵循编码规范,确保代码的内部质量开展测试确保代码的外部质量代码编写与测试的要求*没有参考设计来编写代码,导致代码与设计不符代码编写随意,没有注意编码风格代码没有注释,导致可理解性和可维护性差代码没有测试,存在诸多缺陷项目组中不同人的编码风格不一致......潜在的问题71任务在实际运行环境中部署所开发的软件系统运行和演示软件系统总结输出高质量、可运行和演示的软件系统(代码)软件系统的产品海报和宣传PPT(文档,可选)实践总结报告(文档,可选)4.软件部署与运行*在实际环境中部署所开发的软件系统软件系统必须可运行、可演示产品宣传突出软件系统的创意、功能、特色、架构、技术和主要界面实践总结要突出整个实践过程中的感受、体会、成果、经验等软件部署与运行的要求73未能在实际运行环境中部署系统部署过程中遇到意想之外的问题宣传和汇报材料未能充分提炼软件产品的特色宣传海报设计颜色搭配不漂亮、文字不精炼总结报告空洞、没有内涵......潜在的问题7475实践迭代次数示例第一次迭代迭代多少次取决于实践持续时间每次迭代要有明确的要求和目标第一次迭代第一次迭代聚焦需求创意实现软件原型聚焦软件设计实现核心功能聚焦软件质量实现整个系统需求分析开展调研,聚焦应用领域及关注的问题构思软件需求,分析与其他系统间关系开展可行性分析软件设计开展整体设计:软件整体架构、用例设计、用户界面设计、寻找可重用开源软件等搞清楚需要哪些技术、熟悉相关的工具和环境实现和测试基于用例设计和用户界面设计,开发软件原型部署和运行部署和演示软件原型,进一步导出、明确和深化软件需求*第一次迭代:聚焦需求构思及软件原型*第一次迭代要递交的内容软件需求构思和描述文档(文档)软件需求模型(如UseCase图、顺序图)(模型)软件设计模型(如架构、用户界面设计)(模型,可选)可运行的软件原型需求分析进一步明确应用领域及问题完善软件需求,识别、描述和分析核心功能需求软件设计细化和明确软件系统的架构、用户界面和用例设计等针对核心功能开展子系统、构件、类和数据等层次设计实现和测试实现核心软件功能需求,并开展相应的测试部署和运行部署、运行和演示软件系统的核心功能*第二次迭代:聚焦设计实现核心功能*第二次迭代要递交的内容软件需求模型(如UseCase图、顺序图、类图)(模型)软件需求构思和描述文档(文档)软件设计模型(如架构、用户界面、用例、子系统、构件、类和数据设计)(模型)软件设计规格说明书(文档)核心功能的实现代码(文档)可运行的软件系统(文档)需求分析进一步导出、细化、明确、完善软件需求确保软件需求及其模型和文档的质量软件设计进一步细化和完善软件系统的设计,包括架构、用例、用户界面、子系统、构件、类和数据等设计确保软件设计及其模型和文档的质量实现和测试实现所有的软件需求,并开展相应测试确保代码的质量部署和运行部署和演示软件系统的功能*第三次迭代:聚焦质量完成系统开发*第三次迭代要递交的内容软件需求模型(如UseCase图、顺序图、类图)(模型)软件需求规格说明书文档(文档)软件设计模型(如架构、用户界面、用例、子系统、构件、类和数据设计)(模型)软件设计规格说明书(文档)实现代码(文档)可运行的软件系统(文档)实践总结报告(文档)考评不仅是目的,更是手段以考评促进实践“考”为辅“评”为主持续考评,以评促改考评的方式和手段主观和客观、结果和过程、个体和团队相结合借助实践平台和工具及其采集的数据来支持考评代码数量和质量、贡献数量、提交次数实践考评的基本原则*实践成绩=个人实践成绩
+团队实践成绩团队完成实践的整体情况及成绩个人在实践中的独立贡献及成绩团队实践成绩的考评方式根据阶段要求,考评整个团队实践过程和成果成绩方式:依据团队汇报、软件制品、平台提供的过程数据个人实践成绩根据阶段要求,考评各个个体的实践过程和成果成绩方式:逐一面试、各自编写的代码及其质量、撰写的技术博客、提次数、其他方面的贡献、平台提供的数据*实践成绩评定方法示例84考评分项及成绩占比指标示例创意(10分)需求和设计模型(30)文档(15分)问题、需求和技术新意正确使用UML、模型正确性、模型完整性规范性语言表达程序代码(25分)演示与宣传(15分)代码规模代码质量代码测试软件运行演示效果宣传彩页和PPT产品视频实践报告提交和平台(5分)奖励扣分贡献度使用情况开源软件使用、加入社区未按时递交成绩考评示例85开源中国中国最大开源社区,交流问题、分享经验/CSDN程序开发知识交流与分享/StackOverFlow软件开发者和IT技术问答社区/*软件开发知识分享社区加入软件开发知识分享社区来寻求实践中各类问题的解答Github全球最大的开源软件托管平台/SourceForge开源软件仓库和开发平台/码云中国最大的开源软件托管网站/*开源软件托管网站加入软件开源软件托管网站来寻求可被重用的开源软件以实现特定的功能软件系统程序代码10000+,编写代码5000+加入软件开发知识分享社区来寻求问题解决鼓励重用开源软件及代码片段鼓励集成遗留系统或访问互联网服务根据意见和建议持续改进、完善和提高软件制品采用分布式协同开发方法独自递交各自的程序代码周期性地撰写并分享技术博客软件产品(模型、代码、文档)必须确保质量实践总结汇报整体要求*
开发软件系统软件工程课程实践教学之实践常见问题及应对方法软件工程课程实践教学之实践完成和投入问题及应对方法实践成果和质量问题及应对方法内容91实践常见问题及应对方法持续跟踪、考核、点评和引导实践92实践完成和投入问题实践成果和质量问题借助平台持续跟踪发现问题点评解决实践完成和投入问题93没有按照时间点要求完成实践任务跟踪实践进展情况,如通过Trustie平台可以很快发现学生是否按照要求提交了作业实践进展缓慢或遇到瓶颈存在完成风险持续跟踪实践进展,查看学生在平台上的活跃和贡献程度,如提交了哪些软件制品、做了多少次修改、总共提交了多少次,可以通过Trustie中的Git观察该状况学生实践投入不足通过实践平台(如Trustie)看学生的实践活跃程度,如提出问题、回答问题、分享经验、开展讨论等,从中大致可以看出学生的投入程度实践过程和行为的常见问题(1/2)*学生不作为、打酱油每个学生单独提交代码,查看项目团队中每个学生参与解决的任务、P/R及其贡献的软件制品,查看版本库中每个学生的提次数实践过程和行为的常见问题(2/2)*Git中对学生提交次数的统计实践成果和质量问题96实践成果及质量要求97成果成果质量要求分析需求模型需求文档软件需求的创意性、集成性、综合性等需求模型正确性、准确性、一致性、完整性等需求文档规范性、简洁性、一致性等设计设计模型设计文档软件设计质量,如遵循需求、模块性、封装性、可维护性等设计模型正确性、准确性、一致性、完整性设计文档的规范性、简洁性、准确性等编码程序代码代码与设计模型的一致性代码质量,如遵循规范、可读性、注释等测试测试用例测试数据设计的充分性和覆盖性总结技术博客总结报告总结到位,凝练准确、报告清晰等软件需求没有意义和价值引导学生明确软件系统欲解决的问题及其现实意义软件需求没有新意,重复以往的软件系统引导学生构思有新意、有特色的软件需求软件需求过于简单,难以满足规模性和复杂性要求引导学生拓展软件系统的功能,提升其规模软件需求太多太复杂,对技术要求太高,难以实现放弃部分软件需求,或者做某些假设以简化技术要求软件需求需要特定的设备和工具,难以满足假设软件需求以简化对设备的要求,重新构思软件需求软件需求常见问题及应对方法98软件设计没有考虑软件需求要求基于软件需求及模型来开展软件设计、产生设计模型软件设计没有考虑质量要求要求遵从软件设计的原则,从模块性、信息隐藏、封装性、可维护性等角度评估和分析软件设计质量软件设计超出软件需求范围要求删除无意义的软件设计软件设计常见问题及应对方法99不知道建模的目的和用途UML图符使用不正确绘制的UML模型未能正确地刻画软件系统模型不完整,漏掉了一些必须的UML模型多个UML模型之间存在不一致UML模型不详尽设计模型与需求模型相互脱节100UML建模常见问题问题示例不清楚用例模型在分析和设计软件中有何用途为什么需求分析要从用例建模入手等等应对方法讲清楚各个UML模型的作用阐明绘制这些模型的目的要基于UML模型进行分析和设计1.不清楚UML建模的目的101问题示例在绘制UML模型时,不能正确地使用UML,这类问题非常普遍,如没有用正确的图符表示关联关系应对方法要求学生学习和掌握UML的使用指明正确的图符应该是怎样的在绘制模型时需要注意图符的正确使用2.UML图符使用不正确102问题示例绘制的UML与实际的软件系统不符合如用例图中的Actor与实际系统不相符应对方法要从实际的系统出发来绘制UML模型检查所绘制模型的正确性3.UML模型未能正确地刻画软件系统103问题示例漏掉了一些必须的UML模型,无法满足分析和设计的要求如有用例图,但是缺乏针对其中用例的交互图,无法详尽掌握软件需求应对方法阐明完整的需求模型和设计模型应该包含哪些必须的UML模型以及为什么需要这些模型补充提供必须的UML模型4.UML模型不完整104问题示例不同模型之间存在相关性,但是绘制的多个UML模型之间存在不一致性如用例的交互图中的类没有在分析类图中出现,分析类图中有一些类不知从何而来应对方法阐明不同UML模型之间的关联性,说明如何根据某些模型来产生新的模型要求分析不同相关模型之间是否存在不一致性问题,如有则加以修改1055.多个UML模型不一致问题示例模型没有提供足够详细的信息,难以指导后续的软件开发工作如软件设计模型不够详实,没有提供类方法的活动图来说明类方法是如何实现的,导致无法指导程编码应对方法从指导后续开发的角度来分析模型是否足够详实补充必要的模型内容1066.模型不详尽问题示例你做你的需求,我做我的设计设计没有考虑需求,设计模型与需求模型不相关没有完整地实现所有的需求有一些设计元素多余,与软件需求没关系应对方法通过对需求模型进行精化来开展软件设计,产生设计模型进行正向和反向追踪,包括正向:需求
设计,反向:设计
需求1077.设计模型与需求相互脱节108示例:UML图符使用的问题对象命名不恰当,如Identify对象需要有下划线消息名称的表述和界面操作相混淆消息名称不恰当,如关闭程序代码与设计模型不符表现为你设计你的模型,我编写我的代码代码与设计相脱节按照设计模型来编码,修改代码后要同步修改设计模型程序代码的质量存在问题没有遵循编码规范没有必要的注释按照编码规范来写代码,重视代码的内部质量代码的常见问题109文档书写没有遵循规范文档排版混乱,格式不规范图表没有标题或者没有解释内容与标题不相符,文不对题表达啰嗦和费解,没有讲到点子书面表达口头化缺乏必要的图表,不便于理解画蛇添足,引入不必要的内容文字表述缺乏逻辑性和严谨性内容空洞,不明确内容不一致110软件文档常见问题“针对普通用户而制作,目前的导航系统功能较为完备,但最大的缺点在于导航为二维图,无法准确分辨现实生活中的三维的世界”—摘自“***需求创意文档”111表达不通顺,费解段落中的文字描述与标题不一致要写的东西没写,写了一些不相关的内容112文不对题1.软件功能列表这个软件用户主体为作战中的指挥员,通过对软件的使用,来达到积累战斗经验的目的。现将具体的功能展示如下(表1)二、待解决的问题1、学生由于信息的闭塞,无法对学校周围的各类生活服务有全面地认知。2、学生由于平时任务比较繁重,没有足够的时间到学校周边采购。在文档中描述或者增添一些不必要的内容如在需求创意和描述文档中引入“系统设计用例图”、“系统设计类图”等等113画蛇添足文字表达空洞,没有表达出明确和具体的内容114内容空洞不明确,缺乏严谨性和逻辑性功能名称功能描述集成信息建立庞大的数据库系统,为共享的信息提供平台信息录入实地到访学校周边的各类生活服务点,记录数据并录入到数据库中没有排版,格式混乱,错别字图表没有标题标题与图表不一致正文没有对图表做适当的解释115排版混乱,格式不规范文档中贴了一张图,但是没有标题和解释对文档进行修改和点评,指导学生如何写高质量的文案给出高质量的文档示例,从学生学习和参考学生之间相互检查软件文档,查看问题,给出修改意见116应对方法117总结不到位,没有反映本质仅仅是看护吗?小助手是什么意思?笔记?为什么是笔记?**云如何?小助手?太委屈了,应该是“大助手”118提炼不明确、没特色小助手是什么意思?仅仅是看护吗?能做到看护吗?大段的文字,不知道要说什么例如:多源、多类型,统一收藏;统一管理;统一检索不纯粹就是一个APP,还有其他的软件支撑;有路径规划,仅仅是查询吗问题的关键二方面:(1)没有清晰地阐明本项目要解决的问题是什么;(2)没有系统地分析与已有系统相比较,本项目的优势在哪里。119创意特色不鲜明现在有很多的类似系统,你的系统解决了现有系统没有解决或者没有想到的问题?关键文字表述模糊、不准确,让人无法理解实践成果的精髓120语言表达模棱两可、不清晰对问题描述不明确、不中肯对特色和功能总结的不到位,有的东西没有提到,不重要的内容却反复提及一些内容重复性的介绍,浪费宝贵的文字资源121对相关方面的描述不到位颜色搭配不明显,导致看不清颜色太多太乱,不好看文字太多,不易读,看不到重点122报告PPT不美观
实践常见问题及应对方法软件工程课程实践教学之发挥小班优势,深化软件工程实践
教学改革,加强能力和素质培养软件工程课程实践教学之背景和动机深层次解决培养方案和施教中问题,加强工程能力培养2012年开始制定教改方案,2013年开始实施专业教学改革涉及知识体系、课程体系、实践教学等方面的改革小班教学改革每年软件工程专业学生少于25,单独施教,实施小班教学成果成效显著学生能力和素质的提升、获得军队和国家教学成果奖背景:软件工程专业小班教学改革*聚焦实践教学,采用小班模式,加强能力培养老师视角难以掌控学生情况难以开展交流讨论难以个性化的指导没有足够精力应对学生视角难以获得老师关注难以得到及时指导大班教学的潜在问题126大班教学基本特点是施教对象的数量较多老师疲于应对日常的教学任务没有足够时间和精力确保质量大基、计算机程序设计课程学生70-150人便于交流和讨论加强师生间互动促进学生间交流减轻教师教学负担源自于学生规模减少(如批改作业)集中精力加强某些教学环节腾出手来开展一些教学改革小班教学的优势*小班教学的特点是施教对象的数量较少老师从繁重的日常教学中解脱出来,开展教学探索,提升教学质量小班教学学生数量通常不超过25人借助小班深化实践教学的整体思路128促进交流和讨论交流主题?交流目的?实践教学的进展、成果、困难等跟踪、点评、指导、分享、考核实践教学推进实践的实施、改进、完善和高质量完成,达成能力培养目标人才培养目标129知识能力素质基石知识体系、知识领域(主题)、知识单元、知识点终身学习职业道德创新意识国际视野......问题分析研究设计/开发解决方案使用现代工具项目管理......课程与知识体系基于知识和能力的熏陶和积累课程教学实践教学“卓越工程师教育培养计划”目标之一是要强化“工程能力和创新能力”的培养“工程教育专业认证”将“解决复杂工程问题的能力”作为人才培养的核心输出“新工科教育”核心目标是要培养“工程实践能力强、创新能力强”的高素质复合型人才能力培养是人才培养之根本*能力不是由老师“教”出来的,而是学生在实践过程中通过“学、做、练、悟”逐步形成的与课程教学不同,实践教学真正反映以“学生”为中心能力培养不是一次性的,而是一个循序渐进、长期实践、不断探索的过程通过持续的实践来培养能力131基于实践教学来培养能力课堂教学是基础、实践教学是关键Bloom教育目标分类问题和任务针对特定应用和问题,运用软件工程知识,开发软件系统实践工作软件创意、设计、实现、测试等实践输出有形:软件模型、文档、代码、数据等无形:软件开发工程能力和素质的提升示例:软件工程课程的实践教学132构思与创意设计与实现工具使用质量保证实验和模拟......分析和解决问题书面和口头表达沟通与交流项目组织团队合作......软件开发能力解决复杂工程问题能力......133实践教学的特殊性及面临的挑战实践教学的特殊性知识碎片性和综合性问题多样性和差异性解决的问题依赖经验个体同一性和个性化成效和质量不确定性不知对不对不知好不好不知问题所在缺乏反思缺少改进做不精、做不好、难以达到能力培养要求134调查问卷:实践中遇到哪些困难?投入不足不知如何去做问题得不到解决调查问卷:如何解决实践中的问题?135到互联网上寻找与同学讨论询问老师和教辅调查问卷:对老师有何期许?136告知存在什么样问题告知解决问题的方法调查问卷:课程实践的实际情况137实践对应的问题和任务简单实践投入少、产出的规模少远远达不到能力培养的基本要求138依托小班促进实践教学实践行为实践成果跟踪、分享、点评、指导、考核输出组织和激励交流加强交流和讨论,促进对实践教学的跟踪、点评、指导和考核借助交流来推进实践教学交流讨论实践实践交流讨论交流讨论实践实践交流讨论能力提升发现问题解决问题推动实践分享经验科学考评创意性创意体现了工程的价值问题和需求、解决方法和手段规模性规模反映了复杂性10000+行程序代码集成性集成性是复杂系统的基本形态集成其他的系统(机器人、无人飞机、智能手机)来解决问题140以能力培养为目标提升实践要求综合性综合多门课程的知识,可能尚未学习到运用多种技术、语言、工具和平台高质量体现专业水准养成工程素养对老师和学生带来很大的挑战!?加强组织,促进交流引导构思,强化创新持续跟踪,掌控状况成果点评,指明问题提供建议,指导解决改革考评,以评促改针对实践教学的小班交流和讨论*小班教学组织设计跟踪点评指导考核课上在课堂上组织学生围绕课程实践进行汇报和讨论汇报:进展、成果、问题讨论:不足、建议、经验课程实践的交流占总课时的1/3左右课下借助实践教学平台继续开展交流撰写技术博客、提问、回答、分享经验、贡献资源持续积累,成为重要实践教学资源,可供分享1.加强组织,促进交流*减少课堂知识讲授学时增加课程实践教学学时实践成为掌握知识途径精心设计课程实践的计划里程碑(milestones)到达里程碑就组织开展交流和讨论每次交流的主题非常明确交流讨论的形式:汇报、提问和质疑、问题和建议所有实践小组和个人都要参与汇报和讨论示例:设计和实施课堂上的交流143构思实践的问题形成实践的需求对实践创意提出明确要求要解决的问题及解决方法有创意和特色学生自主地构思实践创意结合各自的兴趣和爱好基于自己对现实问题的观察和认识进行必要的调研和分析围绕实践创新进行讨论重点汇报问题的独特性和解决问题方法的新颖性组织讨论,集思广益,出点子想法子,反驳交流和讨论成为创新创意的土壤持续改进实践创意,需要组织多次讨论2.引导构思,强化创新*通过交流来打磨所构思的创意“多无人机联合搜寻系统”问题、价值、方法解决方法创意示例:如何来发现生命特征在交流中发现的实践创意构思问题天马行空,创意不聚焦缺乏新意,没有意义,如用无人机在校园中搜寻钥匙串条件不具备,技术不可行,如公交路径规划和全程运行提示信息系统示例:通过交流来构思有创意的实践*持续进行创意的构思、完善和改进课上基于各个学生的汇报和讨论跟踪:实践进展、取得成果、遇到的问题等掌控:实践投入、贡献程度、打酱油情况等课下借助实践教学平台继续开展交流定量的方式搜集每个学生的实践情况包括:活跃度、贡献度、投入时间等3.持续跟踪,掌控状况*实践小组合作程度任务分工实践推进取得进展遇到问题潜在风险每个学生投入精力做出贡献示例:跟踪和掌控实践状况147为针对性的指导和科学地考评提供依据解决实践教学中的二项突出问题不知道做的好不好对不对不知道如何来改进和提高针对性的点评和互评在交流讨论中学生相互评价,指出问题针对性地指明实践中存在的问题和不足个性化的指导和建议针对问题,提供建设性的指导意见要讲明道理,让学生知
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省金科大联考2025届高三3月质量检测数学试卷
- 多发伤疑难病例护理讨论
- 呼吸心跳骤停护理个案
- 办公室礼仪培训
- 单元七酒店安全管理(公共安全管理)
- 手外科患者的疼痛管理
- 侗族文化介绍
- 陕西省咸阳市2024-2025学年高三下学期高考模拟检测(二)化学试题(含答案)
- 截瘫病人的并发症护理
- 中国压缩机零部件行业发展状况及需求潜力预测报告2025-2030年
- 部编版小学二年级语文下册《口语交际图书借阅公约》教学反思(三篇)
- 艾滋病(AIDS)经典课件
- 卵巢癌根治术手术配合
- 义务教育质量监测小学四年级 德育模拟试卷附答案
- 人教版五年级下册语文 第4单元 10.青山处处埋忠骨课前预习课件
- PPT模板 上海外国语大学
- 数学人教版八年级下册数学活动——折纸做60度,30度,15度的角
- 各阶段的BIM技术应用71页
- 仓库绩效考核制度规定办法
- 重返狼群李微漪和格林
- JND-Ⅱ增量型双路闸门开度仪
评论
0/150
提交评论