首页 > 其他分享 >软件工程课程总结

软件工程课程总结

时间:2022-12-27 20:11:31浏览次数:37  
标签:总结 课程 代码 面向对象 软件工程 测试 软件 过程

概论,及其他

可行性分析、需求,都是软件设计前需要做好的事情,在方方面面都很重要,在这几章中,我们大致了解了软件工程及各种设计流程。

设计

回想设计过程,也是非常简单的。总体设计上来说,独立模块化是必定的,内聚耦合也在注意了,总体设计非常简单,模块及其域非常明显,并没有花太大气力。感受上,这些设计方法是一些内化于心,外化于形的方法论,是一种思路,是一种思维方式,更是一种思维习惯。真正去做时,好像也并没有刻意去使用课堂所学内容;详细设计也是没有花费太大气力,稍微想想,手就不由自主地放在键盘上开始码了。现代高级语言很难写出非结构化的代码了,而设计好后,也很难写出需要用图才能说明逻辑的代码了。

实现

实际上实现和详细设计是同时进行的了——因为在强大的方法论下,这两个过程都变得如此简单。麻烦的倒是测试过程了。写了三个模块,每个模块中都有些子模块(类),用了Python,测试起来也很方便,于是乎每个类方法都经过了白盒测试,每个模块都经过了子系统测试,整体也做了系统测试。

用了Python,自底向上的测试非常方便。也体会到了回归测试过程,也试图找朋友做了α测试。说来神奇,代码这种神奇的东西,其逻辑复杂度已远超出个人所能理解,也就导致了代码有了bug便是头疼脑热也解决不了;而软件工程却将其逻辑复杂度break down,让一个人能够管理的代码大大增加。至少笔者在这次开发实践当中,再也没有出现过头疼脑热找不到bug的经历了。

面向对象

用了Python,写的程序很难不面向对象了,分析实现的思路也很难不面向对象了。类图、用例图、顺序图画出来后,代码也基本上写好了。

除了UI部分。实际编程过程中,UI和控制流很难分开,顺序图画的顺序,基本上是实现UI时控制流的蓝图。这部分代码,虽然是写在UI类里,但是很大程度上是面向过程的了。

但是,在面向过程的过程中,笔者切切实实地体会到了面向对象的畅爽——过程里是对象的舞台,诸多功能可谓一触即达——封装严密,测试完善的功能。大部分代码量是在处理与用户交互的数据(所以不得不面向过程),但是数据准备好后,只需往对象方法接口里一送,便是获得了return的结果。

面向对象是更精密更成体系的模块化,更是拓展了个人得以处理得以理解的代码范围。

总结

在以前,我一直对软件工程存在一些未知与误解。认为软件就是程序,软件开发就是编写程序的过程,只要完成程序的编写,那么软件也就宣布着成功开发。而且我还片面的认为只要我掌握了当下最流行的编程语言与其开发工具,就能很好的编写出一个程序。一个人只要会编程,就能写软件,就是程序员。一个公司,只要招聘一些程序员,就能开发很好的软件产品。只要有几个有经验的程序员,在找些兼职的大学生,就能组成一个软件公司。但是,通过学习了软件工程后,让我恍然大悟。软件其实不仅仅是个程序,软件开发也不是简简单单编写程序的过程。软件是思想在硬件上的载体与体现,处理的是逻辑与信息。唯有对软件和软件开发过程有充分的认识,才能更好的开发出,过程受控,质量受控的软件产品。

  

标签:总结,课程,代码,面向对象,软件工程,测试,软件,过程
From: https://www.cnblogs.com/duruoping/p/17008893.html

相关文章

  • 链路跟踪Jaeger使用总结
    背景当系统架构变得越来越复杂后,我们一次前端请求,有可能要经历跨多个线程/跨多个协程/跨多个进程处理后,才会最终响应到客户端,如果请求按照预期正确执行还好,万一在某个调用链......
  • JMeter压力测试总结
    ​​Apache​​​ ​​JMeter​​​是​​Apache​​​组织开发的基于Java的压力测试工具。用于对软件做压力测试,相比其他HTTP测试工具,JMeter最主要的特点在于扩展性强。J......
  • Tomcat使用总结
    1.下载的点已经更改:TOMCAT官网:​​http://tomcat.apache.org/​​插件官网 ​​http://www.eclipsetotale.com/tomcatPlugin.html​​2.Eclipe下......
  • Prometheus的使用总结
    一、Prometheus是什么?Prometheus是一套开源的系统监控报警框架。它受启发于Google的Brogmon监控系统,由工作在SoundCloud的前google员工在2012年创建,作为社区开源......
  • Morn UI 学习总结
    1.内嵌模式和加载模式内嵌模式和加载模式都是针对UI界面的XML而言的,内嵌模式是将UI视图XML结构内嵌在UI类里面,加载模式是把所有界面XML压缩打包为二进制数据,使用时再加载解......
  • btrace使用总结(完全突破安全限制,引用第三方包)
    由于认识J​​AVA代码热更新​​在先,所以Btrace这一神器似乎失去了一些光芒,但他的优势是无任何侵入性,可以做一些代码热更新没法做的事情,做到两者互补。比如1可以直接运行ja......
  • 阿里云的数据风控试用总结
    使用背景:由于一款游戏经常会被盗号,小号肆虐,会对游戏的正常运营产生很负面的影响,急需找一款风控产品来解决这个问题。那么,这些行为都有哪些特征呢?盗号,基本都是暴力,撞库后异地......
  • Egret Wing使用总结
    1-第三方框架安装 初始化 npminit-f,相应的就会生成package.json然后,再安装所需框架比如:npminstalllog4js卸载npmuninstall模块:删除模块,但不删除模块留在package.......
  • 数据库连接池Druid使用总结
    根据综合性能,可靠性,稳定性,扩展性,易用性等因素替换成最优的​​数据库​​连接池。Druid:druid-1.0.29数据库 Mysql.5.6.17替换目标:替换掉C3P0,用druid来替换替换原因:1、......
  • JIRA系统使用总结
    每天JIRA会备份两次在这个目录/var/atlassian/application-data/jira/exportJIRA系统遇到损坏,可能是索引目录损坏可以重构索引 索引路径/var/atlassian/application-data......