Software Architectures and Risk Assessment course syllabus Sudan University of Science and Technology College of Graduate Studies - College of Computer Science and Information Technology PhD Program September 1 – December 21, 2013. Instructor: Prof. Hany Ammar, Computer Science and Electrical Engineering department, College of Engineering and Mineral Resources, West Virginia University, USA, email: ammar.hany@gmail.com References: 1. Bass, L.; Clements, P.; & Kazman, R. Software Architecture in Practice, 3rd Edition. Boston, MA: Addison-Wesley, 2012. 2. Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures, Hassan Gomaa, Cambridge University Press; 1 edition , 2011. 3. Software Architecture Foundations, Theory, and Practice, by R. Taylor, N. Medvidovic, E. Dashofy, Wiley, 2010. 4. The CMU Software Engineering Institute, Software architecture reports, http://www.sei.cmu.edu/library/reportspapers.cfm 5. Clements, P.; Kazman, R.; & Klein, M. Evaluating Software Architectures: Methods and Case Studies. Boston, MA: AddisonWesley, 2002. 6. Recommended Practice for Architectural Description of SoftwareIntensive System, ANSI/IEEE Std 1471 :: ISO/IEC 42010, http://www.iso-architecture.org/ieee-1471/ Course Description: This course is focusing on software architectures. The course starts by introducing the concepts of software architectures followed by lectures on software architecture standards, modeling, design, and analysis techniques of software architectures. The course then introduces the concepts of product-line architectures and techniques for software architectures evaluation. A course project and an examination as well as quizzes will be used to assess the students learning process. Goals: The learning outcomes of this course are listed as follows: After finishing this course, the student should be able to: 1. Specify the basic elements and justify the need of software architectures in 2. 3. 4. 5. the software development process. Specify the major tasks of software architecture development process based established software architecture standards. Use architecture styles and patterns to develop quality software architectures following a systematic development process. Apply techniques and tools for software architecture evaluation and risk assessment. Identify new research areas in software architectures Topics: 1. 2. 3. 4. 5. 6. 7. 8. 9. Research Writing and Presentation Introduction to Software Architecture: Principles and Practices Software Architecture Standards Modeling and Documenting Software Architectures Software Architecture Styles The Layered Software Application Architecture Style Software Architecture Design and Analysis Software Product Lines Architectures Software Architecture Evaluation and Risk Assessment Lectures 1 1 1 1 2 2 1 1 3