概要设计实例.docx
- 文档编号:10543632
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:13
- 大小:132.88KB
概要设计实例.docx
《概要设计实例.docx》由会员分享,可在线阅读,更多相关《概要设计实例.docx(13页珍藏版)》请在冰点文库上搜索。
概要设计实例
时间表记录系统概要设计
Version0.0.2
修订历史
日期
版本
描述
作者
2006-8-30
0.0.1
初稿,增加TSS体系结构并描述
谭勇
2006-9-1
0.0.2
修改,增加web应用目录结构描述
谭勇
目录
1绪言和目标3
1.1目的3
1.2范围3
1.3定义及缩写3
1.4参考3
2项目背景3
2.1目标概要3
2.2方案概要3
3硬件及软件3
4外部因素3
4.1存在的应用软件3
4.2第三方应用软件3
4.3外部数据源3
5技术技能3
6解决方案架构4
6.1系统体系结构4
6.2网络和通讯视图4
6.3模块视图4
6.4数据视图4
6.5用户界面4
7未鉴别因素4
8研发风险4
1绪言和目标
目的
本文档是描述软件工厂内部项目管理时间表记录系统(以下简称TSS)的概要设计文档。
该设计依据于TSS的软件需求说明,旨在为系统提供一个优秀的体系架构,在该架构下构件可移植性好,可重用性高,可伸缩性强,性能卓越的软件系统。
根据本文档,系统分析员或程序员可以对系统进行详细设计。
范围
本文档适用于TSS的所有模块,这些模块是:
●提案管理模块
●任务管理模块
●审批模块
●报表/查询模块
定义及缩写
缩写
定义
SRS
软件需求说明
DAL
数据访问层DataAccessLayer
BLL
业务逻辑层
Model
业务实体
MSMQ
MSmessageQueue
参考
文档名称
文档标题
TSS_010201_软件需求说明V0.1.0
TSS软件需求说明
TSS_020301_项目计划V0.1.0
TSS项目计划
TSS_030301_数据字典V0.1.1
TSS数据字典
TSS_010101_界面需求说明V0.1.0
TSS界面原型
2项目背景
目标概要
TSS建设的目标用户主要是软件工厂的各项目组成员、项目经理及项目管理组等。
它将辅助软件工厂的各项目组成员填写任务完成情况,帮助项目经理及项目管理组了解项目进度和项目用时的情况。
方案概要
TSS是一个典型的利用ASP.NET2.0技术构建的企业级应用程序,采用典型的三层体系架构,将应用程序实现分为表示层、业务逻辑层和数据访问层。
3硬件及软件
研发硬件配置
研发服务器:
∙IPAddress–192.168.1.145
∙OS–windowsserver2003
∙AppServer–IIS
∙DBServer–sqlserver2005
∙Microsoft.NETframework2.0.50727
研发工作站:
∙PC–P42.4,512RAM
∙OS–WinXP
研发语言及编译器
∙MicrosoftVisualstudio2005
∙IIS
∙C#
∙Microsoft.NETframework2.0.50727
软件支持工具
∙MSVSS2005
∙MSOffice2003
∙Photoshop
第三方工具
略
4外部因素
存在的应用软件
无
第三方应用软件
无
外部数据源
无
5技术技能
A2.0+C#+SqlServer2005
6解决方案架构
系统体系结构
下图所示,显示的是TSS的三层系统体系架构图。
图1TSS系统体系架构图
●表示层
表示层主要包含ASP.NETWeb窗体、页面用户界面等元素。
该层主要完成两个任务:
一是从业务逻辑层获取数据并显示给用户;二是实现与用户的交互,将有关数据回送给业务逻辑层进行处理,其中可能包括数据验证、处理用户界面事件等。
表示层的价值在于,它把业务逻辑层和外部刺激(用户输入、激发事件等)隔离开来。
这样到达业务逻辑层的请求看起来是一样的,无论请求是来自用户输入,还是接受一个文件、时间或者业务事件等所触发。
另外,表示层重点表达的是用户的兴趣和利益,为应用程序交互提供任何形式的帮助,包括有益的信息提示、用户偏好设置等。
●业务逻辑层
业务逻辑层包含了核心业务相关的逻辑,它们实现业务规则和业务逻辑,并且完成应用程序所需要的处理。
作为这个过程的一部分,业务逻辑层负责处理来自数据存储或者发送给数据存储的数据。
●数据访问层
数据访问层包含数据存储和与它交互的组件或服务。
这些组件和服务在功能上和业务逻辑层相互独立。
综上所述,数据层从数据库中获得原始数据,业务逻辑层把数据转换成符合业务规则的有意义的信息,表示层把信息转换成对于用户有意义的内容。
同时,上层可以使用下层的功能,而下层不能够使用上层的功能。
一般下层每个程序接口执行当前的一个简单的功能,而上层通过不同的下层程序,按照不同顺序来执行这些下层程序。
层次体系就是以这种方式来完成多个复杂的业务功能的。
应用程序实现原型
6.1.1应用程序结构介绍
下图显示了应用程序的结构。
图2包含业务组件的TSS系统体系架构图
在以上应用程序结构中,业务实体组件,用于实现将关系型数据(库)中的数据,使用对象的形式表现出来,将数据转化为对象的过程,被称为映射。
业务逻辑组件,以面向对象的方式将业务实体对象组合起来,以实现自定义的业务逻辑。
同时,有效地降低了表示层与数据访问层的耦合,加强了应用程序面向对象的能力。
6.1.2业务实体
业务实体是代表业务数据的对象,是业务逻辑层的基础。
在应用程序代码中,业务实体表现为一些类。
如:
用户类user。
这些类在实现过程中,定义了私有字段、公共属性、构造函数等。
这些结构正是创建典型业务实体类的主要成员。
●私有字段
用于高速缓存本地业务实体的数据。
当通过数据访问组件从数据库中检索数据时,这些字段保留数据库中数据的一个快照。
●公共属性
用于访问实体状态、访问实体内部数据的子集和层次(子集和层次可使用ArrayList或者DataSet来实现)。
属性可以和数据库中的列同名,但不是必需的。
开发人员可根据需要选择属性名称,而不是单纯以数据列的名称为依据。
●构造函数
为业务实体类的初始化奠定基础。
对于业务实体组件而言,通常都存在多种构造函数。
另外,在业务实体类中还可能包括方法、事件和属性等。
●方法
通过使用业务实体组件中的数据,执行本地化处理。
●事件
实现业务实体组件内部状态的变化。
业务实体具有以下特征:
✓业务实体提供了对业务数据和相关功能的状态化编程访问。
✓业务实体可以使用具有复杂架构的数据来构建。
这种数据通常来自数据库中的多个相关表。
✓业务实体数据可以作为业务逻辑组件方法中的输入/输出参数进行传递。
✓业务实体通过序列化,保持它们的当前状态。
如:
应用程序可能需要在本地磁盘、桌面数据库(如果应用程序脱机工作)或消息队列中存储实体数据。
✓业务实体类具有一定独立性,它并不知道数据访问组件和底层数据库的存在。
因此,不直接访问数据库。
全部的数据库访问都是由相关联的数据访问组件完成。
✓业务实体不启动任何类型的事物处理。
事物处理由使用业务实体的应用程序或业务过程来启动。
6.1.3业务逻辑组件
业务逻辑组件与数据访问组件既类似,又不同。
例如:
两者都可通过向ObjectDataSource控件暴露方法名称、组件名称,然后将数据传递到表示层表示。
然而,业务逻辑组件不像数据访问组件那样,直接放回DataSet类型的数据结果,而是返回强类型的业务实体对象(集合)。
在业务逻辑组件的实现代码中,其方法将调用数据访问层中的方法。
这种使用业务逻辑组件的方式,有效减弱了表示层与数据访问层之间的耦合性,增强了应用程序的可维护性和面向对象的能力。
6.1.4实现业务实体组件
在实现业务实体组件之前,尤其是实现复杂业务实体之前,必须经过两个步骤:
一是实现逻辑映射,即在逻辑上,实现将关系数据映射到业务实体。
二是对业务实体进行编码。
1)实现逻辑映射的建议
●多花时间分析应用程序的应用需求和逻辑业务实体,然后为之建立模型,接着考虑业务实体的创建问题,而不要为每个数据表都定义单独的业务实体。
建立应用程序的工作方式模型的方法之一是使用统一建模语言UML。
●不要定义单独的业务实体来表示数据库中的多对多表,可以通过在数据访问组件中实现的方法来公开这些关系。
●如果需要实现返回特定业务实体类型的方法,则建议把这些方法放在该类型对应的数据访问组件中。
●数据访问组件通常访问来自单一数据源的数据。
当需要聚合多个数据源的数据时,建议分别为访问每个数据源定义一个数据访问逻辑组件,这些组件可以由一个能够执行聚合任务的更高级组件来调用。
2)对业务实体实现编码的建议
●选择使用结构还是使用类,对于不包含分层数据或集合的简单业务实体,可以考虑定义一个结构来表示业务实体。
对于复杂的业务实体或要求继承的业务实体,可将实体定义为类。
●表示业务实体的状态。
对于数字、字符串等简单值,可以使用等价的.net数据类型来定义字段。
●表示业务实体组件中的子集合和层次结构。
表示业务实体中的数据的子集合和层次结构的方法有两种:
方法一是使用.net集合(包括在C#2.0中出现的泛型集合)。
.net的集合类为大小可调的集合提供了一个方便的编程模型,还为将数据绑定到用户界面控件提供了内置的支持。
方法二是使用DataSet。
DataSet适合于存储来自关系型数据库或XML文件的数据的集合和层次结构。
此外,如果需要过滤、排序或绑定子集合,也应首选DataSet。
6.1.5实现业务逻辑组件
构建业务实体的目的是为了业务逻辑组件创建数据基础。
可以根据应用程序的逻辑和规则要求,在业务实体的基础之上,构建业务逻辑组件。
具体说,业务逻辑组件中包括多个操作业务实体的方法,这些方法通过组织和处理业务实体对象,实现业务逻辑和规则。
时序图
略。
注意:
TSS系统体系架构决定了,表示层不应该与数据访问层(DAL)直接打交道,而是应该委托业务逻辑层BLL与DAL交流。
项目结构
项目命名
类包命名
说明
C:
\...\web\
zdsf.tss.web
Web站点项目,其中包括ASP.NET文件、用户控件、图片、配置文件、主题文件等。
ICacheDependency、CacheDependencyFactory、TableCacheDependency
zdsf.tss.IcacheDependency
zdsf.tss.CacheDependencyFactory
zdsf.tss.TableCacheDependency
这三个项目使用工厂模式实现SQL数据缓存依赖功能的应用。
IDAL、DALFactory、SQLServerDAL
zdsf.tss.IDAL
zdsf.tss.DALFactory
zdsf.tss.SQLServerDAL
使用工厂模式和注入依赖技术实现数据访问功能。
IDAL项目中定义多个接口。
DALFactory项目用于实现工厂类。
SQLServerDAL项目用于实现工厂模式中的多个具体类,这些类均实现IDAL中对应的接口的成员方法。
DBUtility
zdsf.tss.DBUtility
包括用于实现SQLserver数据库访问功能的帮助类。
可参考复用petshop4.0中的SqlHelper。
Model
zdsf.tss.Model
包含各业务实体类。
IProfileDAL、ProfileDALFactory、SQLProfileDAL
zdsf.tss.IProfileDAL
zdsf.tss.ProfileDALFactory
zdsf.tss.SQLProfileDAL
这些项目使用工厂模式和依赖注入技术实现个性化用户配置功能的具体数据访问。
Profile
zdsf.tss.Profile
实现继承自ProfileProvider基类的用户配置提供程序。
Membership
zdsf.tss.Membership
实现继承自MembershipProvider基类的成员资格提供程序。
BLL
zdsf.tss.BLL
实现业务逻辑。
IBLLStrategy
zdsf.tss.IBLLStrategy
应用策略模式。
类包命名规则
遵循.NET命名规则。
web应用目录结构图
Web:
包含aspx页面
App_Code:
ASP.NET特殊文件夹,包含希望作为应用程序一部分进行编译的实用工具类和业务对象(如cs、vb等文件)的源码
App_Themes:
包含用于定义ASP.NET网页和控件外观的文件集合(.skin和.css文件,及图像文件和一般资源)。
Bin:
包含要在应用程序中引用的控件、组件或其他代码的已编译程序集(.dll文件)。
Images:
存储图像文件目录
js:
存储javascript目录
Controls:
包含用户控件
[module]:
存储各子模块的aspx页面目录
数据视图
参见TSS_030301_数据字典V0.1.1.doc
用户界面
参见TSS_010101_界面需求说明V0.1.0.doc
7未鉴别因素
暂无
8研发风险
●研发人员技术储备不足
●研发人员时间不固定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 概要 设计 实例