`
hongan
  • 浏览: 175719 次
  • 性别: Icon_minigender_1
  • 来自: 佛山
社区版块
存档分类
最新评论

构建软件程序的基本步骤

阅读更多

转载,有删改:http://www.blogjava.net/sitinspring/archive/2008/01/26/177949.html

 

1.如何建立起领域模型

途径一:分析业务中的业务流和业务规则,从中归纳出功能的基本单位,这个基本单位就是领域模型之一或领域模型的一部分.

途径二:从原型界面中观察显示的数据,它们是领域模型的外在体现.

途径三 :从持久化介质中推导领域模型,如从数据库的表结构和ER图中推导领域模型.

途径四:向领域专家问询业务流程中的核心单元是什么,甚至自己进入问题领域去学习探究。

途径五:将不熟悉的领域和相似的自己熟悉的领域做对照,类比出领域模型。

途径六:从已有的知识系统中学习,参考功能相似的软件代码,向优秀代码学习。


2.如何完善领域模型

领域模型是经常发生相互联系的,上一步只是建立了孤立的,仅能表现单个领域对象信息的模型,要使它们丰富完善起来,需要做以下工作:

1) 从程序的功能角度入手,考虑需要几个领域对象才能完成这个功能,再由此考虑领域对象之间的联系.这方面的典型例子是需要雇员类和资源类的协助,借贷关系才能完整的表现出来.

2) 从领域对象本身入手,考虑领域对象之间是否有级联,回溯,包含等常见关系.如个人信息包含地址信息,公司类和雇员类的级联关系,雇员类查找自己所属公司的回溯关系等.

3) 从反持久化入手,考虑把一个领域对象从存储介质中提取出来需要那些领域对象的帮助,这些领域对象是通过那种方式联系在一起的,这方面的典型例子是表之间的主键和外键,领域对象同样也要具有相对应的成员变量.


3.领域对象设计完成之后

一旦领域对象设计完成,程序的设计工作就可以说完成了一大半,其余工作都是围绕领域对象来进行,这些工作有:
1) 从考虑怎么为领域对象服务入手,为领域对象设计服务类,服务类的常用方法有添加,删除,更新,查询领域对象四种以及从ID取得一个领域对象,判断持有某个ID的领域对象是否存在等.具体的操作实际上由服务类的持久层类成员完成,服务类实际上起到的是一个领域对象上下传输通道的作用.一般来说Service层的六大函数是add,delete,update ,search, hasId(String id), getById(String id))再加上一些用于查询的函数。

2) 考虑到实现服务类中要求的方法,设计持久层类,其中的成员函数基本是服务类的六大方法的具体化,持久层类实际上起到一个把领域对象存储到持久介质中和从持久介质中取出领域对象的作用.如果持久层是关系型数据库的话,还需要设计领域对象对应的表以及表之间的关系ER图。

3) 从功能的角度设计控制层的函数和类,在这里控制层类调用服务层类来操作领域对象,业务逻辑主要体现在这里.

4) 从领域对象的输入输出和表现的角度设计各个表现层类.设计这一层类时应该从用户立场考虑而不是从代码编写者的立场考虑,怎么让用户感到直观,方便,快捷就怎么设计界面.

5) 在设计上述层次的同时,考虑到减少重复代码,突出主干代码而设计实用层类,把共通的操作都归纳到一起,这样既提高的代码的清晰程序和可读性,也使修改变得方便容易起来.

6) 如果有些变量在使用过程中是可能发生变化的,如数据库的地址,业务中一些硬编码信息等,这样的量就不该硬编码(Hard Code)在程序中,否则修改后还需要重新编译,打包,发布.而应该把这些量写在XML形式的配置文件里,在程序启动时读取.


4.软件的六大层次

上面的工作完成后,我们会得到以下六大层次:
1) Domain层
2) Service层(允许Control层访问,能访问Persistence层)
3) Persistence层(也称为DAO层,只允许Service层访问)
4) Control层(访问Service层和View层)
5) View层(仅被Control层访问)
6) Util层

 

5.逐步完善六大层次中类的各个具体函数


6.绘出各层次类的静态类图


7.最后的步骤:子程序内部的设计

 

8.软件的最终需要具备的现代软件的八个典型特征

(1)最小的复杂度:整个系统可以分解为简单而易于理解的各个部分.
(2)易于维护:程序有良好的可维护性.
(3)松散耦合:通过应用类接口中的合理抽象,封装性以及信息隐藏等原则,设计出相互关联尽可能最少的类.
(4)适应变化:能在不改变系统基本构架的基础上,适应未来的变化,有良好的扩展性,程序可扩展,可重用.
(5)有明晰的层次:每层各司其职,有良好分工.
(6)高扇入低扇出:系统很好的利用了较低层次上的工具类,重复代码很少或没有.
(7)有良好的规范:无论多少人参与了项目,从代码看来犹如出自一人之手.
(8)使用标准技术.
(以上八点来自<<代码大全2>>)

分享到:
评论

相关推荐

    构建基本嵌入式Linux根文件系统详细步骤

    构建一个基本的嵌入式Linux根文件系统需要一系列的步骤,这些步骤通常包括选择文件系统类型、配置工具链、安装基础软件包以及定制系统服务。下面将详细介绍这些步骤。 首先,我们需要选择合适的文件系统类型。常见...

    软件技术基础和基本程序算反的应用和讲解

    在“软件技术基础和基本程序算反的应用和讲解”这一主题中,我们主要探讨的是软件开发的基石,包括编程语言的基础、程序设计的基本概念以及算法分析。这些内容是大学软件技术课程的核心,对于任何计算机科学或软件...

    vs安装程序详细解答步骤

    Visual Studio (VS) 提供了一个强大的工具集,可以帮助开发者构建自定义的安装程序。本篇文章将详细解析如何使用VS来创建安装程序,以及如何添加卸载功能。 首先,启动VS并开始创建一个新的安装项目。在“新建项目...

    计算机图形学基本图元生成程序

    总结而言,"计算机图形学基本图元生成程序"是一个涵盖了点、线、多边形等基本图形生成的软件,涉及到计算机图形学的诸多核心概念和技术,如画线算法、多边形光栅化、颜色处理和变换等。通过这个程序,用户可以学习和...

    应用程序打包发布步骤

    在IT行业中,应用程序的打包和发布是软件开发流程中的重要环节,确保用户能够方便地安装和运行软件。这里主要讨论的是在两种不同的集成开发环境中,即MyEclipse和Eclipse,进行C/S(客户端/服务器)应用程序的打包...

    课件程序设计基本方法

    在课件中的“获取信息2004”可能涉及到数据输入和处理,而“张家港塘桥初中谢利芳程序设计基本方法”可能是一个示例,用于展示程序设计的基本步骤和技巧。SWF文件通常用于存储Flash动画或交互式内容,这可能是教学...

    触摸屏程序制作步骤PPT课件.pptx

    以上就是制作触摸屏程序的基本步骤,涉及到硬件连接、软件操作、界面元素的设计与交互,以及工程验证和部署等关键环节。对于开发工业自动化或人机交互界面的工程师来说,掌握这些步骤至关重要。

    单片机系统开发基本步骤.pdf

    单片机系统开发基本步骤 单片机系统开发是一个复杂的过程,涉及到硬件系统的设计、应用软件开发和可靠性设计等多方面的知识。为了帮助开发者更好地理解单片机系统开发的基本步骤,本文将详细介绍单片机应用系统设计...

    最新c语言程序设计软件

    对于C语言程序设计软件来说,它可能提供了如何配置环境变量、如何创建新项目、如何调试代码等步骤,以及软件的新特性、已知问题和解决方案等内容。 在最新的C语言程序设计软件中,一些高级功能可能包括代码自动完成...

    gck35-win-demo 载体构建

    在分子生物学研究中,载体构建是基因工程的核心步骤之一,它涉及到将特定的DNA片段插入到一个能够自我复制的DNA分子中,以便在宿主细胞中表达或进行遗传分析。Gene Construction Kit(gck35)是一款专为分子生物学家...

    软件测试基本理论

    "软件测试基本理论"这一主题涵盖了测试领域的核心概念,对于初入行者或初级测试工程师来说,理解这些基本理论至关重要。以下是对这些基本知识点的详细阐述: 1. **测试定义与目标**:软件测试是为了发现软件中的...

    程序规划方法和程序流程图绘制方法

    程序规划方法和程序流程图...总之,程序规划和流程图绘制是软件开发人员必备的技能,它们有助于构建高质量、可维护的软件系统。通过不断学习和实践,我们可以提高在这两方面的能力,为我们的职业生涯打下坚实的基础。

    包括并发的基础理论知识、不同并发模型的选择与适用环境、编写并发程序的基本步骤,并发算法的正确性证明与性能评价,以及在编写并发程序时遵循的一些指导原则等

    编写并发程序的基本步骤通常包括: 1. 确定并发级别:根据任务性质和硬件资源确定合适的并发度。 2. 设计数据结构:考虑线程安全的数据结构,如互斥锁、信号量等。 3. 实现同步机制:合理使用锁、条件变量、信号等...

    软件技术基础教程及程序代码

    《软件技术基础教程及程序代码》是一本针对初学者和进阶者编写的教育性教材,旨在帮助读者理解和掌握软件开发的基本概念和技术。该书由高等教育出版社出版,内容涵盖广泛,包括了软件工程的各个重要方面,如需求分析...

    Android 使用ndk-build和cmake构建JNI程序 demo

    以下是使用ndk-build的基本步骤: 1. 创建一个名为`jni`的目录,通常放在Android项目的根目录下。 2. 在`jni`目录下创建一个名为`Android.mk`的文件,这是Makefile的特定于Android的版本,用来描述编译的目标、...

    构建WCF面向服务的应用程序系列课程(1):WCF概要

    在“20070924--构建WCF面向服务的应用程序系列课程(1):WCF概要.pdf”这份资料中,你将获得WCF的基础知识,包括其核心概念、创建服务的基本步骤以及如何开始你的第一个WCF项目。通过学习这个系列课程,你将能够熟练...

    使用axis1.3构建自己的SOAP应用程序源码

    在本文中,我们将深入探讨如何使用...了解和掌握这些基本步骤是进一步学习和应用SOAP服务的基础。在实践中,你可能会遇到各种问题,但随着经验的积累,你将能够熟练地解决这些问题,从而实现高效、可靠的SOAP服务。

    lotus domino 开发的基本步骤

    在学习Lotus Domino开发的过程中,不仅要掌握以上基本步骤,还要对Web技术、数据库设计原则、软件工程方法论有深入理解。同时,思考如何利用Domino的优势,如强大的协作功能和安全性,来解决实际业务问题。通过实践...

    画图板程序 基本图形绘制及变换

    这通常包括了软件工程中的需求分析、设计阶段、编码实现、测试和调试等步骤,对于学习者来说,是一份宝贵的参考资料。 总的来说,这个“画图板程序”不仅是一个实用的教学工具,也是学习MFC、GDI和计算机图形学变换...

    VB开发软件的步骤

    本文将详细介绍使用VB开发软件的基本步骤,帮助初学者理解软件开发的过程。 首先,VB软件开发的八个主要步骤包括: 1. **运行VB及工程的建立**: - **基本操作**:启动VB6.0,创建一个新的“标准EXE”工程。 - *...

Global site tag (gtag.js) - Google Analytics