Software Engineering: Software Design and Project Management
The Hong Kong University of Science and Technology via Coursera
-
391
-
- Write review
Overview
Software Development Life Cycle (SDLC) is the process of developing software through planning, requirement analysis, design, implementation, testing, and maintenance. This course focuses on the project planning and analysis/design phases of SDLC, and you will learn about different architectural patterns and design patterns to solve common problems in software design. It covers project planning, scheduling, and cost estimating, which are the principal tasks of software project managers.
Basic object-oriented programming (OOP) concepts are required to understand different design patterns covered in this course. System design is driven by the UML models derived from requirement analysis. It is recommended to take the course "Software Engineering: Modeling Software Systems using UML" before attempting this course, but it is not a hard requirement.
Syllabus
- System Analysis and Design
- Welcome to the first module of this course! In this module, you will learn: (1) The purpose and importance of system analysis and design. (2) The major activities that take place during system analysis and design. (3) How to realize design goals and deal with the implementation environment. (4) What are architectural patterns and design patterns and when to use them.
- State Machine Diagram
- In this module, you will learn: (1) How to use a state machine diagram to describe the behavior inside an object.
- Design Patterns
- In this module, you will learn: (1) A design pattern is a general reusable solution to a commonly occurring problem in software design. (2) Strategy Pattern. (3) Observer Pattern.
- More Design Patterns
- In this module, you will learn: (1) Mediator Pattern. (2) Proxy Pattern. (3) Bridge Pattern. (4) Singleton Pattern. (5) Factory Pattern. (6) When to use design patterns. (7) Anti Patterns.
- Software Quality Assurance
- In this module, you will learn: (1) The quality assurance process and the central process activities of quality assurance, quality planning and quality control. (2) The quality assurance process and the central process activities of quality assurance, quality planning and quality control. (3) The principles of software development process improvement and why process improvement is worthwhile.
- Managing Software Development
- In this module, you will learn: (1) The principal tasks of software project managers. (2) The need of project planning in all software projects. (3) Requirements for staffing and scheduling in software projects. (4) Techniques for estimating the size and cost of software development. (5) Project tracking and control.
Taught by
Kenneth W T Leung