软件项目实训及课程设计指导——系统设计中的系统架构设计示例
发表时间:2023年02月07日浏览量:
软件项目实训及课程设计指导——软件系统设计中的系统架构设计示例1、软件系统提要设计中所涉及的主要设计内容和事情历程(1)在软件应用系统项目的系统提要设计事情中,首先是要完成软件系统的总体架构设计及系统的分层设计,然后再使用UML包视图体现出软件系统架构设计的最终效果。由于J2EE技术规范为开发庞大的、漫衍式企业级的应用系统界说了一套体系结构和技术规范,它不仅提供了一套完整的基于尺度化模块的功效服务组件,而且也提供了对企业应用系统的尺度纵向分层设计方案。
如下示图为在J2EE技术平台下的软件应用系统的典型分层设计方案,在该分层设计中的系统各个层之间只存在单向依赖关系,从而较好地实现了各个层的封装和相互间的隔离。此外,该分层设计方案还可以使得软件应用系统中的每一层都能够为其所对应的上一层提供功效服务而成为服务的提供者,同时也作为下层的客户端而获得所需要的其他层所提供的功效服务。如下示图为某客户关系治理系统(CRM系统)总体架构设计效果的分层包图示例:(2)在软件应用系统项目的系统提要设计事情中,其次是完成软件应用系统中的各个组件的划分,然后再使用UML组件视图画出体现出软件应用系统中的各个功效模块的组成和相互间的关系;如下示图为某客户关系治理系统(CRM系统)的组件图的局部截图示例:(3)然后再对各个组件模块进一步细化并设计出组成组件模块的各个相关法式类(这包罗业务功效实现类和业务实体类等)以体现软件应用系统的基本组成单元;如下示图为某客户关系治理系统(CRM系统)的设计人员在系统组件设计的基础之上完成的系统法式类设计的局部截图示例:(4)最后系统设计人员则凭据前面的实体关系图(ER图)设计出软件应用系统的数据库表的逻辑结构,从而凭据实体关系图(ER图)可以设计或者在某个平台工具中导出对应的某个数据库系统表结构的设计效果,最终获得针对某个数据库系统的表结构界说,从而获得软件应用系统依据某个物理数据库系统平台下的各个数据库表结构设计的效果。
如下示图为某软件应用系统中用户信息数据库表结构界说的局部截图:如下图所示的树形目录表现了软件应用系统项目的系统提要设计中所涉及的主要内容和所应该发生出的设计效果。固然在软件应用系统的提要设计事情中还需要制定出种种形式的规范——代码规范、接口规约、命名气势派头等。因为,这些规范是项目小组以后配合开发的基础,而且它能够使得整个软件系统的开发事情可以协调、稳定和有序地开展。2、软件系统架构设计事情中应该要思量的一些问题——首先是软件系统开发平台的合理选择由于现在在企业通用应用系统的开发中主要存在有J2EE和VS.Net两种差别形式的开发平台,软件应用系统的系统架构设计人员首先则是需要决议本软件应用系统项目到底应该是接纳J2EE还是VS.Net开发平台作为技术实现的平台。
只管在体现形式上,J2EE是一组技术规范,而VS.Net更像是一种产物。但它们的目的其实都是为企业应用系统提供漫衍式的、高可靠性的解决方案和技术支持。"平台无关、技术实现中立、富厚的开源资源"是软件应用系统的设计人员在选择J2EE技术平台时的主要思量因素。
如下示图是百科中对J2EE技术平台的技术特性形貌文字的局部截图:本系列文章中所给出的示例项目——银行账户信息治理系统项目之所以接纳J2EE技术平台举行开发实现,是因为J2EE平台能够更好地解决企业应用中的"信息共享"和"服务集成"两大技术问题以及具有如下的技术特性:(1)系统的宁静性高——J2EE提供了从平台到应用级的宁静规范(2)系统的稳定性和可用性好——J2EE是基于Java的结实性和虚拟机实现的一致性基础上的(3)系统的可扩展性和可伸缩性好——J2EE能够满足企业对应用系统逐步升级的需要和能够实现快速开发部署。固然,J2EE技术平台的技术是很是成熟的——许多大牌厂商在技术方面都对其提供全力支持、而且有众多成熟的开源框架和技术平台对其提供良好的技术支持等这些方面的因素也是本项目要选择J2EE技术平台的其它方面的思量因素。
3、软件系统架构设计事情中应该要思量的一些问题——其次是合理地选择和接纳C/S还是B/S软件体系架构C/S(客户/服务器模式)和B/S(浏览器/服务器形貌)软件体系架构是当今软件系统开发模式中的技术架构的两大主流技术。C/S是美国 Borland公司最早研发的,而B/S是美国微软公司研发的。B/S软件体系结构有其特有的优点,但B/S软件体系结构在企业应用系统的开发中也反映出许多的不足之处。
传统的C/S体系结构并非一无是处,而现在主流的B/S体系结构也并非十全十美。因此,C/S体系结构与B/S体系结构的应用系统还将在一定的时期内共存。而且有许多软件企业为了使得自己的应用系统能够更广泛地满足差别应用平台下的用户需求,往往会对同一个软件系统提供多个平台的版本,如C/S版、B/S版以及移动App版(包罗平板电脑版等)。
因此,软件系统的设计人员需要找出影响软件系统架构选择的决议因素有哪些、并合理地举行权衡——软件系统的设计应该是理性地"思考"和"选择"的最终效果——"没有最好、只有最合适"。如下示图为蓝梦CRM治理系统应用B/S软件体系架构设计开发的数据查询显示效果的页面局部截图。
本系列文章中所给出的示例项目——银行账户信息治理系统项目之所以要接纳B/S软件体系架构,主要是基于希望本应用系统的客户端法式能够到达"零维护"的效果——因为浏览器的客户端能到达这样的效果,不需要在系统版本升级时用户需要不停地更新系统。4、软件系统架构设计事情中应该要思量的一些问题——最后是合理地选择什么类型的应用框架软件应用框架提供了一个归纳综合的体系结构模板和共享的应用组件,软件应用系统的设计人员可以应用这个体系结构模板和共享的系统组件快速地构建出特定应用领域中的应用系统法式;软件应用框架其实也就是某种特定应用场景的半制品,现在在J2EE技术平台中提供有大量的框架平台和开源框架系统。通过应用框架方式的系统开发,软件应用系统的设计人员能够实现在软件应用系统的分析、设计和法式模块类的法式代码的实现等方面获得多条理的系统重用,大大地降低了大量的重复性系统设计和法式模块开发实现的事情量,最终能够使得软件应用系统的开发实现与工业化中的大工业生产是一样的生产模式,从而大大地提高了软件应用系统的设计、开发和实现的总体效率。
如下示图为Spring框架的官方网页面中对Spring应用框架的功效形貌的局部截图:现在在J2EE技术平台中具有非侵入性和独立于容器性的轻量级框架技术越来越受到开发人员的青睐。因为它不会强迫软件应用系统中的焦点业务工具必须要遵循某个应用平台的特定接口规范——这将能够允许开发人员使用POJO(Plain Ordinary Java Objects,简朴的Java工具)形式的Java法式类来实现软件应用系统中的业务逻辑功效。
从而可以实现或者到达在容器外的开发和测试、并提高软件应用系统的总体开发效率。因此,在软件应用系统中是否接纳"开源框架"、以及接纳什么类型的"开源框架",软件应用系统的设计人员应该要凭据本软件应用系统项目的详细应用要求举行合理的选择。本系列文章中所给出的示例项目——在银行账户信息治理系统项目中选择"Struts2框架 + JavaBean组件技术"形式的体系架构以提供更好的表现层的技术支持。主要的技术选择的依据是本软件应用系统项目的业务功效处置惩罚比力简朴,而且数据会见方面的功效实现也并不庞大,因此不需要接纳Spring和Hibernate等开源框架,而是接纳比力经典的Struts2 MVC开源框架以简化软件应用系统表现层的设计和开发实现。
5、画出体现软件应用系统项目最终的系统架构设计效果的分层UML包图(1)UML中的包图使用法式包可以组织和治理软件应用系统中的各个功效模块,从而使得整个软件应用系统的工具模型出现出一种树形的条理结构——在UML的技术规范中把这种分组的机制称为包。通过应用UML中的包图能够体现出软件应用系统中问题域的条理关系,这对于一个大型的软件系统来说,通过使用UML包的分组机制能够组织大量模型元素以便于项目开发小组中的各个成员对软件应用系统的明白和处置惩罚,并使之有很好的条理关系:因为通过应用UML包图可以把软件应用系统的模型元素组织成若干个组(包),并对这些包加以命名,从而可以将它们作为一个整体来处置惩罚,也可以分类处置惩罚;另外,通过应用UML包还可以形成一个高内聚、低耦合的法式类的荟萃。(2)体现软件应用系统架构设计效果的UML分层包图在软件应用系统的提要设计阶段,软件应用系统的设计人员可以用UML包图来体现软件应用系统的体系架构设计效果。
因为通过体现软件应用系统分层的架构设计效果的包图,软件应用系统的设计人员可以图示化出本软件应用系统的分层设计方案。本系列文章中所给出的示例项目——银行账户信息治理系统项目在纵向分层隔离方面接纳四条理的系统架构设计,下图所示中的UML包图为体现本软件应用系统项目的系统架构设计效果的分层包图。
UML技术规范中的包与包之间所存在的依赖关系通常是指这两个包所包罗的模型元素之间存在着一个或者多个依赖。如在一个包中使用另一个包中的模型元素,此时便可以认为它们之间存在着依赖关系。
UML包的依赖关系的图形表现是接纳虚箭头线,偏向为从依赖包指向被依赖的包——如上图所示的依赖关系。(3)软件应用系统架构设计的效果必须能够支持软件应用系统的扩展性要求软件应用系统最终能否到达可扩展性是作为评价优秀架构设计效果必须要思量的一个设计目的,因为软件应用系统架构设计的效果必须能够支持软件应用系统的可扩展性,软件应用系统具有可扩展性的意义不仅在于使得软件应用系统自己具有良好的可扩展性,更关键的是由于分散了软件应用系统中的各个功效实现的关注点,使得软件应用系统的体系架构中的每一部门(或者功效组件)都可以独立地举行系统设计和法式开发实现。但软件应用系统的扩展需求是来自于多个差别方面的——好比系统功效上的扩展,固然也还可能是非功效性方面的扩展思量——好比:日志治理、宁静控制和数据持久化技术实现的要求发生变化等。
因此,软件应用系统的设计人员必须要掌握如何分散软件应用系统中的这些关注点,才有可能保证所设计出的软件应用系统的系统架构设计的效果具有一定的可扩展性。
本文关键词:软件,项目,实训,开云体育,及,课程,设计,指导,—,系统
本文来源:开云体育平台官网-www.ahyunsheng.com