系统概要设计
在完成了的需求分析后,应该到达的⽬标是:对系统有⼀个整体的认识,包括每个功能实现的流程,产⽣的数据,技术基础等。
基于以上的认识,就可以开始对该系统进⾏概要设计。
⾸先设计系统的总体架构。
然后利⽤顺序图描述基于该架构下各个类如何协作实现各个待开发的功能。
最后整理总结出数据字典。
系统总体架构设计
在该系统中,作者采⽤的系统框架是Struts2,Spring4,Hibernate4和Bootstrap,根据各个框架⾃⾝的特点做出以下的系统架构设计:
设计依据:
展⽰层
1、Struts2是⼀个展现层的MVC框架,它解决了jsp页⾯代码与业务逻辑代码耦合的问题。提供了Filte
r的机制,对⽤户的请求进⾏拦截,然后分派到对应的Action类中进⾏处理,最后根据Action类的处理结果返回对应的响应页⾯。在该Filter的帮助下页⾯的代码不需要参杂任何的业务逻辑代码,⽽Action类中通过调⽤业务逻辑层提供的接⼝,则可以实现对请求的处理。
2、因为作者并不擅长前端页⾯的开发,所以只能够采⽤当前⽹页开发中⽐较流⾏的前端框架Bootstrap,Bootstrap也提供了⽐较好的排版以及基本的样式效果,最后实现的整体效果也还算过得去。
业务逻辑层
Spring4提供了两个最重要的组件IoC和AOP,所以Spring最适合设计在业务逻辑层,从数据访问层获取数据,为展⽰层提供业务逻辑的实现,作⼀个承上启下的功能。
Spring的IoC容器,简化了开发⼈员对类与类之间依赖关系的维护,在利⽤Spring进⾏开发的过程中,只需定义需要的接⼝,⽽对应的实例化过程则交给IoC容器来进⾏注⼊。这实际上也是⼀种解耦的操作,通过结合Spring和⾯向接⼝的编程思想,实际开发出来的代码⼗分的简洁,⽽且逻辑清晰明确。同时也提⾼了功能类的代码复⽤率。
Spring的AOP,带来最⼤的好处就是让开发⼈员从繁琐的事务操作代码中解放出来,让开发⼈员更加专注于业务逻辑代码的实现。
同时在Spring4和Struts2整合之后,将Action类的⽣成也交给了IoC容器来管理。
数据访问层
Hibernate4是⼀个ORM框架,能够将实体类直接映射到数据库表,在开发中只要定义好实体类之间的关系,数据库表与表之间的关系也就确⽴下来了。
同时Hibernate提供了⼀些基本的数据库操作,让开发⼈员不需要纠结于复杂的SQL。也提供了HQL,将以往⾯向数据库表的查询,改变为⾯向实体类进⾏的数据查询。
Value Object 值对象
贯穿于各层的是值VO值对象,设计的⽬的,主要是考虑到业务逻辑实现过程中需要的数据结构可能与保存到数据库中的实体类不⼀致,所以才有了值对象的出现。例如:在User类中只需要⽤户名和密码,但是在实际的注册过程中,可能还需要再次输⼊密码,来确保⽤户输⼊的正确性,此时值对象设计的意义就出现了。
在该系统架构中,基本业务流程处理如下:
1、在展⽰层中,利⽤Bootstrap框架构建相应的Jsp页⾯,实现⽤户与系统之间的交互界⾯。
2、利⽤Jsp页⾯传送⽤户的操作请求request和接受系统返回的响应response。在系统接收到jsp页⾯中传来的操作请求后,Struts2根据l配置⽂件,将不同的请求分派到对应的Action中进⾏处理,并且根据Action处理后返回的字符串,返回对应的Jsp响应页⾯。
3、在Action中,通过业务逻辑接⼝调⽤业务逻辑层的业务功能实现。
4、在业务逻辑层中,Spring的IOC容器负责向展现层提供实体对象(Model)、值对象(Vo)以及对应的业务逻辑处理实体,同时为Hibernate提供SessionFactory、可声明的事务管理。
5、在数据访问层,Hibernate利⽤*.l⽂件实现实体对象与数据库表之间的映射,利⽤session和HQL语句实现与数据库之间的交互。同时通过数据访问控制接⼝向业务逻辑层提供数据操作功能,并返回相应的操作结果。
利⽤上述的系统架构进⾏开发,可以发现在展现层中,实现了视图(view),控制器(controller),模型(model)的彻底分离,同时展现层,业务逻辑层,数据访问控制层三层之间通过接⼝进⾏连接,这样就实现了三层的分离,很⼤程度上的降低了系统各个功能模块之间的耦合度。只要能提供接⼝的实现,各层发⽣怎么样的变化都不会影响到其它层的功能实现。这样的层次结构设计,提⾼了系统的可复⽤性,以及开发的灵活性。并且因为各个模块之间的耦合度⼩,有利于开发团队的成员能够选择⾃⼰擅长的开发⽅向,进⾏并⾏开发,也可以进⾏独⽴的单元测试,⼤幅度地提⾼了开发的效率以及缩短了系
统开发的周期。
功能实现顺序图
顺序图是系统动态⽅⾯的建模,主要是为了分析在业务逻辑功能实现过程中,对象创建,改变,销毁的时间,以及它们之间相互调⽤的关系。更重要的是通过顺序图,可以明确各个类在实现业务逻辑功能过程中的职责,在接下来的详细设计中也可以通过顺序图,对各层中的接⼝进⾏定义。
为了达到上述的要求,顺序图的绘制过程也有需要注意的事项:
1、画图的⽅向需要从左到右,从上往下。
2、在绘制的过程中主要考虑展现功能实现正常的情况。
登录
注册
添加购物车
查看购物车
页面设计代码 购买
查看订单
检索商品
商品信息管理
⽤户管理
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论