ballbet贝博BB
新闻中心
政策法规 您的位置:首页 > 新闻中心 > 贝博ballbet平台网页版登录
软件工程(微课视频版)| 教学大纲

  本课程从软件工程实践者的角度讲述软件工程的基础原理、概念和技术,强调软件开发过程的方法和技术的应用和评价。通过本课程的学习,使学生能够熟练应用软件分析、设计、实现和测试的基本技术和面向对象分析和设计的基本方法。通过课程实践,实际运用软件工程的技术和方法,以及软件项目管理和团队开发的工作方法。

  课程重点讲授软件开发的全过程以及贯穿过程的各阶段中所采用的技术、方法和工具。课程前一部分的内容介绍传统的结构化分析和设计方法,后一部分的内容介绍九十年代慢慢的出现的面向对象软件工程的研究。

  通过本课程的学习,要求学生能够分析、评价这两种不一样的风格的方法学,并有意识地按照软件工程规范指导软件系统开发实践。教学重点和难点是:在课程实践中熟练运用结构化方法、面向对象方法开发软件,包括必要的过程、步骤及应遵循的原则。教学中不但注重概念、原理方法、技术的讲解和分析评价,也十分注重方法、技术的实际应用,使学生能利用所学的方法和技术开发小型软件项目。

  通过本课程的学习,要求学生能够分析、评价这两种不一样的风格的方法学,并有意识地按照软件工程规范指导软件系统开发实践。教学重点和难点是:在课程实践中熟练运用结构化方法、面向对象方法开发软件,包括必要的过程、步骤及应遵循的原则。教学中不但注重概念、原理方法、技术的讲解和分析评价,也十分注重方法、技术的实际应用,使学生能利用所学的方法和技术开发小型软件项目;培育学生具有新时代、新思想、新实践,唯物辩证法的根本观点,培育学生探索未知、追求真理、勇攀科学高峰的责任感和使命感;激发学生科技报国的家国情怀和使命担当。

  (1)掌握软件、软件危机、软件工程的定义和内容、软件过程的不同模型及其优缺点。

  (2)了解结构化分析、设计和实现的方法;掌握软件模块独立性分析原则,能进行模块接口设计、过程设计,并能解决小型软件项目中遇到的很多问题。掌握结构化软件测试方法,掌握黑盒测试,白盒测试。

  (3)了解面向对象的分析、设计和实现方法;掌握UML,能结合行业需求来做系统领域划分;掌握软件架构及软件设计模式的设计优化方法,能针对具体行业应用设计和优化软件体系结构;掌握面向对象的软件测试方法,掌握系统状态图及脚本撰写。

  (4)了解软件项目管理、软件风险管理的方法;了解软件团队合作方法,了解利用配置管理工具进行团队开发的方法。

  (5)了解敏捷开发理念及DevOps,了解现代软件开发趋势,了解微服务、云服务开发、部署。了解软件重用的方法和手段。

  课程目标1:理解软件、软件危机、软件工程的定义和内容,能够分析不同模型软件过程的优缺点,将软件开发过程应用于软件开发中,支持毕业要求3.4和毕业要求8.4。

  课程目标2:理解结构化软件测试方法原理,能够应用黑盒测试,白盒测试方法测试软件,支持毕业要求11.1和毕业要求11.2;

  课程目标3:理解面向对象的软件测试方法原理,能够分析系统状态图及脚本,编写测试用例,支持毕业要求11.1和毕业要求11.2;

  课程目标4:能够应用软件项目管理、软件风险管理的方法,支持毕业要求9.1和毕业要求9.2;

  课程目标6:能够应用结构化分析、设计和实现的方法,结合项目需求提出目标系统可行的解决方案;能够分析软件模块独立性,能设计模块接口、过程,并能分析并解决小型软件项目中遇到的很多问题,支持毕业要求11.1和毕业要求11.2;

  课程目标7:能够应用面向对象的分析、设计和实现方法,结合项目需求提出目标系统可行的解决方案;能应用UML,对行业需求来做系统领域建模和划分,支持毕业要求11.1和毕业要求11.2;

  课程目标8:能够应用软件架构及软件设计模式的设计优化方法,能针对具体行业应用设计和优化软件体系结构,支持毕业要求3.4和毕业要求8.4;

  课程目标9:理解软件团队合作方法,能应用配置管理工具进行团队开发,支持毕业要求9.1和毕业要求9.2。

  课程目标10:具备自我评价能力和职业规划能力,支持毕业要求8.4、毕业要求9.1和毕业要求11.2。

  软件工程MOOC(1000分钟). 杜文峰等软件工程课程组. 深圳大学优课联盟.

  可由任课老师在本课程学习的基础上,向学生介绍、推荐后续高级课程的有关的资料和网站,鼓励学生进一步拓宽自己的知识面,为今后学习打下坚实基础。

  本课程主要教学内容有软件发展史及软件工程、软件生命周期、结构化分析、结构化设计、结构化实现、统一建模语言、面向对象分析、面向对象设计、面向对象实现、软件过程、软件项目管理、腾讯敏捷研发、人机交互设计等内容。由于本课程是计算机科学与技术专业的核心课程,而且与社会工程实践有着紧密联系,因此本课程包含36学时的理论教学和36小时实验教学。

  根据课程思政与教学内容的契合点,在理论教学上,学生一方面掌握软件及软件工程、结构化方法学、面向对象方法学等基本概念;一方面学习国家发展的策略、中华民间传统文化等思政内容;而且还要学会采用不一样方法学解决复杂软件工程问题,培养软件工程思想和科学思维方式。

  通过在线视频课程,本课程可以开展实时反馈、全程紧张的实验教学模式,引导学生点、线、面地把所学知识点串联起来,构筑整体知识结构;在实验作业中加入思政元素,启迪学生进行知识的再发现,激发问题和创新意识,培育学生的工匠精神和创新精神。

  课程思政元素最重要的包含:国家发展的策略、中华民间传统文化、个人道德素养、唯物辩证观。主要是通过类比、隐喻、演绎、关联等方式,融入到课堂讲授和实验编程中,实现润物无声的思政教学模式。

  难点:对于没有大型软件开发经验的学生来说,如何加强学生对软件危机的理解、软件开发团队的作用和软件工程方法学的实践是本章的难点。

  了解软件工程在人工智能、工业互联网、大数据、云计算等新兴技术系统架构与软件开发中得到普遍应用,了解我们国家科技发展形势,科技兴国科技强国战略。通过分组讨论方式分析自己在研发过程中遇到的软件危机问题,以及当初自己是如何克服的。如果你生活在中国近代,当国家遇到危机的时,你会怎么办?

  本知识点的讲授和学习,可以支撑“课程目标1:理解软件、软件危机、软件工程的定义和内容,能够分析不同模型软件过程的优缺点,将软件开发过程应用于软件开发中”及“课程目标10:具备自我评价能力和职业规划能力”。

  (5)了解软件需求分析的重要性,了解不同软件开发办法来进行需求分析的方式,以及软件需求涵盖不同内容对客户的真实需求描述的实质;

  (8)了解软件测试的实质,了解软件测试包含的技术内容和软件测试用例产生方法;

  重点:软件生命周期、项目开发计划、需求分析、软件设计、软件实现、软件测试、软件维护等。

  难点:由于学生没有完整的软件开发经验,如何加深学生对软件生命周期各个阶段的理解是本章内容的重点和难点。

  作业:根据课程讲解内容,结合已有的软件项目经验来理解软件生命周期的不同阶段

  课外学习要求:能够理解软件生命周期,以及理解不同软件开发方法设计的生命周期阶段

  结合软件业务需求与非业务需求的重要性,讨论所学知识与精神力量之间的关系。强调只有拥有了正确的人生观、价值观、世界观,才能有效利用所学知识来实现人生理想。

  本知识点的讲授和学习,可以支撑“课程目标2:理解结构化软件测试方法原理,能够应用黑盒测试,白盒测试方法测试软件”、“课程目标3:理解面向对象的软件测试方法原理,能够分析系统状态图及脚本,编写测试用例”、“课程目标4:能够应用软件项目管理、软件风险管理的方法”、“课程目标6:能够应用结构化分析、设计和实现的方法,结合项目需求提出目标系统可行的解决方案;能够分析软件模块独立性,能设计模块接口、过程,并能分析并解决小型软件项目中遇到的很多问题”、“课程目标7:能够应用面向对象的分析、设计和实现方法,结合项目需求提出目标系统可行的解决方案;能应用UML,对行业需求来做系统领域建模和划分”和“课程目标10:具备自我评价能力和职业规划能力”。

  重点:结构化分析概念,数据流图、处理/加工逻辑说明、状态转换图和数据模型

  难点:掌握数据流图、处理/加工逻辑说明、状态转换图和数据模型等内容的相关概念和设计方法

  了解结构化方法学软件开发中的应用,了解如何分析国家面临的问题,能够从行为角度对问题进行详细描述。

  本知识点的讲授和学习,可以支撑“课程目标6:能够应用结构化分析、设计和实现的方法,结合项目需求提出目标系统可行的解决方案;能够分析软件模块独立性,能设计模块接口、过程,并能分析并解决小型软件项目中遇到的很多问题。”

  作业:根据本章的学习内容,对前期的软件需求分析内容做设计,得到结构化设计中的相关内容。

  课外学习要求:通过项目实践掌握结构化设计的相关方法,能够采用逐步求精等方式来解决复杂结构化软件项目,对中大型软件开发项目的管理方法和设计过程有一定的理解。。

  了解如何从行为角度来设计针对国家面临的问题的解决途径,并能够身体力行,感受作为社会主义建设者的自豪感!

  本知识点的讲授和学习,可以支撑“课程目标2:理解结构化软件测试方法原理,能够应用黑盒测试,白盒测试方法测试软件”、“课程目标6:能够应用结构化分析、设计和实现的方法,结合项目需求提出目标系统可行的解决方案;能够分析软件模块独立性,能设计模块接口、过程,并能分析并解决小型软件项目中遇到的很多问题”和课程目标8:能够应用软件架构及软件设计模式的设计优化方法,能针对具体行业应用设计和优化软件体系结构。

  (2)模块化编码概念、结构化程序的源代码组成、结构化程序的文件组织、结构化模块集成

  (3)结构化测试概念、结构化测试阶段、测试覆盖标准、结构化测试用例设计、结构化实施

  难点:如何采用多文件来组织程序源代码,以及进行代码集成;如何设计符合标准要求的白盒、黑盒测试用例;

  作业:将前期的软件设计内容转换为对应的程序代码,并为各个软件模块及软件设计测试用例。

  了解国家在做各种规划设计后是如何付诸实施,并且检测各个规划的实现效果。理解我国从建国以来取得的辉煌成就来之不易!

  本知识点的讲授和学习,可以支撑“课程目标2:理解结构化软件测试方法原理,能够应用黑盒测试,白盒测试方法测试软件”、“课程目标6:能够应用结构化分析、设计和实现的方法,结合项目需求提出目标系统可行的解决方案;能够分析软件模块独立性,能设计模块接口、过程,并能分析并解决小型软件项目中遇到的很多问题” 和“课程目标9:理解软件团队合作方法,能应用配置管理工具进行团队开发”。

  课外学习要求:学习其他面向对象软件建模技术,掌握UML在面向对象软件开发过程中的应用。

  了解当前国家各种规章制度的拟定形式,思考怎么样才能将各种惠民政策、方针通过有效的途径表达出来,确保各种信息能够被人民准确无误的理解。

  本知识点的讲授和学习,可以支撑“课程目标7:能够应用面向对象的分析、设计和实现方法,结合项目需求提出目标系统可行的解决方案;能应用UML,对行业需求来做系统领域建模和划分”和“课程目标8:能够应用软件架构及软件设计模式的设计优化方法,能针对具体行业应用设计和优化软件体系结构”。

  作业:根据课程教学内容,思考怎么样将面向对象需求建模技术应用于实际项目中。

  了解面向的对象方法学软件开发中的应用,了解如何分析国家面临的问题,能够从实体角度对问题进行详细描述。

  本知识点的讲授和学习,可以支撑“课程目标4:能够应用软件项目管理、软件风险管理的方法”和“课程目标7:能够应用面向对象的分析、设计和实现方法,结合项目需求提出目标系统可行的解决方案;能应用UML,对行业需求来做系统领域建模和划分”。

  重点:分析模型到设计模型的转换、面向对象的模块独立性、软件构架设计方法、软件构件设计方法

  难点:由于学生缺少实际项目经验,如何帮助学生理解软件架构设计和软件构件设计是本章的难点。

  了解如何从个人、组织等角度来思考、设计针对国家面临的问题的解决途径;并能结合身体力行,感受作为社会主义建设者的自豪感。

  本知识点的讲授和学习,可以支撑“课程目标5:理解软件重用的方法和手段”、“课程目标7:能够应用面向对象的分析、设计和实现方法,结合项目需求提出目标系统可行的解决方案;能应用UML,对行业需求来做系统领域建模和划分和“课程目标8:能够应用软件架构及软件设计模式的设计优化方法,能针对具体行业应用设计和优化软件体系结构”。

  作业:将前期的面向对象设计成果转换为面向对象实现代码,以及完成相关的软件测试。

  课外学习要求:理解面向对象设计到面向对象实现的转换过程,明白面向对象测试的方法

  了解如何从个人、组织等角度来思考、设计针对国家面临的问题的解决途径;并能结合身体力行,感受作为社会主义建设者的自豪感!

  本知识点的讲授和学习,可以支撑“课程目标3:理解面向对象的软件测试方法原理,能够分析系统状态图及脚本,编写测试用例”、“课程目标7:能够应用面向对象的分析、设计和实现方法,结合项目需求提出目标系统可行的解决方案;能应用UML,对行业需求来做系统领域建模和划分”、“课程目标8:能够应用软件架构及软件设计模式的设计优化方法,能针对具体行业应用设计和优化软件体系结构”和“课程目标9:理解软件团队合作方法,能应用配置管理工具进行团队开发”。

  重点:软件开发过程,瀑布模型,快速原型法、增量模型、螺旋模型、统一过程、敏捷开发过程

  难点:讲解不同软件开发过程对软件开发的作用及效果,评估不同过程的设置原理

  作业:结合软件生命周期相关知识,理解不同软件过程适合的软件项目,以及软件过程中各个阶段需要完成的任务。

  课外学习要求:结合所学知识来思考已完成的软件项目开发过程,思考哪种过程更加适合于学校软件项目开发,以及各种软件过程适合的目标项目。

  在项目分析过程中,能够最终靠类比方式引入国家在制定各类政策时针对不一样情况采用的工作方式,例如采用敏捷研发思想来理解国家的五年规划;使用瀑布模型的流程来理解港珠澳大桥设计、建设过程;使用能力成熟度模型来理解国家对完成各项任务的组织进行资质和能力评估等。

  本知识点的讲授和学习,可以支撑“课程目标1:理解软件、软件危机、软件工程的定义和内容,能够分析不同模型软件过程的优缺点,将软件开发过程应用于软件开发中”、“课程目标9:理解软件团队合作方法,能应用配置管理工具进行团队开发。”,和“课程目标10:具备自我评价能力和职业规划能力”和“课程目标10:具备自我评价能力和职业规划能力”。

  课外学习要求:能利用本章学习的知识内容,学习管理开发项目,并利用配置管理工具进行团队开发。

  了解怎么样才能做好个人规划、个人时间管理,珍惜有限的生命,采用合适的方式为祖国做出应有的贡献。

  本知识点的讲授和学习,可以支撑“课程目标9:理解软件团队合作方法,能应用配置管理工具进行团队开发。”,和“课程目标10:具备自我评价能力和职业规划能力”和“课程目标10:具备自我评价能力和职业规划能力”。

  课外学习要求:能够按照敏捷思想撰写客户的真实需求,合理估计各个用户故事的任务量以及规划各次迭代。

  引入项目管理知识点内容时,适时能够最终靠类比方式让学生通过项目组织管理的有效性来理解我国国家政体的合理性,让学生了解只有在中国的领导下,才能有效带领中国走向复兴,才能让人民群众过上幸福的生活;同时,能借助风险管理来让学生了解中国、中国政府在和平时期的工作努力。通过在平时积累救援物资、战略储备物资等,让中国在98年大洪水、汶川地震、疫情期间打赢各场攻坚战中取得一次又一次的胜利。

  本知识点的讲授和学习,可以支撑“课程目标1:理解软件、软件危机、软件工程的定义和内容,能够分析不同模型软件过程的优缺点,将软件开发过程应用于软件开发中”、“课程目标7:能够应用面向对象的分析、设计和实现方法,结合项目需求提出目标系统可行的解决方案;能应用UML,对行业需求来做系统领域建模和划分”和“课程目标9:理解软件团队合作方法,能应用配置管理工具进行团队开发”。

  作业:将前期的软件项目需求转换为人机交互界面,并对各个界面元素进行说明。

  介绍中国政府实施的便民措施设置方式,分析国家如何将复杂的办事流程通过简明、便捷的方式呈现给人民群众,优化政府与人民之间的沟通途径,提高人民的幸福感和满意度。

  本知识点的讲授和学习,可以支撑“课程目标4:能够应用软件项目管理、软件风险管理的方法”、“课程目标5:理解软件重用的方法和手段”、“课程目标9:理解软件团队合作方法,能应用配置管理工具进行团队开发”和“课程目标10:具备自我评价能力和职业规划能力”。

  了解分析问题、设计解决方案和实现设计,以及项目管理方面的相关联的内容。让学生能够综合运用所学知识来分析当前社会中存在的很多问题,并能够结合所学知识来分析问题,设计合适的解决途径,并身体力行,勇于实践。通过项目管理锻炼学生在实践中逐渐完备自我,提升个人的认识,争取作对国家、社会有用的人。

  本知识点的讲授和学习,可以支撑“课程目标1:理解软件、软件危机、软件工程的定义和内容,能够分析不同模型软件过程的优缺点,将软件开发过程应用于软件开发中”、“课程目标2:理解结构化软件测试方法原理,能够应用黑盒测试,白盒测试方法测试软件”、“课程目标3:理解面向对象的软件测试方法原理,能够分析系统状态图及脚本,编写测试用例”、“课程目标4:能够应用软件项目管理、软件风险管理的方法”、“课程目标5:理解软件重用的方法和手段”、“课程目标6:能够应用结构化分析、设计和实现的方法,结合项目需求提出目标系统可行的解决方案;能够分析软件模块独立性,能设计模块接口、过程,并能分析并解决小型软件项目中遇到的很多问题”、“课程目标7:能够应用面向对象的分析、设计和实现方法,结合项目需求提出目标系统可行的解决方案;能应用UML,对行业需求来做系统领域建模和划分”、“课程目标8:能够应用软件架构及软件设计模式的设计优化方法,能针对具体行业应用设计和优化软件体系结构”、“课程目标9:理解软件团队合作方法,能应用配置管理工具进行团队开发”。

  全书共5篇、14章,涵盖软件工程领域涉及的主要内容。前四篇内容最重要的包含:软件的发展历史,软件的定义和特点,软件危机产生的原因,软件工程产生的背景以及软件生命周期中各阶段的工作;如何利用数据流图、状态转换图和数据字典等来建模客户的真实需求,如何采用层次图、IPO图及程序流程图来设计软件,如何有效地将结构化设计结果转换为程序代码,对完成的软件来测试;如何提取客户的真实需求、分析用户活动、建模系统状态、提取类的候选者和类关系,对象之间如何交互来完成业务逻辑、怎么来实现面向对象设计结果,为以面向对象方法实现的软件设计测试用例;经典的软件开发过程、现代主流的软件开发过程以及项目开发过程中的管理实践。最后一篇讲解腾讯企业内部的敏捷开发流程和开发平台,以及结合领域驱动设计总结如何分析、设计和实现云原生软件系统。

  本书配有1000分钟左右的MOOC视频、教学大纲、PPT课件、习题等丰富的教学资源。

  本书可作为高等学校计算机相关专业的教材、软件工程专业的导论课教材,也可作为计算机软件相关领域从业者的参考资料和相关培训的教材。