赞
踩
系统设计是指在系统需求分析的基础上,运用软件工程的思想与方法,设计出能满足新系统需求目标的构造方案。
1.系统架构设计
在系统架构设计中,需要对系统的总体架构、网络拓扑结构、软件架构、数据架构和应用架构等方面进行设计。
2.基础设施平台设计
在系统总体设计时,还需考虑信息系统的运行环境设计,即基础设施平台设计。在基础设施平台设计中,除了考虑系统的网络结构、网络结点通信关系、硬件计算资源能力、硬件存储资源能力设计外,还需要考虑系统运行软件环境设计,如操作系统软件、数据库系统软件、应用中间件等。
3.系统构件设计
系统构件设计是对系统的组成构件进行设计,确定出系统构件功能逻辑、构件接口等。
4.系统界面设计
界面设计是对人和外部系统与信息系统之间交互界面设计。它包括操作界面、表单、报表、系统接口等要素设计。
5.系统数据库设计
数据库设计是指根据特定的系统应用需求,设计出合理的系统数据库结构。数据库设计需要经过概念设计、逻辑设计和物理设计等步骤。
6.程序流程设计
程序流程设计是对构件内部功能逻辑进行设计,确定算法程序流程及其数据结构。
7.安全机制设计
安全机制设计是对系统与数据的安全访问、隐私保护等安全措施与手段进行设计。
1.抽象化
2.逐步求精
3.模块化
4.信息隐藏
5.模块独立
系统架构(又称系统体系架构)是指系统的组成结构,同时反映系统各部件之间的关联性、交互性和约束机制。
系统架构设计是系统设计重要活动,它根据系统需求,从全局层面给出系统总体框架的设计蓝图。
系统总体架构是从全局层面给出系统各种组成要素之间结构关系。它通常包括基础设施、运行平台、应用软件、业务部门、信息数据、用户,以及外部系统等。
Power Designer实践练习——证券客户关系管理平台系统总体架构设计
系统拓扑结构是指从系统基础设施平台层面描述节点与节点之间的通信连接关系。节点是指系统中处理功能相对独立的物理设备,如PC计算机、服务器、外围设备等。
系统拓扑结构设计是对系统基础设施平台的设备节点在网络环境中的结构关系进行设计,包括节点分布、节点类型、节点拓扑关系以及节点之间的通信联系。
建模实践练习——电子政务系统拓扑架构设计
建模实践练习——电子商务系统高可用拓扑架构设计
系统数据架构是指从数据管理视角所描述的系统架构,它通常用来反映系统的各类数据资源组织与存储架构。
在大数据应用系统中,按照数据不同处理要求,可以将它们组织到不同层次的模块中进行数据管理。
在信息系统中,一般是按照业务管理的数据治理需求,将数据资源部署到不同业务部门系统服务器进行数据访问与权限管理。系统数据治理架构与组织机构的数据管理职能有直接关系。
在信息系统中,一些数据资源需要采用文件系统存储,另外一些数据资源需要采用数据库系统存储,还有一些数据资源则需要数据仓库系统进行数据存储。每类存储系统在设计上需要满足应用需求,如支持高可用、高性能的存取访问。
系统应用架构是指从应用功能视角所描述的系统架构。系统应用架构关注应用功能划分、应用功能配置、服务访问、服务管理等要素。
建模实践练习———供应链系统应用架构设计
软件体系架构(简称软件架构)是一种从软件视角所描述的系统架构,它对软件系统的结构、行为进行高层抽象,一般通过构件、连接件、配置、端口、角色等图符元素进行描述。
软件架构设计是指基于一定的设计原则和系统需求,从软件角度对组成系统的各部分进行划分和组织,设计软件系统组成结构及其构件之间的相互关系。
在软件架构设计中,除了满足系统功能处理需求外,还应满足系统非功能需求,即达到如下质量目标。
软件架构设计实践练习——妇幼保健信息系统软件技术架构设计
软件架构风格是指针对领域共性问题提供通用的软件架构解决方案,它反映了领域中众多系统所共有的软件架构模式。
软件架构风格作用:用于指导开发者参照软件架构风格设计本软件系统架构,合理地将构件、子系统有效地组织成一个完整的软件系统。
软件架构风格描述了特定应用领域中软件系统构件组成的惯用模式,其要素如下:
风格类型 | 典型风格 |
---|---|
数据流风格 | 批处理序列架构、管道/过滤器架构 |
调用/返回风格 | 主程序/子程序架构、面向对象架构、分层体系架构 |
独立构件风格 | 进程通讯架构、事件驱动架构 |
虚拟机风格 | 解释器架构、基于规则的系统架构 |
客户/服务器风格 | 客户/服务器架构、浏览器/服务器架构 |
面向服务风格 | 面向服务架构(SOA)、微服务架构 |
仓库风格 | 数据共享体系架构、黑板系统架构 |
分层体系架构采用层次化方式组织功能构件,每一层都是为上一层提供服务,并使用下一层提供的功能服务。
将软件系统分解设计为若干层次。每一层都有清晰的功能处理分工,各层不需要知道其他层的细节,层与层之间仅通过接口通信。
用户对软件系统的访问请求将依次通过各层功能逻辑构件对下层进行调用访问处理。通常不允许跨层调用访问。
应用案例:Linux系统架构
分层体系架构优点:
分层体系架构缺点:
数据共享体系架构是一种以数据存储服务器为中心,为客户软件提供数据共享、数据交换访问的软件架构风格。
应用案例:基于数据共享体系架构的数据挖掘与分析系统
数据共享体系架构优点:
数据共享体系架构缺点:
事件驱动体系架构是一种基于事件与消息机制实现软件构件之间进行通信的软件架构。
应用案例:Windows事件驱动模型
事件驱动体系架构优点:
事件驱动体系架构缺点:
客户机/服务器软件架构是一种典型的分布系统体系架构,其软件分为客户端构件和服务端构件,客户端构件通常在客户机上运行,服务端构件在服务器上运行。
应用案例:基于C/S架构的企业固定资产管理平台
C/S架构优点:
C/S架构缺点:
应用案例:基于B/S架构的物流管控系统平台
B/S架构优点:
B/S架构缺点:
微核体系架构又称为“插件架构”,系统基本核心功能在软件内核中实现,其功能较少,系统大部分功能和业务逻辑都通过插件实现。
应用案例:Eclipse开发平台
微核体系架构优点:
微核体系架构缺点:
微服务架构(microservices architecture)是面向服务架构( service-oriented architecture,SOA)的轻量级实现版本。
应用案例:淘宝开放平台
微服务架构优点:
微服务架构缺点:
软件架构模式就是针对特定需求问题及其环境,所给出通用的软件架构设计解决方案。软件架构模式相对软件架构风格,所涉及范围要窄些,解决更具体问题。
软件架构风格 | 软件架构模式 |
---|---|
分层架构风格 | 代理者模式 |
数据共享架构风格 | 发布/订阅模式 |
事件驱动架构风格 | 多客户/单服务模式 |
客户/服务器风格 | 多客户/多服务模式 |
微核架构风格 | 多层客户/服务器模式 |
面向服务风格 | 异步消息通信模式、同步消息通信模式 |
数据流风格 | 服务代理转发通信模式 |
虚拟机风格 | 复合事务模式 |
异构风格 | MVC模式、MVP模式、MVVM模式 |
使得软件工程成熟的架构设计方案可以被复用,避免重复“发明车轮”的设计工作。
为软件系统重构提供架构模式支持,从而完善原软件系统架构。
基于架构模式方法设计软件系统,可以节省开发成本,提高软件开发效率。
在软件系统设计中,使用架构模式方法,还可以提高系统设计质量。
模板项目 | 内容描述 |
---|---|
模式名称 | 每一个模式都有自己的名字,以简短的、明确含义的名称描述架构模式本质 |
解决问题 | 描述该模式需要解决的设计问题 |
环境 | 描述问题所在环境,包括应用领域 |
解决方案 | 提供问题解决方案的详细说明 |
优缺点 | 描述本架构方案的优缺点 |
适用性 | 描述本架构模式的适用场景 |
相关模式 | 相关架构模式说明 |
代理者模式的描述模板
模板项目 | 内容描述 |
---|---|
模式名称 | 代理者 |
解决问题 | 在分布式应用的多个客户端与多个服务通信中,客户端不知道服务的位置。 |
环境 | 分布式系统 |
解决方案 | 服务构件向代理者注册,客户端发送服务请求给代理者,代理者扮演客户端和服务的中介。 |
优缺点 | 优点: 客户端可以不需要知道服务位置,服务可以透明在系统中更新、加入。 缺点: 客户端与服务通信涉及了代理者的额外开销。如果代理者有高负载,代理者将成为系统性能瓶颈。 |
适用性 | 分布式环境中,有多个服务的客户/服务器应用。 |
相关模式 | 代理者转发 |
在软件架构模式中,反映软件构件组成及其控制关系的结构模式主要有如下几种:
案例:客户client对象在访问一个业务服务(EJBService、JMSService)时,并不知道该服务位置,可通过业务代理(BusinessDelegate)进行查找,然后可以定位该服务,并对该服务进行请求访问。
案例:在微波炉控制系统中,设备的中央控制构件采用集中式控制模式对各个执行部件进行控制操作。
案例:在一个植物工厂控制系统中,其控制系统对植物生长所需要的光照、温度、湿度等参数进行控制,其控制方式采用分布式控制体系架构模式对各个执行部件进行控制操作。
案例:在一个植物工厂控制系统中,其控制系统对植物生长所需要的光照、温度、湿度等参数进行控制,其控制方式也可采用多层控制体系架构模式对各个执行部件进行控制操作。
案例:在一个Unix系统中,软件系统采用分层架构组成,分别由内核、系统调用、shell/实用程序/公共函数库、应用程序层次组成。
案例:在银行ATM系统中,每个银行网点都有多台ATM客户端结点通过网络连接银行业务系统,其软件系统采用多客户/单服务模式体系架构。
案例:在一个支持多家银行互联互通的ATM系统中,每个银行网点都有多台ATM客户端结点通过网络连接银行业务系统,它们的软件系统采用多客户/多服务模式体系架构。
案例:在一个具有三层客户/服务模式架构的银行ATM系统中,“银行服务”层向“客户端”层提供服务,同时它又是“数据库服务”层的一个客户端。
软件架构通信模式关注构件之间通信的方式。典型的软件架构通信模式如下:
案例:银行服务子系统的软件架构由储蓄账户构件(SavingsAccount)、支票账户构件(CheckingAccount)、转账功能构件(TransferTransactionManager)和取款功能构件(WithdrawalTransactionManager)所组成。构件对象之间的通信方式如下图所示。
案例:在一个汽车自动泊车控制系统的软件架构中,其中“运行监控(operationSupervisory
)”构件、“到位传感器(arrivalSensor
)钩件与“车辆控制(vehicleControl
)”构件之间进行交互通信。
案例:在银行服务系统的软件架构中,其中“ATM机客户(ATM Client
)构件”、 “GUI用户客户(GUI UserClient
)构件”与“银行服务(BankingService
)”构件之间进行消息通信。
案例:在基于Web服务实现的软件架构中,Web服务代理者使用统一描述、发现、集成框架(Universal Description, Discovery and Integration,UDDI)为客户端提供一种在Web上动态发现服务的机制。
广播/组播消息通信模式适合于分布式应用,将一个构件消息同时发送到多个构件处理。
案例:一个视频监控跟踪系统有三个卡口视频监控跟踪构件(videoTrace1\videoTrace2\ videoTrace3)、视频监控事件服务(alarmHandingService)构件、视频监测构件(eventMonitor)组成。它们之间的通信交互关系如下图所示。
软件架构事务模式关注构件之间的事务处理,以确保业务数据完整性。典型的软件架构事务模式如下:
两阶段提交协议模式用于分布式系统中原子事务处理,即确保事务所封装的服务请求操作是不可分割的,它们要么都完成,要么都取消。
在两阶段提交协议模式中,通过一个提交协调构件(commitCoordinator)与多个服务构件进行通信协调,实现事务处理。
案例:在从银行A的一个账户转账到银行B的一个账户中,可以采用两阶段提交协议模式实现转账事务处理,以确保银行数据的一致性。
在复杂业务处理中,当一个事务可以被分解为若干更小的、独立的处理单元时,这种事务就是复合事务。
例:一个旅游团的出行预订业务,由机票预订、酒店预订和租车预订组成。这些构件服务之间的事务通信关系如下图模型所示。
在业务处理中,若需要用户参与决策操作,则会出现较长时间的数据资源锁定处理,这样的事务称为长事务。
例一个航班预订功能由“航班1预订”、“航班2预订”、“航班3预订”等功能构件协作完成,它们之间的事务通信关系如下图模型所示。
软件架构的静态结构模型(如UML类图、UML包图等)用于描述软件系统的静态逻辑结构。在面向对象系统设计中,采用UML设计类图模型将软件系统的类程序组成静态结构可视化呈现出来。
案例:在一个销售订单子系统的软件设计中,其系统架构的静态结构模型如图所示。
ChatGPT4:
这个类图代表了一个销售订单子系统,它包括多个类和它们之间的关系。下面是每个类的详细解释以及它们如何相互作用:
这个类图展示了一个典型的销售订单处理子系统的面向对象设计。顾客下订单,订单包含多个订单详情,每个订单详情关联一种商品项。支付是订单的一个组成部分,可以有多种形式,如信用卡支付、现金支付、支票支付或电汇支付。通过这个类图,可以看出系统如何追踪顾客的订单和支付信息,以及商品如何与订单详情关联。这种设计支持多种支付方式和商品的灵活性,并允许系统轻松地添加新的商品或支付类型。
在一个复杂系统的软件设计中,仅采用一个类图来反映系统的软件静态结构是不现实的。需要将复杂系统划分设计为相互联系的若干子系统。针对各个子系统,分别给出它们的类图设计,但在高层设计中采用UML包图对系统的软件静态结构进行抽象设计。
ChatGPT4:
在这个设计中,实线箭头表示包之间的直接关系,而虚线箭头表示包之间的依赖关系。例如,Ordering包直接与CustomerDB包相关联,意味着它需要直接访问顾客数据。同时,Accounting包依赖于Bank包,这表示在处理财务事务时,它需要银行的服务。
软件架构的动态交互行为模型用于反映软件系统的对象之间交互行为。在UML软件建模设计中,可以采用交互图(通信图或顺序图)描述软件对象之间的协作通信,从而反映对象之间通过动态消息交互行为实现系统功能。
案例:在一个图书商品销售系统的软件设计中,采用如下通信图反映该系统的各个子系统之间的动态交互行为模型。
ChatGPT4:
这个通信图展示了一个图书商品销售系统中各个子系统之间的动态交互行为。它展示了从顾客选择商品到安排交付的整个流程,每个步骤由相应的方法调用表示。以下是每个步骤的详细解释:
这个通信图代表了一个典型的在线销售流程,其中每个子系统都有专门的职责,并通过定义好的接口和方法与其他子系统通信。这样的设计有助于分离关注点,每个子系统可以专注于实现自己的功能,同时通过清晰定义的接口与系统的其他部分交互。这不仅使得系统的维护和升级变得更容易,也提高了系统的可扩展性和可靠性。
软件架构的物理结构模型用于反映软件系统架构的实现方案。在面向对象系统设计中,软件架构采用UML构件图和UML部署图表示系统物理结构实现方案。
案例:在一个商品销售系统的物理结构模型设计中,采用如下构件图反映该系统架构的物理结构模型。
案例:在一个商品销售系统的物理结构模型设计中,采用如下部署图反映该系统架构的物理结构模型。
案例:ATM(自助取款机)系统是银行为客户提供方便自助业务的信息系统。它由ATM前端硬件设备及其软件系统组成,并通过网络连接到银行服务系统,为客户提供取款、转账、查询等银行业务服务。
在ATM系统软件架构设计中,依据银行领域需求,采用客户机/服务器架构模式设计软件架构。以下将给出系统分解设计、系统静态结构设计、系统对象交互结构设计、系统构件结构设计、系统部署结构设计。
ChatGPT4:
这张图展示了一个ATM机系统的组件分解设计,其中涉及的组件被划分为外部设备、用户、子系统,以及它们之间的交互。这个设计描绘了ATM软件系统如何与外部元素和银行服务系统接口。以下是对各个组件和交互的详细解释:
整个交互流程开始于顾客使用卡阅读器输入银行卡信息,然后通过键盘显示屏输入交易指令。这些指令由ATM客户端处理,后者可能会指示现金分配器分发现金或收据打印机打印收据。同时,ATM客户端会与银行服务进行通信来授权交易并获取交易状态。操作员可以对ATM进行维护或管理操作,如加钱、修复设备等。
这个设计展示了ATM机如何作为一个集成系统运作,其中包含了用户交互界面、硬件设备的控制和后端银行服务的通信。这种分解有助于将ATM机的不同功能模块化,使得维护和升级更加容易。它还提供了一个清晰的框架来理解ATM机的操作流程和各组件之间的相互作用。
ChatGPT4:
在这个图中,箭头表示数据流或控制流。ATMControl是ATM客户端子系统的核心,它接收CardReader的输入数据,响应ATMKeypadDisplay和Operator的用户交互,并控制CashDispenser和ReceiptPrinter来执行操作。同时,ATMControl还需要与BankingService子系统通信,以验证交易并完成用户请求的操作。
ChatGPT4:
在这个构件图中,箭头代表不同组件之间的通信。BankTransactionCoordinator是核心组件,与多个业务逻辑组件相连,这些组件又与相应的数据库封装组件相连,以完成具体的数据操作。这个设计使得银行服务端的结构清晰且易于管理,每个组件都有明确的职责,同时也便于扩展或修改特定的业务逻辑。通过IBankServiceTransaction接口,银行服务端子系统与ATM客户端子系统进行通信,处理各种ATM交易请求。
1.高质量的信息系统主要由下面哪项工作决定?(A)
A.系统设计
B.软件编程
C.软件测试
D.软件运维
2.下面哪种设计方法只应用在面向对象系统设计中?(D)
A.抽象设计
B.逐步求精
C.模块化设计
D.信息隐蔽
3.下面哪种UML模型图只用于系统总体设计建模?(D)
A.系统类图
B.顺序图
C.通信图
D..系统部署图
4.用户最关心下面哪种架构?(A)
A.应用架构
B.软件架构
C.数据架构
D.拓扑架构
5.下面哪种软件架构风格最适合复杂软件系统?(A)
A.分层体系架构
B.客户机/服务器体系架构
C.微核体系架构
D.数据共享体系架构
二、判断题
1.类图模型在系统设计各阶段都需要涉及。(√)
2.系统数据架构是一类数据库模型。(×)
3.系统架构的核心视图就是软件架构。(√)
4.客户机/服务器体系架构适合Web应用。(√)
5.异步消息通信模式适合银行转账业务。(×)
系统架构通常包括系统拓扑架构、系统数据架构、系统软件架构和(系统应用架构)等。
典型软件系统一般被划分为表示层、业务逻辑层、(数据存取访问层)和数据存储层。
客户/服务模式可以细分为(多客户/单服务模式)、多客户/多服务模式、多层客户/服务模式。
在面向服务的软件架构中,其通信模式主要有服务注册通信模式、(服务代理转发通信模式)、服务句柄代理转发通信模式、服务发现通信模式。
软件对象之间的消息通信模式主要有同步消息通信模式和(异步消息通信模式)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。