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
© Copyright 2026 Paperzz