performance oriented software architecture engineering an
play

Performance-Oriented Software Architecture Engineering: an - PowerPoint PPT Presentation

Performance-Oriented Software Architecture Engineering: an Experience Report Chung-Horng Lung, Anant Jalnapurkar, Asham El-Rayess SEAL - Software Engineering Analysis Lab Nortel Networks Software Architecture Analysis Established in 1995


  1. Performance-Oriented Software Architecture Engineering: an Experience Report Chung-Horng Lung, Anant Jalnapurkar, Asham El-Rayess SEAL - Software Engineering Analysis Lab Nortel Networks

  2. Software Architecture Analysis • Established in 1995 • Adopted SAAM (Software Architecture Analysis Method) developed at SEI – Scenario-based analysis – Non-functional quality attributes like maintainability, scalability, and etc.

  3. Why Architecture Analysis? • Increasing complexity of software systems • The need to analyze and design systems at higher levels of abstraction • The demand to reduce maintenance costs for evolution • Often conducted in an ad-hoc manner

  4. Motivation to Integrate SA and SPE The main reasons are: • Performance issue keep recurring for real-time applications. • Need to demonstrate how to improve quality attributes, especially performance in a systematic approach. • Software architecture and software performance are tightly coupled. Performance-Oriented Software Architecture Engineering

  5. Performance-Oriented SW Architecture Eng Critical elements of POSAE: • SAAM • Stakeholders and their values • Architectural views • Software partitioning and clustering • Software performance engineering – Automatic generation of performance models • Software architecture trade-off analysis

  6. Software Architecture Views Styles & patterns, Mapping of components & functions Map View Messaging diagram, Causal diagram, Structure diagram, Interaction diagram Object diagram, State machines Module diagram Dynamic Static View View Resource View Performance modeling Concurrency, Simulation

  7. POSAE Process - Iterative & Incremental • Develop or capture a software architecture (static view) • Identify scenarios, particularly real-time (RT) scenarios (scenario development) • Identify execution paths for RT scenarios (dynamic view) • Apply performance modeling, analysis, and measurements (resource view) • Perform architecture analysis based on performance modeling results (map view, dynamic view, and resource view) • Conduct trade-off analysis (scenario & 4 views) • Build a prototype, based on the analysis, to improve performance or other qualities

  8. Performance Modeling & MAGE Application / Instrumentation Application Data Collection Capacity Planning Prototype Simulation / Load Balancing Model Generation Analysis Tools Bottleneck Analysis Reverse Rapid Etc... Engineering Application Development MAGE

  9. Software Partitioning: an Example S1 S1 E1 E1 E3 E6 E2 E3 S2 S3 S2 S3 E4 E2 E8 E5 E5 E6 E8 E9 E9 E7 E7 E4

  10. Lessons Learned • End-to-end analysis provides valuable insights. – Messaging system, run-time environment, application framework, and the high-level services and applications. • Software architecture is a critical asset & important to SPE. – Need an engineering approach. • Analysis of the interactions of scenarios, not just individual scenarios, are necessary. – Example, scenarios query processing, update processing, and OS scheduling interact. • Automation of performance model generation and analysis is needed. • Prototyping is useful to show values & alternatives. • Domain knowledge plays a critical role.

  11. Conclusion Presented a POSAE approach Some benefits and achievements: • Capture software architecture • Identify use case scenarios • Improve performance. – Examples: 25% for one project & 500% for another one • Perform modeling & analysis at the early stage. • Better document the system. • Support product evolution.

  12. Ongoing Works & Challenges • Tool supports – Reverse engineering tools, especially for OO software – Reliable performance measurements – Performance modeling and analysis to support integration of SPE and software development • Design patterns and performance – characterization of design patterns • Development of best practices and design guidelines

Recommend


More recommend