第二章 系统的层次划分
- 格式:docx
- 大小:66.58 KB
- 文档页数:16
系统分析第二章系统分析ppt一、模型与模型化简介模型化模型化就是为描述系统的构成和行为,对实体系统的各种因素进行适当筛选,用一定方式(数学、图像等)表达系统实体的方法。
------构模的过程3.模型(化)的地位与作用3.模型(化)的地位与作用地位:4.模型的分类概念模型:通过人们的经验、知识和直觉形成的。
形式上分为思维、字句或描述的。
5.建立模型的一般原则①建立方框图6.建模的基本步骤①明确建模的目的和要求;②对系统进行一般语言描述;③弄清系统中的主要因素及其相互关系;④确定模型的结构;⑤估计模型的参数;⑥实验研究;⑦必要修改。
7.模型化的基本方法(4)老手法:2、系统结构的表达方式二元关系的性质二元关系的集合系统结构的表达方式有向连接图:图的基本的矩阵表示,描述图中各节点两两间邻接的关系,记作A。
矩阵A的元素aij定义:汇点:矩阵A中元素全为零的行所对应的节点。
在可达矩阵中存在两个节点相应的行、列元素值分别完全相同,则说明这两个节点构成回路集,只要选择其中的一个节点即可代表回路集中的其他节点,这样就可简化可达矩阵,称为缩减可达矩阵,记作Mˊ。
(1)区域分解:将系统元素分成相互独立的子系统(2)级位分解:对各子系统元素进行分级(3)提取骨架矩阵(4)画有向图将M分级重新排列实现某一可达矩阵M、具有最小二元关系个数(“1”元素最少)的邻接矩阵叫做M的最小实现二元关系矩阵,即骨架矩阵,记作A’。
骨架矩阵(二)解释结构模型技术(ISM)(InteractiveStructureModeling)1.作用:主要描述系统构成元素之间的关联关系,主要适用于一些宏观问题的定性分析。
2.任务:通过构造解析将复杂的系统分解成条理分明、多级递阶的结构形式(结构图)ISM技术的基本思想:ISM技术的核心:通过各种创造性技术,提取问题的构成要素,利用有向图、矩阵等工具和计算机技术,对要素及其相互关系等信息进行处理,最后用文字加以解释说明,明确问题的层次和整体结构,提高对问题的认识和理解程度。
计算机组成原理(简单题)第一章概论1、计算机的应用领域:科学计算、数据处理、实时控制、辅助设计、通信和娱乐。
2、计算机的基本功能:存储和处理外部信息,并将处理结果向外界输出。
3、数字计算机的硬件由:运算器、控制器、存储器、输入单元和输出单元。
4、软件可以分成系统软件和应用软件。
其中系统软件包括:操作系统、诊断程序、编译程序、解释程序、汇编程序和网络通信程序。
5、计算机系统按层次进行划分,可以分成,硬件系统、系统软件和应用软件三部分。
6、计算机程序设计语言可以分成:高级语言、汇编语言和机器语言。
第二章数据编码和数据运算1、什么是定点数?它有哪些类型?答:定点数是指小数点位置固定的数据。
定点数的类型有定点整数和定点小数。
2、什么是规格化的浮点数?为什么要对浮点数进行规格化?答:规格化的浮点数是指规定尾数部分用纯小数来表示,而且尾数的绝对值应大于或等于1/R并小于等于1。
在科学计数法中,一个浮点数在计算机中的编码不唯一,这样就给编码带来了很大的麻烦,所有在计算机中要对浮点数进行规格化。
3、什么是逻辑运算?它有哪些类型?答:逻辑运算时指把数据作为一组位串进行按位的运算方式。
基本的逻辑运算有逻辑或运算、逻辑与运算和逻辑非运算。
4、计算机中是如何利用加法器电路进行减法运算的?答:在计算机中可以通过将控制信号M设置为1,利用加法器电路来进行减法运算。
第三章存储系统1、计算机的存储器可以分为哪些类型?答:计算机的存储器分成随机存储器和只读存储器。
2、宽字存储器有什么特点?答:宽字存储器是将存储器的位数扩展到多个字的宽度,访问存储器时可以同时对对个字进行访问,从而提高数据访问的吞吐量。
3、多体交叉存储器有什么特点?答:多体交叉存储器是由对个相互独立的存储体构成。
每个存储器是一个独立操作的单位,有自己的操作控制电路和存放地址的寄存器,可以分别进行数据读写操作,各个存储体的读写过程重叠进行。
4、什么是相联存储器?它有什么特点?答:相联存储器是一种按内容访问的存储器。
第二章系统模型与系统分析一、系统模型系统模型是指对一个系统进行抽象和描述,用以揭示其内部结构、运行规律和相互关系的方法和工具。
系统模型是系统分析的基础,通过构建系统模型可以更好地理解和分析系统的特性和问题。
1.系统模型的分类系统模型可以分为静态模型和动态模型两类。
静态模型描述了系统的结构和组成部分,包括系统的元素、关系和属性。
常用的静态模型方法有系统框图、数据流图和实体关系图等。
动态模型描述了系统的行为和变化过程,主要包括状态转换和信息流动。
常用的动态模型方法有状态转换图、时序图和活动图等。
2.系统模型的构建方法构建系统模型的方法有多种,常用的方法有层次分析法和系统动力学方法。
层次分析法是一种定性和定量相结合的分析方法,通过对系统进行层次划分,分析各层次元素的相互关系和影响程度,从而得出系统的总体性能。
系统动力学方法是一种动态系统建模和仿真的方法,通过建立差分方程或微分方程来描述系统的演化过程,在不同的时间段内模拟系统的运行过程和结果。
二、系统分析系统分析是指对一个系统进行全面深入地研究和分析,以了解其内部机制、运行规律和问题点,为系统的优化改进提供依据。
1.系统分析的步骤系统分析通常包括问题定义、数据收集、系统描述、模型建立、模型验证和模型求解等步骤。
问题定义阶段需要明确研究的目标和内容,确定问题的范围和界限。
数据收集阶段需要收集系统运行所需的数据和信息,包括实际运行数据和用户需求等。
系统描述阶段需要对系统进行全面的描述和分析,包括系统的功能、结构和性能等。
模型建立阶段需要根据系统描述构建数学模型,用以描述系统的运行过程和规律。
模型验证阶段需要对建立的模型进行验证和评估,确保模型的有效性和准确性。
模型求解阶段需要利用建立的模型进行仿真和优化,找出系统的优化方案和改进措施。
2.系统分析的工具和技术系统分析常用的工具和技术包括面向对象分析、数据流图、系统动力学、Petri网等。
面向对象分析是一种以对象和类为核心的分析方法,通过建立对象模型和类模型来描述系统的结构和行为,强调系统的模块化和可重用性。
第二节动物体的结构层次教学目标1.学生能说出组织的概念,能概述构成人体的组织是细胞分裂、分化形成的,能识别人体的四种基本组织。
2.学生在教师的指导下能描述人体的结构层次:细胞、组织、器官、系统、个体。
3.学生会使用显微镜观察人体四种基本组织切片。
4.学生通过本课的学习能初步形成生物体是一个整体的生物学观点。
重点和难点重点:1.学生能描述人体的结构层次:细胞、组织、器官、系统、个体。
2.学生能从微观到宏观,从部分到整体,逐步对人体形成完整认识。
难点:学生对细胞分化形成组织难以理解(因这是一个微观的动态过程,学生由于缺乏感性知识,认识起来有一定的困难〕课前准备教师:大屏幕投影、电脑、显微镜、四种组织永久切片。
学生:教材、笔记本教学设计第一节动物体的结构层次教学目标知识目标:1.学生能说出组织的概念,能概述构成人体的组织是细胞分裂、分化形成的,能识别人体的四种基本组织。
2.学生在教师的指导下能描述人体的结构层次:细胞、组织、器官、系统、个体。
3.学生会使用显微镜观察人体四种基本组织装片。
能力目标:学会使用显微镜观察人体四种基本组织的切片。
情感态度价值观:学生能初步形成生物体是一个整体的生物学观点。
教学重点:1.学生能描述人体的结构层次:细胞、组织、器官、系统、个体。
2.学生能从微观到宏观,从部分到整体,逐步对人体形成完整认识。
教学难点:1.细胞的分化形成组织2.细胞分化过程微观、不好理解,在比较细胞分裂和分化两个概念的过程中,让学生理解细胞分化的结果是形成了多种多样的组织,即形态相似、结构和功能相同的细胞群。
教学计划:本节教学中,教师应充分利用学生已知的有关动物细胞形态结构方面的知识,通过实验观察,总结归纳出组织的概念。
如果有条件的学校,可以使用显微投影指导学生观察人体四种基本组织。
细胞分化的内容可结合组织形成的过程并与细胞分裂相比较,以帮助学生理解。
课时安排:1课时教学过程:板书设计:第一节动物体的结构层次一、细胞分化形成组织1,组织:由形态相似,结构、功能相同的细胞联合在一起形成的细胞群。
《管理信息系统》主要知识点第一章信息与信息技术1、信息概念有两个层次:本体论层次:信息是事物运动的状态及其改变方式认识论层次:主体感知或所表述的事物运动的状态及其改变的方式。
分类:语法信息:信息的外在形式,由主体感知。
语义信息:信息的逻辑涵义,由主体理解。
语用信息:信息的效用,由主体根据目的来判断2、信息支持决策的观点:信息是经过加工后的数据,它会对接受者的行为和决策产生影响,对决策者增加知识具有现实的或潜在的价值。
3、信息资源观点:1)谁先得到信息和利用信息,谁就具有主动权,谁的信息丰富和准确,谁就能统筹全局,后来者的信息作用将大打折扣,难以获得主动权和主导权,在竞争中处于不利地位。
2)我们面临着物资和能源逐渐匮乏的重大社会发展问题,信息的资源转化性质让我们社会的可持续发展增添了一条宝贵的途径。
因此:信息资源就是一类战略性资源。
4、数据、信息和知识的三层次结构关系:达文波特和普勒塞克认为:1)数据是有关事件的离散的客观事实;2)对数据加以背景、分类、计算、更正和精简等处理后,数据就转变为信息;3)知识是相关信息以及经验、价值观和洞察力等的动态组合,是对信息的理解。
5、信息特性主要包括:普遍性、客观性(事实性)、无限性、层次性(等级性)、相对性、依附性、动态性(时效性)、知识性、异步性、易传性(转移性)、共享性、转化性、可伪性、不完全性等6、从不同的角度有不同的信息划分方法:按管理层次分:战略信息、战术信息、作业信息按业务领域分:营销、物流、生产、财务、人事按信息来源分:企业内部信息、企业外部信息7、战略信息:组织生存与发展决策相关的信息,制定战略需要大量外部信息与内部信息。
控制信息:管理控制信息,主要是内部信息。
便于掌握资源利用情况并更有效地分配资源。
作业信息:与组织日常活动相关,是内部信息,保证切实完成作业。
8、信息度量概念的启示:(1)越接近信息源的信息的量越大,为此不仅要收集很多数据,更重要的是收集和选用与问题最直接的信息源的信息。
第一章信息系统基础一、简答题1.什么是信息?信息与数据有什么区别?信息的本质是什么?答:信息,一般是指具有新内容、新知识的消息或情报。
信息与数据具有内在的联系。
数据是记录在一定介质上并可鉴别的符号,数据是无意义的符号,信息则是蕴含意义的符号。
数据是信息加工的原材料,信息是数据加工的结果。
信息的本质是物质的属性和特征,是事物运行状态与规律的表征。
2.什么叫系统?可以从哪个方面对系统进行分类?答:系统是由相互联系、相互影响的若干要素结合为具有特定目标、特定功能,并处于一定环境之中的有机整体。
从系统的复杂程度划分:简单的、中等的、复杂的和超复杂的系统.从抽象程度划分:概念系统、逻辑系统、物理系统(也叫客观系统)。
从系统与外界的关系划分:封闭系统、开放系统。
3.简述管理的概念答:管理是对一定组织所拥有的资源进行有效整合以达成组织既定目标和履行责任的动态创造性活动。
管理的目的是实现组织的目标.4.信息资源管理的基本模式是什么?答:是技术管理模式、经济管理模式、人文管理模式.二、填空题1.(数据)是无意义的符号,(信息)是蕴涵意义的符号.2.信息的本质是(物质)的属性和特征,是(事物)运动状态与规律的表征.3.信息的特征有:承载性、(层次性)、传输性、(共享性)、加工性和时效性。
4.从逻辑层次看,可以把信息分为(语法信息)、语义信息和(语用信息)三种类型。
5.系统是由相互(联系)、相互影响的若干(要素)结合为具有特定目标、特定功能,并处于一定环境之中的有机整体.6.系统的特性是指具有目的性、(相关性)、整体性、(层次性)和适应性几种。
7.管理的职能有决策、(组织)、计划、(领导)、控制和激励等六个方面。
三、选择题1.下面说法正确的是(D)A.数据就是数字 B.数据就是信息C.数据是加工之前的信息 D.信息是数据加工的结果2.下面哪个不属于信息的特征?(D)A.承载性B.传输性C.层次性D.独享性3.下面不属于系统特性的是(B)A.目的性B.功能性C.层次性D.适应性4.下面说法不正确的是(A)管理职能方面考题(决策是管理的核心)A.决策是企业的核心 B.从时间性可以把计划分为长期计划和短期计划C.组织结构也被称为组织机构 D.激励有直接满足和间接满足两种方法5.下面哪一种不属于信息资源管理模式?(D)A.技术管理模式 B.经济管理模式 C.人文管理模式 D.社会管理模式6.下面哪一种不属于信息资源管理的五大要素?(A)A.信息资源管理的应用B.信息资源管理的架构C.信息资源管理的组织D.信息资源管理的环境四、论述题1.谈谈信息资源管理在信息系统建设中的作用答:信息资源是指人类社会活动中所涉及到的信息内容,按照某种方法和规律,经加工处理有序化并大量积累后的用用信息的集合.信息资源管理是对整个组织信息资源开发利用的全局管理,这种管理独立于信息技术,重视人和社会因素,追求一种将技术因素和人文因素相结合协调解决问题的方法,形成独立的管理领域。
第一章:管理信息系统概论一、选择题1、管理信息是( )A 管理者的指令B 客观世界的实际记录C 数据处理的基础D加工后反映和控制管理活动的数据2、现代管理信息系统是()A 手工管理系统B 计算机系统C 人和计算机等组成的系统D 通信网络系统3、管理信息系统由四大部件组成,它们是()A信息源、信息处理器、信息用户和信息管理者B信息源、信息收集器、信息处理器和信息管理者C信息收集器、信息处理器、信息用户和信息管理者D以上说法都不对4、管理信息系统的应用离不开一定的环境和条件,环境具体指的是()A 组织所处的自然环境B 组织所处的社会环境C 组织内外各种因素的综合D 组织所处的自然环境和社会环境的综合5、运行控制层上的决策多属于()A 结构化B 半结构化C 非结构化D 以上都有6、ERP是( )进步一步发展的结果A EDPB MPRC MISD MRPⅡ7、决策支持系统(DSS)有三个技术层次,它们分别是()A 语言子系统、知识子系统、问题处理系统B 模型库系统、语言子系统、问题处理系统C 模型库系统、知识库于系统、决策支持系统工具D 专用DSS、DSS生成器和DSS工具8、电子商务中企业对企业的形式可称作()A B to GB B to BC B to CD C to C9、企业资源计划的核心是()A MPRB MPRⅡC JITD CAM10、下列不属于管理信息系统范畴的是()A 管理信息系统B 决策支持系统C 专家系统D 事务处理系统11、在管理信息系统的金字塔型结构中,处于最下层的是()A 业务处理系统B 财务系统C 数据处理系统D 决策支持系统12、管理信息系统的功能不包括下面哪一项A 信息处理功能B 预测功能C 决策功能D 计划功能13、系统方法的主要原则是( )A 整体性原则B 目标优化原则C 分解协调原则D 以上均是14、下列人员不属于管理信息系统用户的是( )A 总经理B 系统分析员C 部门经理D 数据输入员15、管理信息系统学科属于( )A 计算机学科B 管理学科C 工程学科D综合型学科二、判断题1、管理信息系统涉及到管理和信息两个方面。
第一章信息系统的基本概念第一节系统1。
系统的定义及理解系统是由相互联系和相互制约的若干组成部分结合的、具有特定功能的有机整体。
三个方面理解:1)系统由若干元素组成元素。
2)系统有一定的结构。
3)系统有一定的功能,特别是人造系统总有一定的目的性。
2.系统的思想1)突现“整体大于部分之和”2)等级等级层次结构是复杂系统最合理的组织方式3.系统的分类1)按系统的复杂程度分类框架结构、钟表机构、控制装置、开放系统、低级有机体、动物、人社会文化系统、超越系统。
底层三级是物理系统,中间三级是生物系统,高层三级是最复杂的人类社会及宇宙系统。
2)按系统的起源分类自然系统和人工系统(人工物理系统、人工抽象系统和人类活动系统)3)按系统的抽象程序分类实体系统、概念系统、逻辑系统4)按系统与环境的关系分类开放系统(指与其环境之间有物质、能量或信息交换的系统)、封闭系统(是与环境没有任何物质、能量和信息交换的系统)4。
系统的特性1)系统的整体性2)系统的目的性3)系统的稳定性4)系统的突变性5)系统的自由组织性6)系统的相似性第二节信息1。
信息的定义1)信息是经过加工后的数据,它对接收者有用,对决策或行为有现实或潜在的价值.2)信息与数据可看作原材料和成品的关系2.信息的基本属性1)事实性2)扩散性3)传输性4)共享性5)增值性6)不完全性7)等级性8)滞后性3。
人进行信息处理的特点1)人需要反馈2)人需要一些多余的信息3)人们需要信息的压缩4)人们需要的口味各异5)人需要非口语的信息输入4.信息对管理的基础作用,可以由管理基本职能中信息的重要作用来说明1)信息是制定计划的基本依据2)信息是组织实施的保证3)信息是调节控制的指示器4)信息是激励职工的依据5)信息是领导指挥的基础6)信息是决策的关键因素5.西蒙建立的决策过程的基本模型的三个阶段1)情报阶段2)设计阶段3)抉择阶段6。
结构化决策的定义结构化决策,是指建立在清楚的逻辑基础上的决策.7.非结构化决定的定义非结构决定是没有明确决策规则的决策。
计算机组成原理第二章参考答案计算机组成原理第二章主要介绍了计算机的层次结构和性能指标。
以下是第二章的参考答案,详细介绍了计算机层次结构的各个层次和性能指标。
第二章:计算机的层次结构和性能指标1. 什么是计算机的层次结构?计算机的层次结构是指计算机系统中各个层次之间的相互关系和功能划分。
计算机的层次结构从上到下分为五个层次:应用层、操作系统层、汇编和机器语言层、微程序层和硬件层。
2. 请介绍计算机的五个层次结构。
- 应用层:计算机的最顶层,负责处理用户的应用程序和数据。
- 操作系统层:负责管理计算机系统的资源和控制计算机的运行。
- 汇编和机器语言层:负责将高级语言转化为机器语言,供计算机硬件执行。
- 微程序层:负责实现计算机指令的具体执行过程。
- 硬件层:计算机的最底层,包括处理器、内存、输入输出设备等硬件组件。
3. 什么是计算机的性能指标?计算机的性能指标是指衡量计算机性能优劣的指标,主要包括速度、存储容量、可靠性和成本四个方面。
4. 请介绍计算机的速度性能指标。
- 响应时间:指从用户发出请求到计算机给出响应的时间。
- 时钟周期:指计算机内部处理器的时钟周期时间。
- 主频:指处理器的时钟频率,单位为赫兹。
- MIPS:指每秒执行百万条指令数,是衡量计算机运算速度的指标。
5. 请介绍计算机的存储容量性能指标。
- 主存容量:指计算机中用于存储程序和数据的主存容量。
- 硬盘容量:指计算机中用于存储大容量数据的硬盘容量。
- 缓存容量:指计算机中用于提高数据访问速度的高速缓存容量。
6. 请介绍计算机的可靠性性能指标。
- 故障率:指计算机发生故障的概率。
- 可用性:指计算机正常工作的时间占总时间的比例。
- 容错能力:指计算机在部分组件故障时仍然可以正常工作的能力。
7. 请介绍计算机的成本性能指标。
- 硬件成本:指计算机硬件的购买和维护成本。
- 能耗成本:指计算机在运行过程中消耗的能源成本。
- 人工成本:指计算机的使用和维护所需的人力成本。
交通运输系统工程第二章系统分析首先,在交通运输系统的系统分析中,我们需要明确系统的边界和范围。
一个完整的交通运输系统可以包括道路、铁路、水路、航空等多个交通模式,以及与之相关的设施、设备、车辆、人员等。
我们需要界定出我们所关注的范围,以便进行分析和研究。
其次,我们可以从交通运输系统的结构组成和功能特征两个方面进行分析。
结构组成方面,交通运输系统可以从交通网络、交通设施、交通工具、交通组织等多个层次进行划分。
功能特征方面,交通运输系统的功能主要包括运输、服务、安全、经济效益等多个方面。
通过对结构组成和功能特征的分析,可以更好地理解交通运输系统的运行机理和特点。
第三,我们可以运用系统动力学等方法对交通运输系统进行模拟和仿真分析。
系统动力学是一种研究动态系统行为的方法,通过建立数学模型,可以模拟和预测系统的运行过程和结果。
在交通运输系统中,我们可以利用系统动力学方法研究交通流的分布、交通拥堵的形成与演变、交通事故的发生与预防等问题。
最后,我们还可以对交通运输系统进行评价和优化分析。
评价分析可以通过构建评价指标体系,对交通运输系统的各个方面进行综合评估,从而得出系统的综合评价结果。
优化分析则是通过建立数学模型,寻找使系统达到最优状态的决策方案。
在交通运输系统中,优化分析可以应用于路网规划、交通信号控制、车辆调度等方面,以提高系统运行效率和服务质量。
综上所述,交通运输系统工程中的系统分析是一项重要的任务,它可以帮助我们深入了解交通运输系统的运行机理和特点,解决系统中存在的问题和挑战。
通过系统分析,我们可以提出相应的改进和优化措施,从而推动交通运输系统的可持续发展。
第二章系统的层次划分1.简述N层的应用软件系统,由于其众多的优点,已经成为典型的软件系统架构,也已经为广大开发人员所熟知。
在一个典型的三层应用软件系统中,应用系统通常被划分成以下三个层次:数据库层、应用服务层和用户界面层。
如下图(图2.1)所示:图2.1其中,应用服务层集中了系统的业务逻辑的处理,因此,可以说是应用软件系统中的核心部分。
软件系统的健壮性、灵活性、可重用性、可升级性和可维护性,在很大程度上取决于应用服务层的设计。
因此,如何构建一个良好架构的应用服务层,是应用软件开发者需要着重解决的问题。
为了使应用服务层的设计达到最好的效果,我们通常还需要对应用服务层作进一步的职能分析和层次细分。
很多开发者在构建应用服务层的时候,把数据库操纵、业务逻辑处理甚至界面显示夹杂在一起,或者,把业务逻辑处理等同于数据库操纵,等等,这些,都是有缺陷的做法。
我们将就在这个方面进行设计时可采用的方案进行一些探讨。
在一个分布式应用系统中,整个系统会部署在不同的物理设备上,如上面所示的三层体系,用户界面和应用服务器可能在不同的设备上,这就涉及到不同机器之间的通信问题,也就是层间的通信和交互问题。
我们已经有了很多可以用于分布式远程访问的技术,如CORBA,在Java平台上,我们还有Java RMI、EJB,在Windows平台上,从DCOM到COM+,再到.Net下的Web Service和.Net Remoting等。
如何选用合适的远程访问技术,也是我们在系统框架中需要考虑的问题。
为了使讨论更具有针对性,本文也会讨论一些比较流行的系统架构,例如J2EE架构,以及JDO,然后,我们会讨论Websharp在这个方面的一些设计理念。
2.设计的原则和评判标准同软件工程的原则一样,应用服务层的设计,必须遵循的最重要的原则就是高内聚和低耦合。
软件分层的本来目的,就是提高软件的可维护性和可重用性,而高内聚和低耦合正是达成这一目标必须遵循的原则。
尽量降低系统各个部分之间的耦合度,是应用服务层设计中需要重点考虑的问题。
内聚和耦合,包含了横向和纵向的关系。
功能内聚和数据耦合,是我们需要达成的目标。
横向的内聚和耦合,通常体现在系统的各个模块、类之间的关系,而纵向的耦合,体现在系统的各个层次之间的关系。
系统的框架,通常包含了一系列规范、约定和支撑类库、服务。
对于如何判断一个软件的系统框架的优劣,笔者认为,可以从以下几个方面来评判:◆系统的内聚和耦合度这是保证一个系统的架构是否符合软件工程原则的首要标准。
◆层次的清晰和简洁性系统每个部分完成功能和目标必须是明确的,同样的功能,应该只在一个地方实现。
如果某个功能可以在系统不同的地方实现,那么,将会给后来的开发和维护带来问题。
系统应该简单明了,过于复杂的系统架构,会带来不必要的成本和维护难度。
在尽可能的情况下,一个部分应该完成一个单独并且完整的功能。
◆易于实现性如果系统架构的实现非常困难,甚至超出团队现有的技术能力,那么,团队不得不花很多的精力用于架构的开发,这对于整个项目来说,可能会得不偿失。
简单就是美。
◆可升级和可扩充性一个系统框架,受设计时技术条件的限制,或者设计者本人对系统认识的局限,可能不会考虑到今后所有的变化。
但是,系统必须为将来可能的变化做好准备,能够在今后,在目前已有的基础上进行演进,但不会影响原有的应用。
接口技术,是在这个方面普遍应用的技巧。
◆是否有利于团队合作开发一个好的系统架构,不仅仅只是从技术的角度来看,而且,它还应该适用于团队开发模型,可以方便一个开发团队中各个不同角色的互相协作。
例如,将Web页面和业务逻辑组件分开,可是使页面设计人员和程序员的工作分开来同步进行而不会互相影响。
◆性能性能对于软件系统来说是很重要的,但是,有的时候,为了能让系统得到更大的灵活性,可能不得不在性能和其他方面取得平衡。
另外一个方面,由于硬件技术的飞速发展和价格的下降,性能的问题往往可以通过使用使用更好的硬件来获得提升。
3.应用服务层的内容应用服务层,通常也被称为业务逻辑层,因为这一层,是应用软件系统业务逻辑处理集中的部分。
然而,我将这一层称为应用服务层,而不称业务逻辑层,因为,这一层需要处理的不仅仅是业务逻辑,还包含了其他方面的内容。
从完整的角度来说,应用服务层需要处理以下内容:◆数据的表示方式数据,是软件处理的对象。
从某种程度上来说,"软件,就是数据结构加算法"的说法,是有一定意义的。
在面向对象的系统中,数据是用类来表示的,代表了现实世界实体对象在软件系统中的抽象。
考虑所谓的MVC模式,这个部分的类属于M--实体类的范畴。
由于应用软件通常会使用数据库,数据库中的数据,可以看成是对象的持久化保存。
由于数据库一般是关系型的,因此,这个部分,还需要考虑类(对象)同关系型数据的映射,即通常所说的O-R MAP 问题。
◆数据的存取方式如同上述所说,软件系统处理的实体对象数据需要持久化保存数据库中,因此,我们必须处理系统同数据库的交互,以及数据的存取和转换方式的问题。
◆业务逻辑的组织方式在面向对象的系统中,业务逻辑表现为对象之间的交互。
有了上述的实体对象,以及对象的保存策略,就可以将这些对象组合起来,编写我们的业务逻辑处理程序。
在业务逻辑的处理中,必须保证处理的正确性和完整性,这将会涉及到事务处理。
通常,我们也会把业务逻辑封装成组件的形式,以得到最大的可重用性。
◆业务服务的提供方式在我们完成系统的功能后,如何向客户提供服务,是我们需要考虑的问题。
这里的客户,不仅仅是指软件的使用者,也包括调用的界面、其他程序等。
例如,在一个基于Web的或JSP系统中,业务逻辑功能的客户便是这些页面或JSP页面。
业务逻辑组件应该通过什么方式,直接的,或间接的,向这些客户提供服务,是这一层需要完成的任务。
◆层的部署和层间交互对于一个多层的应用软件系统来说,尤其是大型的应用软件系统,通常需要把不同的部分部署在不同的逻辑或物理设备上。
特别是一些基于Web的应用软件系统,其部署工作将涉及到Web服务器、组件服务器、数据库服务器等不同的服务设备。
在进行应用软件架构的设计的时候,必须考虑各种不同的部署方案。
当系统需要进行分布式访问的时候,如何统一和简化分布式系统的开发,便成了系统框架需要考虑的内容。
综上所述,一个完整的基于Web的应用软件系统,其架构可以用图2.2来表示(Websharp的应用软件系统架构):图2.2对于以上各个方面来说,每个问题都可以有很多种策略和方案,但是,在一个系统中,应该尽可能的统一这些策略和方案。
也就是说,在一个系统,或者一个项目中,应该统一每个解决每个问题所采用的方法。
软件的开发方法是灵活的,可以用不同的方法解决相同的问题,这会诱使开发人员采用他们认为能够表现自己的方法,但是,从整个系统来看,这将会是灾难性的。
我们应该尽可能统一,就是,采用统一的数据表示方式、统一的数据存取方式、统一的业务逻辑处理方式等。
下面,将就这些部分的设计策略和可用方案进行一些比较详细的论述。
4.数据实体的表示应用软件系统,从本质上来说,是计算机对现实世界的模拟。
现实世界中的实体对象,在软件系统中,表现为需要处理的数据。
在面向对象的系统中,这是通过"类"和"对象"来表示的。
参考著名的"MVC"模式,类可以分成实体类(M)、控制类(C)、和边界类(V),分别代表了实体对象、控制和界面显示。
系统中需要处理的数据,在面向对象的系统中,属于实体类部分。
在考虑数据实体层的设计策略的时候,需要把握以下要点:◆一致的数据表示方式。
在一个系统中,数据的表示方式必须尽可能统一,同时,在处理单个数据和多个数据的时候,处理方式尽可能一致。
◆因为数据通常是需要存储到数据库中,因此,良好的映射方法是必需的。
◆处理好对象的粒度,即所谓的粗粒度对象、细粒度对象。
一般例子考虑一个现实的例子,一个仓库中的产品(Product),在系统中可以使用如下定义:这是一个包含了三个属性的Product类的定义。
为了便于说明,在这里,我们尽量将问题简化了。
又例如,一张入库单可以使用如下定义:对于处理单个对象,通常采用上述的方法,但是,当我们需要处理相同类的一组对象,也就是处理一个对象集合的时候,就会有一些小小的麻烦。
如前所述,我们希望在处理单个对象和对象集合的时候,处理的方式尽量统一,这对于软件开发的意义是很大的。
常用的处理对象集合的方法有:◆数组表示的方法例如,上面的例子中当一张入库单包含多条入库单明细的时候采用的方法。
为了灵活性,也可以使用容器来,如Java中的Vector或C#的ArrayList(C#)。
只是,在处理对象的时候,需要一个类型转换的操作。
这个问题,在支持泛型的语言中不会存在,如使用C++的标准库的容器类。
◆ObjectCollection方法。
这个方法同上面的方法类似,不同之处在于,为每个实体类设计一个Collection类。
例如,可以为FormDetail设计一个FormDetailsCollection类(C#):这么做的好处在于,在操作集合中的对象时,不必进行类型转换的操作。
◆数据集的表示方法。
采用这种方法,通常是直接把从数据库查询中获取的数据集(Recordset)作为数据处理对象。
这种方法在ASP应用程序中是非常常见的做法。
这种做法简单,初学者很容易掌握,但是他不是一种面向对象的方法,弊病也很多。
EJB的方法在J2EE体系中,对实体对象的处理的典型方法是Entity Bean。
J2EE中使用Entity Bean来表示数据,以及封装数据的持久化储存(同数据库的交互)。
由于Entity Bean比较消耗资源,而且采用的是远程调用的方式来访问,因此,在需要传递大量数据,或者在不同的层次之间传递数据的时候,往往还会采用一些诸如"值对象"(Value Object)的设计模式来提升性能。
关于J2EE中的设计模式的更多内容,读者可以参考《J2EE核心模式》一书。
JDO的方法相对于J2EE这个昂贵的方法来说,JDO提供了一个相对"轻量级"的方案。
在JDO中,你可以采用一般的做法,编写实体类,然后,通过一些强化器对这些类进行强化,以使其符合JDO的规范,最后,你可以通过PersistenceManager来实现对象的持久化储存。
无论是EJB还是JDO,在同数据库进行映射的时候,都选用了XML配置文件的方式。
这是一种灵活的方式。
由于XML强大的表达能力,我们可以很好的用它来描述代码中的实体类和数据库之间的映射关系,并且,不用在代码中进行硬编码,这样,在情况发生变化的时候,有可能只需要修改配置文件,而不用去修改程序的源代码。