Group Learning

Software Engineering

Getting Started as a Software Engineer. Master techniques and skills to plan, design, implement, test, and maintain software systems.

Intermediate Level
2 months to complete at 10 hours a week
Flexible Schedule

Kenneth W T Leung

What You’ll Learn

The principal tasks of software project managers.Software Engineering skill and techniques being used in Software Development Life Cycle (SDLC).

Skills You’ll Gain

Software Design Patterns Software Testing Software Architecture Software Engineering Requirements Analysis Software Quality Assurance Software Development Life Cycle Process Driven Development Quality Assurance Object Oriented Design Systems Analysis Acceptance Testing

Shareable Certificate

Earn a shareable certificate to add to your LinkedIn profile..

Develop Your Specialized Knowledge

Learn in-demand skills from university and industry experts

Master a subject or tool with hands-on projects

Develop a deep understanding of key concepts

Earn a career certificate from The Hong Kong University of Science and Technology

3 courses series

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 requirement analysis phase of SDLC, and you will learn how to use UML models to capture the system requirements and to facilitate communication between client/users and developers. UML is a general purpose visual modeling language for systems. It can be used to highlight different aspects of the system that are of interest to different stakeholders. Data requirements are captured in the domain model, which describes the important concepts of the application domain as classes, associations between them and constraints on them. Functional requirements are captured in the use-case model to describe the interactions between the system and its environment (users, other systems).UML incorporates the current best practices in Object-Oriented modeling techniques. Basic object-oriented programming (OOP) concepts are required to attempt the course. It is recommended to take the courses in the order they are listed, as they progressively develop techniques and concepts about software engineering, but it is not a hard requirement.

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 implementation and testing phases of SDLC, and you will examine different software development processes for large software systems development, and understand the strengths (pros) and weaknesses (cons) of different software development processes. You will also encounter defensive programming techniques to prevent software bugs during implementation, and learn how to test your system thoroughly using different types of test cases.Basic object-oriented programming (OOP) concepts are required for topics covered in defensive programming and object-oriented testing. Implementation 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.

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.

Learner Testimonials

User

To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood.

Felipe M.
Learner since 2018
User

I directly applied the concepts and skills I learned from my courses to an exciting new project at work.

Jennifer J.
Learner since 2020
User

When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go.

Larry W.
Learner since 2021
User

Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits.

Chaitanya A.
Learner since 2022