软件工程——系统架构

最近老师把师兄们以前做的Android项目发给我和其他同学,让我们把这个项目写成实训教材,说要让一个不会Android的人看了我们的教材就可以做出这个项目。我当时就无语了……(心想不会的人首先想看的是基础教材绝对不会是什么实训教材,而且谁会看我们写的教材啊,除了我们学校的学生,是个人都会选择一些出名的教材)其实,最让我愣一下的是,老师居然让我来写实训教材的项目架构部分,当时都无语了,这个学期学习的Android,才半个学期!自己都还是个菜鸟。无奈吧,做就做吧。我只能说我尽力做,至于做成什么样子就不敢保证了。于是乎,我把上个学期学习的《软件工程》拿来看。当时,因为在做网站(真实项目,我大一上册学的C,我大一下册学的.net,大二上册做的网站,现在都大二下册了),而且客户的要求也一直在变,还熬了几次通宵,各种伤不起啊。上课都在想怎么做,根本都没听老师讲。哎,出来混迟早是要还的,于是我便果断的复习了《软件工程》的系统架构部分。因为,老师要得比较急,前天看书看到凌晨2点。

现在,总结一下自己学到的相关知识:

对于软件系统来说,描述系统架构一般涉及两个方面的内容:业务架构和软件架构。这两个方面的内容分别针对于人们对业务领域的理解和对系统领域的理解。前者是从业务需求的角度出发,理清物理结构图和逻辑结构图,划分出每个子模块,确定为什么这么划分,各个子模块之间如何交互,每个子模块具有哪些接口;后者从技术上着重讨论采用什么样的技术,如何分层,采用哪些好的技术特征,会带来什么好处,为什么要这么做等。

业务架构:

  业务架构描述了业务领域主要的业务模块及其组织结构。

  业务架构的目的是为业务领域建立一个维护和扩展的结构,描述业务的结构。业务架构对我们理解客户业务,尤其是对软件开发行业确定解决方案有着非常重要的作用。

  用例模型和领域模型是业务架构的基础。用例模型、领域模型所描述的业务过程,通过抽象可得到业务架构。反过来,业务架构对用例模型和领域模型有着重要的指导作用。

软件架构:

  软件架构是一种思想,一个系统的蓝图,是对软件结构组成的规划和职责进行设定。

  软件架构的意义就在于将这些可逻辑划分的部分独立出来,用约定的接口和协议将他们有机地结合到一起,形成职责清晰、结构明朗的软件结构。

  软件架构是一个逻辑性的框架结构描述,他可能并无真正的可执行的部分。事实上,大部分的软件架构都是有一个设计思想,加上若干设计模式再规定一些列的规范、传输协议、实现标准等文档构成的。

  软件架构需要在业务架构的基础上引入计算机环境,计算机环境包括硬件环境和软件环境。硬件环境包括网络拓扑结构、服务器及其他设备等,而软件环境指的是操作系统、应用服务器、中间件、数据库等。

  一个典型的软件架构包括两个视角:广度视角和深度视角。广度视角即我们常说的软件层次结构,它关注软件的分层,规定每一层的职责以及曾与层之间的通信标准,一般使用包元素来描述;深度视角,是指广度视角中每一层的详细说明,它关注每一层以及每个部分的具体实现架构。

软件架构与框架:

  现实中,很多人把框架和架构搞混,有的人认为架构就是框架,两者是一个东西。其实这是一种不正确的认识。

  从语言的角度来说,架构的英文原文为:architecture,框架是framework,显示是两个完全不同的词。另外,架构是一种思想,一个系统蓝图,是对系统高层次的定义和描述。框架是针对某个问题领域的通用解决方案,它通常集成了最佳实践和可复用的基础结构,对开发工作起到减少工作量、指导和规范的作用。

软件工程——系统架构,码迷,mamicode.com

时间: 2024-10-09 03:28:25

软件工程——系统架构的相关文章

应用系统架构演变初探

背景 近几年的互联网创业风潮持续在高涨中,所涉及的行业从涵盖了社交.资讯.电商.生活服务等方方面面.其中也涌现不少优秀的APP,而这些产品或平台的特点都包含了"快速",即更新快,迭代快的特性. 然而作为一名软件工程师的角度,按以前软件工程的理论来说,系统在设计初期应考虑更多的复杂度.良好的扩展性,尽可能达到以不变应万变的结果,而这些快速变更的新秀产品,在系统架构上如何做到灵活扩展.快速演进的呢? 这便是以下要开始探讨的内容. 一.初定系统架构 在最开始的时候,产品经理(或项目经理)找到

系统架构师的职责和作用(转)

