1 / 31

Software Architecture & Design Pattern

Software Architecture & Design Pattern. Instructor Professor Yu Tang yutang@uestc.edu.cn (028)83241298 http://202.115.20.2/teacher/teacher.aspx?id=326 TA Dr. Bei Hui (028)83206266 bhui@uestc.edu.cn Class Time Friday 8:30-10:30AM (lecture)

binta
Download Presentation

Software Architecture & Design Pattern

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Architecture & Design Pattern Instructor Professor Yu Tang yutang@uestc.edu.cn (028)83241298 http://202.115.20.2/teacher/teacher.aspx?id=326 TA Dr. Bei Hui (028)83206266 bhui@uestc.edu.cn Class Time Friday 8:30-10:30AM (lecture) Wednesday 2:30-5:30PM (lab, every 2 weeks) Classroom C414 (Friday, lecture) 科研2号楼A区537机房(Wednesday, lab) Course Page http://www.mekery.cn/uestc/SADP Course Email uestc.arch.dp@gmail.com 1

  2. Software Architecture & Design Pattern • Course Strategy • Not a programming course • Assume you have basic knowledge in • objected-oriented design and programming • Hands-on design/development experience • Open for discussion and communication • Use but not read line-by-line of the textbook 2

  3. Software Architecture & Design Pattern • Lecture 1 Introduction • Large-scale Mission-critical Software Systems • Application Domain • Architectural Model • Design Principle & Development Methodology • New Trends 3

  4. Software Architecture & Design Pattern • Large-scale Software Systems • number of lines of code (> million) • number of people involved (> 100) • amount of data stored, processed and manipulated • number of hardware components • heterogeneous platforms • distributed (decentralized) environment 4

  5. Software Architecture & Design Pattern Ultra Large System City Large-scale Software System Infrastructure Complex Application Building, Bridge 5

  6. Software Architecture & Design Pattern • Mission-critical Requirements • Consequence of failure is unacceptable • Timeliness is critical (real-time, responsiveness) • High availability (7 x 24 operation time) 6

  7. Software Architecture & Design Pattern • Key Aspects of Large-scale Mission-critical Systems • Decentralization/Decomposition • Importability • Scalability • Manageability • Security • Sustaining Engineering/Evolution 7

  8. Software Architecture & Design Pattern • Application Domain • Aerospace control/command system • Satellite data processing system • Global climate/environment modeling and • monitoring system • Complex combat applications • Large-scale financial processing system • Extremely high load web portals (such as • Google’s distributed search engine) 8

  9. Software Architecture & Design Pattern SensorNet Based Battlefield Surveillance System 9

  10. Software Architecture & Design Pattern • At Base Camp: • GUI display on laptop of node locations, tracks, and live GPS ground truth (over 802.11 LAN). • Live video feed on wireless IPAQ PDA (from sender laptop in field). 10

  11. Software Architecture & Design Pattern Precision Strike: Sensor-to-Shooter Approach 11

  12. Software Architecture & Design Pattern Aegis Q-70 Tactical Display Console 12

  13. Software Architecture & Design Pattern AWIPS (Advanced Weather Interactive Processing System) 13

  14. Software Architecture & Design Pattern Weather data visualization by AWIPS 14

  15. Software Architecture & Design Pattern Emergence Response and Rescue System 15

  16. Software Architecture & Design Pattern Disaster/Incident Situational Display 16

  17. Software Architecture & Design Pattern Software A set of instructions, data structures, subroutines, and documents that operate and control the machines (hardware) it is running on. Software Layers Application Software (word processor, database app.) 3-D Application Middleware (API, framework, SDK, environment) OpenGL Framework System Software (O/S, device driver, firmware, etc.) Operating System Hardware Layer (system, architecture, processor) Hardware System 17

  18. Software Architecture & Design Pattern • Software Engineering • A systematic approach to the development, • operation and maintenance of software. • Software Model • A conceptual description and abstraction of • software structures, components, interface • and functions. • Architectural Model (design) • Development Model (methodology) 18

  19. Software Architecture & Design Pattern • Software Architectural Model • structural model • Use Case model • component model • class model • communication/interaction model • deployment model • Software Development Model • development model • development process 19

  20. Software Architecture & Design Pattern • Architectural Models • Client-Server • MVC (Model-View-Control) • PAC (Presentation-Abstraction-Control) • Pipe and Filter • Remote Procedure Call (RPC) • Layered • Distributed • Object-Oriented Architecture • Service-Oriented Architecture • Multi-tier Architecture 20

  21. Software Architecture & Design Pattern Class Model - What a mess! 21

  22. Software Architecture & Design Pattern Class Model – Is it better? 22

  23. Software Architecture & Design Pattern Application Layer Cluster Server Application RTCS Application Framework API Middleware Layer RTCS Classifier RTCS Dispatcher RTCS Scheduler RTCS Monitor RTCS Forwarder RTCS Event RTCS Queue Linux System Call O/S Kernel Layer performance-differentiated kernel scheduler Linux kernel Hardware Layer Hardware Abstraction Layer 23

  24. Software Architecture & Design Pattern • Software Design Principles • Decomposition and decoupling • Architectural model • Component interface/relationship • Data/object abstraction • Communication/network interface • Concurrency: multiprocess vs. multithread • Scalability 24

  25. Software Architecture & Design Pattern • Software Development Methodology • A documented set of standards, processes, • rules, and guidelines that govern the • development practice. • Development Model • --- methodology’s technical aspect • Development Methodology • --- methodology’s management aspect 25

  26. Software Architecture & Design Pattern Development Model • Build-and-Fix • Waterfall • Spiral • Rapid Prototyping • Incremental • Extreme Programming • OOD • Interactive 26

  27. Software Architecture & Design Pattern Development Process/Methodology • Structured Analysis & Design Methodology • Object-Oriented Analysis & Design (OOAD) • Rational Unified Process (RUP) • Enterprise Unified Process (EUP) • Agile Unified Process (AUP) • Extreme Programming since 1999 • Scrum (development) • Constructionist Design Methodology (CDM) • SEI CMM (Capability Maturity Model) • ISO 9000-3 27

  28. Software Architecture & Design Pattern • New Trends in Large-scale Mission-critical Software System Development • Distributed environment • - RMI, CORBA, .Net architecture • - multiprocessing/multithreading • - Synchronous vs. asynchronous • Middleware approach • - cross-platform, importability • - application framework 28

  29. Software Architecture & Design Pattern • New Trends (cont’d) • Open Architecture and Open Standard • - COTS products (processors, networks) • - open Standard (POSIX, XML, etc.) • - open source software (Linux, GNU, etc.) • System Scalability • - hardware expandability • - software scalability 29

  30. MDD tools codify expertise by automating key aspects of pattern languages & providing developers with domain-specific modeling languages to access the powerful (& complex) capabilities of frameworks Model Model Model Model Model Model Model Model Generated Code Generated Code Generated Code Generated Code Application Code Application Code Application Code Application Code Framework Framework Framework Framework Domain Specific Domain Specific Domain Specific Domain Specific Pattern Language Pattern Language Pattern Language Pattern Language Framework Framework Framework Framework Platform Platform Platform Platform Platform Platform Platform Platform Frameworks Frameworks Frameworks Frameworks Software Architecture & Design Pattern • New Trends (cont’d) • Model-driven Architecture (MDA) • Middleware Approach • SOA (Service-Oriented Architecture) 30

  31. Software Architecture & Design Pattern Questions ? 31

More Related