系统设计与架构_第1页
系统设计与架构_第2页
系统设计与架构_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、系统设计与架构摘要影响软件生命周期的因素很多,不过究其根本,最主要的因素还是取决于软件的系统设 计与架构。软件设计和软件架构是软件项目中的两个过程,这两个过程并不完全无关,软件 架构是包含在软件设计里的。理解这两各部分,对于一个软件开发人员来说,是很重要的。正文本文将会从三个方面描述有关系统设计与架构的内容:第一部分是系统设计;第二部分 是系统架构、第三部分是面向服务架构。最后一部分是自己的心得体会。系统设计软件设计是软件开发前的代码计划,是将需求转变为代码的抽象过程,在这个过程中要 完成模块划分、对象抽象、程序流程、算法、数据结构、数据库设计这六个部分。模块划分 就是根据需求将软件系统划分成

2、模块的过程;对象抽象就是依据功能,完成过程抽象、逻辑 抽象、实体的抽象,是对某一功能的执行过程的抽象;程序流程就是访问一项功能的逻辑过 程,或者访问一类功能的逻辑过程;算法就是设计出编程开发时需要用到的伪代码;数据结 构与算法相关,是选择数据存储类型的一个数据方式;数据库设计是为了保证数据之间的关 联性等。软件设计的原则主要有9点,即简约性;前瞻性、可扩展性;一致性;统一性和可重用 性;高性能;易维护;稳定性;低耦合、高内聚、模块化;安全性。这几个特点,从字面意 思来看,就可以知道其大致的含义,本文不会逐一进行详细的介绍,只简略介绍下低耦合、 高内聚、模块化这一原则。耦合是指对象、组件之间的依

3、赖性,低耦合性就是要降低对象、 组件之间的依赖性;内聚就是一个对象、组件对功能的集成,高内聚就是要求提高对象、组 建的功能集成度;一组具有相关性的对象、组件组合在一起就可以看做一个模块,一个模块 通常能独立完成相应的功能,一组具有相关性的模块还可以组成更大的模块,模块组合在一 起就形成了系统。这三者的关系就像是一个房子,每一个房间都是一个模块,模块与模块间 之存在低耦合性,但是又有内聚性,并不能完全独立存在。此外,本文也简略介绍下设计模式,设计模式是建立在“语言”基础之上的,为完成软 件系统中某项任务而采用的一种程序方案。分为创建模式、结构模式、行为模式三大块。创 建模式包括工厂模式、单例模式

4、、建造模式和原型模式;结构模式包括门面模式、装饰模式、 合成模式、代理模式、适配器模式、桥梁模式和共享元类模式;行为模式包括责任链模式、 命令模式、策略模式、观察者模式、解释器模式、迭代模式、中介模式、备忘录模式、状态 模式、模板模式和访问者模式。这些模式有着其固有的特点,但是并不是对于所有的设计都 是试用的,需要根据不同的设计来选择不同的模式。企业系统架构软件架构并没有具体的定义,本文认为软件架构就像是小时候玩的积木一样,先搭好一 个框架,然后根据该框架完善自己所需要的模型,当然这个框架并不是完善的,有些时候能 够搭起来一个很漂亮的模型,有时候却需要从头开始重新搭建。一般而言,一个软件架构是

5、 一项基于正确的软件需求分析下的软件基础设计工作,包括:确定软件系统的采用的技术体 系、确定软件系统的构成组件、确定组建组织方式,选择和设计这些组件之间的通信和数据 交换方式、确定这些组件的运行环境及在这些环境中的部署方式、确定这些组件与外部系统 的通信和数据交换方式、确定这些组件的硬件环境以及在硬件系统上的部署方式、定义软件 系统的性能和效率。从事软件架构并不是一件容易的事儿,首先它需要所从事者有扎实的软件开发基础知 识,因为架构是建立在一个知识体系基础之上的工作,对于一个没有软件开发技术知识的人 来说,一开始就做软件架构是一件异常痛苦的事儿;其次还需要基本的网络知识,现在的项 目已经不再单

6、纯是单机版的或者是独立系统,而是与网络相连的,所以很好的网络知识对于 一个架构师而言也是很重要的;再者,基本系统知识,像操作系统、数据储存、数据库、互 联网应用、系统安全、硬件的各方面知识,对一个架构师而言,虽不需要熟练掌握,但是一 定的了解还是必须的。掌握了一些基础的知识后,还是不能成为一个好的架构师。如何成为一个好的架构师, 还需要拥有以下几点。第一,了解软件行业的技术发展状况,软件技术一直在不断的发展,技术日新月异,对 于一个从事软件技术的工作人员来说,不光要形成一个知识体系,还要跟上技术的发展,不 断更新自己的知识。一个好的技术人员要给自己规划一个技术领域,并对领域内的基础技术 非常精

7、通,对于领域内的相关技术要非常了解,对于领域外的软件知识也要有所了解。第二,丰富的实践经验和专业领域的知识,对于系统架构来说,技术从业经验是非常重 要的,大量的代码开发和设计有助于理解一个软件系统的构成,只有从事过大量的开发和设 计工作才善于产品化,才能够对一个软件系统负责。对于结构师来说,是离不开经验和专业 知识的。一个刚进入软件行业的技术人员可以通过适当的岗位流动来积累和丰富自己的领域 知识,而对于一个处在成熟期的软件技术从业者来说,应该在一个适合的领域长期积累,这 样才会有深入的发展。面向服务架构本文将描述面向服务构架即SOA的特点,不会具体介绍SOA架构的具体过程。SOA 有着九大特性

8、,分别为:SOA是一种架构模型,与实现技术和系统无关;是一种开放式架 构;是基于组件技术的架构;松散耦合;粗粒度;无状态;易于异构系统的整合;易于信息 的集中控制;易于原有系统的重用。由于SOA具有技术平台无关性,这使得很多系统架构 者选择它的主要原因之一。除此之外,系统架构师选择SOA的原因还有以下几点:1、企业系统越来越复杂,如果面对复杂的系统不能简化问题,那企业的信息系统将陷 入混乱之中。SOA正是一个可以使复杂系统变得简单的架构理念。2、企业对信息的需求是随需而变的,如果没有一个灵活的系统能够应付这种随时发生 的需求,企业的信息部门同样要疲于奔命。SOA开放式的服务接口可以使信息组合变

9、得容 易,更容易应付这种随时发生的需求变更。3、电子商务已经深入到了很多企业中,电子商务的特点就是要提供“服务”,SOA的 理念切合了电子商务的这个特点。4、一个企业的信息系统可能是不同技术平台搭建起来的信息环境,信息存在于各个系 统之中,信息整合成为企业信息部门的重任。SOA的简单性、技术无关性和开放性很适合 信息系统的整合。5、构造一个开放式的新系统,面向未来是一个信息系统需要考虑的问题,一个开放式 的系统能够面对将来更好的问题,SOA正是这样一种开放的体系架构。这些特点使得SOA在企业或是软件开发者中较受欢迎的主要原因。个人的心得体会自己目前学的专业是软件开发,我有一个属于自己的小的职业规划,可能也称不上职业 规划,就是自己对于未来自己所需从事的工作的一个小的定位罢了。作为一个女生,我不可 能一直从事软件开发。我想先从事几年的软件开发,然后再做软件测试,这是我之前的想法, 并没有很具体的定位。读研后,我发现自己想从事的工作有了一点变化,我并不想做编码这 部分工作,而是想做设计或者架构这部分的工作,我希望自己能够对一个系统有一个好的构 思,但是这

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论