数据库课程设计总结

wargrey 2008-06-24 10:46:00
这个本该是在项目完成之后才写的,但是因为一些主客观原因,本项目还没有实现完成,因此没有“可运行的代码”。
由于平时接触的都是一些私人项目,这些项目大都是一些类库,其他人的交流相对可以忽略不计,因此也就不考虑规范化的文档。实际上从学习的经历来看,我们接触的知识体系都是属于比较老或比较传统的,与现在发展迅速的IT行业相比很多情况已不再适用,尤其是当开源模式逐渐走近开发者后更是如此。
虽然这次是一个数据库课程设计,由于本人在选择项目的时候是本着对自己有实际应用价值的角度考虑的,所以其中也涉及到一些数据库以外的设计。对于OOA/OOD的开发模式有时不免要提出一些疑问,UML是设计阶段的工具,而它基本涵盖了软件设计的方方面面,也就是说按照这一软件工程的正常流程,在动手写第一句代码之前,开发人员已经非常熟悉软件产品了,这对于相当有经验的架构师一类人说可能会很容易,但是我们作为学生,连足够的编码经验都没有,却首先被教授并要求先OOA再OOP,这样直接导致的问题就是文档与编码对不上号,在修改代码的时候基本不会再去审查文档和先前的分析。甚至根本就是现有代码再有文档,即便是这种情况,代码与文档还是不对应。不可否认,在传统软件工程的详细设计之前的项目过程中还是有很多利于项目开发的部分的。所以我就一直在寻找适合我——针对探究型项目——的开发模式,这次的项目也算是一次尝试,当然这个过程并不会太短。
回到数据库设计上了,这次的数据库设计我是严格按照数据库建模的步骤来进行的,老实说我并没有感觉这样的流程对开发带来多大的帮助,反倒是觉得将思维转化为图表很浪费时间。总体上来说这次的项目也不是很大,而且在数据库的设计上比较保守,也就是说实际上数据库设计还可以再完善完善的。随着我对计算机领域的拓宽和加深,我也会静下心来思考在接触计算机之前的行为,很多次我能深切感觉到,其实我的大脑(未于别人比较)本身就是在使用一种更接近关系数据库的方式来记忆,所以我很可恨自然的设计出符合三范式的表结构来,即便我不知道这些范式的确切含义。可能就像“范式不太容易用通俗易懂的方式解释”一样,在“让工具用图标表述我的思维”时费了一番力气。
从我作为项目的提出人和实现者来看,这是个失败的项目,结合几次教学项目的的实践,发现这也已经不是第一次了。主观原因占多数,比如,尝试新的开发方式,根据设计花了太多的时间来抽象出公用的库而忽略业务逻辑。就这次项目而言,失败的原因有以下几点:
1.使用了新的开发环境(Vim),这是首次在脱离高级IDE的情况下编码。
2.使用了新的开发语言(Python,Actionscript3),因为我一直比较喜欢“学以致用”,而且这样的“数据驱动型”软件的整套自实现的库都已经完成了,但是由于语言本身的差异,迁移时问题很多,当发现这一点是,已没有多少有效剩余时间了。
3.编码流程的不妥,我比较喜欢从底层的库开始开发,因为一旦库测试通过,将很容易将它放到不同的表示层下。但如果库没有测试成功,将导致整个项目没有任何可视化模型,所以这次的项目无法提交“可运行的代码”。
4.实践目的的不同,我轻易不放弃锻炼的机会,事实上,有机会就一定要比以前有所突破,总是照搬以前的做法还不如就不做呢。这个前提是因为现在能完全用来的学习的时间比较多,等到工作时再这样做的可能性就很小了,因此当然要抓紧机会了。不过还有一个隐藏原因,总以为自己很了不起,其实“遇到的问题数跟人的能力是成正比的”。
5.客观原因在这里就不说了。
由于项目还未完成,暂时无法提出需要改进了地方。
...全文
12413 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsalsalsa 2008-12-26
  • 打赏
  • 举报
回复
一切顺其自然吧,感觉不设计也能编码,就不设计,或者只在草纸上按自己的想法简单的画一下也行。
等到项目做多了,自然就能发现设计的必要性了,此时再按需求慢慢的做一些简单的设计,逐渐加深。。。
kelph 2008-06-27
  • 打赏
  • 举报
