概论,及其他
可行性分析、需求,都是软件设计前需要做好的事情,在方方面面都很重要,在这几章中,我们大致了解了软件工程及各种设计流程。
设计
回想设计过程,也是非常简单的。总体设计上来说,独立模块化是必定的,内聚耦合也在注意了,总体设计非常简单,模块及其域非常明显,并没有花太大气力。感受上,这些设计方法是一些内化于心,外化于形的方法论,是一种思路,是一种思维方式,更是一种思维习惯。真正去做时,好像也并没有刻意去使用课堂所学内容;详细设计也是没有花费太大气力,稍微想想,手就不由自主地放在键盘上开始码了。现代高级语言很难写出非结构化的代码了,而设计好后,也很难写出需要用图才能说明逻辑的代码了。
实现
实际上实现和详细设计是同时进行的了——因为在强大的方法论下,这两个过程都变得如此简单。麻烦的倒是测试过程了。写了三个模块,每个模块中都有些子模块(类),用了Python,测试起来也很方便,于是乎每个类方法都经过了白盒测试,每个模块都经过了子系统测试,整体也做了系统测试。
用了Python,自底向上的测试非常方便。也体会到了回归测试过程,也试图找朋友做了α测试。说来神奇,代码这种神奇的东西,其逻辑复杂度已远超出个人所能理解,也就导致了代码有了bug便是头疼脑热也解决不了;而软件工程却将其逻辑复杂度break down,让一个人能够管理的代码大大增加。至少笔者在这次开发实践当中,再也没有出现过头疼脑热找不到bug的经历了。
面向对象
用了Python,写的程序很难不面向对象了,分析实现的思路也很难不面向对象了。类图、用例图、顺序图画出来后,代码也基本上写好了。
除了UI部分。实际编程过程中,UI和控制流很难分开,顺序图画的顺序,基本上是实现UI时控制流的蓝图。这部分代码,虽然是写在UI类里,但是很大程度上是面向过程的了。
但是,在面向过程的过程中,笔者切切实实地体会到了面向对象的畅爽——过程里是对象的舞台,诸多功能可谓一触即达——封装严密,测试完善的功能。大部分代码量是在处理与用户交互的数据(所以不得不面向过程),但是数据准备好后,只需往对象方法接口里一送,便是获得了return的结果。
面向对象是更精密更成体系的模块化,更是拓展了个人得以处理得以理解的代码范围。
总结
在以前,我一直对软件工程存在一些未知与误解。认为软件就是程序,软件开发就是编写程序的过程,只要完成程序的编写,那么软件也就宣布着成功开发。而且我还片面的认为只要我掌握了当下最流行的编程语言与其开发工具,就能很好的编写出一个程序。一个人只要会编程,就能写软件,就是程序员。一个公司,只要招聘一些程序员,就能开发很好的软件产品。只要有几个有经验的程序员,在找些兼职的大学生,就能组成一个软件公司。但是,通过学习了软件工程后,让我恍然大悟。软件其实不仅仅是个程序,软件开发也不是简简单单编写程序的过程。软件是思想在硬件上的载体与体现,处理的是逻辑与信息。唯有对软件和软件开发过程有充分的认识,才能更好的开发出,过程受控,质量受控的软件产品。
标签:总结,课程,代码,面向对象,软件工程,测试,软件,过程 From: https://www.cnblogs.com/duruoping/p/17008893.html