Software Design Course
SWEBOK KNOWLEDGE AREA REVIEW COURSES

Course Description:
Software design is both the process of defining the architecture, components, interfaces and other characteristics of a system, and the result of that process. Essentially, software design is the software life cycle activity in which parameters outlined and defined in the Requirements process are translated into a description of a software system’s internal structure that can be used as a basis for construction. This course begins with design fundamentals, including concepts, context and processes. It then progresses through key design issues; structure and architecture; user interface design; design quality analysis and evaluation; notations; strategies and design tools, all within the context of real-world challenges.

Format: Asynchronous
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.

Course Modules:
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.1. Concurrency
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
2.7. Security
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
5.3. Measures
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
Purchase Options
Student
Course $125
Member
Course $125
Non-Member
Course $155

Members Save!

Join the Computer Society to take advantage of member pricing.