动态配置型软件架构
------客户信息管理系统软件架构分析设计
1. 概述
客户信息管理系统是基于客户(王总)的超前的设计思想和简化二次开发客观需求,因此客户系统必须具有高度的可扩展性和适应性,并且是具有可配置的柔性系统,包括可定制的菜单,可定制的列表,可定制的表单;同时自动生成表单JS校验,自动生成CRUD(增,删,改查)SQL语句和变更更正审核SQL语句,并自动完成数据库操作。为了方便二次开发,适应新的业务需求和校验需求,我们还提供了柔性接口供实现。
2. 客户信息软件架构设计
客户信息管理系统设计分为数据库设计、软件概要设计及详细设计,其中数据库设计主要集中在模版组、模版信息的存储设计,动态菜单、数据字典的存储设计。软件设计包括模版及模版组信息的CRUD操作,基于模版信息的动态列表,动态表单,动态JS函数,定制JS函数,动态SQL,动态缺省数据,业务校验接口设计。
2.1. 显示模版设计
2.1.1. 模版数据库设计图(pdm):
<v:shapetype o:spt="75" coordsize="21600,21600" filled="f" stroked="f" id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" o:connecttype="rect" gradientshapeok="t"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style="WIDTH: 414.75pt; HEIGHT: 266.25pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image001.png" o:title=""></v:imagedata></v:shape>
2.1.2. 模版表间关系说明
从上图可以看出,模版组(TempletGroup)和模版组用户(TempletGroupUser)理论上是一对一关系,从而每个能管理客户信息的用户就拥有一个模版组,每个模版组包含若干个模版(Templet),每个模版对应与一个客户信息的业务表(TempletTable),每个模版对应多个模版字段(TempletField),模版字段中包括表单元素的显示属性,包括是否显示,是否必填,是否跨列显示,显示表单元素的类型(输入框,下拉框等),列表显示属性(显示的列名),及业务上的修改或变更是否需要审核等。因为客户关系管理系统的业务表对应多个模版,因此肯定有共有的属性,同样字段也有共有的属性,所以设计了TempletTable和TempletTableColumn两个表,同时这个TempletTable表还是定制菜单的基础数据。在理论上,一个用户拥有一个模版组,一个模版组拥有n个用户。
2.1.3. 模版表的详细设计
2.1.3.1. 表Templet的基本信息<o:p></o:p>
名称<o:p></o:p>
|
Templet<o:p></o:p>
|
注释<o:p></o:p>
|
模版组模版项目明细<o:p></o:p>
|
<o:p> </o:p>
<o:p> </o:p>
2.1.3.2. 表Templet列<o:p></o:p>
名称<o:p></o:p>
|
注释<o:p></o:p>
|
数据类型<o:p></o:p>
|
文本说明<o:p></o:p>
|
强制<o:p></o:p>
|
templetId<o:p></o:p>
|
模版项目ID<o:p></o:p>
|
INTEGER<o:p></o:p>
|
<o:p> </o:p>
|
TRUE<o:p></o:p>
|
templetTableId<o:p></o:p>
|
模版表ID<o:p></o:p>
|
INTEGER<o:p></o:p>
|
对应templetTable<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetGroupId<o:p></o:p>
|
模版组ID<o:p></o:p>
|
INTEGER<o:p></o:p>
|
<o:p> </o:p>
|
FALSE<o:p></o:p>
|
templetCategoryId<o:p></o:p>
|
模版类型ID<o:p></o:p>
|
INTEGER<o:p></o:p>
|
不使用<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetDisplayName<o:p></o:p>
|
模版显示名称<o:p></o:p>
|
VARCHAR2(100)<o:p></o:p>
|
<o:p> </o:p>
|
FALSE<o:p></o:p>
|
templetListJspFile<o:p></o:p>
|
列表显示模版文件(暂不使用)<o:p></o:p>
|
VARCHAR2(200)<o:p></o:p>
|
不使用<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetJspFile<o:p></o:p>
|
对应的JSP文件名称和路径(暂不使用)<o:p></o:p>
|
VARCHAR2(200)<o:p></o:p>
|
不使用<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetPageName<o:p></o:p>
|
对应的页面名称(暂不使用)<o:p></o:p>
|
VARCHAR2(200)<o:p></o:p>
|
不使用<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetDelegateClass<o:p></o:p>
|
模版对应的代理类(暂不使用)<o:p></o:p>
|
VARCHAR2(200)<o:p></o:p>
|
不使用<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetRanking<o:p></o:p>
|
显示顺序<o:p></o:p>
|
INTEGER<o:p></o:p>
|
<o:p> </o:p>
|
FALSE<o:p></o:p>
|
templetExtend<o:p></o:p>
|
模版扩展信息<o:p></o:p>
|
VARCHAR2(200)<o:p></o:p>
|
未使用<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetTablePeriod<o:p></o:p>
|
报表周期,年,季度,月,周,日<o:p></o:p>
|
VARCHAR2(10)<o:p></o:p>
|
未使用<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetTablePromptPeriod<o:p></o:p>
|
报表提示周期,年,季度,月,周,日<o:p></o:p>
|
VARCHAR2(10)<o:p></o:p>
|
未使用<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetState<o:p></o:p>
|
状态,1可用,0不可用<o:p></o:p>
|
CHAR(1)<o:p></o:p>
|
|
分享到:
相关推荐
- **MySQL**:一种小型的关系型数据库管理系统,开源且广泛应用于各种Web应用中。 - **JSP**:JavaServer Pages是一种动态网页技术标准,允许Java代码嵌入HTML页面,实现动态内容的生成。 - **JavaScript**:客户端...
### 软考系统架构师案例分析知识点整理 #### 一、系统规划 - **系统项目的提出与预可行...以上内容涵盖了软考系统架构师案例分析中关键知识点的详细解析,旨在帮助考生全面理解和掌握系统架构设计的相关理论和技术。
- 关系型数据库管理系统及其性能评价,数据库设计原则,分布式和并行数据库系统。 - 嵌入式系统的设计,包括硬件组成、软件开发平台和网络应用。 - 数据通信的基础知识,如OSI模型,网络协议和设备,以及计算机网络...
### Java系统软件技术架构设计方案分析 #### 设计理念与目标 根据提供的文档信息,“xxx系统”的设计理念在于同时创造客户价值并提供优秀的用户体验。“xxx公司”致力于确保产品既符合用户的使用习惯,又能满足...
- **6.6 基于架构的软件设计** - **6.6.1 ABSD方法与生命周期** - 基于架构的设计方法论。 - **6.6.2 基于架构的软件开发模型** - 以架构为中心的开发流程。 - **6.7 形式化方法** - 使用数学语言精确描述系统...
在这个“ASP.NET-三层架构-花店系统网站”项目中,我们看到的是一个利用三层架构设计模式来组织代码的花店管理系统的实现。 三层架构是一种常见的软件设计模式,它将应用分为三个主要层次:表现层(Presentation ...
总结,这份“银行软件开发-需求开发和管理-系统架构设计说明书”全面地涵盖了系统设计的各个方面,为开发团队提供了清晰的指南,以构建稳定、高效且安全的银行软件系统。在实际项目中,根据需求和项目规模,还可能...
- **软件定义**:宾馆客房管理系统是一款面向宾馆行业的管理软件,用于实现客房预订、客户信息管理、员工管理等功能。 - **开发环境**:本系统基于Netbeans集成开发环境和SQL Server 2008数据库服务器进行开发。 - *...
考试大纲分为三个部分:信息系统综合知识、系统架构设计案例分析和系统架构设计论文。下面将详细阐述这些部分的知识点。 1. 信息系统综合知识 - 计算机软件与网络基础知识:涵盖操作系统、数据库系统、嵌入式系统...
在这个“三层架构---资料管理系统”中,我们可以看到开发者使用C#编程语言构建了一个完整的资料管理系统,具备资料管理和用户管理等多种功能。 1. **三层架构**:三层架构通常包括表现层(UI)、业务逻辑层(BLL)...
- **动力系统控制**:发动机管理系统、变速箱控制等关键部件均可以通过AUTOSAR架构进行统一管理和优化。 - **底盘控制系统**:ABS、ESP等系统能够借助AUTOSAR实现更加精准的控制逻辑。 - **车身电子系统**:灯光控制...
### 历年系统架构设计师考试试题分类精解——案例分析与论文篇 #### 第1章:案例分析 **试题1解析** ##### 背景介绍 本试题以某市级公安机关开发的一套特种车辆管理与监控系统为例,旨在提高特种车辆管理的效率和...
### 软件系统架构设计师教程经典图例 #### 操作系统 - **操作系统层次**:此图展示了经典的微内核架构模式。微内核架构将操作系统的核心功能最小化,并将其余的服务作为独立的进程运行在用户空间。这种方式提高了...
系统架构设计师考试大纲涵盖了计算机软件与网络基础知识、信息化基础知识、系统开发基础知识、软件架构设计、系统设计、软件系统建模等多个领域。具体知识点如下: 1. 计算机软件与网络基础知识 包括操作系统的...
总结来说,"软件工程课程设计-企业人事管理系统"是一个融合了JSP、JAVA BEANS、ECLIPSE和MYSQL等技术的实践项目,它体现了Web应用开发的典型流程和架构模式,对于学习者来说,不仅可以提升编程技能,还能理解软件...
在宾馆管理系统中,MySQL用于存储宾馆的房态信息、客户信息、订单信息、员工信息及财务数据。 3. Apache服务器:作为最流行的Web服务器软件之一,Apache以其跨平台和开源的特性被广泛使用。Apache的模块化设计允许...
系统架构师是一个高级IT职位,主要负责设计和优化复杂的信息系统,确保其高效、稳定、安全地运行。在这个角色中,深入理解技术趋势、业务需求和性能指标是至关重要的。"2010年-2017年系统架构师历年真题及解析"这个...
《系统架构设计师考试大纲(2009版)》是中国计算机技术与软件专业技术资格(水平)考试中的一个重要指导文件,旨在考核考生是否具备系统架构设计的高级工程师实际工作能力和业务水平。大纲要求考生掌握一系列的专业...