`
hf_qysj
  • 浏览: 9814 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
文章分类
社区版块
存档分类
最新评论

软件工程

 
阅读更多
去年暑假到现在是一个蜕变的过程!从软件工程到UML到设计模式再到三层架构(其实这些都属于软工的范畴),这是一条充满艰辛,充满曲折的道路,一路走来,感触颇多。


进入提高班,再次接触软件工程,让我觉得既熟悉又陌生。造成这种让人纠结的状态只能怪自己当时太无知。没有好好听大学老师讲课。不过也不必太自责,大家也都知道现在中国的教育现状。我想如果我当时好好跟着任课老师学,对软工认识的程度肯定也无法跟现在相比。很庆幸自己选择跟着米老师一直走下去。这个决定可以说是我长这么大最正确的一次!感谢米老师的悉心教导!


软件工程


软件工程,可以说是一门博大精深的学科。如果要用一种武功来比喻软件工程,那么我感觉也只有少林寺的《易筋经》能够体现出它在软件界的重要地位了。软件工程贯穿整个软件开发的始终,从设计到编码到之后的测试发布以及后期的维护,都离不开软件工程的思想。软件工程其实就是一种工具,将软件开发工程化,用科学的方法分析设计软件,为软件开发指制定合理的计划,最大限度的保证软件可以按时保量的完成。软件工程是一门需要终身学习的课程。随着以后不断的积累对于软工的认识会慢慢的加深,继续努力吧!


UML


UML是软件开发过程中一个非常重要的环节,可以说UML是软件工程的灵魂。它是对软件的整体设计与把控。UMLj将软工的思想绘成各种图,然后通过这些图加上设计模式,转化成系统的代码框架。有了框架,有了轮廓,剩下的具体实现的代码就可以一蹴而就。一气呵成了!
UML的四种关系——关联(组合、聚合)、依赖、泛化/继承、实现。还有九图都是学习UML的重点。九种图里面类图是重中之重。另外我感觉画时序图也很让人纠结,在做机房收费系统的时候,画的图就不太好,结果在写代码的时候就编写边改。着实让人头疼,吸取经验下次一定好好研究UML图。


设计模式


第一次用.NET做机房收费系统的时候用了一抽象工厂,稍微感受到了一下设计模式的好处。使用合适的设计模式可以让代码之间更加的独立,专业术语叫做低耦合。使代码更易复用。可谓好处多多啊。但值得注意的是,不要单纯的为了用设计模式而用设计模式。一定要结合实际情况,看看到底这里适不适合用设计模式,适合用哪种设计模式。这样才能发挥设计模式的作用,否则只会适得其反。总之设计模式是前人总结的精华,我们要用,更要会用,以便让它发挥最大的作用。想了解更多我关于设计模式的感受,请移步《大话设计模式读后感》


三层架构


三层的学习也颇费周折,这次米老师没有像之前那样给我们现成的资料,而是让我们自己去搜寻——为的是锻炼我们自己捕获事物,汲取营养的能力,从而让我们更适应大自然的生存环境。想要获得知识,世界上最大的知识库莫过于或联网,于是乎我就整天游荡于各大程序员社区——CSDN。博客园。51CTO等 都少不了我的身影。从那些大牛的博客里学习三层,逐渐的明白了三层到底是怎么一回事。
其实三层说白了就是将代码按照不同的功能分为不同的几个层,每一层都有自己的职责。例如负责跟数据库打交道的代码就放在DAL层(Data Access Layers),而一些逻辑判断就放在BLL层(Business Logic Layer)等等。说白了分层跟用设计模式用着异曲同工之妙,都是为了降低代码的耦合度,从而使得所开发的软件更易扩展、易维护。
分层也是一种思想,不同的阶段对于分层有着不同的理解。随着不断的学习,不断积累经验,对于分层的理解会慢慢的加深。


C#跟VB.NET


学习C#一是为了学习设计模式,因为《大话》中的代码是用C#实现的;而是为了让我们初步认识一下面向对象的编程思想。而学习VB.NET是为了从之前学的VB6无缝过渡到以后的面向对象。这一点很好的提现了米老师的“吃饭理论”——通过自己熟悉的知识去获得自己不熟悉的知识。


重构机房收费系统


又说到我们提高班的经典项目了——机房收费系统。这次重新做机房收费系统,首先是分层,然后又用了抽象工厂+反射+配置文件。而第一次做机房收费系统,用的是VB6,那个时候简直就是一个小白,什么UML、设计模式、分层都一呼不呼。所有代码都直接写到窗体下面,现在看之前做的东西,说难听点就跟屎一样!但是正是因为有当初的屎,才有了现在茁壮成长的庄稼!路是一步步走的,知识是一点点学的,所以不要在乎你现在有多差、水平有多低,只要肯努力,肯付出,再加上一个正确的方法,某天回头望去,发现自己已然到达了一个新的高度!所谓不积跬步无以至千里,不积小流无以成江海。说的就是这个道理,学习其实就是一个积累的过程。


合作开发机房收费系统


很无奈,又是它。这次你明白它为啥是提高班的经典了吧!合作开发主要是为了培养我们合作的能力,学习一下SVN的使用,同事也加深一下对三层和设计模式的理解。合作开发要比一个人开发快多了,这也是为啥要分层的一个原因,分层之后代码的耦合度降低,每个人负责一部分,只要按照一定标准跟规范就可以同时并行开发了,然后各自写完之后再合并,最后调试、打包就OK啦!这次合作没有什么太多的新东西,只是在原来的基础上加了一个外观模式。这次合作让我感受到注释说明很重要,如果注释说明写的清楚明白,那么几乎组员之间不用多余的交流就可以把项目做完,相反,如果写的不好,那么做起来就费劲了,写两句就要沟通一下,这样就没法进行下去了,而且还会带来理解上的偏差,这都会造成很多不必要的麻烦,所以合作很重要的一点就是制定好标准和规范。


结束语



写这篇博客真是不容易啊,因为之前的年度总结《我的IT之路2011(二)》里面已经对这一阶段进行了比较详细的总结,现在又重新再写一次,说白了就是用不同的话把一件事说了两遍,这对于我这个写作水平非常有限的人来说真是个挑战啊!还好写完了,好与不好各位多担待吧!不早了两点多了该睡觉啦!晚安各位!

分享到:
评论

相关推荐

    软件工程课后习题答案 软件工程 软件工程 软件工程

    在软件开发过程中,软件工程是一门至关重要的学科,它涵盖了软件开发的整个生命周期,包括需求分析、设计、编码、测试和维护。这个压缩包文件似乎包含了一份关于软件工程的课后习题答案,以及可能与电子技术基础相关...

    软件工程发展史

    软件工程发展史 软件工程是指为了提高软件质量、降低成本、提高生产效率、降低维护难度的一门工程学科。软件工程的发展经历了漫长的过程,从软件的诞生到现在的发展趋势。下面是软件工程发展的主要阶段: 第一阶段...

    软件工程课程设计飞机订票系统源代码.zip

    软件工程课程设计飞机订票系统源代码软件工程课程设计飞机订票系统源代码软件工程课程设计飞机订票系统源代码软件工程课程设计飞机订票系统源代码软件工程课程设计飞机订票系统源代码软件工程课程设计飞机订票系统源...

    \软件工程课程设计\软件工程课程设计.doc

    软件工程课程设计 软件工程课程设计是软件工程专业学生的一门重要课程,旨在培养学生设计、开发和测试软件系统的能力。本文档旨在介绍软件工程课程设计的基本概念、方法和技术。 1. 绪论 软件工程课程设计是一个...

    软件工程PDF课件1-11章打包.zip

    软件工程PDF课件 01_SEIntro软件工程概述.pdf 软件工程PDF课件 02_Process软件过程.pdf 软件工程PDF课件 03_Management软件项目管理.pdf 软件工程PDF课件 04_Requirement需求工程.pdf 软件工程PDF课件 05_OOIntro...

    软件工程习题解答

    作者编著的枟软件工程导论枠被国内许多高校选作软件工程课的教材,累计销售约70 万册。为配合 读者学习软件工程,作者又精心编写了这本学习辅导书。 本书正文共10 章,每章由三部分内容组成:第一部分系统扼要地...

    JAVA开发项目软件工程课程设计图书借阅管理系统源代码.zip

    JAVA开发项目软件工程课程设计图书借阅管理系统源代码JAVA开发项目软件工程课程设计图书借阅管理系统源代码JAVA开发项目软件工程课程设计图书借阅管理系统源代码JAVA开发项目软件工程课程设计图书借阅管理系统源代码...

    面向对象软件工程

    《面向对象软件工程》 作者:Stephen.R.Schach 学校:(美)范德比尔特大学 书名原名:Objected-Oriented Software Engineering 目录: 第一部分 面向对象软件工程简介  第一章 面向对象软件工程的范畴  第二章 ...

    软件工程 电子书 电子科技大学

    《软件工程》是一本由电子科技大学的黄迪明教授主审、许家珆教授主编的专业教材,它全面地涵盖了软件开发的各个阶段和关键环节,是学习软件工程理论与实践的重要参考资料。这本书的章节结构严谨,内容丰富,旨在帮助...

    软件工程课程设计

    软件工程课程设计 软件工程课程设计是计算机科学相关专业《软件工程》课程的后继教学环节,是一个重要的、不可或缺的实践环节。其目的是使学生能够针对具体软件工程项目,全面掌握软件工程管理、软件需求分析、软件...

    软件工程设计案例

    ### 软件工程设计案例相关知识点 #### 一、软件工程的历史背景与发展历程 - **背景**: 20世纪60年代,随着高级语言的普及,计算机的应用领域迅速扩大,导致对软件系统的需求激增。然而,当时的软件开发方式无法...

    软件工程课件.rar

    《软件工程深度剖析》 软件工程是一门涵盖了软件开发全生命周期的学科,旨在通过系统化、规范化的流程来提高软件质量、效率以及可维护性。本资料“软件工程课件.rar”提供了关于软件工程的全面讲解,以PPT的形式共...

    合肥工业大学软件工程试卷.zip

    【标题解析】:“合肥工业大学软件工程试卷.zip”这个标题表明这是一个关于软件工程学科的考试资料,来自于合肥工业大学,且是以压缩文件(.zip)的形式存储。.zip是一种常见的文件压缩格式,用于打包多个文件或...

    软件工程毕业设计—兼职招聘系统源码+数据库.zip

    软件工程毕业设计—兼职招聘系统源码+数据库软件工程毕业设计—兼职招聘系统源码+数据库软件工程毕业设计—兼职招聘系统源码+数据库软件工程毕业设计—兼职招聘系统源码+数据库软件工程毕业设计—兼职招聘系统源码+...

    北大软件工程课件

    软件工程专业课资料 PPT 非常详细 软件工程专业是一门研究用工程化方法构建和维护有效的、实用的 软件工程知识体系全景图 软件工程知识体系全景图 [1] 和高质量的软件的学科。它涉及到程序设计语言,数据库,软件...

    软件工程专业十篇实习报告

    1、软件工程实习报告-8000字.doc 2、软件工程实习手册-7000字-日志+总结.doc 3、软件工程实习周记-11周-4500字.doc 4、软件工程实训总结-5300字.docx 5、软件工程专业实习报告-精选.docx 6、软件技术实习报告10篇....

    软件工程课程设计管理系统.doc

    软件工程课程设计管理系统 软件工程课程设计管理系统是指一种用于管理软件工程课程设计的系统,旨在帮助学生、教师和管理者更好地管理和跟踪软件工程课程设计的各个阶段。该系统涉及到软件工程课程设计的各个方面,...

    集美大学试卷 软件工程2010-2011学年期末《软件工程》试卷

    《集美大学软件工程2010-2011学年期末《软件工程》试卷解析》 在软件工程的学习过程中,期末试卷是检验学生理论知识与实践技能的重要手段。集美大学软件工程专业的期末试卷,无疑是对学生们一学期学习成果的全面...

    软件工程导论;河南大学;软件学院;软件工程全家桶【所有的学习资料、复习资料】

    整理好的所有的软件工程导论资料,从课件到期末的复习题以及小组大项目;简称软件工程导论全家桶; 1.日常学习课件 2.软件工程大项目(很全),可直接进行给展示以及项目说明书等等 3.软件工程所有雨课堂的整理好的...

Global site tag (gtag.js) - Google Analytics