首页 > 其他分享 >软件工程项目感想

软件工程项目感想

时间:2022-12-21 21:58:29浏览次数:52  
标签:项目 代码 感想 习惯 面向对象 软件工程 测试 过程

软件工程项目感想

软件工程课程必然是一门实践的课程,而笔者对这门课程的实践也是刚刚完成。

写了一个小程序,“你帮我助”。不妨看看笔者在这门课上学到了什么,作为一个checklist来看看有没有学以致用:

  • 概论
  • 个人软件过程
  • 可行性分析
  • 需求
  • 形式化方法
  • 总体设计
  • 详细设计
  • 实现
  • 维护
  • 面向对象方法
  • 面向对象分析
  • 面向对象设计
  • 面向对象实现
  • 项目管理

概论,及其他

可行性分析、需求,想必是老师出题时已经帮我们做好了,至于个人软件过程,也是贯穿始终的。选择了Python语言,类的定义全部用了大驼峰,而其他均采用了下划线分隔,注释了函数接口和关键代码等等......个人风格想必是一个习惯养成的过程,希望未来也可以慢慢养成“诗一样代码”的习惯。

设计

回想设计过程,也是非常简单的。总体设计上来说,独立模块化是必定的,内聚耦合也在注意了,总体设计非常简单,模块及其域非常明显,并没有花太大气力。感受上,这些设计方法是一些内化于心,外化于形的方法论,是一种思路,是一种思维方式,更是一种思维习惯。真正去做时,好像也并没有刻意去使用课堂所学内容;而做完回顾时,发现课堂所学内容已然彻底改变了笔者的思维方式。

详细设计也是没有花费太大气力,稍微想想,手就不由自主地放在键盘上开始码了。现代高级语言很难写出非结构化的代码了,而设计好后,也很难写出需要用图才能说明逻辑的代码了。

实现

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

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

面向对象

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

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

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

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

软件工程

软件工程是一门科学

人脑是有限的,系统是复杂的。如何让有限的小大脑,去制造、维护一个很大的系统,必然是一个值得研究的学问。

计算机是一个无比复杂的系统,而它搭建了一个更广阔的平台——其上可以搭建无限复杂的软件!

软件可以无限复杂,研究软件工程,想必可以推广到对于其他系统的制造与维护。

软件工程是一门学科,是一门科学;科学本身是不是一项工程呢?物理学构建于定理之上,一个定理不就是一个对象吗,是属性(物理量)和操作(方程)的集合,牛顿之后,有了量和方程的加持,物理学才真正拨云见日成为一门科学。能够帮助人类搭的更高的学科,是科学中的科学。

软件工程是一种习惯

知是行的主意,行是知的功夫,软件工程的学习中,笔者真正体会到了知行合一——行时自然是知,不知自然不行。课上所讲微言大义,有时着实难以具象理解。但真到行时,才发现知识已然内化于心。

真正的软件工程并不是背会的,并不是考的了的,而是在行动中体会到的习惯——不,笔者的经验是,是行动中都体会不到的习惯。方法论运用熟练之时,自然成为一种思考习惯,行事习惯,软件工程,就是这样一种习惯。

标签:项目,代码,感想,习惯,面向对象,软件工程,测试,过程
From: https://www.cnblogs.com/dobyxu/p/16996947.html

相关文章

  • [vue项目] 后台管理 11111111111111111
    文章目录​​gitee地址​​​​登录业务解析​​​​退出登录​​​​模板结构图​​​​路由的搭建​​​​品牌管理​​​​table数据渲染​​​​分页器​​​​点击添加......
  • 谈谈项目中单点登录的实现原理?
    注:单点登录原理是一个重要知识点,也常被问及,很多童鞋照葫芦画瓢搭建过单点登录,但是被问到原理时可能说不出来,下面简单介绍,抛砖引玉,希望对大家有所帮助。单点登录在现在的系......
  • 今日内容 docker-compose部署项目
    私有仓库#dockerpull拉取,都是从hub.docker上拉取的,公司自己做的docker镜像,放在哪比较合适#dockerpush推到hub.docker,如果是公开,大家都可以下载,公司内部只希......
  • HaaS EDU物联网项目实战:老板来了
    HaaSEDUK1是一款高颜值、高性能、高集成度的物联网开发板,板载功能强大的4核(双核300MhzM33+双核1GHzA7)主芯片,2.4G/5G双频Wi-Fi,双模蓝牙(经典蓝牙/BLE),并自带丰富的传感器与......
  • 将微服务项目利用Docker部署到服务器
    一、Docker基本知识写DockerFile文件创建自己的镜像volumn挂载目录容器间通信:同一network下docker-compose进行多容器部署二、部署过程(docker-hub网站里有现成容器部......
  • 【校招VIP】推推产品项目课:从脑图到原型图,重点在于功能细节和用户交互
    VIP的服务,不一样的校招。大家好,我是校招VIP的大拿老师,我们今天继续商业实战项目:【推推】的小说详情模块原型图部分。在上节课中我们把脑图的逻辑讲完了,这节的原型图对产品......
  • Docker+Jenkins+Gitee+Maven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到
    场景CentOS中使用Docker安装Jenkins:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119911722在上面使用Docker部署起来Jenkins的基础上,怎样拉取SpringBoo......
  • 手机端GIS软件在工程项目设计施工阶段的应用
    外业精灵是由中科图新(苏州)科技公司研发的一款内外业一体化数据采集软件,支持在线、离线地图格式,能够在野外环境下断网使用。该系统适用于林业调查数据采集、农业巡检以及公......
  • 使用 Maven 构建 Java 项目
    本指南将引导您使用Maven构建一个简单的Java项目。您将构建的内容您将创建一个提供一天中的时间的应用程序,然后使用Maven构建它。你需要什么约15分钟最喜欢的文本编辑......
  • 使用 Gradle 构建 Java 项目
    本指南将引导您使用Gradle构建一个简单的Java项目。您将构建的内容您将创建一个简单的应用程序,然后使用Gradle构建它。你需要什么约15分钟最喜欢的文本编辑器或IDEJD......