tailieunhanh - Lecture Software design and architecture – Chapter 1

The first lecture includes an introduction to Software Design and Architecture. The objectives of the course are: To be introduced to principles of good design, and techniques for the evaluation of software design quality, to cover the principal architectural issues associated with the design and construction of software systems including architectural design and documentation, component models and technologies, and frameworks, to introduce the students to a number of design patterns and their applications. | CSE 303 – Software Design and Architecture Introduction Objective To be introduced to principles of good design, and techniques for the evaluation of software design quality. To cover the principal architectural issues associated with the design and construction of software systems including architectural design and documentation, component models and technologies, and frameworks. To introduce the students to a number of design patterns and their applications. Course Contents The course is divided into two major modules The first module covers the introduction to software design and provides details of software architecture and architectural styles. The second module covers the detailed design phase with introduction to Object Oriented Design and various design patterns. Course Contents Topics 1 Introduction Software design and architecture 2 Principles of good software design. Correctness and Robustness Flexibility, reusability and efficiency 3 Introduction to software architecture 4 | CSE 303 – Software Design and Architecture Introduction Objective To be introduced to principles of good design, and techniques for the evaluation of software design quality. To cover the principal architectural issues associated with the design and construction of software systems including architectural design and documentation, component models and technologies, and frameworks. To introduce the students to a number of design patterns and their applications. Course Contents The course is divided into two major modules The first module covers the introduction to software design and provides details of software architecture and architectural styles. The second module covers the detailed design phase with introduction to Object Oriented Design and various design patterns. Course Contents Topics 1 Introduction Software design and architecture 2 Principles of good software design. Correctness and Robustness Flexibility, reusability and efficiency 3 Introduction to software architecture 4 Software architectural design Software architectural attributes Attribute types Trade-off of attributes and choices 5 Software Architectural Styles Data flow architctures Layered Event-based Data-centered MVC Multi-tier distributed Service Oriented Topics 6 ANALYSIS PHASE (OBJECT ORIENTED DESIGN) Functional Modeling Activity Diagrams Use case diagrams 7 ANALYSIS PHASE (OBJECT ORIENTED DESIGN) Structural Modeling Classes, Attributes, and Operations, Relationships CRC Cards Class Diagrams 8 ANALYSIS PHASE (OBJECT ORIENTED DESIGN) Behavioural Modeling Objects, operations, and messages Sequence Diagrams Behavioural State Machines – States, Events, Transitions, Actions, and Activities 9 DESIGN PHASE (OBJECT ORIENTED DESIGN) Evolving the analysis models into design models Topics 10 Introduction to Components and Component Oriented Design 11 Pattern oriented Design Creational patterns Structural patterns Behavioral pattern Assessment Criteria The course shall be comprised of various .