`
wangleide414
  • 浏览: 588073 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

软件设计心得体会

 
阅读更多

 

软件设计心得体会

 

       我叫王磊,本科就读于太原科技大学,经过多次项目的实践,大三时有幸参加了**系统的设计和开发工作,团队由七个人构成,技术部的经理,项目经理,一个前台技术人员(对业务熟悉)和四个开发人员(包括我)构成,我简单讲一下我在项目设计和开发过程中的心得体会及常遇到的问题。

       我们得到用户需求后,用户指定要用ORACLE数据库和WEBLOGIC服务器,编程语言与JAVA。我们先进行了数据库的设计,其中包括先建立数据字典,当然其中先建立CDM,在建立PDM。因为之前遇到一个项目要把数据库从SQLSERVER换成ORACLE,但是由于没有建CDM,结果导致工作很复杂,很棘手,CDM是概念数据模型,是数据库模型的抽象。所以建立CDM对以后的维护修改工作是有好处的。接下来设计了表的结构和表之间的关系,其中用到了我们学的数据库设计的几个范式。接下来设计了各个类的结构,包括内部成员和方法。由于是WEB系统。所以我们用成熟的MVC框架。

以及成熟流行的中间件StrutsIbatis。这是考虑到我们的开发人员对这两个框架比较熟悉,而且它们的用户比较多,出现问题的话易在网上找到解决方法。由于使用的是流行的J2EE体系框架,所以概要设计会很成熟,比较简单。所以重点是数据库表结构的设计和程序内部逻辑和每个类的设计。

       在设计过程中,我们设计的原则是低耦合,高内聚。这样做目的就是更好的适应变化,更好的重用和扩展。其中有很多软件设计原则,如依赖倒置,单一职责原则,面向接口和各种设计模式。耦合是不可避免的。它有不同的粒度,解耦到什么粒度为止,我认为应以模块的重用粒度为准。尽量解除重用模块或对象之间的耦合。这些一般程序员的水平可能达不到。我们在设计前都制定了相关的规范,例如一个方法内的代码行不能超过10行,这是为了实现单一原则。在程序员实现一个复杂的功能时,我们要一起设计其逻辑。这样有利于团队人员之间的沟通,提高代码利用率。

       为了防止后期使用不同的数据库,我们在开始画了CDM图。在程序的数据库层使用了接口,这个接口提供给程序员的是增删改查功能。具体的实现交给它的实现类。这样做会很好实现数据库的替换。

      我觉得设计首先得要有充分的经验,这样才会对常见的问题设计出好的程序来,可以未卜先知。因为有很多问题单靠想是想不到的。然后要让团队中的人员多交流,多沟通。有时我们会发现团队成员之间做了很多重复的工作。实现了同样的功能。这就是交流少,沟通少的原因,一般搞IT的人员思维好,但是不善于交流,所以在这方面我们要提前注意。还有就是类,成员,方法的命名问题,名字一定要能反映其功能,尽量避免汉语拼音。好的程序有时候直接看它的类名或者方法名就能看懂,没必要看它内部代码。再就是注释问题,功能复杂的类或者是方法一定要有注释,有时当时自己明白的东西一个礼拜后在回来看就看不懂了。所以一定要有注释。

      智者千虑必有一失,计划赶不上变化,我想引入重构的概念,那就是经常整理自己的代码,结构,来使得我们的程序更健壮,更易读。因为一开始我们可能设计的不全面,或者是遇到了变化。这就可能造成了一些问题。但是我们是经常整体自己的代码。不光是形式上的整理使得易读,更要结构上的整体使得高内聚,低耦合。提高软件复用性。

      当然上完软件工程专题课后,我发现以前的设计存在很多问题,和值得改进的地方,例如,我们缺乏文档。没有评审。没有质量保证人员。没有设计测试,导致在项目后期编写的程序有很多问题。

           

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics