什么是软件系统架构设计
“架构”一词最早来自建筑学,原意为建筑物设计和建造的艺术。
但是在软件工程领域,软件架构不是一个新名词,只是在早期的著作中人们将软件架构称为软件体系架构。
这就是架构的概念。
所谓架构,就是人们对一个结构内的元素及元素间关系的一种主观影射的产物。
系统架构的主要任务是界定系统级的功能与非功能要求、规划要设计的整体系统的特征、规划并设计实现系统级的各项要求的手段,同时利用各种学科技术完成子系统的结构构建。
在系统架构中,由于对软件越来越深入的依赖,软件架构的任务也体现出重要的作用。
而且系统架构与软件架构是紧密联系和相互依赖的。
1997年,Eberhadrt Rechtin 与MarkW Maier 在其论著中,为计算机科学总结了系统架构方面的实践成果,从而奠定了系统科学和系统架构在计算机科学中的基石:无论何种系统架构应用领域,目的都是一样的,即完整地、高一致性的、平衡各种利弊的、有技术和市场前瞻性的设计系统和实施系统。
如何分析一个系统的架构
系统架构(Framework 或Architecture)或软件架构的定义很难明确,仁者见仁智者见智。
在面向对象范畴中,我认为就是通过若干类、抽象类及其接口有机组成的软件系统,其中类起的作用好比建筑物中的砖瓦钢筋水泥楼板,而接口和抽象类中没有实现的方法好比其中的一个个空间,包括大厅,走廊,房间,厨房,卫生间....,架构使用者的任务就是往这些空间中填充东西,也就是实现那些接口和抽象方法,从而可以创建一座定制了的建筑物。
进一步,可以对这个建筑进行修饰使其外观更加漂亮。
当然也可以进行改动,以便结构更加合理。
在《Rational 统一过程实践者指南》(RUP)认为,系统架构为:1. 系统中最重要的组成部分和它们的接口,以及做出的创建、购买或是重用这些组成部分的决定;2.描述这些组成部分在运作时如何交互来实现系统中最重要的脚本;3.实现并测试系统架构的原型,以验证架构是否可行、是否化解了重大风险,以及验证它是否打到了重要的质量指标:性能、可扩展性和成本等。
软件的系统架构是什么?有没有大神用一个例子演示一下系统架构图? ...
软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。
软件架构是一个系统的草图。
软件体系结构是构建计算机软件实践的基础。
如图:
什么是系统架构设计?
一个系统的解决方案,第一步方向性的策略是需要需要选用合适的工具。
比如选用什么样的结构,是BS还是别的什么。
需要数据库吗?需要怎样的图形库?需要怎样的线程支持,乃至需要怎样的编程语言。
大的方向性的问题解决后。
工作量最大的问题就来了,怎样将问题做有效的分解。
一个软件系统,无论有多少,终归要进行模块分割。
模块分割,往往是依据功能做切分的。
切分要选在那个接口最窄的位置。
模块大致拆分完毕后,就可以确定接口了。
确定接口的过程,一般就是软件的设计过程(至少占了70%以上的时间)接口要明确到每一个接口函数的完整声明的地步。
接口明确的过程中,可能会导致更多的模块的出现(一些结构型的模块,而非功能性的模块)如果涉及到比较复杂的数据。
这里还涉及到数据库设计,数据字典的建立。
完成接口设计,设计也就完成了。
架构的种类
根据我们关注的角度不同,可以将架构分成三种:1.逻辑架构、软件系统中元件之间的关系,比如用户界面,数据库,外部系统接口,商业逻辑元件,等等。
如图是一个逻辑架构的例子 从上面这张图中可以看出,此系统被划分成三个逻辑层次,即表象层次,商业层次和数据持久层次。
每一个层次都含有多个逻辑元件。
比如WEB服务器层次中有HTML服务元件、Session服务元件、安全服务元件、系统管理元件等。
2.物理架构、软件元件是怎样放到硬件上的。
比如下面这张物理架构图描述了一个分布于北京和上海的分布式系统的物理架构,图中所有的元件都是物理设备,包括网络分流器、代理服务器、WEB服务器、应用服务器、报表服务器、整合服务器、存储服务器。
主机等等。
如图是一个物理架构的例子3.系统架构、系统的非功能性特征,如可扩展性、可靠性、强壮性、灵活性、性能等。
系统架构的设计要求架构师具备软件和硬件的功能和性能的过硬知识,这一工作无疑是架构设计工作中最为困难的工作。
此外,从每一个角度上看,都可以看到架构的两要素:元件划分和设计决定。
首先,一个软件系统中的元件首先是逻辑元件。
这些逻辑元件如何放到硬件上,以及这些元件如何为整个系统的可扩展性、可靠性、强壮性、灵活性、性能等做出贡献,是非常重要的信息。
其次,进行软件设计需要做出的决定中,必然会包括逻辑结构、物理结构,以及它们如何影响到系统的所有非功能性特征。
这些决定中会有很多是一旦做出,就很难更改的。
为了讨论和分析软件构架,必须首先定义构架表示方式,即描述构架重要方面的方式。
在 Rational Unified Process 中,软件构架文档记录有这种描述。
我们决定以多种构架视图来表示软件构架。
每种构架视图针对于开发流程中的涉众(例如最终用户、设计人员、管理人员、系统工程师、维护人员等)所关注的特定方面。
构架视图显示了软件构架如何分解为构件,以及构件如何由连接器连接来产生有用的形式 ,由此记录主要的结构设计决策。
这些设计决策必须基于需求以及功能、补充和其他方面的约束。
而这些决策又会在较低层次上为需求和将来的设计决策施加进一步的约束。
构架由许多不同的构架视图来表示,这些视图本质上是以图形方式来摘要说明“在构架方面具有重要意义”的模型元素。
在 Rational Unified Process 中,您将从一个典型的视图集开始,该视图集称为“4+1 视图模型”。
它包括:用例视图:包括用例和场景,这些用例和场景包括在构架方面具有重要意义的行为、类或技术风险。
它是用例模型的子集。
逻辑视图:包括最重要的设计类、从这些设计类到包和子系统的组织形式,以及从这些包和子系统到层的组织形式。
它还包括一些用例实现。
它是设计模型的子集。
实施视图:包括实施模型及其从模块到包和层的组织形式的概览。
同时还描述了将逻辑视图中的包和类向实施视图中的包和模块分配的情况。
它是实施模型的子集。
进程视图:包括所涉及任务(进程和线程)的描述,它们的交互和配置,以及将设计对象和类向任务的分配情况。
只有在系统具有很高程度的并行时,才需要该视图。
在 Rational Unified Process 中,它是设计模型的子集。
配置视图:包括对最典型的平台配置的各种物理节点的描述以及将任务(来自进程视图)向物理节点分配的情况。
只有在分布式系统中才需要该视图。
它是部署模型的一个子集。
构架视图记录在软件构架文档中。
您可以构建其他视图来表达需要特别关注的不同方面:用户界面视图、安全视图、数据视图等等。
对于简单系统,可以省略 4+1 视图模型中的一些视图。
虽然以上视图可以表示系统的整体设计,但构架只同以下几个具体方面相关: 模型的结构,即组织模式,例如分层。
基本元素,即关键用例、主类、常用机制等,它们与模型中的各元素相对。
几个关键场景,它们表示了整个系统的主要控制流程。
记录模块度、可选特征、产品线状况的服务。
构架视图在本质上是整体设计的抽象或简化,它们通过舍弃具体细节来突出重要的特征。
在考虑以下方面时,这些特征非常重要:1.系统演进,即进入下一个开发周期。
2.在产品线环境下复用构架或构架的一部分。
3.评估补充质量,例如性能、可用性、可移植性和安全性。
4.向团队或分包商分配开发工作。
5.决定是否包括市售构件。
6.插入范围更广的系统。
ERP是一个什么样的系统或软件?
ERP是英文Enterprise Resourse Planning的缩写,中文意思是企业资源规划。
它是一个以管理会计为核心的信息系统,识别和规划企业资源,从而获取客户订单,完成加工和交付,最后得到客户付款。
一个由 Gartner Group 开发的概念,描述下一代制造商业系统和制造资源计划(MRP II)软件。
它将包含客户/服务架构,使用图形用户接口,应用开放系统制作。
除了已有的标准功能,它还包括其它特性,如品质、过程运作管理、以及调整报告等。
特别是,ERP采用的基础技术将同时给用户软件和硬件两方面的独立性从而更加容易升级。
ERP的关键在于所有用户能够裁剪其应用,因而具有天然的易用性。
Gartner Group提出ERP具备的功能标准应包括四个方面: 1.超越MRPⅡ范围的集成功能 包括质量管理;试验室管理;流程作业管理;配方管理;产品数据管理;维护管理;管制报告和仓库管理。
2.支持混合方式的制造环境 包括既可支持离散又可支持流程的制造环境;按照面向对象的业务模型组合业务过程的能力和国际范围内的应用。
3.支持能动的监控能力,提高业务绩效 包括在整个企业内采用控制和工程方法;模拟功能;决策支持和用于生产及分析的图形能力。
4.支持开放的客户机/服务器计算环境 包括客户机/服务器体系结构;图形用户界面(GUI);计算机辅助设计工程(CASE),面向对象技术;使用SQL对关系数据库查询;内部集成的工程系统、商业系统、数据采集和外部集成 (EDI)。
ERP是对MRPⅡ的超越,从本质上看,ERP仍然是以MRPⅡ为核心,但在功能和技术上却超越了传统的MRPⅡ,它是以顾客驱动的、基于时间的、面向整个供应链管理的企业资源计划。
一、ERP系统的管理思想 ERP的核心管理思想就是实现对整个供应链的有效管理,主要体现在以下三个方面: 1、体现对整个供应链资源进行管理的思想 在知识经济时代仅靠自己企业的资源不可能有效地参与市场竞争,还必须把经营过程中的有关各方如供应商、制造工厂、分销网络、客户等纳入一个紧密的供应链中,才能有效地安排企业的产、供、销活动,满足企业利用全社会一切市场资源快速高效地进行生产经营的需求,以期进一步提高效率和在市场上获得竞争优势。
换句话说,现代企业竞争不是单一企业与单一企业间的竞争,而是一个企业供应链与另一个企业供应链之间的竞争。
ERP系统实现了对整个企业供应链的管理,适应了企业在知识经济时代市场竞争的需要。
2、体现精益生产、同步工程和敏捷制造的思想 ERP系统支持对混合型生产方式的管理,其管理思想表现在两个方面:其一是“精益生产LP(Lean Production)”的思想,它是由美国麻省理工学院(MIT)提出的一种企业经营战略体系。
即企业按大批量生产方式组织生产时,把客户、销售代理商、供应商、协作单位纳入生产体系,企业同其销售代理、客户和供应商的关系,已不再简单地是业务往来关系,而是利益共享的合作伙伴关系,这种合作伙伴关系组成了一个企业的供应链,这即是精益生产的核心思想。
其二是“敏捷制造(Agile Manufacturing)”的思想。
当市场发生变化,企业遇有特定的市场和产品需求时,企业的基本合作伙伴不一定能满足新产品开发生产的要求,这时,企业会组织一个由特定的供应商和销售渠道组成的短期或一次性供应链,形成“虚拟工厂”,把供应和协作单位看成是企业的一个组成部分,运用“同步工程(SE)”,组织生产,用最短的时间将新产品打入市场,时刻保持产品的高质量、多样化和灵活性,这即是“敏捷制造”的核心思想。
3、体现事先计划与事中控制的思想 ERP系统中的计划体系主要包括:主生产计划、物料需求计划、能力计划、采购计划、销售执行计划、利润计划、财务预算和人力资源计划等,而且这些计划功能与价值控制功能已完全集成到整个供应链系统中。
另一方面,ERP系统通过定义事务处理(Transaction)相关的会计核算科目与核算方式,以便在事务处理发生的同时自动生成会计核算分录,保证了资金流与物流的同步记录和数据的一致性。
从而实现了根据财务资金现状,可以追溯资金的来龙去脉,并进一步追溯所发生的相关业务活动,改变了资金信息滞后于物料信息的状况,便于实现事中控制和实时做出决策。
此外,计划、事务处理、控制与决策功能都在整个供应链的业务处理流程中实现,要求在每个流程业务处理过程中最大限度地发挥每个人的工作潜能与责任心,流程与流程之间则强调人与人之间的合作精神,以便在有机组织中充分发挥每个的主观能动性与潜能。
实现企业管理从“高耸式”组织结构向“扁平式”组织机构的转变,提高企业对市场动态变化的响应速度。
总之,借助IT技术的飞速发展与应用,ERP系统得以将很多先进的管理思想变成现实中可实施应用的计算机软件系统。
二、应用ERP与企业的关系 ERP是借用一种新的管理模式来改造原企业旧的管理模式,是先进的、行之有效的管理思想和方法。
ERP软件在实际的推广应用中,其应用深度和广度都不到位,多数企业的效果不显著,没有引起企业决策者的震动和人们的广泛关注。
1.实施ERP是企业...
软件架构和系统架构到底是什?生活中有哪些东西可以比喻?
软件架构是指软件整体的组织结构,是在较高层次上的分析设计,体现了软件系统总体的规化、决策、控制等。
系统架构包括软件、硬件、网络等多方面的组织结构。
架构是分析设计的高层阶段,不会涉及到技术实现的细节,是蓝图,是规化,是决策。
现实生活中可比喻为高楼大厦的设计图纸。
小小妖姓王