《软件架构的初步探索.ppt》由会员分享,可在线阅读,更多相关《软件架构的初步探索.ppt(42页珍藏版)》请在三一办公上搜索。
1、Preliminary explore on software architecture,Bin Wang2010-10-28,Announcement,Personal viewpointCoincidenceBuilding area A Building ArchitectSoftware area A Software ArchitectBuilding area software area A Software Architect,Contents,Building process vs Software processEvolutionEnvisioning Architectur
2、e What Is Software Architecture Creating an Architecture Analyzing Architectures System Architect Conference China 2010Analysis of ad systemConclusion,Building process vs Software process,Building process vs Software process,Building solves the real worlds problems in thousands of yearsSoftware solv
3、es the virtual worlds problems in less than 70 years,Evolution,High-level Programming LanguagesAbstract Data TypesSoftware ArchitectureAs the size of software systems increases,the algorithms and data structures of the computation no longer constitute the major design problems.When systems are const
4、ructed from many components,the organization of the overall systemthe software architecturepresents a new set of design problems.,Envisioning Architecture,Influence of stakeholders on the architect,Envisioning Architecture,The Architecture Business Cycle,What Is Software Architecture,The software ar
5、chitecture 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,Analogy,A building architect must design a building that provides accessibility,aesthetics,li
6、ght,maintainability,and so on.A software architect must design a system that provides concurrency,portability,modifiability,usability,security,and the like,and that reflects consideration of the tradeoffs among these needs.,Internet Architecture,Internet Architecture,A layered view of libWWW,Interne
7、t Architecture,Deployment view of a Web client-server with a module decomposition view of the HTTP client and server components,Some Terms,Architectural PatternAn architectural pattern is a description of element and relation types together with a set of constraints on how they may be used.A pattern
8、 can be thought of as a set of constraints on an architectureon the element types and their patterns of interactionand these constraints define a set or family of architectures that satisfy them.examplesLayered Systemsclient-server A reference model A reference model is a division of functionality t
9、ogether with data flow between the pieces.A reference architecture A reference architecture is a reference model mapped onto software elements and the data flows between them.,Relations,an example,pattern,architecture,Creating an Architecture,Understanding Quality Attributes Achieving Qualities Desi
10、gning the Architecture Documenting Software Architectures,Understanding Quality Attributes,Software:Functionality quality Quality attributes:System Quality Attributes Business Qualities System Quality Attributes:availability modifiability performance security testability usability,availability,modif
11、iability,performance,security,testability,usability,Achieving Qualities,Availability Tactics,Modifiability Tactics,Performance Tactics,Security Tactics,Testability Tactics,Usability Tactics,Designing the Architecture,Architecture in the Life Cycle Designing the Architecture Forming the Team Structur
12、e Creating a Skeletal System,Architecture in the Life Cycle,Designing the Architecture,Choose the module to decompose Refine the module according to these steps:Choose the architectural drivers from the set of concrete quality scenarios and functional requirements.Choose an architectural pattern tha
13、t satisfies the architectural drivers.Instantiate modules and allocate functionality from the use cases and represent using multiple views.Define interfaces of the child modules.Verify and refine use cases and quality scenarios and make them constraints for the child modules.Repeat the steps above f
14、or every module that needs further decomposition.,Documenting Software Architectures,Choosing the relevant viewsDocumenting a viewDocumenting information that applies to more than one view,Documenting Software Architectures,Analyzing Architectures,System Architect Conference China 2010,PerformanceBe
15、tter not using DBBetter not using java for calculationUsing Advanced IO technique for solving bottlenecksDistributed computing Distributed file systemSecurityDesign linear systemUsing low level API for detection,Analysis of ad system,Analysis of ad system,PerformanceAsynchronous programmingLinear de
16、signLoad balancerLevel one cachingC No db for ad put systemAvailability Load balancerTimeout settingLevel Two cachingDefending the crushed interfaceModifiability Business code is pure c code,independent on any server code TestabilityIt is very testable by nature Use automated tools,such as testngSec
17、urityUse validation for anti-stealing-linkLinear design for defending DDOS,Conclusion,Architect is the most challenging in software engineeringArchitect is a generalA long time to become an architect,Useful books,Software Architecture In PracticeAn Introduction to Software ArchitectureThe Art of Software Architecture,