软件设计心得体会
我叫王磊,本科就读于太原科技大学,经过多次项目的实践,大三时有幸参加了**系统的设计和开发工作,团队由七个人构成,技术部的经理,项目经理,一个前台技术人员(对业务熟悉)和四个开发人员(包括我)构成,我简单讲一下我在项目设计和开发过程中的心得体会及常遇到的问题。
我们得到用户需求后,用户指定要用ORACLE数据库和WEBLOGIC服务器,编程语言与JAVA。我们先进行了数据库的设计,其中包括先建立数据字典,当然其中先建立CDM,在建立PDM。因为之前遇到一个项目要把数据库从SQLSERVER换成ORACLE,但是由于没有建CDM,结果导致工作很复杂,很棘手,CDM是概念数据模型,是数据库模型的抽象。所以建立CDM对以后的维护修改工作是有好处的。接下来设计了表的结构和表之间的关系,其中用到了我们学的数据库设计的几个范式。接下来设计了各个类的结构,包括内部成员和方法。由于是WEB系统。所以我们用成熟的MVC框架。
以及成熟流行的中间件Struts和Ibatis。这是考虑到我们的开发人员对这两个框架比较熟悉,而且它们的用户比较多,出现问题的话易在网上找到解决方法。由于使用的是流行的J2EE体系框架,所以概要设计会很成熟,比较简单。所以重点是数据库表结构的设计和程序内部逻辑和每个类的设计。
在设计过程中,我们设计的原则是低耦合,高内聚。这样做目的就是更好的适应变化,更好的重用和扩展。其中有很多软件设计原则,如依赖倒置,单一职责原则,面向接口和各种设计模式。耦合是不可避免的。它有不同的粒度,解耦到什么粒度为止,我认为应以模块的重用粒度为准。尽量解除重用模块或对象之间的耦合。这些一般程序员的水平可能达不到。我们在设计前都制定了相关的规范,例如一个方法内的代码行不能超过10行,这是为了实现单一原则。在程序员实现一个复杂的功能时,我们要一起设计其逻辑。这样有利于团队人员之间的沟通,提高代码利用率。
为了防止后期使用不同的数据库,我们在开始画了CDM图。在程序的数据库层使用了接口,这个接口提供给程序员的是增删改查功能。具体的实现交给它的实现类。这样做会很好实现数据库的替换。
我觉得设计首先得要有充分的经验,这样才会对常见的问题设计出好的程序来,可以未卜先知。因为有很多问题单靠想是想不到的。然后要让团队中的人员多交流,多沟通。有时我们会发现团队成员之间做了很多重复的工作。实现了同样的功能。这就是交流少,沟通少的原因,一般搞IT的人员思维好,但是不善于交流,所以在这方面我们要提前注意。还有就是类,成员,方法的命名问题,名字一定要能反映其功能,尽量避免汉语拼音。好的程序有时候直接看它的类名或者方法名就能看懂,没必要看它内部代码。再就是注释问题,功能复杂的类或者是方法一定要有注释,有时当时自己明白的东西一个礼拜后在回来看就看不懂了。所以一定要有注释。
智者千虑必有一失,计划赶不上变化,我想引入重构的概念,那就是经常整理自己的代码,结构,来使得我们的程序更健壮,更易读。因为一开始我们可能设计的不全面,或者是遇到了变化。这就可能造成了一些问题。但是我们是经常整体自己的代码。不光是形式上的整理使得易读,更要结构上的整体使得高内聚,低耦合。提高软件复用性。
当然上完软件工程专题课后,我发现以前的设计存在很多问题,和值得改进的地方,例如,我们缺乏文档。没有评审。没有质量保证人员。没有设计测试,导致在项目后期编写的程序有很多问题。
相关推荐
划分等价类: 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为...
软件工程课程设计心得体会个人总结,关于web BBS论坛开发,数据库网络应用程序
软件课程设计心得体会4篇.doc
第 1 页 共 6 页第 1 页 共 6 页 第 1 页 共 6 页 第 1 页 共 6 页 竭诚为您提供优质文档/双击可除 计算机网络课程设计心得体会 篇一:计算机网络课程设计心得体会 计算机网络课程设计心得体会 课程设计是每一个大...
我的论文设计,及格了,与大家分享一下,关于c++的数据库设计!
java课程设计心得体会全文共3页,当前为第1页。java课程设计心得体会全文共3页,当前为第1页。java课程设计心得体会 java课程设计心得体会全文共3页,当前为第1页。 java课程设计心得体会全文共3页,当前为第1页。 ...
在使用iTRON类OS的嵌入式系统中,除了驱动程序以外,大多数模块也就是中间件和应用程序是以任务(TASK)的形式设计的。本文主要介绍了一下嵌入式系统中的状态机设计心得体会。
软件工程课程总结学习目的、学习价值、用途、学习成果、学习内容等
应用软件类毕业设计个人工作 总结文档结构
软件架构的分析与设计总结 很好.doc 详细介绍了架构发分析步骤以及架构图的设计。内容详细,通俗易懂。 对初学者和中级架构师很有帮助。资料免费共享。
Linux操作系统总结与心得 一 知识总结 我很荣幸选了"Linux操作系统"这门课程,因为在这门课程的学习过程中,我们通过老 师的讲解以及在网上查阅资料,学到了许多关于Linux操作系统的知识,更重要的是学会 了如何应用...
软件设计师考试的无废话总结,对于复习软件设计师知识点十分有帮助。
总结了我这学期以来s3c2440的所有心得体会,包括linux内核编译 交叉编译环境的建立 yaffs文件系统的编译过程,内核支持 qt编译过程 以及相关软件及源代码 我个人亲力推荐
《 操作系统》心得体会 在这个学期,通过学习《操作系统教程》这门课,我对计算机操作系统有了深刻的了解 。 计算机操作系统是铺设在计算机硬件上的多层系统软件,不仅增强了系统的功能,而 且还隐藏了对硬件操作的...
软件工程文档规范(概要设计说明书、可行性研究报告、软件需求说明书、详细设计说明书、项目开发计划、项目开发总结报告)
软件工程课程设计全部东西,包括数据流图、结构图、ER图、数据库脚本和代码还有完整文档,满分课程设计。图都有visio格式。
VHDL语言100例 VHDL学习资料VHDL 编程要点VHDL编程心得体会: 100vhdl例子 VHDL 编程要注意问题.doc VHDL——按键消抖.doc VHDL电路简化.doc VHDL编程心得体会.pdf vhd开发的官方手册.pdf 第1例 带控制端口的加法器 ...
软件工程导论课程设计.pdf
基于MATLABGUI的滤波器设计软件设计-基于MATLAB GUI的滤波器设计软件设计.doc 第一次发帖 希望可以给大家带来帮助! 目 录 1 设计任务....................................... 1 2 MATLAB GUI的简介..........
pkpm软件实习心得.pdf