YoVDO

Software Engineering: Software Design and Project Management

Offered By: The Hong Kong University of Science and Technology via Coursera

Tags

Software Development Courses Project Management Courses Object-oriented programming Courses Software Design Courses System Analysis Courses Software Quality Assurance Courses Design Patterns Courses Software Development Life Cycle Courses Architectural Patterns Courses

Course Description

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

Tags

Related Courses

Algorithms and Data Structures Capstone
University of California, San Diego via edX
System Validation: Automata and behavioural equivalences
EIT Digital via Coursera
Software Design Principles
Codecademy
Foundations of Data Structures
Indian Institute of Technology Bombay via edX
DiseƱo de software para la toma de decisiones organizacionales
Universidad del Rosario via edX