《项目名称概要设计说明书.doc》由会员分享,可在线阅读,更多相关《项目名称概要设计说明书.doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、XXX概要设计说明书编写:XXX日期:YYYY-MM-DD审核:日期:批准:日期:受控状态:是 发布版次:1.0日期:YYYY-MM-DD编号:变更记录日期版本变更说明作者YYYY-MM-DD1.0初始版本XXX签字确认系统模块对应章节对应部门负责人签字目 录目录1引言31.1编写目的31.2背景41.3基线41.4特殊名词定义41.5参考资料42总体设计42.1概述42.2系统环境描述42.2.1运行环境52.2.2开发环境62.3系统总体结构设计72.3.1系统业务层次图72.3.2系统架构说明82.3.3软件架构说明(选作)82.3.4关键技术与算法142.2.3关键数据结构(选作)15
2、3系统功能设计153.1系统功能153.1.1文件上传163.1.2组织管理列表(树状图)174尚待解决的问题201 引言1.1 编写目的书写要求:本说明书目的在于明确说明系统各功能的实现方式,指导开发员进行编码。本说明书的预期读者为:XXX等。1.2 背景书写要求:待开发软件系统的名称:XXX此软件系统任务提出者:XXX此软件系统任务开发者:XXX此软件系统任务用户:XXX1.3 基线书写样例:XXX需求分析说明书 v1.01.4 特殊名词定义XXX:YYY。1.5 参考资料书写样例:属于本项目的其他已发表的文件。本文件中引用的其他文献、资料以及软件开发标准。2 总体设计2.1 概述2.2
3、系统环境描述系统包括的范围:XXX。2.2.1 运行环境2.2.1.1 软件环境分类名称版本语种操作系统操作系统的附加功能数据库平台数据库平台补丁应用平台应用平台补丁邮件系统客户端软件2.2.1.2 硬件环境服务器最低配置推荐配置应用和数据库服务器邮件服务器2.2.2 开发环境2.2.2.1 服务器软件环境分类名称版本语种操作系统操作系统的附加功能数据库平台数据库平台补丁应用平台应用平台补丁版本控制系统目录服务系统邮件系统客户端软件2.2.2.2 服务器硬件环境服务器最低配置推荐配置应用服务器、数据库服务器、邮件服务器、目录服务器2.2.2.3 开发机器软件环境分类名称版本语种操作系统操作系统
4、的附加功能数据库平台应用平台开发平台客户端软件2.2.2.4 开发机器硬件环境分类最低配置推荐配置开发机器2.3 系统总体结构设计2.3.1 系统业务层次图内容描述:图例:功能简介(类似需求分析):2.3.2 系统架构说明说明整个系统的软硬件架构层次:图例如下:2.3.3 软件架构说明(选作)书写要求:根据系统设计的功能层次逐一说明(与需求分析中的“系统功能总体说明”部分的内容基本一致)2.2.1.2系统架构设计说明书写要求:根据系统的功能需求设计并说明系统开发所采用的软件开发架构。书写样例:Jsp & Servlet & JavaBean架构架构结构 具体架构层次如图4.1所示。图 4.1
5、Jsj架构结构各层实现功能说明View层是与客户的交互层,负责提交用户请求和数据,并将后台的响应结果返回给客户层。同时提供客户提交信息的javasript验证功能。Control层负责项目中业务功能实现流程的管理工作。如:具体的业务功能由哪些类来实现,实现结果有谁来显示等等,必须由Control层来决定。同时Control层还要负责与其它两层的通信,这个过程还需要一些bean类来协助传递信息,另外Control层还要负责请求的转发与从定向。从Control层所负责的功能上不难想象的到在业务逻辑相对复杂的时候此层代码编写会略显繁重和复杂。Model层主要是一些实现具体业务功能的类,在这里可以统一
6、简称为Business类。也可以将架构中除了Servlet控制器之外的所有类统一叫做Javabean类。从这种命名方式上可以看出,model层在实现业务功能是具体的实现方式比较自由,但在业务逻辑比较复杂的情况下model层职能的划分会出现问题,可能会造成一定混乱和不便。设想一下如果可以更明确的将model层进一步划分使之变得更有条理,这样就会增强该层的可维护性了。特别说明,图4.1 中的“bean”可以看作数据封装类,它以实例对象的形式作为各层之间数据通信的载体,实际上这些对象也属于业务对象,如User对象、Book对象。Jsp & Servlet & JavaBean架构特点说明1.架构的优
7、点结构简单明了,搭建时配制信息很少只有一个文件“web.xml”,该文件主要用来映射Servlet。Control层的应用一定程度上将Jsp中的Java代码分离出来,使得jsp文件的复杂程度有所降低。另外该架构涉及到的架构知识较少,很容易上手。基于Java语言的Web开发技术掌握难易顺序大致可参见图4.2所示。基于Java语言的Web开发技术Html Xml Jsp JavaScriptHibernate SpringServlet Struts不易掌握图4.2 基于Java语言的Web开发技术掌握难易顺序通过图4.2 可见Jsp+Servlet+JavaBean 这种架构技术组合难度是很低的
8、。2.架构的缺点不能将Java代码完全从页面上脱离,页面中会用Js验证代码,使Jsp页面结构相对复杂,不易维护。Control层读取客户提交的信息要逐条操作,代码书写比较麻烦,Controler层要定义处理响应的分支和model层类的调用,使得Controler本身内容较多不便开发和维护。另外Jsp+Servlet+JavaBean架构技术组合层次简单,各层的代码开发较随意自主,尤其是在JavaBean实现的Model层由于完成的业务功能多种多样,如果开发人员没有很好的遵循一定开发规范或是开发思路不清晰,那么代码开发会变得混乱。为了解决这些问题,引入一定的架构技术来调理代码开发就变得很必要了。
9、下面一节将Struts、Spring、Hibernate三种比较流行的架构技术引进架构设计中来构建一种较为复杂却层次清晰得的开发模式。具体架构层次如图4.3所示。SSH架构结构图(图例1)n 各层实现功能及开发技术说明1.四层结构的优势1)通过成熟的开源产品实现各层功能开发,比起自己开发能缩短开发周期,且架构所用到的开源产品均有很广泛的用户群,经受过实践的考验,质量和性能更有保障。2)层与层之间松散偶合,增加代码重用率。 3)各层分工明确,这样也利于团队的明确分工。2.表示层这一层是面向用户的界面,是用户与系统之间交互的媒介。如:用户在界面发送请求,系统接收请求,进行处理,然后通过界面将结果呈
10、现于用户。这一过程包括了用户动作、数据传递、界面显示。大家熟悉的MVC模式就是将这三者分离,减少三者耦合。我们在该层借助了Struts来实现。2)Struts的实现的功能:管理用户的请求,做出相应的响应。提供一个Controller,委派调用业务逻辑和其它上层处理。处理异常,抛给Struts Action.为显示提供一个模型。UI(User interface)验证。以下部分则不该在Struts显示层的编码中经常出现。因为在表示层引入这些代码,则会带来高偶合和非常麻烦的维护代价。直接的与数据库通信,如JDBC调用。与你应用程序相关联的业务逻辑以及校验。3.业务层业务层在实际的项目开发中,每个领
11、域都会有自己独特的业务逻辑,正因为这样,致使项目中代码高度偶合,原本有可能被重用的代码或功能,因为与具体的业务逻辑绑定在一块而导致很难被重用。因此我们将实现这些具体逻辑的代码抽取出来分为单独的一层,其目的是希望通过分层,来降低它与系统其他部分的偶合度。现实中世界是变化的,既然该层实现的是现实中具体的业务逻辑,那该层的实现代码不可避免的会发生变更。怎样让该层适应最大的变化,做到最小的改动?通常我们在编码的时候会尽量考虑到同一业务多种实现的兼容和可扩展的能力。因此我们在该层借助了Spring,通过依赖注入、AOP应用、面向接口编程,来降低业务组件之间的偶合度,增强系统扩展性。2)Spring实现的
12、功能:处理应用程序的业务逻辑和业务校验。管理事务。提供与其它层协同工作的接口。管理业务层级别的对象的依赖。在显示层和持久层之间增加了一个灵活的机制,使得他们不直接的联系在一起。通过揭示从显示层到业务层之间的Context来得到business services。管理程序的执行(从业务层到持久层)。4.数据持久层 数据持久层在开发中与数据库进行数据交互必不可少,通常我们归为CRUD(添加、读取、修改、删除),这些操作占据了系统开发中大部分的时间,同时我们还需要考虑与数据库交互的性能问题,如连接池、数据缓存等等。系统内部的持续层不但需要大量调试时间,而且还经常缺少功能使之变得难以控制。针对这点我们
13、引入ORM开源架构Hibernate。2)Hibernate实现的功能:查询对象的相关信息的语句。存储,更新,删除数据库记录。支持大部分主流数据库,并且支持Parent/Child关系,事物处理,继承和多态。5.各层中的封装类各层的封装类的主要功能都是一致的,就是将有一定联系的数据集合装载在其实力对象中,这样做的道路是显而易见的,通过对象来传递数据集合的效率会更高更方便。显示层的FormBean类是用封装来自页面form提交的信息的,一般情况下这个类的私有变量是与页面form的元素一一对应的。另外FormBean封装类的对象还负责将要显示的信息传递到显示层,其作用是双向的。业务逻辑层的Valu
14、eObject类是用来封装一定业务功能实现过程中需要的数据集合的,也就是说要封装的数据都是由业务功能的需要决定的。持久层的PersistObject类,其实例化对象所封装的数据集是与数据库中表相对应的,即表项对应要封装的数据项。我们根据上面封装类的说明可以看出,FormBean、ValueObject、PersistObject、三者的作用相似都是为了封装数据信息,不同的是这些对象所在的是不同架构层面,这样做的好处是数据的处理和转递比较有条理,层次清晰易于维护。封装类在架构中的情况如图4.4所示。BL(业务逻辑层)view(视图层)Persist(持久层)Jsp页面中的fromFormBean
15、ValueObjectPersistObject业务层的具体业务数据库中的表项决定决定决定各层封装类的情况(图例2)2.3.4 关键技术与算法书写要求:对系统中比较复杂的功能的实现方式或应用的特殊技术加以说明要求通俗直观便于客户参考。书写样例:查询统计(科学项目的查询和统计,科学成果的查询和统计,科学奖励的查询和统计,科技人才的查询和统计)组合检索:组合检索由拥有搜索权限的用户在组合类别的下拉框中选择需要查询的项目,如科技项目的检索:项目类别+项目资金+项目所属公司+时间;没有选择的项,下拉框默认为空白。点击搜索,系统将对数据库的字段进行模糊搜索,搜索结果列表显示于组合搜索下面,分页显示搜索结
16、果。注:其它的科技成果搜索,科技奖励搜索,科技人才搜索采用统一的组合搜索形式统计图表:各分公司统计:根据用户在科技项目申请,科技成果申请,科技奖励申请,科技人才的输入的数据,当拥有该权限的用户点击各分公司统计,系统将从数据库中读取以上的部分数据,进行统计,然后以统计图形的形式显示出来,对各分公司进行比较,方便领导制定企业决策。某分公司统计:当拥有权限的用户点击某分公司统计,系统将从数据库中读取这对该公司的数据进行统计,显示统计图,该统计主要面向集团和分公司领导。注:其它的科技成果搜索,科技奖励搜索,科技人才搜索采用统一的统计形式2.2.3关键数据结构(选作)书写要求:简要说明本系统中的最主要的
17、数据结构。书写样例:3 系统功能设计书写要求:此部分主要对关键功能进行设计,描述其实现方式。要求结合具体页面及功能实现过程说明各模块功能。界面要求对输入输出项进行说明,实现过程尽量能细化到每一个操作。(最好附以特征界面和数据表设计)。解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。3.1 系统功能书写样例:3.1.1 文件上传3.1.1.1 功能描述文件上传功能用到了专门为对文档进行上传下载功能而设计的两个包,调用包中特定类的特定方法,然后传入对
18、应的文档路径参数就能实现文档的上传下载。而且还能实现多文档上传。文档上传时,用户单击增及按钮就会多出一个文本框供用户选取上传文档的路径,单击减少按钮就会相应的减少一个文本框。最少要上传一个文件,最多只能同时上传五个文件。用户操作效果如下图例3、4。文档上传客户页面初始页面(图例3)文档批量上客户页面(图例4)3.1.1.2 接口设计输入操作:用户输入文件路径。输出效果:上传成功的文件列表。输入操作通过界面进行。文件路径用文件选择框。3.1.1.3 功能流程图(也可用活动图等描述)3.1.2 组织管理列表(树状图)3.1.2.1 功能描述组织管理采用javascript实现动态树,管理员可以定位
19、到动态树的特定节点,每个节点都有他对应的操作,管理员可以对这个节点进行他需要的操作,如子公司的增删改、公司部门的增删改等。当操作子公司的时候,点击按钮时,组织结构树会自动展开以展现所有集团下的子公司,这时可以对子公司进行各种删改。同理,子公司下有部门,部门下还有部门,只要按相应的按钮,组织结构树就会自动展开,相应的增删改操作就能实现。点击按钮时,树就折叠起来,方便管理员有针对性地进行操作。3.1.2.2 接口设计输入操作:查看公司结构。输出效果:以树状结构输出公司结构。输入操作通过界面进行。输入操作:删除操作。输出效果:是否删除成功。输入操作通过界面进行。输入操作:输入公司/部门名。输出效果:以树状结构输出公司结构。输入操作通过界面进行。增加公司/部门用页面弹出对话框。3.1.2.3 功能流程图(流程图)活动图(选作):4 尚待解决的问题说明在本设计中没有解决而系统完成之前应该解决的问题。