系统架构师的职责和作用(转) [职业名称] 系统架构师(System Architecture) [职业定位] 系统构架,是对已确定的需求的技术实现构架.作好规划,运用成套.完整的工具,在规划的步骤下去完成任务. 系统架构师(又称企业架构师或者系统设计师)是一个最终确认和评估系统需求,给出开发规范,搭 建系统实现的核心构架,并澄清技术细节.扫清主要难点的技术人员.他/她主要着眼于系统的“技术实现”.因此他/她应该是特定的开发平台.语言.工具的大 师,对常见应用场景能马上给出最恰当的解决方案,同时

10个重要部分,讲述从程序员到高级系统架构师该如何进阶?

1 前言 说到系统架构师,相信很多企业都有这样的高级人才.系统架构师已然成为国内一门十分紧俏的职业,一名优秀的系统架构师常常会吸引各方企业争抢. 系统架构师的职责是在项目开发过程中,制定这个项目的总体脚骨,指导整个开发团队完成这个计划,他必须对开发技术非常了解,并且需要良好的组织管理能力,可以这样说,一个架构师的好坏决定了整个项目的成败. 当前,我们国家经济形势热度不减,软件企业成长速度惊人.随着信息时代的来临,架构师在业务发展中扮演的角色越来越重要,如何做好整个IT架构的设计,已经成为企业信息

软考 软件设计师 系统架构师 视频教程

软考介绍: 计算机技术与软件专业技术资格(水平)考试,简称计算机与软件考试,是由国家人力资源和社会保障部与工业和信息化部组织领导的国家级考试,目的是科学.公正地对全国计算机与软件专业技术人员进行专业技术资格.职业资格认定和专业技术水平测试. 系统架构师视频教程:http://item.taobao.com/item.htm?spm=686.1000925.0.0.vXgA34&id=42171953455 软件设计师视频教程:http://item.taobao.com/item.htm?spm

应用系统架构的发展历程

 应用系统架构演变初探 背景 近几年的互联网创业风潮持续在高涨中,所涉及的行业从涵盖了社交.资讯.电商.生活服务等方方面面.其中也涌现不少优秀的APP,而这些产品或平台的特点都包含了"快速",即更新快,迭代快的特性. 然而作为一名软件工程师的角度,按以前软件工程的理论来说,系统在设计初期应考虑更多的复杂度.良好的扩展性,尽可能达到以不变应万变的结果,而这些快速变更的新秀产品,在系统架构上如何做到灵活扩展.快速演进的呢? 这便是以下要开始探讨的内容. 一.初定系统架构 在最开始的时候

系统架构师成长之路(一)

   背景:系统架构师是近几年来在国内外迅速成长并发展良好的一个职业,它对系统开发和信息化建设的重要性及给IT业所带来的影响是不言而喻的.在我国,虽然系统架构师的职业在工作内容.工作职责以及工作边界等方面还存在一定的模糊性和不确定性,但它确实是时代发展的需要,并正在实践中不断完善和成熟. 通常从组织上划分,架构师分为以下几大类:业务架构师(Business Architect).主题领域架构师(Domain Architect).技术架构师(Technology Architect).项目架构师

对软件设计和系统架构的理解

最先接触系统架构的时候,是在学软件工程这门课的时候.当时觉得系统架构很遥远.之后的一段时间里,先后参与和发起了不少的课题设计项目. 从开始写starwar的时候,一个java applet 程序,照着别人敲出来,很疑惑哪些类和方法是怎么调用的.唯一的收获是,知道了可以将很多功能分成不同的函数.很多功能包装成类. 在代码很多的时候便于管理和编写. 之后的图书管理系统和在线考试系统.一个是 <.net>的课题设计,一个是 <数据库理论>的 课题设计.都是用php语言写的代码.图书管理系

从程序员到高级系统架构师完美进阶

前言 说到系统架构师,相信很多企业都有这样的高级人才.系统架构师已然成为国内一门十分紧俏的职业,一名优秀的系统架构师常常会吸引各方企业争抢. 系统架构师的职责是在项目开发过程中,制定这个项目的总体脚骨,指导整个开发团队完成这个计划,他必须对开发技术非常了解,并且需要良好的组织管理能力,可以这样说,一个架构师的好坏决定了整个项目的成败. 当前,我们国家经济形势热度不减,软件企业成长速度惊人.随着信息时代的来临,架构师在业务发展中扮演的角色越来越重要,如何做好整个IT架构的设计,已经成为企业信息化建

机票实时搜索系统架构设计

机票实时搜索系统架构设计 ? 不同的业务场景,不同的特征 ? 结合特征去进?设计和优化 ? 通?!=最优 ? 量体裁? 分布式系统的CAP理论 首先把分布式系统中的三个特性进行了如下归纳:    ● 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值.(等同于所有节点访问同一份最新的数据副本) ● 可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求.(对数据更新具备高可用性) ● 分区容错性(P):以实际效果而言,分区相当于对通信的时限要求.系统如果不能