前言
暑假,意味着我们上半年的课程结束,休假回家以度过难熬酷暑,而今年的暑假意义非凡,从今天来看,意义更加深远不少。想来人们总是把最开始的和最后的看的重一些,而今这就是最后一期的第一个暑假学习。
7月份考试结束了,按照安排大家都能回家短暂休息5天,而5天后我们将进行将近50天的集中学习,兴奋 ,以致亢奋。
从总体来看我对于在信息技术提高班的学习一直都是出于十分激动状态的,我激动是因为我在这里看到的曙光是那么的闪烁,我激动时因为我在这里能有一个这么优秀的指导老师教导我们,不只是教授我们专业技术知识,更多的还是在潜移默化中培养我们的素质,锻炼我们的能力和品质。对于参加信息技术提高班的初衷我也多次在博客里说过,对于得不到太多中肯的学习教育理念确实实在在的发挥着很大的积极作用,毕竟还是与现在所谓的"主体教育理念"是有很大不同的。
细说这个暑假也就是在机房里泡着,泡着学习,泡着学习,来来回回就是积极快乐并且痛苦的学习,之前学习过 SQLServer数据库设计 知识了,正好这个假期有了时间同样也有了实践的机会,按照安排先是模拟 学生信息管理系统 ,自己在大量代码、混乱思维中摸爬滚打,一路走来,发现自己明了了,知道了这个系统的设计原理了。我想更为重要的是我知道了如何在这样具体实例中应用我们在之前学习到的数据库技术。"统"地来说,这也就是认知-- 实践 这一珍贵的过程。
相比虽说我们本科学习中部分课程也有着这样类似的实践课,可是呢?!
形同虚设。为什么?
大家缺乏的是那种积极奋进的精神,缺乏的是拨开云雾见天日的能力。同样在这里,我们来自不同专业的同学们,却是兴致勃勃的进行着探索。这些都来源于我们在这里受到的思想层次的改革,激活了我们自学,自强,自由追逐梦想的源动力。想来用 软件工程学 中的知识理论来说我们就是每一阶段的学习就是一个个的功能模块,组合到一起,(举例不是很恰当哈~ ,当然其中的耦合性会高一些,呵呵),米老师就是相关的软件设计人员,将这些课程,这些知道理论,这些思想层次的精华,很好的整合、揉捏到一起,这样我们认真完成任务了,这个"软件系统"就改交付使用了,这期间的单元测试、整合测试等等,都是需要米老师实时监测、督促的。
前期--整合实练数据库技术
话说回来,在这样一个小小的 数据库 "模块"中,在我们摸索熟悉应用数据库知识以后,老师为了"软件"的健壮性等等考虑,给了我们一个高难度的实例设计,针对已有的情况,让我们自行研究设计 机房收费管理系统 ,而 学生信息管理系统 就起到了一个重要的指导作用。同时摆在我们面前的是又一个新的问题,自行研究分析需求 这个问题说起来也不难,可是就是这样一个浅显的问题却引发了我们又一轮暴风骤雨般的学习。
先说一说这个浅显的问题吧,就是按需分配,通俗一点说就是你有什么需求,我就给你提供什么功能操作。很简单的问题吧~ ,这背后蕴藏着什么呢?从这一个小线头,能从你的大脑里剥离抽象出一些什么东西呢?你知道吗?
我知道!关于软件设计初始,只是简简单单的为了实现某些功能,小打小闹还蛮能凑合过去;真刀真枪,干一场大的,这又如何呢? 工程,(某种程度上说)凡事儿考虑的详细再详细是再好不过了,这就是工程、系统的来处理问题,各个层面、阶段都将犄角旮旯 搜肠刮肚的思索一遍,这做到的是"详"。具体问题细化分析,总结汇报,下派实施具体到每个模块,每个功能的实现,这又做到了"细"。想来各个方面(某种程度上)都想到了,那么做出来的东西就将近"十全九美"了,差的那一美,还就是 具体的用户体验、要求,因为(某些层面上)软件的设计永远不能和用户的规格无缝符合的。说了这么半天软件需要好好设计,这就是由这个浅显问题引出来的我们下一步的课程学习-- 软件工程。
机房收费管理系统这个实例 实际上主要是给(上面提到的) 软件工程 的学习打了基础,其实这样就给了学生继续深入学习的动力,让学生想着去学,思考应该学些什么理论知识来指导接下来的实践工作,同样进一步激发了学生的主观能动性,更加积极主动地去学习。
中期--需求分析引进软件工程
这个阶段是还是比较枯燥的,慢慢把这个阶段走下来,发现自己较刚刚进入信息技术提高班的时候很明显的一个进步之处,就是看视频的过程不再不知所措的在那晃头晃脑了,因为之前我们是看过吉大优秀教师陈伟老师讲解的VB视频的,虽说陈伟老师讲课时很富有激情的,可是我确实是听1听2不听3。最主要还是没有毅力,坚持不下去,总结后究其原因还是自己的主动性和自己对自身知识"漏洞"的认识存在偏差,没有现在的那种对知识的渴望。由于将近半年的学习提高,我最最起码知道了自己下一步的任务,知道了自己的前途还是很光明的。米老师深信着这样一句话,就是"没有不好的学生,只有不好的老师",跟着这样的老师学习,哪能不改变呢?!潜移默化中我们慢慢知道了自己欠缺的是哪些,知道了如何去利用现有手段去获取知识。更更重要的是锻炼了我们的基本素质,不光是作为一个技术人员的技术素质,更多的还是基本的如何做人、做事的素质。这样在这里我们就锻炼出来了一个好"胃口",时刻都要"吃点东西",并且大有"越饿越吃,越吃越饿"的趋势。
要说我们的学习安排都是环环紧扣的,在学习 软件工程 这些枯燥的理论知识的同时,我们还需要完成一个重要的不能再重要的任务,那就是完善 机房收费管理系统 的在 软件工程 中涉及到的相关文档。
这的确是一个很大的工程,想来如果是本科专业学习这门功课,哪有老师会让你做一个项目,并且辅以配套的文档呢。同样,这也突出了我们超强的实践性。"纸上得来终觉浅,绝知此事要躬行" 这句话是值得我们时时谨记的。
软件工程这个阶段的学习,真真的让我感受到了开发一个正规化系统的总体章程,困难是很大的,可是的的确确能帮我们解决软件设计开发直到交付用户使用各个阶段的实际问题。这也是一个作为专业素质培养的重要环节,作为软件设计开发人员,利用好软件工程思想,做好系统的设计、保障工作是无比重要的,因为这同样是衡量一个开发team(团队)综合水平的重要指标。
同时在软件工程 苦海遨游中尝到了些许的甘甜,发现苦尽甜来真真的让我兴奋了一番。
中后期--机房收费管理系统的部署、发布
收费系统是完完整整的按照功能实现了,依旧是听从"江湖老大"的安排,进行系统的部署、发布。(高兴~~ 感觉和"老大"交流,真是应了那句话"听君一席话,胜读十年书"呀...)
我们在自己机子配置的环境中做好的那个由代码一行行堆积起来的程序,是需要最后交付用户使用的,这就涉及到一个问题,也就是我们需要将程序打包,对,就是打包。
说到打包,其实也不简单,就目前我们拿VB6.0开发的东西,多数需要和系统提供给的一些.dll的动态链接库里的东东相联系的。并且在我们自己环境下运行良好的程序不一定到了其他机器上就能够顺利的运行。这也是我们程序的可移植性能的强弱问题,当然了程序顺利运行所需要当前系统提供的东西越少那样我们程序可移植性就比较高了。一般我们程序打包的时候都会把牵涉到的系统文件级别的东西一起打包进来,尽量减少程序移植问题。
当打包阶段结束以后就是在其他机子上配环境,这也是部署环节。配置机房收费管理系统的服务器环境主要是数据库 SQLServer的支持,因为其他的客户端是需要通过网络、认证等来对数据库进行一些限制级操作的。这还要提到一下,就是在具体设计相应数据库的时候,分清权限、角色,对数据库数据设置一般的保护处理。
还有就是在收费系统中有模块专管相关数据库 连接 数据源文件,其中数据源文件是比较重要的,因为在配置客户端环境的时候是需要连接服务器的数据源文件的,这样才能找到和数据库相连接起来。潜藏在这里的危险是很大的,如果数据库数据源文件链接出现信息泄露,肯能造成数据库被恶意修改。当然我们做实例时,对这些方面的处理还是微不足道的,从CSDN论坛中《SQL语句注入》系列文章中也体会到真正设计大项目的时候,相关链接设置的保密性和安全性真的是需要好好重视的。
后期-- 学习计划安排
按照"老大"和各位师哥讨论得出的学习课程安排,近期主要学习的是C#、设计模式、UML建模。当然现在的学习进度是进行到了设计模式的整体学习阶段,这本《大话设计模式》我还没有看完,从目前来看,这本书中涉及到的23个设计模式,这期间的关系还是很密切的,就我的理解来看这些模式从不同的需求设计角度来阐述和发挥OO(面向对象)思想,其中就 工厂方法设计模式 就是对 简单工厂模式的一个深入探讨,比较重要的还有 封闭-开放 原则,就是对已经初步设计好的模块之间,圈定哪些方便提供更改、添加新功能等,哪些呢又是不太支持更改操作的部分,这个设计原则基本保证了开发过程中对已完成部分的修改、更新操作的安全性和稳定性。
从现在来看,这个暑期学习到了 软件工程,使得我们能够在一个工程的角度和高度来设计和开发一个系统,提供一系列的保障性支持。其中有一些技术性文档,提供某些详细模块的设计开发,还有相关的审核测试文档,用户手册(初稿),这些都为开发的系统提供了不可或缺的保障。这样我们在面对新问题时,有了一个纲领性的东西指导着我们,规划着我们一步一步向着自己规划制定的目标前进。
同样深入到具体的软件设计层次,这就是目前学习到的设计模式,全方面体现出来的OO思想,学好这门知识就会使得我们具体实现编码功能时有一个框框的约束,进而使我们设计出来的程序在各个方面都比较均衡。