1 TDT4240 Software Architecture (Programvarearkitektur) First Lecture: Introduction of course, exercises, and project TDT4240 - Course Introduction 2 Questionnaire/Quiz (5 min)
3 About me... Name: Alf Inge Wang Office: IT-020 Phone: 73594485 Email: alfw@idi.ntnu.no Position: Associated professor (førsteamanuensis). Private interests: Family life (1 wife + 3 daughters), music, football, videogames. 4 My background Short summary: 1983: Så lyset! 1984-... Vic 20, Oric-1, Dragon 32, Amstrad, C64, Amiga 500, Amiga 1200... 1995: Sivilingeniør NTH datateknikk. 1996: Forsker på SINTEF/NTNU. 1997-2001: Doktorgrad Using a Mobile, Agent-based Environment to support Cooperative Software Process. 2001-2003: Post doc. MObile Work Across Heterogeneous Systems (MOWAHS). 2003-.: Førsteamanuensis i nyere programvareteknologier. Research: Software engineering, software architecture, distributed and mobile systems, process modelling.
5 Organisational information Lecturer: Alf Inge Wang, alfw@idi, 7359 4485, IT-144 Assistants: Finn Olav Bjørnson, bjornson@idi, 7359 8716, IT-143 Odd Petter Slyngstad, oslyngst@idi, 6359 4483, IT-145 Schedule: 3F + 2Ø + 7S Lectures: Mon 10:15-12:00 (R3), Fri 09:15-10:00 (R3) Exercise lectures: Thu 15:15-17:00 (R3) Workload: 7,5 SP (25%) Grade: 70% written exam, 30% exercise/project (mappeevaluering) Written examination: Wed 7. June 2006 09:00-13:00 6 Educational goal By the end of the course the students (you) should be able to: Define and explain central concepts in software architecture- Use and describe: Design/architectural patterns Methods to design software architectures. Methods/techniques to achieve software qualities. Methods to document software architecture. Methods to evaluate software architecture.
7 Course overview Main parts of the course: Lectures (slides in English, speak in Norwegian/English) Guest lectures: Design Pattern (Carl-Fredrik Sørensen) Software architecture and Performance (Gunnar Brataas) Industrial experiences from Telenor (Sigurd Thunem) Exercise in design patterns: In pairs Robot project on software architecture: Groups of 3-4 students Gives 30% of the final grade (0-30 points). 8 Syllabus (temporary) Book: Software Architecture in Practice, Second Edition, Len Bass, Paul Clements, Rick Kazman (Tapir). Articles (download PDF from It s Learning): IEEE (2000), IEEE Recommended Practice for Architectural Description of Software-Intensive Systems, Software Engineering Standards Committee of the IEEE Computer Society. Kruchten, P. (1995), The 4+1 View Model of Architecture, IEEE Software, 12, 6, Pp. 42-50. Coplien J. O.: "Software Design Patterns: Common Questions and Answers", The Patterns Handbook: Techniques, Strategies, and Applications, Cambridge University Press, New York, January 1998, pp. 311-320 Wang, Stålhane: Using Post Mortem Analysis to Evaluate Software Architecture Student Projects, CSEE&T 2005, 8 pages. Presentations/compendium (download PDF from It s Learning): Software pattern (Sørensen) Software architecture and performance (Brataas) Software architecture in the IT-industry (Thunem)
9 Main topics/phases of the course Introduction (Robot introduction): Software architecture, quality attributes, achieving qualities, architecture and design/architectural patterns, robot simulator Design (Robot requirements and design): Designing the architecture, documenting standard, describing/modelling software architecture Evaluation (Robot architecture evaluation): The Architecture Tradeoff Analysis Method (ATAM) The Cost Benefit Analysis Method (CBAM) Implementation (Robot implementation): Reconstructing, product lines, building COTS Project evaluation (Robot project evaluation): Post Mortem analysis 10 About the text book Real Software Architecture Solve real problems Illuminate typical SWA choices Quality goals Organizational goals Set of techniques for SWA Designing Building Evaluating Experience from SEI
11 Book Organization Envision Architecture 1. Architecture business cycle 2. What is SWA? 3. Case Study: A-7E Avionics System Creating an Architecture 4. Understanding Quality 5. Attributes 6. Achieving Qualities 7. Case Study: Air Traffic Control 8. Creating the Architecture 9. Case Study: Flight Simulation 10.Documenting SWAs 11.Reconstructing SWAs 12 Book Organization (2) Analyzing an Architecture 11.ATAM 12.CBAM 13.Case Study: WWW Moving from One System to Many 14.Product Lines 15.Case Study: Celsius Tech 16.Case Study: J2EE/EJB 17.Case Study: The Luther Architecture 18.Building System from Off-the-Shelf Components 19.SWA in the Future
13 About the papers/articles IEEE Recommended Practice for Architectural Description of Software-Intensive Systems: Describes the IEEE 1471 standard for how to document software architectures: The elements a well described software architecture documentation should contain, e.g. stakeholders, architectural drivers, architectural viewspoints and views etc. How the different elements should be related. The 4+1 View Model of Architecture Describes how we can model different views of a model of a software architecture: Logical view, physical view, process view, development view + use cases (user stories). 14 About the papers/articles (2) "Software Design Patterns: Common Questions and Answers : What are design patterns? Some example of design patterns? What are idioms? Etc. Using Post Mortem Analysis to Evaluate Software Architecture Student Projects : Describes the post mortem analysis process used in the course and results from this analysis.
15 Lecture Schedule Week Time Room Content 2 Mon 9. Jan 1015-1200 R3 Course introduction (chap 1) Fri 13. Jan 0915-1000 R3 What is software architecture? (chap 1,2) 3 Mon 16. Jan 1015-1200 R3 Understanding Quality Attributes (chap 4) Fri 20. Jan 0915-1000 H3 Understanding Quality Attributes cont. (chap 4) 4 Mon 23. Jan 1015-1200 S3 Achieving Qualities (chap 5) Thu 26. Jan 1515-1700 H3 Experiences from the IT-industry (Thunem) Fri 27. Jan 0915-1000 H3 Achieving Qualities cont. (chap 5) 5 Mon 30. Jan 1015-1200 S3 Arch./design patterns (Sørensen) Fri 3. Feb 0915-1000 H3 Arch./design patterns cont. 6 Mon 6. Feb 1015-1200 S3 Designing the architecture (chap 7) + IEEE 1471 Thu 9. Feb 1515-1700 H3 Architectural description, 4+1 view model Fri 10. Feb 0915-1000 H3 Architectural description, 4+1 view model 7 Mon 13. Feb 1015-1200 S3 The ATAM (chap 11) Fri 17. Feb 0915-1000 S3 The ATAM continue 16 Lecture Schedule (2) Week Time Room Content 8 Mon 20. Feb 1015-1200 S3 No lecture: Project work Fri 24. Feb 0915-1000 No lecture: Project work 9 No lecture / ATAM sessions (rooms reserved) 10 No lecture / ATAM sessions (rooms reserved) 11 Mon 13. Mar 1015-1200 S3 Reconstructing SWA (chap 10) + CBAM (chap 12) Fri 17. Mar 0915-1000 H3 Software product lines + Building COTS 12 Mon 20. Mar 1015-1200 S3 Structure and Performance (Brataas) Fri 24. Apr 0915-1000 H3 Structure and Performance (Brataas) 13 No lectures: Project work 14 No lectures: Project work 15 Easter holiday
17 Lecture Schedule (3) Week Time Room Content 16 Mon 17. Apr Easter holiday Fri 21. Apr No lecture: Project work 17 Mon 24. Apr 1015-1200 S3+? Post Mortem Analysis Fri 28. Apr No lecture 18 Mon 1. May No lecture: Labour day Thu 4. May 1515-1700 H3 Robot project workshop/presentation Fri 5. May No lecture 19 Mon 8. May 1015-1200 S3 Course summary 23 Wed 7. Jun 0900-1300? Final examination 18 Exercise / Project Schedule Week Time Content 2 Mon 9. Jan Start robot: Intro robot 5 Mon 30. Jan 23:57 Delivery: Intro robot Man 30. Jan Start exercise: Design pattern 6 Sun 12. Feb 22:55 Delivery: Design pattern exercise 7 Man 13. Feb Start robot: Requirements + Architecture design 8 Mon 20. Feb 23:56 Delivery: Requirements + Architecture design Tue 21. Feb Start robot: Evaluation (ATAM) 9 Mon 27. Feb Rooms reserved for ATAM session (S3+) Thu 2. Mar Rooms reserved for ATAM session (H3+) 11 Mon 13. Mar 23:54 Delivery: Evaluation (ATAM) Tue 14. Mar Start robot: Implementation 16 Fri 21. Apr 23:51 Delivery: Robot project report + implementation 18 Thu 28. Apr 16:00 Delivery: Post Mortem analysis report 19 Wed 3. May 16:00 Delivery: Project presentation
19 Robot Project A project to create a controller for a simulated robot Robot task is to collect balls in a maze and bring them to the light Project deliverables Intro exercise Requirements and design documents Architectural evaluation document Implementation document The robot PMA analysis Presentation of the project 20
21 Robot project (2) Evaluation Based on contents of the documents and robot performance Done after the final delivery for all documents Given as a score of up to 30 points Subtractions for Insufficient robot intro delivery Documents clearly below expected standard at original delivery 22 Intro Exercise 3 tasks Make the robot move around Pick up a ball Pick up another ball Why? Feedback from last two years Basic robot treatment a time sink Delivery Monday January 30st
23 Robot intro - Map 24
25 Remember to put your name on the group organising list! Send an email if you re not registered for the course in It s Learning!