书签 分享 收藏 举报 版权申诉 / 72
上传文档赚钱

类型1-软件体系结构概念.课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2574441
  • 上传时间:2022-05-06
  • 格式:PPT
  • 页数:72
  • 大小:2.06MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《1-软件体系结构概念.课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    软件 体系结构 概念 课件
    资源描述:

    1、1Software Architecture 软件体系结构起源、定义、意义和研究现状张平健华南理工大学软件学院2Examples from architecture Kennel 建筑的例子狗舍一个人搭建,需要一个人搭建,需要最小化建模最小化建模简单的过程简单的过程简单的工具简单的工具3Examples from architecture House 建筑的例子住房一个团队高效和适时地建造,需要一个团队高效和适时地建造,需要仔细的建模仔细的建模良好定义的过程良好定义的过程良好的工具良好的工具4Examples from architecture Skyscraper 建筑的例子摩天大楼5Exa

    2、mples from Organization One-man Company 机构组织的例子家庭作坊6Examples from Organization Middle to Small sized Company 机构组织的例子中小公司7Examples from Organization International Group机构组织的例子跨国集团8Software Development Single-handed 软件开发单枪匹马9Software Development Team Work 软件开发团队开发10Software Development Large Complicat

    3、ed Systems 软件开发大型复杂系统的开发11Software Crisis 软件危机lSoftware systems becomes larger as well as more complex, the reliability issue becomes more and more serious. Software crisis begins to burst(爆发).lProjects run over-budget and over-time. lProjects were unmanageable and the codes were difficult to mainta

    4、in.lSoftware often did not meet requirements. 12Emerge of Software Engineering (SE) 软件工程的诞生l The term software crisis was coined by F. L. Bauer at the first NATO Software Engineering Conference in 1968 at Garmisch, Germany.l 1968年在德国召开的NATO(North Atlantic Treaty Organization ,北大西洋公约组织)会议上首次提出了“软件工程”

    5、概念,希望用工程化的原则和方法来克服软件危机13Whats Engineering ? 什么是“工程”?lEngineering meansSolve problem at lowest costGuided by scientific knowledgeEquipped with methodologyRelied on suitable toolslPurpose: Let ordinary person be able to do what can only be accomplished by expert in the past14Evolution of Engineering 工

    6、程的进化15Stages of Engineering 工程化的步伐手工(Craft)商业(Commerical)工程(Professional Engineering)行家里手和业余天才熟练的工匠受过系统教育的专业人员直觉与强力既定程序分析与理论偶然的进步注重实效地优化以科学为指导地升级换代不经意的推广言传身教专业教育课程奢侈地使用原料注重成本与原料利用原料多次利用生产是为了使用而不是出售为销售而生产市场份额16SE的发展17Understanding of SA 软件架构认识与实践l Program=Data structure + Algorithm 程序=数据结构+算法l Progra

    7、m=Object + Object 程序=对象+对象l System=Component + Component 系统=构件+构件l System=Element + Connector 系统=组件+连接件Overall structure Technical details 整体结构技术细节Qualities Functionalities 性能功能l SOA,MDA,SaaS (Software as a service).l ERP(企业级应用)、E-Business/Digital-Government (电子商务/电子政务/电子交易)、Grid Computing 网格、Cloud

    8、Computing 云计算18Origin of SA Conceptsl Studies on SA dated back to 1960s, with focus on software structure. l 1969年,Brooks proposed the concept of “architecture” to separate design from implementation.l The term “architecture” was first used to mean a description of a computer system that applied equ

    9、ally to more than one actual system19Origin of SA Conceptsl 1968年,Edsger Dijkstra proposed the idea of layersFor example, programs within OS can be classified into different layers, only programs in neighboring layers can access each other.Organized in this way, system development and maintenance ca

    10、n be simplified greatly.20Origin of SA Conceptsl 1970年代初,David Parnas proposed a series of important ideas1972年,信息隐蔽 (information-hiding)1974年,软件结构 (software structures)1975年,程序家族 (program families) l A program family is a set of programs whose common properties are so extensive that it is advantage

    11、ous to study those properties before investigating (调查)individual members.21Origin of SA Conceptsl 1976年,Frank DeRemer and Hans Kron proposed MIL75 (模块连接语言) “Programming-in-large versus programming-in-small”,IEEE Trans. on SE, June 197622Origin of SA Conceptsl Programming in the Large (PITL)structur

    12、ing large collections of modules to build systemsdeveloping individual modulesl Megaprogramming - A conceptual software development framework that unites a number of ideascomponent-based developmentsoftware reuseproduct-linesl Formal Method = Specification Language (规格语言)+ Formal Reasoningl Transfor

    13、mational Systemsreduce programming labor, improve program reliability, and upgrade(使上升) program performance23Formation of SA SA的形成lResearch work carried out in 1990sDewayne Perry and Alexander WolfDavid Garlan and Mary ShawSA stylesDSSAl1995 GoF published “Design Patterns”l1994 Rational Rose release

    14、d uml suitsl1995 The Mythical Man-Month reprinted2425Definitions of SAl“There is no standard, universally-accepted definition of the term, for software architecture is a field in its infancy(初期), although its roots run deep in software engineering. ”http:/www.sei.cmu.edu/architecture/definitions.htm

    15、l26Definitions of SAlLen Bass, Paul Clements, Rick Kazman 定义 The software architecture of a program or computing system is the structure or structures of the system, which comprise (由(由.组成)组成)software elements, the externally visible properties of those elements, and the relationships among them.27D

    16、efinitions of SAl Booch, Rumbaugh, and Jacobson, 1999:An architecture is the set of significant decisions about the organization of a software system, the selection of the structural elements and their interfaces by which the system is composed, together with their behavior as specified in the colla

    17、borations(合作) among those elements, the composition of these structural and behavioral elements into progressively larger subsystems, and the architectural style that guides this organization-these elements and their interfaces, their collaborations, and their composition (The UML Modeling Language

    18、User Guide, Addison-Wesley, 1999).28Definitions of SAlPerry and Wolf, 1992:A set of architectural (or, if you will, design) elements that have a particular form. Perry and Wolf distinguish between processing elements, data elements, and connecting elements, and this taxonomy(分类学) by and large persis

    19、ts through most other definitions and approaches.29Definitions of SAl Garlan and Shaw, 1993:.beyond the algorithms and data structures of the computation; designing and specifying the overall system structure emerges as a new kind of problem. Structural issues include gross organization and global c

    20、ontrol structure; protocols for communication, synchronization, and data access; assignment of functionality to design elements; physical distribution; composition of design elements; scaling and performance; and selection among design alternatives.30Definitions of SAlGarlan and Shaws definition can

    21、 be simplified asArchitecture = Components + Connectors + Constrains体系结构 = 组件 + 连接件 + 约束31Evolution of SA (SA的发展)l 1980s Use informal Box-and-line diagrams 使用非正式的框图 Relies on experts peculiar experiences 依靠专家的特定经验 Adopt sporadically architecture styles 不规范、多样地使用体系结构模式和风格l 1990s Realize the value of

    22、SA 认识到了体系结构的价值 Require documenting and reviewing architecture 开发过程中要求体系结构文档,并开始体系结构评审 Products for SA design and integration emerge 产品化、商业化的体系结构标准和组件集成框架开始出现 Standardize vocabulary, symbols and tools in SA design 规范化体系结构设计中的词汇、符号和工具 Publish books on SA 软件体系结构的书籍和课程32Current Status (1) 发展现状 1l SA des

    23、ign is not understood thoroughly by developers 体系结构设计只是被开发人员含糊地理解l It is difficult to carry out consistency and integrity analysis of SA design 难以对体系结构设计作出一致性或完整性的分析l As it evolves, the system is difficult to comply with original architecture 随着系统的演化,难以保持同系统原有体系结构的一致l Lack effective tools to assist

    24、(帮助)in design, analysis and validation on architecture 难以开发有效的工具,辅助人们进行体系结构的设计、性质分析和验证33Current Status (2) 发展现状(2)l DoD emphasizes SA-centered software reuse 在“软件复用的展望和策略” DoD1992报告中,美国国防部强调了“以体系结构为中心的复用”在整个软件生存周期中,对于软件开发和支持的重要性。l List of research projects on SA:STARS, DODCARDS, DODPRISM, DODRAPIDE

    25、, Stanford Uni.C2 style and ADL, California Uni.ABLE CMUACME Architecture Interchange Language, CMUVitruvius, CMU34Current Status (3)发展现状(3)l Active research topics in SA 当前软件体系结构研究和实践中,一些最活跃的领域包括:Compilation of various architecture styles 各种体系结构风格的汇编和总结Architecture Description Language 体系结构描述语言Form

    26、al foundation of SA 体系结构的形式化基础Analysis techniques of SA 体系结构分析技术SA-based development 基于体系结构的开发方法SA inverse engineering 体系结构重建和再工程Tools and environment for SA design 支持体系结构设计的工具和环境DSSA 特定领域的软件体系结构35Future Directionsl Formal methods for architecturesl Information exchange among various ADLsl Intellige

    27、nt(智能的)design tools and environmentsl Software architecture engineeringl Evolution of architectures36Envisioning SA 预想软件架构lSA is influenced by a variety of environmental factors 商业、技术、组织等环境因素影响架构lIn return, SA influences environment 反过来,架构影响环境37The Architecture Business Cycle (ABC)l ABC is cycle of

    28、influences, from the environment to the architecture and back to the environment.The business/organizational environment necessarily affects architectural design decisions.The software architecture in turn changes the business environment.Architectural design is part of every step of the development

    29、 process.These influences strongly affect the organizations bottom line.38The Environment Influences DesignslStakeholders in a software development effortEnd usersCustomersDevelopersProject managerMaintainersMarketing stafflEvery stakeholder has a different set of concerns, e.g., runtime behavior, h

    30、ardware compatibility(兼容性), and so on.lThe different stakeholders concerns may contradict (反驳)each other and may change during the project.3940Attributes Important to Different Stakeholdersl Performance and resource utilizationl Cultural adaptibilityl Reliability and data integrityl Modifiability an

    31、d maintainabilityl Usability and interoperabilityl Testabilityl Platform compatibilityl Availabilityl Securityl Behaviorl 41Business Environment and OrganizationalStructurel Immediate business(短期) influences are existing assets like architectures and products based on them that influence design deci

    32、sions.l Long-term business(长期的) influences are strategic goals for the organization, such as infrastructure(基础设施) development, that influence design decisions.l Organization structure influences architecture when necessary specialized expertise exists or does not exist within the organization.42The

    33、Architects Background and Experiencel Successful previous experiences make architects want to reuse the successful strategyl Negative previous experiences make architects want to avoid using an approach againl Prior exposure(暴露) to previous architectural patterns or other education can influence the

    34、 architectl Standard industry practices in the architects professional community, e.g., Web-based, object-oriented, middleware-backed information system designs, will play a strong role43Influences on the architecture 44The Architecture Business Cycle 45Architecture Design Change the Business Enviro

    35、nmentl They affect the structure of the organization.l They affect the business goals of the organization.l They affect customer requirements for new products.l They affect how future architectures are designed.46Architecture Design Change the Business EnvironmentSoftware architectures affect the st

    36、ructure of software development organizations.l An architecture prescribes (规定)the software units to be developed.l The software team normally organizes according to the software units.l Teams tend to specialize and become embedded(嵌入式的)in the organizational structure.47Architecture Design Change th

    37、e Business EnvironmentSoftware architectures eventually affect the goals of a software development organization.l An initial entry into some market is a foothold that will lead to new opportunities.l An organization will choose opportunities that best capitalize(使资本化) on existing, proven architectur

    38、es.48Architecture Design Change the Business EnvironmentSoftware architectures also affect customer requirements for new products.l An existing products architecture can serve as the foundation for a product line.l Customers recognize the potential for lowered costs and faster time to market through

    39、 reuse of an existing architecture.l Customers may be willing to relax functional requirements in order to achieve these benefits.49SA Affects the Development Processl Software architecture is an important component of the larger overall software development process.Creating the business caseUnderst

    40、anding requirementsCreating or selecting the architectureCommunicating the architectureAnalyzing or evaluating the architectureImplementing based on the architectureEnsuring conformance to the architecture50SA Affects the Development Processl Architectural knowledge is essential for understanding th

    41、e constraints(约束) and assumptions(假设) involved in making a business case for a product:CostCustomer marketTargeted time to marketInterfaces to other systemsLimitations51SA Affects the Development Processl Requirements engineeringUse cases / ScenariosRapid prototyping(样机研究)Finite state machine models

    42、Formal specificationsl Normally, determining a complete set of requirements will need at least a reference architecture, so an iterative requirements engineering process is almost always necessary52SA Affects the Development Processl Architectural analysis techniques help software teams evaluate an

    43、architectureArchitects typically consider multiple competing designs.In attribute-driven design, candidate architectures are evaluated according to their ability to support desired quality attributes.One method for comparing architectures is the Architecture Tradeoff Analysis Method (ATAM) from the

    44、CMU Software Engineering Institute.53SA Affects the Development Processl Software architects need to ensure that the implementation remains faithful to the architectural design. The architectural design needs to be communicated effectively to the developers. Architects need to monitor the developmen

    45、t process. If possible, the development infrastructure should enforce conformance to the architecture specifications.l As the architecture matures and evolves, it must be kept synchronized with the design documentation.l In the case that proper design documentation does not exist, software architect

    46、ure reconstruction tools may be useful.54SA Affect the Bottom Linel An architects design decisions have long-term financial consequences for a software development organization.The architecture has a pivotal role in the software development process.It has a big impact on a systems ability to meet qu

    47、ality goals.It supports (or doesnt support) reuse at multiple levels.55SA Affect the Bottom Linel The architecture is common abstraction that all stakeholders can use for mutual understanding.l Weve already seen, architectural design decisions have repercussions throughout the development cycle.l Ch

    48、anging the architecture during the design phase is easy; its much harder later.l The architecture severely constrains the detailed software design.l The architecture profoundly affects the planning, schedule, and budget for the entire project.56SA Affect the Bottom Linel Having the right architectur

    49、e is crucial for meeting quality goals.Performance might depend on the volume of inter-element communication.Modifiability requires separation of concerns in the architecture.Security requires architectural elements for access control.Scalability requires architectural breakdown where certain elemen

    50、ts can be replicated or replaced with higher-performance versions.Reusability requires components without too many attachments to the surrounding environment57Why Is Architecture So Important?l Communication among stakeholdersl Captures early design decisionsl Transferable abstraction of the system5

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:1-软件体系结构概念.课件.ppt
    链接地址:https://www.163wenku.com/p-2574441.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库