软件架构要达成的目的究竟是什么?

vcPlayer 2006-06-03 04:39:41
蔽人第一次接触软件架构设计工作,请前辈不吝指教啊!!!!

1、软件架构要达成的目的究竟是什么?它与软件工程中的概要设计、详细设计有什么联系?
2、软件架构结束后要交付的产品是什么?有没有什么模板?
3、通常都是用什么工具来做?

在网上看了一大堆什么4+1、用例、Rose建模……,把人都搞糊涂了,还是希望能在这里求得“与君一席谈,胜过Google万”的效果。
...全文
1067 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanzh 2006-11-21
  • 打赏
  • 举报
回复
Mark
vcPlayer 2006-07-05
  • 打赏
  • 举报
回复
呵呵,多谢大家的帮助!任务已经完成。

感触良多,待有时间另开贴与大家分享。
chinaitit 2006-07-04
  • 打赏
  • 举报
回复
值得参考
2006-8-14 微软软件架构师培训 3900 深圳

更详细
http://www.msup.com.cn/mail/jiagoushi.htm
  • 打赏
  • 举报
回复
如果你从软件工程教科书上仅仅看到如何描述需求,如何做功能分解,学会了如何“逢山开路遇水搭桥见招拆招”般地拼凑各种低级的技术,那么就错了。架构是一种超脱于具体项目的关于软将工程的相当基础的知识。

其实软件工程本身是为了应对需求的千变万化而创立的,没有任何软件工程技术,给足够的人力(也就是花足够的钱)等足够长的时间做足够的功能和性能测试,多么“烂”的企业都能把项目作下来。那些外国北京的大软件公司正式靠这种实力把国内中小公司挤垮的,并不一定他们开发的系统就一定对用户更核算、更可靠。

了解和有机会按照自己的兴趣大规模使用架构的人并不多,但愿这些人都有独立自主的机会去创造自己的产品。
  • 打赏
  • 举报
回复
因此也可以说,架构往往是时髦的理念与多年(也许十年、也许二十年或者更长时间)的实践经验的沉淀的综合结果,这就像毛与皮的关系,而项目只是暂时的阶段性作品,目的性很强。项目不能产生架构,而是架构来保证项目的成功。
  • 打赏
  • 举报
回复
1、软件架构要达成的目的究竟是什么?它与软件工程中的概要设计、详细设计有什么联系?
——————————————————————————————————————————
其实软件架构的开发工作不是针对具体的产品的。它是一个软件开发组织“技术方向”的纲领性东西。因此你说与“概要设计、详细设计”联系是什么呢?答案是“没有直接联系”。

但是这之见的间接联系又非常紧密,甚至决定了一个企业的生死。例如一个擅长开发大规模、分布式、高负载的软件系统的项目组就能够开发出像goole、msn messanger、ATM等系统,这就是他们对分布式对象的通讯层到业务层的转换(影射)的技术模型已经建立起来了。再比如说一个开发组擅长工作流技术和财务帐务处理技术,他们就可能专门挑选复杂的大型物流领域去开发。

架构可能出现在新技术领域(例如将大型电信通讯网络管理技术移植到基于ip的简单互联网上),也可能出现在传统领域(例如一些ERP技术),也可能是纯粹的计算机领域(例如将Com+、smtp、http合并成为一种新的通讯协议),总之是对某个领域的实用新型技术的抽象,使其作为更加顺手的、将需求变化隔离成局部扩展的、强大的思想工具。

也有一些最基本的所谓架构,例如对于大型企业和小型企业中的不同的“权限系统”需要采取不同的技术解决方案。

架构要研究技术,也要说明架构的适用性以及不适用性,并且是作为思想工具来使用的。它是软件开发的基础。就像是盖楼的人如果不懂基础建筑设计学,即使给他具体的设计蓝图他也无法轻松地控制整体施工过程,仅仅是高级民工而不是管理者或者设计者。




2、软件架构结束后要交付的产品是什么?有没有什么模板?
——————————————————————————————————————————
具体的软件开发过程中,是“套用”开发主管最熟悉、最擅长的架构,来“具体”说明软件的逻辑模型、测试用例、部署模型的。

此时仍然不过分详细到编程人员才应该去详细的内容。但是,必须说明程序的详细逻辑。如果有一些问题你没有说明处理逻辑,开发人员就会自以为是地——一般来说是按照最省力的方式,但是有时也故意绕很大弯路地——去实现逻辑。如果这些逻辑是站在用户角度不能痛快接受的,那么软件会不得不返工,这说明逻辑设计没有规定清楚业务逻辑。

这个时候的所谓架构,只是贯彻技术路线、说明现状和目标、作出战术化的部署的过程。这个时候不是什么“开发”架构的过程。那种通过做项目来开发出架构的人,纯粹是在拿用户的金钱和声誉给自己练手。



3、通常都是用什么工具来做?
————————————————————————————————————————
任何适宜沟通的形式。但是我喜欢以图形为主。关键是提早与各方面人员沟通。
zhangcf76 2006-06-15
  • 打赏
  • 举报
