本学期我校某位编书神教授给我们上软件工程, 期间布置了一套软件工程实践作业.
万分艰难的从一堆烂题目里选了一个看起可以做的比较贴近现实的东西: ftp文件检索系统.
我之前实习(三个, 均非外包, 没有大公司经验) 和 接活(基本都是前端或者后端开发, 也有各种为各种烂系统善后的经验)
都没接触过用这种看起来很"正规", 好像很"规范"的大型项目, 从需求分析开始, 到详细设计云云.
到上个月底, 教授要搞PPT 交流, 遂, 做了从需求设计到详细设计, 憋了一份出来.
分成下面三大块
- 需求分析与需求规格
- 调查研究 (引用了一篇2003年的论文, FTP相关搜遍知网也就那篇对得上号)
- 可行性研究 (引用了RFC 2228, 提了几句做这个东西的必要性)
- 功能需求 (分了四个模块)
- 文件检索反馈 (提供查询的前端)
- 文件索引维护 (存储文件信息的后端)
- 搜索索引维护 (为文件信息建立索引的后端)
- 系统维护管理 (管理后端)
- 系统设计
- MongoDB 实现文件索引维护部分
- Elasticsearch 实现搜索索引建立
- Python 实现查询和维护部分, 以及获取文件索引的爬虫.
- 详细设计
- 详细设计
- 由FTP爬虫或在各FTP服务器上的索引程序对文件进行索引。(涉及FTP爬虫或索引生成程序)
- 文件索引服务器接收到文件索引后入库存储。(写入MongoDB)
- ElasticSearch搜索索引服务器通过elasticsearch-river-mongodb 插件,监视数据库op日志,进行相应的索引更新。
- 前端搜索服务器使用curl方式向搜索索引服务器提出搜素请求。(涉及网页前端和后端,编写以及查询和页面缓存设计)
- 最后提了下集群方面的事情.
- 详细设计
遂, 到了要“分享”的那天, 瞄了一眼同学的ppt, 哇, 全是流程图, 数据流图, 数据库er图, 完全不涉及任何技术相关问题, 只有干巴巴的结构.
原来要这样?!
意料之中, 或者又在意料之外, 老师赠与以下几点评价:
- 你这个这么早编程干嘛? 我要看到的都没看到.
- 你这个脱离了这个什么, 搞的不对
事后几节课, 可能是听者有意, 应该是在说别人吧:
- 太早编程, 就是完全一点也不懂软件工程
- 论文你引个11年 12年的也算老了, 之前的完全是怎么怎么
- 你们这个毕设就要根据我这个东西搞, 不能缺项
至此, 我至今为止经历的猎奇冒险到此结束.
问题, 所以软件工程在实际工作时候到底是怎么个样子? 所以我上面的设计是偏离软工的吗?
软件工程的真谛是设计和划分模块阶段要完全和技术分离开?
问题的出发点是好奇, 个人看法是, 这套东西实用度很低..