Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp,...

16
Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008

Transcript of Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp,...

Page 1: Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008.

Some perspectives in teaching Software Architecture

Prabhakar T.V., Kiran Kumar

{tvp, vkirankr}@iitk.ac.in

IIT Kanpur

SATURN 2008

Page 2: Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008.

Overview of the presentation

2/16SATURN 2008

Architecture Knowledge

Selected for Teaching

Selection

Page 3: Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008.

How to Select?

3/16SATURN 2008

Ease of UnderstandingV

alu

e Selected TopicsQuality Attributes, Scenarios, Solution Architecture, System Arch., Technology choice, Workflows, Architecture Decisions, Patterns, Tactics, 4+1 viewset, ADD Methodology, ATAM evaluation.

(for students)

Page 4: Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008.

Some Illustrations

4/16SATURN 2008

Ease of UnderstandingV

alu

e Patterns TacticsPerformanceModifiability

Testability

Security

UsabilityAvailability

Page 5: Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008.

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.

5/16SATURN 2008

Page 6: Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008.

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.

6/16SATURN 2008

Page 7: Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008.

Bottom-up as against top-down positioning of architecture

7/16

Top-down Approach

RequirementsEngineering

ArchitectureDevelopment

Reqs of large system

ArchitectureDecisions

Performance, Availability,Usability, Security.

Bottom-up Approach

ArchitectureDevelopment

Programming Problems

Modifiability, Testability

ProgrammingIn large

ArchitectureDecisions

SATURN 2008

Page 8: Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008.

Solution Architecture

8/16SATURN 2008

• 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

Page 9: Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008.

Workflow Engine

9/16SATURN 2008

• 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.

Page 10: Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur 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:

10/16SATURN 2008

1. Bass et. al. definition (..structures of the system...) for System Architecture and

2. Garlan et. al. definition (..beyond algorithms..) for Architecture Decisions.

Page 11: Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008.

Quality Attributes

• We selected only six quality attributes available in Bass et.al. textbook.

11/16SATURN 2008

• 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.

Page 12: Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008.

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.

12/16SATURN 2008

Page 13: Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008.

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.

13/16

• Counterstrike game for observer pattern.• Eclipse for Microkernel pattern.• Compiler for Pipe-and-Filter pattern.• Cancel button for Memento pattern.

SATURN 2008

Page 14: Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008.

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.

14/16SATURN 2008

Page 15: Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008.

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.

15/16

Client InternetInternetWeb

ServerApplication

ServerDatabase

Server

Node

Client InternetInternetWeb

ServerApplication

Server

Node

DatabaseServer

Node

Design 1

Design 2

SATURN 2008

Page 16: Some perspectives in teaching Software Architecture Prabhakar T.V., Kiran Kumar {tvp, vkirankr}@iitk.ac.in IIT Kanpur SATURN 2008.

16/16SATURN 2008