回复
1、软件架构要达成的目的究竟是什么?它与软件工程中的概要设计、详细设计有什么联系?
答:软件架构要达成的目的,说得通俗些就是对系统进行部署,给系统搭架子。所以软件架构师可以不一定精通编程,他更多的是关心平台之上的东西。
在软件工程中,有三大重要的设计文档《需求规格说明书》、《概要设计说明书》、《详细设计说明书》。如果按照国标GB8567——88来严格要求这三大文档,我们会发现一个问题:《需求规格说明书》是服务于用户的,它的语种是“用户语言”,它的主要阅读对象是用户和后期做概要设计的。但是一到了《概要设计说明书》时,我们一下子从客户业务领域突然跳跃到了计算机领域,这之间存在鸿沟,没有自然衔接,大家可以感觉一下,是不是突然就变成了设计模型?
而架构设计则比较好的填补了这样的鸿沟,架构设计一方面和《需求规格说明书》搭界,对系统进行了业务的部署(即平台上的设计);一方面和《详细设计说明书》搭界,为详细设计提供了计算机人员易懂的设计模型(即平台下的设计)。——这就是架构设计和概要设计、详细设计的联系。

国标GB8567——88是很早的标准,有些不太适合现在的软件开发。如果想了解软件架构,可以看看微软的软件架构模式。


2、软件架构结束后要交付的产品是什么?有没有什么模板?
答:软件架构结束后要交付的产品是《软件架构设计说明书》。没有具体统一的国标模板。


3、通常都是用什么工具来做?
答:架构对象建模一是面向对象的建模方法,一是UML建模。根据这个在来选择工具,你可以选择最原始的笔和纸,也可以选择VISIO,ROSE等。


一家之言,为楼主提供一点参考。
  • 打赏
  • 举报
回复
目前来讲,的确是依靠丰富而且广泛的开发经验才能出来好的架构设计方案。
因为似乎还没有这样一项很好的专门课程。
但不管架构好坏,设计人水平如何,必须有自信才行。否则……
  • 打赏
  • 举报
回复
MARK
zhangxuyu1118 2006-06-10
  • 打赏
  • 举报
回复
有怎样的经验就有怎样的架构。一切都是围绕需求展开。
假设:公司根据市场需要想开发产品A,并且经过调研掌握了具体需求。
当需求递交到技术部时假设老板指定给三位设计师都对需求进行分析然后写设计。
结果可能:设计师A提出JAVA+ORACLE架够的设计;B提出C#+MSSQL架够的设计;C提出DELPHI+ACCESS的设计。而且,三份设计都可以很好的实现需求。我是老板的话综合他们说的开发周期和成本、产品价位和维护成本、以后需求的变更和产品的升级、包括以后产品是否需要跨平台支持等各种因素决定:先叫C开发一个DEMO给客户使用,如果有市场的话再让B着手负责二代产品的开发;如果势头很好的话再让A参与三代产品。。。当然拉,几代产品是否能共存那是不知道的。。。
LYZ84330 2006-06-09
  • 打赏
  • 举报
回复
程序写得好不一定架构得好,同样架构得好的不一定程序写的很好,应该是一些产品宏观上把握以及思路的清晰度来看....(个人认为)
cao8222 2006-06-09
  • 打赏
  • 举报
回复
学习软件架构是不是要有很多的编程经验啊?一般需要那些程序的编程经验呢?
vcPlayer 2006-06-06
  • 打赏
  • 举报
回复
“架构设计”是第一次,况且没有人培训。
Jonix 2006-06-06
  • 打赏
  • 举报
回复
一点经验都没有,就开始入手做软件架构设计了???
vcPlayer 2006-06-04
  • 打赏
  • 举报
回复
不知是什么原因,我的贴子总没人问津呢?
xia_wanqiang 2006-06-04
  • 打赏
  • 举报
回复
软件架构就是设计软件系统的整体结构,这个结构仅从某个方面(view)描述时说不清楚的,一般 是通过描述业务结构,技术架构,程序架构和系统部署结构等方面进行说明。

业务结构描述实际业务系统的人、信息、业务过程等的主体结构
技术结构描述所要采用技术来构建次软件系统(如:BS三层,数据库系统,Java, Spring MVC,LDAP , Apache,JBOSS, JMS等等,这些技术用来实现你的应用程序结构)
应用程序结构描述软件的各个模块,以及模块间的关系(JSP页面中的订单管理模块, Common JSP Library,Common JS Library)
系统部署结构,定义了程序安装部署结构以及系统的外部环境,数据库在什么样的服务器(如:Windows2000 Server, SQL Server), 应用服务器部署。。。, 客户端部署(IE5.5 + , FireFox 1.0 +)。。。


出的文档是软件系统架构设计书, 说清楚以上这些就足够了

工具:铅笔和纸,能画图的就可以了

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