Fatima Jinnah Women University, Rawalpindi
Department of Software Engineering
Course Title: Credit Hours:
Software Design and Architecture 03
COURSE OBJECTIVES: An in-depth look at software design. Continuation of the study of design patterns, frameworks, and architectures. Survey of current middleware architectures. Design of distributed systems using middleware. Component based design. Measurement theory and appropriate use of metrics in design. Designing for qualities such as performance, safety, security, reusability, reliability, etc. Measuring internal qualities and complexity of software. Evaluation and evolution of designs. Basics of software evolution, reengineering, and reverse engineering.
Upon completion of this course, students will have the ability to: y Apply a wide variety of design patterns, frameworks, and architectures in designing a wide variety of software y y Design and implement software using several different middleware technologies Use sound quality metrics as objectives for designs, and then measure and assess designs to ensure the objectives have been met y y Modify designs using sound change control approaches Use reverse engineering techniques to recapture the design of software
COURSE OUTLINE: Weeks Week 1 Lecture 1: Introduction Putting Software Architecture in Context, Software Architecture as a Design Plan, and Software Architecture as an Abstraction. Lecture 2: Introduction Software Architecture Terminology, Four Views of Software Architecture. Lecture 3: Introduction Loose coupling between Views, Engineering concerns addressed by different views, Using the four Views. Week 2 Lecture 4: Global Analysis Overview of Global Analysis Activities. Analyze Factors. Develop Strategies. Lecture 5: Global Analysis Analyze Organizational Factors. Begin Developing Strategies. Lecture 6: Global Analysis Analyze Technological Factors. Continue Developing Strategies. Analyze Product Factors. Continue Developing Strategies. Week 3 Lecture 7: Conceptual Architecture View Design Activities for the Conceptual Architecture View. Central Design Tasks: Components, Connectors, and Configuration. Lecture 8: Conceptual Architecture View Final Design Task: Resource Budgeting, Traceability, Uses for the Conceptual Architecture View. Lecture 9: Module Architecture View Design Activities for the Module Architecture View. Central Design Tasks: Modularization and Layering. Week 4 Lecture 10: Mid-Term Exam (90 Minutes) Module Architecture View Final Design Task: Interface Design, Traceability, Uses for the Module Architecture View. Lecture 11: Execution Architecture View Design Activities for the Execution Architecture View. Central Design Tasks: Runtime Entities, Communication Paths, and Configuration. Lecture 12: Execution Architecture View Topics
Final Design Task: Resource Allocation, Traceability, Uses for the Execution Architecture View. Week 5 Lecture 13: Code Architecture View Design Activities for the Code Architecture View. Central Design Tasks. Lecture 14: Code Architecture View Final Design Tasks, Traceability. Lecture 15: Code Architecture View Uses for the Code Architecture View. Week 6 Lecture 16: Role of Architect The Architect as a Key Technical Consultant, The Architect Makes Decisions, The Architect Coaches. Lecture 17: Role of Architect The Architect Coordinates, The Architect Implements, The Architect Advocates. Lecture 18: Role of Architect Software Architecture as a Career Week 7 Final Examination