软件体系结构之选择原因

我选择的是SSH框架。

选择的原因:

SSH框架为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。

Struts

优点:首先他是开源的,使开发者可以更深了解他的原理和内部实现机制,   可扩展性

采用MVC模式分离业务逻辑层 显示层 模型层 低耦合,结构清晰,使开发者专注于业务逻辑

还有丰富的标签库供使用

支持国际化

还有很高的重用性

Hibernate

          优点: 他是数据库连接的中间件,而且对程序的依赖性很小  透明性  使用了java的反射机制

轻量级  他对jdbc进行了轻量级的封装  而且可以在程序中取代EJB的cmp,完成持久化

性能很好,而且还是轻量级 很灵活

他支持多种数据库 的 1对多的复杂关系

可以完全使用面向对象的思想去编程

使用了JTA  JDBC 和  JNDI技术

Spring

         优点:spring  是基于ioc(控制反转)和aop(面向切面编程) 的框架

而且封装了所有的事务,不需要程序员自己去提交事务,一切都由web容器去控制,省去了很多代码

spring采用了单态工厂模式       采用mvc模式下的java程序 尽管已经把层与层之间的关系耦合度降低,但还是有联系,        这时候使用spring 把所有bean都交由web容器去控制 创建和销毁,这样才真正的降低了耦合度, 而且bean的创建的生命周期都在web容器里控制,而且他从工厂里实例的bean都是单态的,当然可以加一个属性让他不是单态

面向接口编程,只需要知道要实现的接口就可以,不需要知道他的具体实现

使用spring框架有利于单元测试

SSH框架说明:

集成SSH框架的系统从职责上分为四层:表示层业务逻辑层数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。

系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。

采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率

时间: 2024-08-07 08:23:51

软件体系结构之选择原因的相关文章

软件体系结构原理、方法与实践总结

第1章:软件体系结构概论 什么是软件危机,软件危机的具体表现有哪些? 软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象. 软件危机的表现: 软件成本日益增长,开发进度难以控制,软件质量差,软件维护困难 产生软件危机的原因,如何克服软件危机? 产生软件危机的原因有用户需求不明确,缺乏正确的理论指导,软件规模越来越大,软件复杂度越来越高. 人们面临的不光是技术问题,更重要的是管理问题.要提高软件开发效率,提高软件产品质量,必须采用工程

对软件体系结构的认识

一 . 软件体系结构(架构) 软件体系结构的定义 通常,软件体系结构通常被称为架构,指能够预制和可重构的软件框架结构.架构尚处在发展期,对于其定义,学术界尚未形成一个统一的意见,而不同角度 的视点也会造成软件体系结构的不同理解.比方, ANSI/IEEE 610.12-1990软件project标准词汇对于体系结构定义是“体系架构是以构件.构件之间的关系.构件与环境之间的关系为内容的某一系统的基本组织结构以 及知道上述内容设计与演化的原理 (principle)”:而 Garlan & Shaw

284.软件体系结构集成开发环境的作用

软件体系结构集成开发环境基于体系结构形式化描述从系统框架的角度关注软件开发.体系结构开发工具是体系结构研究和分析的工具,给软件系统提供了形式化和可视化的描述.它不但提供了图形用户界面.文本编辑器.图形编辑器等可视化工具,还集成了编译器.解析器.校验器.仿真器等工具:不但可以针对每个系统元素,还支持从较高的构件层次分析和设计系统,这样可以有效地支持构件重用.具体来说,软件体系结构集成开发环境的功能可以分为以下5类. 1.辅助体系结构建模 建立体系结构模型是体系结构集成开发环境最重要的功能之一.集成

283.软件体系结构描述

4.6 使用“4+1”模型描述软件体系结构 对于同一座建筑,住户.建筑师.内部装修人员和电气工程师有各自的视角.这些视角反映了建筑物的不同方面,但它们彼此都有内在的联系,而且合起来形成了建筑物的总体结构. 软件体系结构反映了软件系统的总的结构,它和建筑物一样,存在不同的角度来反映系统的体系结构. 当面对一个复杂的系统时,必须从多个角度来考虑问题.在处理体系结构时我们通常只考虑系统功能方面的需求,而实际上除了功能,物理分布.过程通信和同步等也必须在体系结构一级加以考虑.这些来自不同方面的需求就形成

282.软件体系结构的风格与模式

建筑模式Christopher Alexander, The Timeless Way of Building, p247, 1979每个模式是一个由三部分组成的规则,表达了特定环境.问题和解(solution)之间的关系.作为现实世界的一个成分,每个模式表达了下列三者之间的一种关系:特定环境,在该环境中反复出现的力(forces)的系统,以及协调这些力的某种空间排列.作为语言的一个成分,每个模式是一条指令,展示了这种空间排列如何被一再重复使用,目的是协调同特定环境相关的力的系统.简单地说,模式

285.软件体系结构评估概述

7.1.1 评估关注的质量属性 软件体系结构的设计是整个软件开发过程中关键的一步.对于当今世界上庞大而复杂的系统来说,如果没有一个合适的体系结构而要有一个成功的软件设计几乎是不可想象的. 不同类型的系统需要不同的体系结构,甚至一个系统的不同子系统也需要不同的体系结构.体系结构的选择是一个软件系统设计成败的关键.但是,怎样才能知道为软件系统所选用的体系结构是否恰当?如何确保按照所选用的体系结构能顺利地开发出成功的软件产品呢?要回答这些问题,需要使用专门的方法对软件体系结构进行分析和评估. 体系结构

EYES组——软件体系结构上机规划

EYES组——软件体系结构上机规划 考勤助手 第九周: 需求分析的详细撰写,并在此基础上讨论与完善,讨论软件的体系结构风格: 第十周: 选择合适的软件构架风格(暂定分层风格),确定整个项目的分层设计,做出“考勤助手”的软件体系结构图: 第十一周: 数据库设计,包括数据库需求分析,设计E-R图,数据库结构的实现: 第十二周: 组长分配任务,各自选择子系统合适的描述方式,所选内容随后在介绍: 时间允许情况下:“教务老师”功能模块的详细设计: 第十三周: 完成子系统的分层图和用例图后,汇总所有材料,讨

关于软件小组的选择

2015年3月19日 今天,我们开展了小组讨论,主要是讨论一下哪种类型的小组组织适于开发附录A的“巧克力爱好者匿名”产品. 小组的五朵“金花”们就适合于我们小组进行开发的软件小组类型进行了激烈的讨论,最终小组的意见集中在了民主小组和敏捷过程小组两种类型的软件小组上. 认为选择民主小组的组员表示,民主小组的基本概念是无我编程,程序员可以民主地编写自己喜欢的代码,而且民主小组是为一个共同的事业而工作的团体,没有单独的领导,注重小组的群体特征和相互尊重,这样工作效率会很高,同时代码的质量也很高. 选择

分布式软件体系结构风格(C/S,B/S)

分布式软件体系结构风格 1.  三层C/S结构 2.  三层B/S结构 了解很多其它软件体系结构 三层C/S结构(3-Tier C/S Architecture) §第1层:用户界面GUI-表示层--客户机 §第2层:业务逻辑-功能层--应用server §第3层:数据库-数据层--数据库server 基本组件: –数据库server ? 存放数据的数据库.负责数据处理的业务逻辑: –应用server ? 业务逻辑:对数据进行处理: –客户机应用程序 ? GUI:用户界面 §连接件:经由网络的调