高级软件工程课程总结及收获感想

一、学习收获和感想

        从本学期孟老师的软件工程课程学习中,我收获良多。本学期的软件工程课程安排是从实践到再到理论学习,让我对课程的学习有了一种比较全新的体验。
本学期的学习内容如下:
第一节:工欲善其事必先利其器
介绍了软件编程使用的功能丰富的编译器VSCode,代码管理工具Git以及常用的匹配工具正则表达式;
第二节:代码中的软件工程-工程化编程实战
介绍了C++的编译环境,代码的规范,提高软件质量的基本方法。使用menu程序用实践讲解程序的模块化设计以及软件的可重用设计,还有一些软件的设计技巧,如回调函数。最后要求使用GO语言重现menu程序;
第三节:从需求分析到软件设计
介绍了进行需求分析和建模的步骤以及从需求分析到软件设计的步骤,包括用例建模,业务领域建模,对象交互建模的一些步骤;
第四节:软件科学基础概论
介绍软件的一些基本构成元素,软件的基本结构。最后介绍了面向对象的设计模型和设计原则,常见的软件架构以及软件质量需求;
第五节:软件危机和软件过程
介绍了软件危机和一些软件过程模型。

        因为在本科阶段也上过软件工程课程,不过软件工程课程一般的教学安排都是先将软件工程的历史和相关概念,软件工程的建模方法,软件工程建模需要画的图,以及软件的开发流程,最后再要求学生根据上课内容,按照软件工程上课时教的开发流程,完整的开发一个软件,写好工程文档提交。
        而这学期的软件工程并不同于以往的软件工程教学模式。课程首先是介绍了一般在进行软件开发时候一般需要用到的工具,介绍使用的编码工具vscode,软件的代码管理工具git以及一般需要用于字符串匹配,代码搜索和替换的正则表达式。
这些知识点对于软件编码实践过程中是比较有用的,这些一般都是在工作中和编码中用到的,也是第一次在课堂上学到。之后要求使用Go语言,按照课程要求编写一个模块化,可重用的命令行菜单程序。因为在有需求,所以才需要去学习相关代码和知识。完成程序的编码后,才开始学习软件的开发方法,从需求分析到软件设计,软件开发的过程,学习软件的设计原则和设计模式。在最后的课程结尾才学习软件工程的一些相关概念以及一些软件开发模型。
        这种从先实践后理论,用需求驱动学习的教学方式我觉得受益良多。在本次课程中不仅通过自学学到了一门新的计算机语言,并通过编码加深了对Go语言的学习。课程开始对菜单程序的学习是对软件开发的简单入门,之后对通过软件工程的系统学习,对之前的菜单程序进行进一步修整,加深对软件开发流程的印象,修正之前对软件的一些地方的处理,提高软件的质量。
        对于这种通过实践驱动去学习新知识的模式我个人是比较赞同的,因为自己私下的学习也发现通过看书学习的知识并不牢固且当一段时间没有去看就会忘的很快,基本是在浪费是。而通过软件编程,之后看到不会的地方再去学习相应的知识,我感觉这种学习方法不仅学习效率高,而且知识点能记得更牢。

二、对软件工程的理解

        软件工程是把用户需求转换成软件需求,将软件需求转换为软件设计,用代码实现软件设计,最后实现软件测试、部署和投入使用的开发过程。其中:
        首先通过用户的需求描述,提取关键步骤进行剧情描述,之后构建剧情描述表,给出每个剧情的关键步骤,包括开始和结束的状态,最后根据剧情描述表构建序列图,得到软件需求。
        之后进行软件设计,根据序列图和剧情描述表画出软件的UML例图,根据UML例图画出每个对象和关联关系的类图。
        根据类图和之前的设计进行软件编码开发,开发出符合预期要求的可运行的软件。最后对开发的软件使用各种测试方法进行测试,测试其各个功能及稳定性,最后通过审核完成部署和使用。
        此外尽管软件的开发流程是如此,但是软件的开发过程还有不同的开发模型,如瀑布模型、螺旋模型、喷泉模型和智能模型等。
        可见软件的开发并不是一蹴而就的。以前我认为软件的开发就是编码,写代码,想到什么功能就完成什么功能。之前学习一系列软件开发使用的图形向UML例图和类图等我都觉得是在浪费时间,软件不是直接写就好了吗。
        但是当对一个比较大的系统进行软件代码编写时才能体会到如果不按正常的软件工程步骤进行开发,不仅会加大工作量,并且会导致代码的质量低下,模块间耦合度高,不利于维护和扩展。当加入一个新模块可能会导致牵一发而动全身,需要修改软件的很多地方。所以软件设计和软件相关文档的撰写是至关重要的。
        软件工程其实和建筑工程一样,同样需要预先进行整体的设计,通过一系列文档和关系的定义,才能保证楼层从低往高搭建能更加稳固。所以软件开发文档的撰写和软件开发流程的设计是必不可少,不可避免的。不然只会导致随着楼层越来越高,地基不稳,最后只能是危楼。
        并且大型软件的开发并不是单人工作,软件的开发是需要通过团队合作进行的,这时软件的设计和文档的撰写就显得至关重要了,因为软件设计和文档是团队了解软件和沟通的重要工具,软件的开发不是一个人说几句话记录就好,是需要通过团队讨论,设计,最后拍板决定的。
        软件工程是门艺术,是一门更好的开发出更完善的软件的艺术。

参考资料:代码中的软件工程 https://gitee.com/mengning997/se
学号:498

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值