软件架构(面板):对象技术的下一步

B. Anderson, M. Shaw, L. Best, Kent L. Beck
{"title":"软件架构(面板):对象技术的下一步","authors":"B. Anderson, M. Shaw, L. Best, Kent L. Beck","doi":"10.1145/260304.260321","DOIUrl":null,"url":null,"abstract":"Moderator's note: this is a lightly-edited set of extracts from the answers given to audience questions during the panel session, together with a brief excerpt from the following BOF discussion. It is not a comprehensive or balanced treatment of either the panel session or of the panelists' views. The position papers printed in the OOPSLA Proceedings contain further powerful statements by the panelists. I have a very broad definition of architecture and I would define it as really understanding software as a product, and the recurring things you see in software as a product. This can go to the very early stages of development where we are talking about recurring requirements. What are the recurring things that people use applications for, and what are the recurring ways that applications support business processes for instance? You can use architecture as a tool for analysis all the way down to actually assembling predefined facilities or software components, both big ones and small ones. So I would certainly not limit the idea of architecture to logical or physical. I think if you look at other uses of the term outside our particular discipline, then they also adopt a very broad definition of what it is. In software, although there is less consensus and we are less explicit about it, you can still recognize distinct levels of design. The differences have to deal with the issues that you are resolving when you are working at that level of design. So we have an executable level of design, we have a programming level, then we have what I think of as the architecture level where we think about the way that components (which more or less correspond to the compilation units but not quite) are put together to realize the gross function of the system. Here is where we worry about how the overall functionality is decomposed, about how the overall performance budget is partitioned out. We worry about bottlenecks and global throughputs and gross aggregate properties of the system here, and I think if we move up from there you may be above to identify a specification or requirement level where the issue is, what is to be computed, in terms recognized by software people or by users. So when I say software architecture I am meaning the design that resolves the issues at the software system level of the design, excluding the algorithm …","PeriodicalId":297156,"journal":{"name":"Addendum to the proceedings on Object-oriented programming systems, languages, and applications","volume":"14 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1993-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Software architecture (panel): the next step for object technology\",\"authors\":\"B. Anderson, M. Shaw, L. Best, Kent L. Beck\",\"doi\":\"10.1145/260304.260321\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Moderator's note: this is a lightly-edited set of extracts from the answers given to audience questions during the panel session, together with a brief excerpt from the following BOF discussion. It is not a comprehensive or balanced treatment of either the panel session or of the panelists' views. The position papers printed in the OOPSLA Proceedings contain further powerful statements by the panelists. I have a very broad definition of architecture and I would define it as really understanding software as a product, and the recurring things you see in software as a product. This can go to the very early stages of development where we are talking about recurring requirements. What are the recurring things that people use applications for, and what are the recurring ways that applications support business processes for instance? You can use architecture as a tool for analysis all the way down to actually assembling predefined facilities or software components, both big ones and small ones. So I would certainly not limit the idea of architecture to logical or physical. I think if you look at other uses of the term outside our particular discipline, then they also adopt a very broad definition of what it is. In software, although there is less consensus and we are less explicit about it, you can still recognize distinct levels of design. The differences have to deal with the issues that you are resolving when you are working at that level of design. So we have an executable level of design, we have a programming level, then we have what I think of as the architecture level where we think about the way that components (which more or less correspond to the compilation units but not quite) are put together to realize the gross function of the system. Here is where we worry about how the overall functionality is decomposed, about how the overall performance budget is partitioned out. We worry about bottlenecks and global throughputs and gross aggregate properties of the system here, and I think if we move up from there you may be above to identify a specification or requirement level where the issue is, what is to be computed, in terms recognized by software people or by users. So when I say software architecture I am meaning the design that resolves the issues at the software system level of the design, excluding the algorithm …\",\"PeriodicalId\":297156,\"journal\":{\"name\":\"Addendum to the proceedings on Object-oriented programming systems, languages, and applications\",\"volume\":\"14 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1993-04-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Addendum to the proceedings on Object-oriented programming systems, languages, and applications\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/260304.260321\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Addendum to the proceedings on Object-oriented programming systems, languages, and applications","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/260304.260321","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

摘要

主持人注:这是一组经过轻微编辑的摘录,摘自小组讨论期间对观众问题的回答,以及以下BOF讨论的简短摘录。它对小组会议或小组成员的观点都没有进行全面或平衡的处理。发表在OOPSLA会议录中的立场文件包含了小组成员进一步的有力声明。我对架构有一个非常宽泛的定义,我将其定义为真正理解软件作为产品,以及你在软件中看到的反复出现的东西作为产品。这可以进入开发的早期阶段,在那里我们讨论重复的需求。例如,人们使用应用程序做哪些重复的事情?应用程序支持业务流程的重复方式有哪些?您可以将体系结构作为一种分析工具,一直使用到实际组装预定义的设施或软件组件,无论大小。所以我当然不会把建筑的概念限制在逻辑或物理上。我认为,如果你看看这个词在我们这个学科之外的其他用法,那么他们也会采用一个非常广泛的定义。在软件领域,尽管共识较少,我们对此也不太明确,但您仍然可以识别不同层次的设计。当你在这个设计层次上工作时,这些差异必须处理你正在解决的问题。所以我们有一个可执行的设计层次,我们有一个编程层次,然后我们有我认为的架构层次,我们考虑组件(或多或少对应于编译单元,但不完全对应)放在一起实现系统的总体功能的方式。这里我们担心的是整体功能是如何分解的,整体性能预算是如何分配的。我们担心的是瓶颈,全球吞吐量和系统的总体聚合属性,我认为如果我们从那里开始,你可能会在上面确定一个规范或需求级别,问题在哪里,要计算什么,由软件人员或用户认可的术语。所以当我说软件架构时,我指的是在软件系统层面解决设计问题的设计,不包括算法……
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Software architecture (panel): the next step for object technology
Moderator's note: this is a lightly-edited set of extracts from the answers given to audience questions during the panel session, together with a brief excerpt from the following BOF discussion. It is not a comprehensive or balanced treatment of either the panel session or of the panelists' views. The position papers printed in the OOPSLA Proceedings contain further powerful statements by the panelists. I have a very broad definition of architecture and I would define it as really understanding software as a product, and the recurring things you see in software as a product. This can go to the very early stages of development where we are talking about recurring requirements. What are the recurring things that people use applications for, and what are the recurring ways that applications support business processes for instance? You can use architecture as a tool for analysis all the way down to actually assembling predefined facilities or software components, both big ones and small ones. So I would certainly not limit the idea of architecture to logical or physical. I think if you look at other uses of the term outside our particular discipline, then they also adopt a very broad definition of what it is. In software, although there is less consensus and we are less explicit about it, you can still recognize distinct levels of design. The differences have to deal with the issues that you are resolving when you are working at that level of design. So we have an executable level of design, we have a programming level, then we have what I think of as the architecture level where we think about the way that components (which more or less correspond to the compilation units but not quite) are put together to realize the gross function of the system. Here is where we worry about how the overall functionality is decomposed, about how the overall performance budget is partitioned out. We worry about bottlenecks and global throughputs and gross aggregate properties of the system here, and I think if we move up from there you may be above to identify a specification or requirement level where the issue is, what is to be computed, in terms recognized by software people or by users. So when I say software architecture I am meaning the design that resolves the issues at the software system level of the design, excluding the algorithm …
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信