160 likes | 164 Views
This presentation provides an overview of teaching software architecture, including the selection of topics, value of quality attributes, performance patterns, and workflow engines. It also discusses the background of the student community and the bottom-up approach in architecture positioning.
E N D
Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008
Overview of the presentation Architecture Knowledge Selected for Teaching Selection SATURN 2008 2/16
How to Select? Selected Topics Value Quality Attributes, Scenarios, Solution Architecture, System Arch., Technology choice, Workflows, Architecture Decisions, Patterns, Tactics, 4+1 viewset, ADD Methodology, ATAM evaluation. Ease of Understanding (for students) SATURN 2008 3/16
Some Illustrations Performance Patterns Tactics Modifiability Value Security Availability Usability Testability Ease of Understanding SATURN 2008 4/16
Aspects for Discussion • Background of Student community. • Bottom-up Positioning of architecture. • Solution Architecture and Workflow Engines. • Architecture definitions and QAs. • Examples from Web-applications. • Non-software and software examples for patterns. • Selection of viewsets. • Design decisions with deployment view. SATURN 2008 5/16
Background of Student community • very good programmers, but only programmers do not have much system analysis skills. • very interested in games, chatting, multimedia. • very familiar with Internet. • know some quality attributes such as performance, security, and usability. SATURN 2008 6/16
Bottom-up as against top-down positioning of architecture Top-down Approach Bottom-up Approach Requirements Engineering Reqs of large system Architecture Development Architecture Decisions Architecture Decisions Programming In large Programming Problems Architecture Development Modifiability, Testability Performance, Availability, Usability, Security. 7/16 SATURN 2008
Solution Architecture • Generally, students design fully automated solutions without bothering much about cost and correctness. • We discussed Solution Architecture to motivate them to semi-automated solutions. Problem What is Managed? What is Engineered? Management Engineering 8/16 SATURN 2008
Workflow Engine • We discuss System Architecture to design Business-logic-oriented applications such as Search Engine. • We discussed Workflows for designing Process-oriented applications such as Banking, Registration. 9/16 SATURN 2008
Architecture definitions • SEI maintains 150+ definitions for Software Architecture, each addressing different aspect of Software Architecture. • Since our concentration was on System Architecture and Architecture Decisions, we selected two definitions best syncs with our discussion: • Bass et. al. definition (..structures of the system...) for System Architecture and 2. Garlan et. al. definition (..beyond algorithms..) for Architecture Decisions. SATURN 2008 10/16
Quality Attributes • We selected only six quality attributes available in Bass et.al. textbook. • Performance, and Security are easiest to discuss, because students are well aware of them. • Availability, and Usability are also easy to discuss, because examples from Internet and other software can be provided. • Modifiability, and Testability are hard to discuss, examples from Programming level were provided in order to make them appreciate the problem. SATURN 2008 11/16
Examples from Web-applications. • Google search engine for 3-tier architecture. • Cricinfo.com (broadcasts cricket scores) for Observer pattern. • Google search engine for Availability, Active Redundancy. • GTalk/Yahoo-messenger for Security. SATURN 2008 12/16
Discussion of Patterns through examples • Before discussing patterns and tactics, we talk about techniques that are being applied to solve real-life problems in the non-software engineering world. Duell et. al. transparency is a big help. • We use well known applications as direct counterparts of its non-software examples. • Counterstrike game for observer pattern. • Eclipse for Microkernel pattern. • Compiler for Pipe-and-Filter pattern. • Cancel button for Memento pattern. SATURN 2008 13/16
Selection of viewsets. • The 4+1 view set is easiest to explain and appreciate. • Later a discussion on the Zachman framework was found to be useful. SATURN 2008 14/16
Design decisions with Deployment view. • Among all the views, students are already familiarized with deployment view. • We used this view to illustrate different design choices and their implications in achieving quality attributes. SATURN 2008 15/16
Thank you for ur attention Questions SATURN 2008 16/16