Nominal duration: Self-paced Learning – Approximate Time: 8 hours
Professional Development Hours (PDH) : 8
Continuing Education Credits (CEU) : 0.8
Learning Objectives: Learning objectives for the Software Design Review Course.
1. Outline the software design process, and demonstrate how the essential design principles are applied within it.
2. Apply the concepts of concurrency, data persistence, error handling and security to a typical software design project.
3. Illustrate the essential elements of software structure and architecture in terms of styles, patterns and families of programs and frameworks.
4. Explain the application of user interface design to a software development project, including essential principles, interaction modalities, information presentation and the UI design process.
5. Demonstrate the application of quality analysis and evaluation principles, including quality attributes, analysis and evaluation techniques, and quality measures.
6. Explain through example the concept of design notations in terms of structure and behavioral descriptions.
7. Employ function, object, data-structure and component-based design methodologies in a typical software design project.
1. Software Design Fundamentals
1.1. General design concepts
1.2. Context of software design
1.3. Software design process
1.4. Software design principles
2. Key Issues in Software Design
2.2. Control and handling of events
2.3. Data persistence
2.4. Distribution of components
2.5. Error exception handling and fault tolerance
2.6. Interaction and presentation
3. Software Structure and Architecture
3.1. Architectural structures and viewpoints
3.2. Architectural styles
3.3. Design patterns
3.4. Architecture design decisions
3.5. Families of programs and frameworks
4. User Interface Design
4.1. General user interface design principles
4.2. User interface design issues
4.3. Design of user interaction modalities
4.4. Design of information presentation
4.5. User interface design process
4.6. Localization and internationalization
4.7. Metaphors and conceptual models
5. Software Design Quality Analysis and Evaluation
5.1. Quality attributes
5.2. Quality analysis and evaluation techniques
6. Software Design Notations
6.1. Structural descriptions (static view)
6.2. Behavioral descriptions (dynamic view)
7. Software Design Strategies and Methods
7.1. General strategies
7.2. Function-oriented (structured) design
7.3. Object-oriented design
7.4. Data structure-oriented design
7.5. Component-based design
7.6. Other methods
8. Software Design Tools