系统架构设计
一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。
Deniro Lee
这个作者很懒,什么都没留下…
展开
-
系统架构设计笔记(36)—— 面向对象的分析与设计
面向对象方法是一种非常实用的软件开发方法,它一出现就受到软件技术人员的青睐,现已成为计算机科学研究的一个重要领域,并逐渐成为软件开发的一种主要方法。面向对象方法以客观世界中的对象为中心,其分析和设计思想符合人们的思维方式,分析和设计的结构与客观世界的实际比较接近,容易被人们接受。在面向对象方法中,分析和设计的界面并不明显,它们采用相同的符号表示,能够方便地从分析阶段平滑地过渡到设计阶段。此外,在现实生活中,用户的需求经常会发生变化,但客观世界的对象及对象间的关系比较稳定,因此用面向对象方法分析和设计的结构也原创 2020-06-13 17:40:35 · 3568 阅读 · 0 评论 -
系统架构设计笔记(35)—— 结构化分析与设计
结构化分析与设计方法是一种面向数据流的需求分析和设计方法,它适用于分析和设计大型数据处理系统,是一种简单 、 实用的方法,曾获得广泛的应用。1 结构化分析结构化分析方法的基本思想是自顶向下逐层分解。分解和抽象是人们控制问题复杂性的两种基本手段。对于一个复杂的问题,人们很难一下子考虑问题的所有方面和全部细节,通常可以把一个大问题分解成若干个小问题,每个小问题再分解成若干个更小的问题,经过多次逐层分解,每个最底层的问题都是足够简单 、 容易解决的,于是复杂的问题也就迎刃而解了。这个过程就是分解过程。结构化原创 2020-05-31 15:19:48 · 4013 阅读 · 0 评论 -
系统架构设计笔记(34)—— 需求分析与软件设计
需求分析是软件生命周期中相当重要的一个阶段。根据 Standish Group 对 23000 个项目进行的研究结果表明, 28% 的项目彻底失败, 46% 的项目超出经费预算或者超出工期,只有约 26% 的项目获得成功。需求分析工作在整个软件开发生命周期中有着十分重要的意义。而在这些高达 74% 的不成功项目中,有约 60% 的失败是源于需求问题,也就是差不多有一半的项目都遇到了这个问题,这一可怕的现象引起人们对需求分析的高度重视。需求分析阶段的主要任务是通过开发人员与用户之间的广泛交流,不断澄清一些模原创 2020-05-30 11:15:24 · 3606 阅读 · 0 评论 -
系统架构设计笔记(33)—— 定义系统问题与归结模型
软件系统的目的是为了解决问题,因此在建模之初最重要的步骤是对问题的分析与定义,并在此基础上归结模型,这样才能够获得切实有效的模型。定义问题的过程包括:理解真实世界中的问题和用户的需要,并提出满足这些需要的解决方案的过程。1 问题分析问题分析的目标就是在开发之前对要解决的问题有一个更透彻的理解。为了达到这一目标,通常需要经过在问题定义上达成共识,理解问题的本质,确定项目干系人和用户,定义系统的边界和确定系统实现的约束这五个步骤。1.1 在问题定义上达成共识要检验大家是否在问题的定义上达成了共识,最简单原创 2020-05-30 11:13:28 · 1629 阅读 · 0 评论 -
系统架构设计笔记(32)—— 新旧系统的分析和比较
计算机技术飞速发展,日新月异,许多企业因为业务发展的需要和市场竞争的压力,需要建设新的企业信息系统。在这种升级改造的过程中,怎么处理和利用那些历史遗留下来的老系统,成为影响新系统建设成败和开发效率的关键因素之一。通常称这些老系统为遗留系统。目前,学术和工业界对遗留系统的定义没有统一的意见 。Bennett 在 1995 年对遗留系统做了如下的定义:遗留系统是不知道如何处理但对组织又至关重要的系统 。Brodie 和 Stonebraker 对遗留系统的定义如下:遗留系统是指任何基本上不能进行修改和演化以满原创 2020-05-24 14:58:18 · 3007 阅读 · 0 评论 -
系统架构设计笔记(31)—— 系统方案的制订和改进
通过在问题定义和归结模型阶段的工作,已经分析并定义了与系统开发目标相关的各种模型 、 分析出了系统的功能清单 、 性能要求等,解释了 “ 系统目标是什么 ” 的问题。在系统方案阶段,主要完成的工作则是解释 “ 系统如何实现 ” 的问题。系统方案制订的最主要内容,包括以下几个方面。1 确定软件架构在问题定义阶段得到的软件概念模型使用各种工具定义了项目的开发目标。在系统方案制订阶段才开始真正考虑如何去实现软件。其中最重要的工作,就是制定系统的实现架构。系统的实现架构与一些很具体的方面相关:(1)分析模原创 2020-05-24 14:54:51 · 664 阅读 · 0 评论 -
系统架构设计笔记(30)—— 可行性研究与效益分析
在项目计划和选择的过程中,需要完成的首要目标是对项目进行估算。项目估算的范围涉及方方面面,例如项目或产品开发的范围 、 投入和回报 、 项目风险 、 作用和意义等。在传统软件工程方法中,是以可行性研究的方式来组织项目的主要估算内容。可行性研究的范围可能复盖技术 、 经济 、 执行 、 环境等各种需要评估的因素,但它并不是最后的详细计划(例如:项目的时间进度及人员安排)。通常在进行可行性研究的阶段,项目的目标或产品的最终方向也是极易变化的。但可行性研究的意义在于,虽然可行性研究不能指出项目最终的详细计划和方原创 2020-05-24 14:52:38 · 3559 阅读 · 0 评论 -
系统架构设计笔记(29)—— 项目的选择与提出
组织在信息化的过程中,可能基于各种动机提出系统项目的建设,有关人员要根据这些动机,提出和确定信息系统的工作范围,确定项目立项,提出系统选择方案,给出选择结果。1 项目的立项目标和动机企事业单位在其自身的经营管理过程中,对于项目的立项建设可能具有多种动机,通常可归结为下列几种。(1)进行基础研究并获取技术此类项目通常由大学院校或企业集团的战略研究性部门提出和实施。小规模的研究组织可能仅仅是企业中的一个研发部门或从事研发工作的团队;中大规模的研究组织包括研究所或研究院这种独立建制的单位;大规模的研究性项原创 2020-05-17 14:22:45 · 1749 阅读 · 0 评论 -
系统架构设计笔记(28)—— 软件重用与基于架构的软件设计
1 软件重用软件重用技术是一种重要的软件开发方法,虽然至今软件重用技术还不够成熟,离理想中的软件工厂还有很长的路要走,但现有的一些重用技术(例如,中间件 、 应用服务器等)已经改变了开发过程。1.1 软件重用形式软件产品与其他的产品不同,是抽象的,一旦产生就可以无限制地复制,因此重复利用软件产品的意义重大,可以节约大量的人力物力。软件重用指的是利用已经存在的软件元素建立新的软件系统,这其中的软件元素既可以是软件产品 、 源程序,也可以是文档 、 设计思想甚至是领域知识。软件重用可以直接提高软件的开发效原创 2020-05-16 16:42:08 · 2346 阅读 · 1 评论 -
系统架构设计笔记(27)—— 敏捷方法
2001 年 2 月,在美国的犹他州, 17 位“无政府主义者”共同发表了《敏捷软件开发宣言》,在宣言中指出:尽早地、持续地向客户交付有价值的软件对开发人员来说是最重要的。拥抱变化,即使在开发的后期。敏捷过程能够驾驭变化,保持客户的竞争力。经常交付可工作的软件,从几周到几个月,时间范围越小越好。在整个项目中,业务人员和开发者紧密合作。围绕士气高昂的团队进行开发,为团队成员提供适宜的环境,满足他们的需要,并给予足够的信任。在团队中,最有效率的、也是效果最好的沟通方式是面对面地交流。可以工作的软原创 2020-05-10 15:27:52 · 1907 阅读 · 0 评论 -
系统架构设计笔记(26)—— 软件迭代统一过程
统一过程( Unified Process , UP )是由 Rational 公司开发的一种迭代的软件过程,是一个优秀的软件开发模型,它提供了完整的开发过程解决方案,可以有效地降低软件开发过程的风险,经过裁剪的 UP 可以适应各种规模的团队和系统。1 UP 的二维模型UP 是一个很有特色的模型,它本身是一个二维的结构,如图 1 所示。对于 UP 而言,时间主线就是横轴的阶段,随着时间的流逝,...原创 2020-05-05 14:47:26 · 1627 阅读 · 0 评论 -
系统架构设计笔记(25)—— 软件生命周期与开发模型
1 软件生命周期软件生命周期也就是软件生存的周期。同万物一样,软件也有诞生和消亡,软件生命周期就是指软件自开始构思与研发到不再使用而消亡的过程。有关软件生命周期的阶段划分,不同的标准有不同的规定。在 GB8566-88 ( 《 软件工程国家标准 —— 计算机软件开发规范 》 )中将软件生命周期划分为8个阶段:可行性研究与计划 、 需求分析 、 概要设计 、 详细设计 、 实现、集成测试、确认测...原创 2020-05-05 14:25:42 · 2003 阅读 · 1 评论 -
系统架构设计笔记(24)—— 系统性能评估
性能评估是对一个系统进行各项检测,并形成一份直观的文档,因此性能评估是通过各项测试来完成的。评估的一个目的是为性能的优化提供参考,而性能优化涉及的面很广,也很复杂,而且永无止境。对于不同的应用程序,优化的方法会有一些区别。1 基准测试程序把应用程序中用得最多 、 最频繁的那部分核心程序作为评价计算机性能的标准程序。称为基准测试程序( benchmark )。(1)整数测试程序Dhrysto...原创 2020-05-03 15:53:36 · 1806 阅读 · 0 评论 -
系统架构设计笔记(23)—— 系统性能计算与设计
1 系统性能计算随着计算机系统复杂度的不断增长,性能指标也在不断地增长,这也增加了衡量计算机系统性能的难度。如何在众多指标中选取合适的性能指标,以及选择何种衡量方法都成为一项重要的课题,因此也衍生了各种性能评估体系。这里主要介绍一些常用性能指标的计算方法。在实际应用时,往往是对这些常用性能指标的复合计算,然后通过算法加权处理得到最终结果。性能指标计算的主要方法有:定义法 、 公式法 、 程序...原创 2020-05-03 15:20:04 · 1094 阅读 · 0 评论 -
系统架构设计笔记(22)—— 系统性能指标
在计算机刚刚诞生时,所谓的系统仅仅指的是计算机本身,随着网络的出现和发展,诸如路由器 、 交换机设备,TCP/IP 、 SPX/IPX 、 以太网 、 光纤网络等网络技术如雨后春笋般涌现。系统的概念也不再局限于单台计算机,而是成为一个集各种通信设备于一体的集成装置。因此,这里所提到的性能指标,既包括软件,也包括硬件。在硬件中,既包括计算机,也包括各种通信交换设备,以及其他网络硬件;在软件中,...原创 2020-05-01 14:31:32 · 3146 阅读 · 0 评论 -
系统架构设计笔记(21)—— 物联网
物联网就是物物相连的互联网。其定义有两层意思 :物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信。物联网通过智能感知 、 识别技术与普适计算 、 广泛在网络的融合中应用,被称为继计算机 、 互联网之后世界信息产业发展的第三次浪潮。物联网是互联网的应用拓展,与其说物联网是网络,不如说物联网是业务和应用。因此,应...原创 2020-04-25 19:00:45 · 830 阅读 · 0 评论 -
系统架构设计笔记(20)—— 综合布线系统
综合布线工程包括综合布线设备安装 、 布放线缆和缆线端接等三个环节。任何一个网络系统的实施都至少包括两个部分,即逻辑设计与物理实现。网络系统的调试与安装通常分为以下几步 :网络系统的详细逻辑设计;全部网络设备加电测试;模拟建网调试及连通性测试;实际网络安装调试。综合布线系统 ( Premises Distributed System , PDS ) 是一种集成化通用传输系统,是...原创 2020-04-25 18:57:22 · 989 阅读 · 0 评论 -
系统架构设计笔记(19)—— 网络存储技术
目前,主流的网络存储技术主要有三种,分别是直接附加存储( Direct Attached Storage , DAS ) 、 网络附加存储( Network Attached Storage , NAS )和存储区域网络( Storage Area Network , SAN )。1 直接附加存储( Direct Attached Storage , DAS )DAS 是将存储设备通过 SCS...原创 2020-04-19 18:11:04 · 1115 阅读 · 0 评论 -
系统架构设计笔记(18)—— 网络工程
网络工程的建设是一个极其复杂的系统工程,是对计算机网络 、 信息系统建设和项目管理等领域知识的综合利用的过程,我们必须根据用户单位的需求和具体情况,结合当前网络技术的发展和产品化程度,经过充分的需求分析和市场调研,确定网络建设方案,依据方案有计划 、 分步骤地实施。按照实施过程的先后,网络工程可分为网络规划 、 网络设计和网络实施三个阶段。1 网络规划网络规划是网络建设过程中非常重要的环节,同...原创 2020-04-19 18:09:31 · 695 阅读 · 0 评论 -
系统架构设计笔记(17)——网络互连与常用设备
网络互连是为了将两个以上具有独立自治能力 、 同构或异构的计算机网络连接起来,实现数据流通,扩大资源共享的范围,或者容纳更多的用户。网络互连包括局域网与局域网的互连 、 局域网与广域网的互连 、 广域网与广域网的互连,这可以扩大资源共享的范围,使更多的资源可以被更多的用户共享。1 网络互连设备在网络互连时,各节点一般不能简单地直接相连,而是需要通过一个中间设备来实现。按照 OSI/RM 的分层...原创 2020-04-11 16:57:27 · 575 阅读 · 0 评论 -
系统架构设计笔记(16)——局域网与广域网
局域网( LocalAreaNetwork , LAN )是将分散在有限地理范围内的多台计算机通过传输媒体连接起来的通信网络,通过功能完善的网络软件,实现计算机之间的相互通信和资源共享;广域网( WideAreaNetwork , WAN )是在传输距离较长的前提下所发展的相关技术的集合,用于将大区域范围内的各种计算机设备和通信设备互联在一起,组成一个资源共享的通信网络。1 局域网基础知识当...原创 2020-04-11 14:56:40 · 3144 阅读 · 2 评论 -
系统架构设计笔记(15)—— 网络架构与协议
网络架构是指计算机网络的各层及其协议的集合。计算机之间要交换数据,就必须遵守一些事先约定好的规则,用于规定信息的格式及如何发送和接收信息的一套规则就称为网络协议。为了减少网络协议设计的复杂性,网络设计者并不是设计一个单一 、 巨大的协议来为所有形式的通信规定完整的细节,而是将庞大而复杂的通信问题转化为若干个小问题,然后为每个小问题设计一个单独的协议。计算机网络采用分层设计方法,按照信息的传输过程...原创 2020-04-05 14:36:17 · 2040 阅读 · 0 评论 -
系统架构设计笔记(14)—— NoSQL 与大数据
1 NoSQLNoSQL 即 Not Only SQL ,可直译 “ 不仅仅是 SQL” ,这项技术正在掀起一场全新的数据库革命性运动。数据的模式包括多种类型,如层次模型 、 网状模型 、 关系模型等,而在实际应用过程中,几乎都是在用关系模型,主流的数据库系统都是关系型的。但随着互联网 web2.0 网站的兴起,传统的关系数据库在应付 web2.0 网站,特别是超大规模和高并发的 SNS 类型...原创 2020-04-04 15:33:54 · 543 阅读 · 0 评论 -
系统架构设计笔记(13)—— 数据挖掘
随着数据库技术的迅速发展及数据库管理系统的广泛应用,人们积累的数据越来越多。激增的数据背后隐藏着许多重要的信息,人们希望能够对其进行更高层次的分析,以便更好地利用这些数据。目前的数据库系统可以高效地实现数据的录入 、 查询 、 统计等功能,但无法发现数据中存在的关系和规则,无法根据现有的数据预测未来的发展趋势。缺乏挖掘数据背后隐藏的知识的手段,导致了 “ 数据爆炸但知识贫乏 ” 的现象。1 数据...原创 2020-04-04 15:31:44 · 1288 阅读 · 0 评论 -
系统架构设计笔记(12)—— 数据仓库
传统的操作型数据库主要是面向业务的,所执行的操作基本上也是联机事务处理,但随着企业规模的增长,历史积累的数据越来越多,如何利用历史数据来为未来决策服务,就显得越来越重要了,而数据仓库就是其中的一种技术。企业常见的数据处理工作大致可以分成两大类,分别是 OLTP(On-LineTransaction Processing ,联机事务处理 ) 和 OLAP (On-LineAnalytical P...原创 2020-04-04 15:29:00 · 538 阅读 · 0 评论 -
系统架构设计笔记(11)——分布式数据库系统
近年来,随着计算机技术与网络技术的发展,特别是 Internet 的兴起,分布式数据库系统得到了很快的发展和应用。1 分布式数据库的概念分布式数据库系统是相对于集中式数据库系统而言的,是将数据库技术与网络技术相结合的产物。分布式数据库( Distributed DataBase , DDB )比较确切的定义是:分布式数据库是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每...原创 2020-03-28 17:18:39 · 2192 阅读 · 0 评论 -
系统架构设计笔记(10)—— 数据库备份与恢复
数据库中的数据一般都十分重要,不能丢失,因为各种原因,数据库都有损坏的可能性(虽然很小),所以事先制定一个合适的 、 可操作的备份和恢复计划至关重要。备份和恢复计划的制订要遵循以下两个原则:(1)保证数据丢失的情况尽量少或完全不丢失,因为性价比的要求,这要取决于现实系统的具体要求。(2)备份和恢复时间尽量短,保证系统最大的可用性。数据库备份按照不同方式可分为多种,这里按照备份内容分为物理备份...原创 2020-03-28 17:16:55 · 664 阅读 · 0 评论 -
系统架构设计笔记(9)——数据库事务管理
数据库系统运行的基本工作单位是事务,事务相当于操作系统中的进程,是用户定义的一个数据库操作序列,这些操作序列要么全做要么全不做,是一个不可分割的工作单位。事务具有以下特性:(1)原子性( Atomicity):数据库的逻辑工作单位。(2)一致性( Consistency):使数据库从一个一致性状态变到另一个一致性状态。(3)隔离性( Isolation):不能被其他事务干扰。(4)持续性(...原创 2020-03-22 17:54:32 · 596 阅读 · 0 评论 -
系统架构设计笔记(8)——数据库设计
数据库设计的过程是将数据库系统与现实世界密切地、有机地、协调一致地结合起来的过程。数据库的设计质量与设计者的知识、经验和水平密切相关。作为数据库应用系统的重要组成部分,数据库设计的成败往往直接关系到整个应用系统的成败。以数据库为基础的数据库应用系统与其他计算机应用系统相比往往具有数据量庞大、数据保存时间长、数据关联复杂、用户要求多样化等特点。数据库设计中面临的主要困难和问题有:(1)同时具...原创 2020-03-21 17:37:22 · 4766 阅读 · 0 评论 -
系统架构设计笔记(7)—— 数据库模式与范式
数据管理技术的发展大致经历了人工管理阶段 、 文件系统阶段 、 数据库阶段和高级数据库技术阶段。数据库是长期储存在计算机内的 、 有组织的 、 可共享的数据的集合。数据库管理系统 ( Database Management System , DBMS ) 是一种负责数据库的定义 、 建立 、 操作 、 管理和维护的软件系统。其目的是保证数据安全可靠,提高数据库应用的简明性和方便性 。DBMS...原创 2020-03-21 08:22:50 · 1035 阅读 · 0 评论 -
系统架构设计笔记(6)—— 操作系统作业管理
从用户的角度看,作业是系统为完成一个用户的计算任务(或一次事务处理)所做的工作总和。例如,对于用户编制的源程序,需经过对源程序的编译、连接编辑或连接装入及运行产生计算结果。这其中的每一个步骤,常称为作业步,作业步的顺序执行即完成了一个作业。从系统的角度看,作业则是一个比程序更广的概念。它由程序、数据和作业说明书组成。系统通过作业说明书控制文件形式的程序和数据,使之执行和操作。而且,在批处理系统中...原创 2020-03-14 14:55:14 · 350 阅读 · 0 评论 -
系统架构设计笔记(5)—— 操作系统文件管理
操作系统对计算机的管理包括两个方面:硬件资源和软件资源。硬件资源的管理包括CPU 的管理、存储器的管理、设备管理等,主要解决硬件资源的有效和合理利用问题。软件资源包括各种系统程序、各种应用程序、各种用户程序,也包括大量的文档材料、库函数等。每一种软件资源本身都是具有一定逻辑意义的相关信息的集合,在操作系统中它们以文件形式存储。计算机系统的重要作用之一是能快速处理大量信息,因此数据的组织、存取和...原创 2020-03-14 14:53:36 · 667 阅读 · 0 评论 -
系统架构设计笔记(4)—— 操作系统设备管理
在计算机系统中,除了处理器和内存之外,其他的大部分硬设备称为外部设备。它包括输入/输出设备,辅存设备及终端设备等。这些设备种类繁多,特性各异,操作方式的差异很大,从而使操作系统的设备管理变得十分繁杂。设备管理程序一般要提供下述功能:提供和进程管理系统的接口,当进程要求设备资源时,该接口将进程要求转达给设备管理程序 。进行设备分配。按照设备类型和相应的分配算法把设备和其他有关的硬件分配给请求...原创 2020-03-14 14:51:16 · 458 阅读 · 2 评论 -
系统架构设计笔记(3)—— 操作系统存储管理
存储器是计算机系统中最重要的资源之一。因为任何程序和数据以及各种控制用的数据结构都必须占有一定的存储空间,因此,存储管理直接影响系统性能。存储器由内存和外存组成。内存是由系统实际提供的存储单元(常指字节)组成的一个连续地址空间,处理器可直接存取。外存(辅存)是指软盘、硬盘、光盘和磁带等一些外部存储部件,常用来存放暂不执行的程序和数据。处理器不能直接访问外存,需通过启动 I/O(Input/Out...原创 2020-03-14 07:47:46 · 851 阅读 · 0 评论 -
系统架构设计笔记(2)—— 操作系统进程管理
操作系统基本原理包含以下 5 大管理。我们先来说说进程管理。因为处理机是计算机系统的核心资源,所以整个操作系统的重心是处理机管理。处理机管理中最基本的、最重要的概念是进程。进程是系统并发执行的体现。不同观点操作系统静态是一组程序和表格集合的操作系统。动态是进程动态和并发执行的操作系统。不同观点进程静态进程是由程序 、 数据和进程控...原创 2020-03-08 11:12:38 · 883 阅读 · 0 评论 -
系统架构设计笔记(1)—— 操作系统的类型与结构
掌握操作系统原理的关键:一个观点、两条线索。一个观点:以资源管理的观点来定义操作系统;从资源管理的角度看,操作系统主要是对处理器、存储器、文件、设备和作业进行管理。两条线索:如何管理计算机各类资源、控制程序的执行。现在讲讲操作系统的类型与结构。操作系统(Operating System,OS)是计算机系统中的核心系统软件,负责管理和控制计算机系统中的硬件和软件资源,合理地组织计算机工作...原创 2020-02-29 09:07:19 · 3428 阅读 · 1 评论