Course Design Document IS 303: Architectural Analysis

SMU School of Information Systems (SIS)
Course Design Document
IS 303: Architectural Analysis
Version 6.2
17 June 2011
Course: Architectural Analysis
Page 1
SMU School of Information Systems (SIS)
TABLE OF CONTENTS
1
VERSION HISTORY........................................................................................................................... 3
2
OVERVIEW OF THE ARCHITECTURAL ANALYSIS COURSE ............................................... 4
2.1
2.2
2.3
2.4
2.5
2.6
SYNOPSIS ........................................................................................................................................ 4
PREREQUISITES ............................................................................................................................... 4
OBJECTIVES ..................................................................................................................................... 4
SYLLABUS OUTLINE ........................................................................................................................ 5
ASSIGNMENT OUTLINE .................................................................................................................... 5
INSTRUCTORS .................................................................................................................................. 5
3
OUTPUT AND ASSESSMENT SUMMARY .................................................................................... 6
4
LEARNING OUTCOMES, ACHIEVEMENT METHODS AND ASSESSMENT ...................... 11
5
CLASSROOM PLANNING ................................................................................................................ 8
6
COURSE SCHEDULE SUMMARY .................................................................................................. 8
7
TOOLING ............................................................................................................................................. 8
8
LIST OF INFORMATION RESOURCES AND REFERENCES ................................................... 9
Course: Architectural Analysis
Page 2
SMU School of Information Systems (SIS)
1 Version History
Version
Description of changes
Author
Date
Kevin Steppe
18 Jul 2005
Kevin Steppe w/
Jason Woodard,
Daniel Chong
22 Sep 2005
Kevin Steppe
7 Oct 2005
Kevin Steppe w/
Jason Woodard, Mok
Heng Ngee
10 Jul 2006
Jason Woodard
10 Aug 2006
1.0
• Circulated version for Term 1 2005.
1.1
• Added detail on projects/grading, minor changes
to schedule.
1.2
• Updated schedule; filled in week 12.
2.0
• Major revision – changes to outline, syllabus,
and project.
2.1
• Refreshed overview, learning outcomes, syllabus;
minor formatting changes.
2.2
• Weekly plan outline.
Kevin Steppe
15 Aug 2006
2.3
• Adjustment of weekly outline
Kevin Steppe
22 Nov 2006
Kevin Steppe
7 Jan 2007
Kevin Steppe
20 June 2007
Kevin Steppe
20 August 2007
Kevin Steppe
22 August 2007
Kevin Steppe
3 January 2008
Kevin Steppe
10 March 2008
Kevin Steppe
6 July 2008
Kevin Steppe
17 August 2009
Kevin Steppe
13 August 2010
Kevin Steppe
17 June 2011
3.0
• Adjusted syllabus
• Changed grading weights
4.0
• Revised syllabus, Added Quizzes
• Clarified participation scoring
4.1
4.2
• Changed banking project to airline
• Corrected date of Quiz 2
• Updated readings
4.3
• Remove Quiz 2
• Change week 1b, 2
4.4
5.0
6.0
6.1
6.2
• Added sections for Class Planning, Tooling to
match template
• Updates to Readings and Topics
• Change Syllabus
• Remove Quiz 2, Add early demo, add experiment
design, increase project weighting
• Remove Deadlock, Add Transaction Management
Course: Architectural Analysis
Page 3
SMU School of Information Systems (SIS)
Overview of the Architectural Analysis Course
1.1
Synopsis
The Architectural Analysis course integrates tools and concepts from across the SIS curriculum to develop
a system-level perspective on IT artifacts and solutions. It focuses on the iterative process of design and
analysis through which business requirements and solution elements are transformed into implementable
architectural descriptions. By combining hands-on design with critical analysis and reflection, the course
prepares students to participate effectively in all stages of the life cycle of a software-intensive IT system,
from conception and development to deployment and evolution.
1.2
Prerequisites
IS 203 (Software Engineering), IS 301 (Enterprise Integration), IS 304 (Process Modelling and Solution
Blueprinting).
1.3
Objectives
1.
Familiarize students with system thinking skills:
a. Analysis across an entire end-to-end system
b. Making and evaluating reasoned tradeoffs of desired qualities
c. Impact analysis to understand the implications of design choices.
2.
Build students’ capacity to analyze software system designs, with an emphasis on system-level
quality attributes, especially performance, scalability, and fault tolerance).
3.
Teach standard practices in documenting system architectures using views and perspectives.
4.
Develop familiarity with common architectural strategies and concerns for enterprise software
systems.
5.
Instill an appreciation for the value of software architecture.
Course: Architectural Analysis
Page 4
SMU School of Information Systems (SIS)
1.4
Syllabus Outline
1.5
Assignment Outline
•
Problem sets – 4 problem sets. Self-chosen group of 5 students will work problem sets related to
the week’s material.
•
Project – Self-selected groups of 5 students will transform a simple prototype to a distributed,
fault-tolerant, high performance system.
•
Quiz – there will be a short individual quiz to test basic concepts from the first half of the class.
•
Exam – there will be an individual final exam. The exam will cover the foundations taught in the
class including documentation and analysis of a system.
•
Kevin STEPPE
1.6
Instructors
Course: Architectural Analysis
Page 5
SMU School of Information Systems (SIS)
2 Output and Assessment Summary
Assessment
Due
Participants
Weight
Problem Sets
Weeks 3–11
Self-chosen group (5)
25%
Project
Week 12
Self-chosen group (5)
30%
Quiz
Week 9
Individual
5%
Final Exam
Week 15
Individual
20%
Participation
Continuous
Individual
20%
Notes:
Peer Evaluations
Peer evaluations will be conducted after weeks 7 and 13 and will normally yield adjustments of up
to ±10% in your problem set and project scores. (A higher percentage may be applied in exceptional
cases.) A portion of the adjustment will reflect the usefulness of your comments in evaluating your
peers.
Groups
You choose a group of 5 students to work on both the problem sets and project.
Academic Dishonesty, including Plagiarism
“Plagiarism: using the ideas, data, or language of another without specific or proper
acknowledgment.” – SMU Code of Academic Integrity
https://intranet.smu.edu.sg/dos/scd/pdf/code%20of%20academic%20integrity.pdf as of 1/1/2010
Evidence of plagiarism – whether from other students or from other sources will be treated
seriously. Except for class materials, all sources must be properly referenced. Any failure to site
external sources will lead to disciplinary action as stated below. In cases of collaboration between
groups, both groups must site the collaboration, even (and especially) when the exchange of ideas
is unbalanced.
Any academic dishonesty, including failure to site sources or collaboration between groups will
result in the following actions:
ƒ The assignment will be scored at -1 * the maximum score. Thus, academic dishonesty on
a 10 point assignment will result in a score of negative 10.
ƒ The incident will be reported, in writing, to the Dean of SIS and the Dean of Students.
2.1
Participation
Note that participation uses the “SMU standard” of 20% of the course marks. This makes it equal to the
final exam in weighting! My view of participation grades is 1) they should reflect active involvement in
your learning – whether in or out of class – and 2) they should encourage you to make the learning
environment lively and inviting to your classmates.
Course: Architectural Analysis
Page 6
SMU School of Information Systems (SIS)
Weekly:
• Attendance: 1 point for showing up
+1 point for being on-time
•
In-class participation: 1-4 point for participation in class discussion
+ 1-2 points for “moving the discussion forward”
+ points for class exercises, as mentioned in the exercise
+ 1-3 points for helping others on the class exercises
•
Out-of-class participation: points for other forms of educational participation (class discussion
forum, getting help from professor or instructor or TA, sharing relevant
resources/news/articles/etc.)
Course: Architectural Analysis
Page 7
SMU School of Information Systems (SIS)
3 Classroom Planning
There is one session of 3 hours each week.
4 Course Schedule Summary
W
k
Topic
Readings
Classroom Activities
7
8
Introduction
Scenarios
Diagrams
Hardware
Networking
Intro Caching
Finish Caching
Intro Concurrency
Asynch
Concurrency
Locking &
Transactions
Experimentation
BREAK
9
Fault-Tolerance I
Fault detection, fail-over
10
Fault-Tolerance II
State management
11
12
13
14
Systems
Presentations
Review
BREAK
15
Exam
1
2
3
4
5
6
See slides
BREAK
BREAK
Introduction to AA
Assignments Due
Quality Attributes
Diagrams, Relevancy, Course Tools
Computer Hardware Performance
Network protocols
Caching strategies – replication / placement
Caching exercise
Intro to parallelism (no shared data)
Asynchronous communication
Shared data - race conditions, locking
Lock granularity, Optimistic locking, Transaction
Isolation
Project Early Demos; Experiment Design
BREAK
Trade-off Performance & Fault-Tolerance
Project Presentations – Final Design review
Wrap – up
BREAK
Problem Set #1
Problem Set #2
Project Early Demo
BREAK
Quiz
Problem Set #3
Problem Set #4
Project Demo
BREAK
5 Tooling
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Java Runtime and Compiler v1.5 or above
Web server (student choice)
Database (student choice)
Load Balancer (student choice – lab using apache mod_jk)
Load Tester (student choice – labs using VSTS)
UMLChecker – input from either Visual Paradigm format or PlantUML format
Course: Architectural Analysis
Page 8
SMU School of Information Systems (SIS)
6 List of Information Resources and References
6.1
Readings
Selected readings will be posted in the lesson slides.
6.2
Reference readings from prior years
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
6.3
Software Systems Architecture, Nick Rozanski and Eoin Woods, Addison Wesley, 2005.
Software Architecture: An Executive Overview, Northrop & Clements, CMU/SEI-96-TR003, pg 3 - 16 http://www.sei.cmu.edu/pub/documents/96.reports/pdf/tr003.96.pdf
Software Engineering 7, Ian Sommerville, Chapter 11 – 11.1
The Mythical Man Month, Fred Brooks, Chapter 4
Software Architecture in Practice, Bass et. al., Chapter 4
Architectural Blueprints – The “4+1” View Model of Software Architecture, Krutchen, IEEE
Software 12 (6) pg 42-50
Documenting Software Architectures, Clements et. al., Chapter 10
Software Engineering 7, Ian Sommerville, Chapter 8.1 – 8.4
Design & Use of Software Architectures, Bosch Chapter 6.3 to end of 6
Large Scale Software Architectures, Garland & Anthony , pg 209-225
Architecture Centric Design Method, Lattanze, http://reportsarchive.adm.cs.cmu.edu/anon/isri2005/CMU-ISRI-05-103.pdf
ATAM, Kazman et. al. CMU/SEI-2000-TR-004, sections 3 & 7
http://www.sei.cmu.edu/pub/documents/00.reports/pdf/00tr004.pdf
Performance Solutions, Smith, Williams, Chapter 6
Architecting Enterprise Systems, Dyson & Longshaw, Chapter 7
Large Scale Software Architectures, Garland & Anthony, pg 170-174
Architectural Mismatch, Garlan and Shaw, ICSE ‘95, http://www2.cs.cmu.edu/afs/cs/project/able/ftp/archmismatch-icse17/archmismatch-icse17.pdf
An Introduction to Software Architecture, Garlan and Shaw, pg 0 – 5, http://www2.cs.cmu.edu/afs/cs/project/able/ftp/intro_softarch/intro_softarch.pdf
ATAM, Kazman et. al. CMU/SEI-2000-TR-004
http://www.sei.cmu.edu/pub/documents/00.reports/pdf/00tr004.pdf
Reference books
Architecture
• Software Architectures: Perspectives on an Emerging Discipline, Mary Shaw and David Garlan,
Prentice Hall, 1996.
•
Software Architecture in Practice. Len Bass, Paul Clements, and Rick Kazman. Addison-Wesley,
2003. (Second Edition)
•
Documenting Software Architectures: Views and Beyond. P. Clements, F. Bachmann, L. Bass, D.
Garlan, J. Ivers, R. Little, R. Nord, and J. Stafford, Addison Wesley, September 2002.
•
Pattern-Oriented Software Architecture, Volume 1: A System of Patterns. F. Buschmann, et. al.
•
Patterns of Enterprise Application Architecture. Martin Fowler.
Course: Architectural Analysis
Page 9
SMU School of Information Systems (SIS)
•
IEEE Software magazine vol 12, no. 6.
Software Engineering
• The Mythical Man-Month, by Frederick P. Brooks, Jr., Anniversary Edition, Addison Wesley
Longman, Inc, 1995.
•
6.4
Problem Frames, Michael Jackson
Platforms
J2EE
• Building J2EE Applications with the Rational Unified Process, Peter Eeles, Kelli Houston,
Wojteck Kozaczynski, Addison Wesley.
•
Core J2EE Patterns, Best Practices and Design Strategies, Deepak Alur, John Crupi, Dan Malks,
Second Edition, Sun Microsystems Press, Prentice Hall.
•
Designing Enterprise Applications with the J2EE Platform, Second Edition, Inderjeet Singh, Beth
Stearns, Mark Johnson, and the Enterprise Team
(Online edition: http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/)
.NET
• Application Infrastructure Architecture
http://www.microsoft.com/technet/itsolutions/wssra/raguide/ArchitectureBlueprints/rbabai.mspx
•
www.microsoft.com/architecture
•
www.microsoft.com/practices
•
Programming .NET Components, Juval Lowy, O’Reilly, April 2003
6.5
Papers
•
The Architecture Centric Development Method, A J Lattanze, CMU-ISRI-05-103, Feb 2005.
•
SEI Papers at: http://www.sei.cmu.edu/architecture/pub_by_topic.html
•
Integrating Software-Architecture-Centric Methods into Extreme Programming (XP). Nord,
Tomayko, Wojcik. CMU/SEI-2004-TN-036
•
Integrating Software-Architecture-Centric Methods into the Rational Unified Process. Kazman,
Krutchen, Nord, Tomayko. CMU/SEI-2004-TR-011
•
Quality Attribute Workshops, Third Edition. Barbacci et. al.. CMU/SEI-2003-TR-016
Course: Architectural Analysis
Page 10
SMU School of Information Systems (SIS)
7 Learning Outcomes, Achievement Methods and Assessment
IS303 – Architectural Analysis
1
Course-specific core competencies
which address the Outcomes
Faculty Methods
to Assess Outcomes
• Write system-specific quality attribute
requirements which fit the business needs.
• Grade and give feedback to
Group Project
• Grade Final Exam
• Grade and give feedback on
Problem Sets
Integration of business & technology in a sector
context
1.1 Business IT value linkage skills
YY
1.2 Cost and benefits analysis skills
Y
• Assess tradeoffs (cost/benefit) of all
designs.
Y
• Write specific, measurable quality attribute
requirements
YY
• Analyze performance tradeoffs of different
load balancing algorithms
• Produce system designs which support
the business goals and produce business
value.
• Feedback on class
exercises
• Grade and give feedback on
Problem Sets
1.3 Business software solution impact analysis skills
2
IT architecture, design and development skills
2.1 System requirements specification skills
• Analyze performance improvement due to
caching in different scenarios.
• Design a caching strategy for different
business scenarios.
• Feedback on class
exercises
• Grade and give feedback on
Problem Sets
• Feedback on class
exercises
• Grade and give feedback to
Group Project
• Grade Final Exam
• Grade and give feedback on
Problem Sets
• Describe performance differences
between different parts of the computer
architecture.
2.2 Software and IT architecture analysis and design
skills
• Analyze the concurrency and throughput
of different locking and thread-priority
policies.
• Choose a locking strategy for different
business scenarios.
• Analyze the time for failure detection
under different detection methods
(pinging, heartbeats, exceptions …).
• Determine the time required for fail-over
under different failover methods (client,
load balanced, IP change, virtual IP, …)
• Design systems incorporating multiple
design options to meet multiple quality
attributes.
• Implement & evaluate a simple cache
algorithm
2.3 Implementation skills
Course: Architectural Analysis
• Debug race conditions and deadlocks in
multi-threaded code.
• Feedback on class
exercises
• Grade and give feedback to
Page 11
SMU School of Information Systems (SIS)
YY
• Write a java application to monitor another
over sockets.
• Implement which replicates state and
recovers from process failure
Group Project
• Grade Final Exam
• Grade and give feedback on
Problem Sets
• Deploy a fault-tolerant, high performance
banking system on software of choice.
Demonstrate fault tolerance and tests to
prove performance improvements.
2.4 Technology application skills
3
Y
•
• Feedback on class
exercises
• Grade Final Exam
• Grade and give feedback on
Problem Sets
• Manage scope by choosing which quality
attributes to focus on.
• Grade and give feedback to
Group Project
• Research, understand, and choose
technologies to deploy in the project.
• Grade and give feedback to
Group Project
• Explain how the IP protocol enables
replication through virtual IPs
Project management skills
3.1 Scope management skills
Y
3.2 Risks management skills
3.3 Project integration and time management skills
3.4 Configuration management skills
3.5 Quality management skills
4
Learning to learn skills
Y
• Find and use resources on technology
implementation to complete the project.
4.1 Search skills
4.2 Skills for developing a methodology for learning
5
Collaboration (or team) skills:
5.1 Skills to improve the effectiveness of group
processes and work products
6
Y
• Effectively communicate and resolve
conflicts while working in a self-chosen
team with peers of various abilities and
attitudes
• Peer Evaluations
• Prepare and deliver an effective and
efficient presentation on architectural
design and installation evaluation.
• Grade and give feedback to
Group Project
Change management skills for enterprise
systems
6.1 Skills to diagnose business changes
7
6.2 Skills to implement and sustain business
changes
Skills for working across countries, cultures and
borders
7.1 Cross-national awareness skills
7.2 Business across countries facilitation skills
8
Communication skills
8.1 Presentation skills
Y
8.2 Writing skills
Y
Course: Architectural Analysis
• Write clear and precise analyses.
• Write clear and precise design papers and
• Grade Final Exam
• Grade and give feedback on
Page 12
SMU School of Information Systems (SIS)
diagrams.
Y
Problem Sets
This sub-skill is covered partially by the course
YY
This sub-skill is a main focus for this course
IS303 - AA Competency Matrix
Competencies
expected to be
covered
through
prerequisites
Core Competencies
LOMS
Advanced
Competencies
Quality Attributes / Requirements
Identify and
document
system’s functional
requirements
based on business
needs.
Write system-specific quality attribute requirements which fit
the business needs.
Produce system designs which support the business goals
and produce business value.
1.1
1.1
Write specific, measurable quality attribute requirements
2.1
Performance
• Analyze performance tradeoffs of different load balancing
algorithms
Basic Math skills
2.2
• Analyze performance improvement due to caching in
different scenarios.
2.2
• Design a caching strategy for different business scenarios.
2.2
Explain tradeoffs inherent in
caching strategy
Basic
programming and
database skills
• Analyze the concurrency and throughput of different
locking and thread-priority policies.
2.2
Explain implications & tradeoffs
of thread-priority policies
• Choose a locking strategy for different business scenarios.
2.2
Basic java
programming
• Implement & evaluate a simple cache algorithm
2.3
• Debug race conditions and deadlocks in multi-threaded
code.
2.3
Able to choose between
different deadlock prevention
strategies.
Able to choose blocking
techniques in java
Fault Tolerance
• Analyze the time for failure detection under different
detection methods (pinging, heartbeats, exceptions …).
2.2
Explain the tradeoff of different
methods with modifiability
• Determine the time required for fail-over under different
failover methods (client, load balanced, IP change, virtual
IP, …)
2.2
Explain the tradeoff of different
methods with modifiability
• Design systems incorporating multiple design options to
meet multiple quality attributes.
2.2
Course: Architectural Analysis
Page 13
SMU School of Information Systems (SIS)
Basic java
programming skills
• Write a java application to monitor another over sockets.
2.3
Basic java
programming skills
• Implement a system which replicates state and recovers
from process failure
2.3
Implement an application which
can restart and recover the ‘inprocess’ state
Hardware
Familiar with computer
parts (CPU, memory,
hard disk, etc)
Describe performance differences between different parts of
the computer architecture.
2.4
Explain how the IP protocol enables replication through
virtual IPs
2.4
Project
Project Management
Experience
Manage scope by choosing which quality attributes to focus
on.
3.1
Find and understand
APIs and deployment
instructions for new
technologies
• Research, understand, and choose technologies to deploy
in the project.
4.1
• Find and use resources on technology implementation to
complete the project.
4.1
Able to work
comfortably in a team
Able to install and
rd
configure 3 party
software (eg Tomcat,
Apache, mySQL)
•
Effectively communicate and resolve conflicts while working
in a self-chosen team with peers of various abilities and
attitudes
5.1
• Design systems incorporating multiple design options to
meet multiple quality attributes.
2.2
• Deploy a fault-tolerant, high performance banking system
on software of choice. Demonstrate fault tolerance and
tests to prove performance improvements.
2.3
Communication
Able to prepare
effective presentations
• Prepare and deliver an effective and efficient presentation
on architectural design and installation evaluation.
• Write clear and precise analyses.
Able to produce UML
sequence diagrams
Write clear and precise design papers and diagrams.
Course: Architectural Analysis
8.1
8.2
8.2
Page 14