Page 1 of 5 Philadelphia University Faculty of Information Technology Department of Software Engineering Fist Semester, 2010/2011 Course Syllabus Course Title: Software Architecture Course code: 721320 Course prerequisite (s) and/or corequisite (s): Course Level: 3 721222 Lecture Time:10:10-11:00 Credit hours: 3 Academic Staff Specifics Name Dr. Moayad A. Fahdil Rank Associated Prof. Office Number and Location IT Faculty-313 Office Hours 14:00-16:00 Sunday/Tuesday/Thursday E-mail Address mathami@philadelphia.edu.jo Course module description: Successful design of complex software systems requires the ability to describe, evaluate, and create systems at an architectural level of abstraction. This course introduces architectural design of complex software systems. The course considers commonly-used software system structures, techniques for designing and implementing these structures, models and formal notations for characterizing and reasoning about architectures, tools for generating specific instances of an architecture, and case studies of actual system architectures. It teaches the skills and background you need to evaluate the architectures of existing systems and to design new systems in principled ways using well-founded architectural paradigms. Course module objectives: Successful completion of this course will provide you with the knowledge and skills to 1. Understand the influence of architectural drivers on software structures. Page 2 of 5 2. Understand the technical, organizational, and business role of software architecture. 3. Recognize major architectural structures (styles, patterns, tactics, etc.). 4. Generate architectural alternatives for a problem and choose among them. 5. Understand the principles of good architectural documentation. 6. Understand the affect of COTS on architectural designs. 7. Understand how formal notations can be used to specify architectures. 8. Evaluate the fitness of an architectural design in meeting a set of system requirements and balancing quality trade-offs. 9. Be aware of future trends in software architecture. Course/ module components Books (title , author (s), publisher, year of publication) 1. Title: The Unified Software development process Author(s)/Editor(s): Jacbson, Booch and Rumbaugh Publisher: Addison Wesley, 2003 2. Title: Software Architecture in practice Author(s)/Editor(s): Len Bass, Paul Clements and Rick Kazman Publisher: Addison-Weslt, 2007 2. Title: Software engineering 7/e Author(s)/Editor(s): I. Sommerville Publisher: Addison Wesley, 2004 3. Title: The Unified Modeling Language User Guide Author(s)/Editor(s): Grady Booch, James Rumbaugh, Ivar Jacobson Publisher: Addison Wesley, 1999 4. Title: Object-Oriented Analysis and Design Author(s)/Editor(s): Grady Booch Publisher: Addison Wesley, 2002 Support material (s) (vcs, acs, etc). Study guide (s) (if applicable) Homework and laboratory guide (s) if (applicable). Teaching methods: Duration: 15 weeks, 45 hours in total Lectures: 35 hours, Tutorial: 8 hours Exams (first and second): 2 hours Learning outcomes: Knowledge and understanding 1) The system development lifecycle; 2) A wide range of principles and tools available to the software developer, such as software process methodologies, choice of algorithm, language, software libraries and user interface technique; 3) The principles of object-oriented software construction; Page 3 of 5 Cognitive skills (thinking and analysis). 1) Design and plan software solutions to problems using an object-oriented strategy. 2) Identify a range of solutions and critically evaluate and justify proposed design solutions. Communication skills (personal and academic). 1) Develop software applications in a development environment that makes use of commonly supported tools. 2) Identify some of the main risks of software development and use. Practical and subject specific skills (Transferable Skills). 1) Effectively participate in team-based activities. 2) Structure and communicate ideas effectively, both orally, in writing, and in cases involving a quantitative dimension. 3) Use IT skills and display mature computer literacy. 4) Work independently and with others. Assessment instruments Short reports and/ or presentations, and/ or Short research projects Quizzes. Home works Final examination: 50 marks Allocation of Marks Assessment Instruments Mark First examination 15 marks Second examination 15 marks Final examination: 50 marks Reports, research projects, Quizzes, Home 20 marks works, Projects Total Documentation and academic honesty Documentation style (with illustrative examples) Protection by copyright Avoiding plagiarism. 100 marks Page 4 of 5 Course/module academic calendar week (1) (2) (3) (4) (5) Basic and support material to be covered - Course Introduction - The Big Idea - Architecture in Context - Basic Concepts - Introduction to Design - Architecture Styles - Layered Architecture - Styles and Greenfield Design - Software Connectors - Software Connecters in Practice - Connector Selection - Introduction to Modeling (6) - Modeling and Notations First examination -Visualizing Software Architectures (7) - Introduction to the Analysis of Software Architectures - Analysis Techniques (8) - Implementing Architectures (9) - Implementing Techniques - Implementing Techniques (10) - Architectural Middleware - Project Introduction (11) - Deployment and Mobility Second examination - Applied Architectures (12) - Designing of NFP - Security and Trust (13) -Architectural Adaptation - Domain Specific Software Engineering (14) - (15) - Overview of Standards -Specimen - People, Roles and Teams examination (Optional) (16) Final Examination Homework/reports and their due dates First Homework Second Homework Third Homework Page 5 of 5 Expected workload: On average students need to spend 2 hours of study and preparation for each 50-minute lecture/tutorial. Attendance policy: Absence from lectures and/or tutorials shall not exceed 15%. Students who exceed the 15% limit without a medical or emergency excuse acceptable to and approved by the Dean of the relevant college/faculty shall not be allowed to take the final examination and shall receive a mark of zero for the course. If the excuse is approved by the Dean, the student shall be considered to have withdrawn from the course. Module references Books Title: Software Architecture: Foundations, Theory, and Practice Author(s)/Editor(s): R. N. Taylor, N. Medvidovic, and E. M. Dashofy Publisher: John Wiley & Sons, 2010. ISBN-10: 0470167742 ISBN-13: 978-0470167748 Title: Object-Oriented Software Engineering: Using UML, Patterns, and Java Author(s)/Editor(s): Bernd Bruegge, Allen Dutoit Publisher: Prentice Hall, 2003 Title: Modern Systems Analysis and Design Author(s)/Editor(s): J. Hoffer, and J. Valacich, Publisher: Prentice Hall Journals Websites www.isr.uci.edu/projects/archstudio/.