软件工程 之 收费系统总结篇

来源:互联网 发布:电驴软件下载 编辑:程序博客网 时间:2024/06/07 11:05

     为期一周的软件工程学的总体宏观学习已经结束,剩下的时间就要对这几天软件工程的学习过程进行总结。

       

     通看,软件工程学是引领程序开发整体流程的一个思想性的知识,通过这么多天的学习,我对软件工程学的初识就是这是一个大家伙,就目前这个阶段的我们的应用来看,软件开发中后期的测试、维护,都是弱项,暂时都用不到,不过为了获得知识,我们还是可以虚拟环境,来满足一些我们需要的条件。以期在学习中实践,辅以实践中学习,就像哈大讲《软件工程》的张洪志老师经常强调的,要多多练习,实践出真知嘛~ 这样学好软件工程学应该就不成问题了。 

 

      总的来说,在我们做机房收费管理系统的时候,对软件工程并没多好了解,貌似自软件危机以后的东西就不知道了,感觉这门学科就是生生的、硬硬的,嚼半天,嚼的牙疼,可是却真真的能为人蓄能、生势,有大用。

           

          还没有学软件工程,准备做这个机房收费管理系统,一开始我只是做了一个面儿上的需求分析策划,通过对原型收费系统的流程的了解,想了想自己现在能用到的技术,貌似还能行,于是就开始"搭棚子"(我博客转载一篇"程序员容易犯错的六大区域"中讲到了这个"搭棚子"),匆匆忙忙的将需求分析写好了,按照表面的需求建了初期的8个表。如是我就开始"搭棚子"了。谁知,还真是,搭起来的草棚子,真是经不住风吹雨打,使得我在实现功能编程的后期有点累。想来那时自己想到的只是如何用现有的知识去实现那些我看到的功能,从不讲究策略、方法,更没有什么编程设计原则之说,总的评价那时就是浑浑噩噩、乱七八糟的用我自己的智慧实现了系统应有的功能。

 

从现在的软件工程学角度来看,有几点还是不错的
1.在软件的开发初期,做了一些简单的需求策划,做到了初步"了解系统功能";
2.在软件开发的编码、测试阶段,我还是有用到单元测试和集成测试(新学的名词哈~ )这些思想的;
3.放弃了在 综合查询学生信息窗体 的"查询"功能过程实现中使用goto语句,以免程序被带的乱七八糟的;
4.对输入的合法性进行了判断操作,减少了一些由不合法的输入导致的一些错误输出,甚至造成系统意外中断的情况出现几率;

 

 

 

通过比对,在开发机房收费管理系统过程中,不足之处
1.在概要设计阶段,我还是做了一些工作的,只是初定了一个用于和数据库连接,并可以进行数据库"增删改查"四项基本操作的模块,然而最后又补上了一个处理打印报表、一个处理服务器时间和一个用于计算上机消费金额的模块。后三个模块却是在进行编码过程中发现具体需要了进行的填补;


2.在后期测试自己的系统的时候,没有像软件工程中介绍规定的要定义一些测试用例,并进行有序、高效的软件测试工作,而我只是随机的按照自己 的逻辑思维,随意进行输入测试等操作,对输出结果不满足要求的情况在进行详细的分析、修改,并且在测试过程中没有把每一个错误的出错位置、错误提示以及出错原因和修改方法详细的记录下来,这也使得出现同一错误多个改法的情况;

 

3.结构化编程,主要提到使用三种基本机构,就是选择、顺序、循环。像软件工程里规定每个过程中的代码行数不可超过100、循环嵌套层数尽量不要超过6层以及尽量少使用嵌套模式等等这些,我都做过了,在收费系统的组合搜索功能实现过程中,就用到了大量的嵌套,的确对后期的修改带来很大不便,并且清晰性蛮差的,其他人阅读我的代码时容易出现错行阅读,理解错误的情况;


4.软件工程中讲到很多用流程图、因果图、PFD图等等这些帮助相关的系统分析员和软件开发小组人员进行系统分析用,在机房收费系统中,我只用到了一张纸和一支圆珠笔,剩下的东东就是在脑子里打转转了。现在试想,如果真真的做的是一个大系统,开发的是一个大项目,如何?
苦哉,虽说爱因斯坦的大脑只开发了10% 就厉害到那个程度了,可是坦哥他不是一般人呀。如是,规模大的系统切不可没有一系列的图表做后备支持,所以说在开发过程中,前期分析中做好图表分析工作还是很重要的,能在我们没有思路或是思维严重混乱时这些图图是能帮助我们东山再起的!


5.关于软件开发结束,交付用户使用后,出现的使用问题,我们软件开发人员(貌似应该有专门的维护人员的哈~ )还是要给出说法的,我们要在用户那里去的错误信息集,然后自己回家来分析,给出解决方案。

 (附图:软件维护工作流程)

 

 

 软件维护工作流程图

 

 

    

       软件工程中还用大篇幅介绍了面向对象的开发过程、面向对象的技术等等概念;还有在软件测试阶段用到的测试用例的创建,黑白盒,等等一些测试;软件开发过程中的各种图表画法、图表之间的转换;可行性分析阶段涉及到的估算、风险;编码阶段的划分功能模块,模块之间的借口处理,如何建立高内聚、低耦合的独立性强的模块;软件质量的测评审核工作等等;这些东西还需要细细的琢磨一番才能很好的消化掉,吸收掉。
      总结至此,还有好多没有说到的,终究还是肚肚里的墨水少哈~ 所以说呢,奋起学习,努力进入"越吃越饿,越饿越吃"的大乘境界。

 

 

 

 

 

 

原创粉丝点击