回复
感觉LZ应该是更偏好技术
爱好是源泉,建议在技术上发展,目标是某公司的CTO
cmm2cmmi 2008-06-27
  • 打赏
  • 举报
回复
别太着急,可以去考考软件设计师,系分什么的

多学点没坏处

OOA-OOD-OOP
相对比较好

之后可以系统学习一下CMMI

以后走技术的话可以向架构方面转
走管理的话可以向pm转

祝你成功
cmm2cmmi 2008-06-27
  • 打赏
  • 举报
回复
软件工程的东西,要先有个概念,
再做项目体会

在结合公司实际,裁剪理论,裁剪不单单指删除,还有增加
cmm2cmmi 2008-06-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wargrey 的回复:]
引用 5 楼 CMM2CMMI 的回复:
肯于实践和总结是好的
这点要肯定和鼓励

自己开发不同于团队开发,要考虑沟通的信息损失问题

没有流程没有文档对团队开发来说是很不幸的一件事,有人可能觉得敏捷开发不需要很多东西,其实敏捷开发需要的知识更多,技能要求更高。

简单说说,仅供参考

祝你成功~~


这位大哥,我像问一下,对于学生,刚刚接触软件工程并且没有足够编码的情况下面向对象的软件工程和极限编程…
[/Quote]
wargrey 2008-06-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 CMM2CMMI 的回复:]
肯于实践和总结是好的
这点要肯定和鼓励

自己开发不同于团队开发,要考虑沟通的信息损失问题

没有流程没有文档对团队开发来说是很不幸的一件事,有人可能觉得敏捷开发不需要很多东西,其实敏捷开发需要的知识更多,技能要求更高。

简单说说,仅供参考

祝你成功~~
[/Quote]

这位大哥,我像问一下,对于学生,刚刚接触软件工程并且没有足够编码的情况下面向对象的软件工程和极限编程,哪个更适合一些?如果都不考虑与客户交流方面。
wargrey 2008-06-27
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 kelph 的回复:]
感觉LZ应该是更偏好技术
爱好是源泉,建议在技术上发展,目标是某公司的CTO
[/Quote]

实际上我对职位什么的不感兴趣,学习更多是本着能提高自己的角度出发,比较向往隐居的生活。
有时侯很担心这样的我在社会上有没有竞争力。
wargrey 2008-06-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 CMM2CMMI 的回复:]
别太着急,可以去考考软件设计师,系分什么的

多学点没坏处

OOA-OOD-OOP
相对比较好

之后可以系统学习一下CMMI

以后走技术的话可以向架构方面转
走管理的话可以向pm转

祝你成功
[/Quote]

这个建议确实不错,我目前参与的软考偏向网络,通过自己的经历和与同学的交流,这样的考试不参加也罢,试卷太没水准,真正的为它努力过才是真。
wargrey 2008-06-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 CMM2CMMI 的回复:]
软件工程的东西,要先有个概念,
再做项目体会

在结合公司实际,裁剪理论,裁剪不单单指删除,还有增加
[/Quote]

谢了
cmm2cmmi 2008-06-26
  • 打赏
  • 举报
回复
肯于实践和总结是好的
这点要肯定和鼓励

自己开发不同于团队开发,要考虑沟通的信息损失问题

没有流程没有文档对团队开发来说是很不幸的一件事,有人可能觉得敏捷开发不需要很多东西,其实敏捷开发需要的知识更多,技能要求更高。

简单说说,仅供参考

祝你成功~~
kelph 2008-06-26
  • 打赏
  • 举报
回复
如果你总结出你的过程与你的目标相符,那么你的项目就是成功的
wargrey 2008-06-26
  • 打赏
  • 举报
回复
谁跟下就可以结帖了啊,
谢谢
wargrey 2008-06-25
  • 打赏
  • 举报
回复
发此贴的目的是为了和大家分享经验,也希望能与更多感兴趣的朋友交流
wargrey 2008-06-24
  • 打赏
  • 举报
回复
标题自数的限制已经没了。

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