
Software Engineering Course
Master the full discipline of software engineering, from requirements and design to testing, architecture, and delivery. This course gives you the structured knowledge and hands-on skills that professional engineers use every day. Whether you're leveling up your career or building a solid foundation, this is where rigorous engineering practice begins.
What you will learn:
You will learn how to gather and specify software requirements, design systems using proven patterns and SOLID principles, and document architectures with UML. The course covers the complete software development life cycle, including Agile frameworks, project planning, and risk management. You will develop testing skills across unit, integration, and system levels, and configure automated CI/CD pipelines. Topics also include secure coding practices, API design, data persistence strategies, and DevOps fundamentals. By the end, you will have the technical depth and professional skills to contribute effectively on real engineering teams.
How you study practically Software Engineering Course
How you practise Software Engineering Course
For companies looking to train their teams
With Dedika for businesses, the course includes exercises and examples tailored to your own business and the way your company needs.
Course content
8 Chapters • 40 LessonsDuration between 4 and 360 hours (you decide)
Chapter 1HideHide detailsSee detailsFoundations of Software Engineering
Foundations of Software Engineering
Lesson 1 • Professional and Ethical Responsibilities
Examines codes of conduct, intellectual property, and ethical decision-making in software work. Connects professional standards to real engineering choices.
Lesson 2 • Core Engineering Principles
Introduces abstraction, modularity, separation of concerns, and encapsulation. These principles underpin every design and architecture decision covered later.
Lesson 3 • Software Quality Attributes
Covers reliability, maintainability, scalability, and usability as measurable goals. Students learn to evaluate trade-offs among competing quality attributes.
Lesson 4 • What Is Software Engineering
Defines software engineering and distinguishes it from programming. Anchors the chapter by framing engineering rigour as essential to professional practice.
Lesson 5 • History and Evolution of the Field
Traces key milestones from early computing to modern practices. Provides context for why current methodologies exist and how they emerged.
Chapter 2HideHide detailsSee detailsSoftware Development Life Cycle Models
Software Development Life Cycle Models
Lesson 1 • Waterfall and Sequential Models
Analyses the waterfall model's phase-gate structure and its strengths in stable-requirements projects. Identifies limitations that motivated iterative alternatives.
Lesson 2 • Selecting the Right Model
Provides a decision framework based on project size, risk, and requirement stability. Students practise model selection through scenario analysis.
Lesson 3 • Iterative and Incremental Models
Covers spiral, incremental, and unified process models that deliver software in cycles. Students compare risk management strategies across these models.
Lesson 4 • Overview of SDLC Phases
Maps the standard phases from requirements through maintenance. Establishes a shared framework for all subsequent methodology comparisons.
Lesson 5 • Agile Frameworks in Practice
Introduces Scrum, Kanban, and Extreme Programming as agile implementations. Students map agile ceremonies and artifacts to SDLC phases.
Chapter 3HideHide detailsSee detailsRequirements Engineering
Requirements Engineering
Lesson 1 • Use Cases and User Stories
Introduces use case diagrams and narrative user stories as complementary specification tools. Students model system behaviour from an actor-centric perspective.
Lesson 2 • Functional and Non-Functional Requirements
Distinguishes behavioural requirements from quality constraints and system properties. Students write testable statements for both categories.
Lesson 3 • Requirements Validation and Management
Covers review techniques, prototyping validation, and change management processes. Students learn to handle evolving requirements without scope creep.
Lesson 4 • Requirements Specification Documents
Guides students in structuring formal specification documents with traceability matrices. Connects specification quality to downstream design and testing accuracy.
Lesson 5 • Elicitation Techniques
Covers interviews, workshops, observation, and prototyping as elicitation methods. Students practise selecting techniques based on stakeholder availability and domain complexity.
Chapter 4HideHide detailsSee detailsSoftware Design Principles and Patterns
Software Design Principles and Patterns
Lesson 1 • Structural and Behavioural Patterns
Introduces Adapter, Decorator, Observer, Strategy, and Command patterns. Students compose patterns to solve multi-concern design problems.
Lesson 2 • SOLID Design Principles
Teaches the five SOLID principles as guidelines for flexible, extensible code. Students refactor poorly designed examples to satisfy each principle.
Lesson 3 • Creational Design Patterns
Covers Singleton, Factory, Abstract Factory, Builder, and Prototype patterns. Students implement each pattern and identify appropriate use contexts.
Lesson 4 • Structured and Object-Oriented Design
Contrasts procedural decomposition with object-oriented design strategies. Students model systems using classes, responsibilities, and collaborations.
Lesson 5 • Design Documentation with UML
Uses class, sequence, and component diagrams to communicate design decisions. Students produce a complete UML design package for a given specification.
Chapter 5HideHide detailsSee detailsSoftware Architecture
Software Architecture
Lesson 1 • Architectural Evaluation and Trade-offs
Applies structured evaluation methods to compare candidate architectures against quality attributes. Students conduct a scenario-based architecture review.
Lesson 2 • Architectural Thinking and Views
Introduces the concept of architectural views and stakeholder-driven documentation. Students distinguish logical, process, physical, and development views.
Lesson 3 • Event-Driven and Reactive Architectures
Introduces message brokers, event sourcing, and CQRS as patterns for asynchronous systems. Students model event flows for high-throughput scenarios.
Lesson 4 • Layered and Client-Server Architectures
Analyses layered architecture and client-server patterns as foundational styles. Students evaluate their suitability for enterprise and web applications.
Lesson 5 • Microservices and Service-Oriented Architecture
Covers service decomposition, API contracts, and inter-service communication strategies. Students compare monolithic and microservices trade-offs for scalability.
Chapter 6HideHide detailsSee detailsSoftware Construction and Code Quality
Software Construction and Code Quality
Lesson 1 • Refactoring Techniques
Introduces systematic refactoring moves such as extract method, rename, and replace conditional. Students apply refactoring safely using automated test coverage.
Lesson 2 • Coding Standards and Conventions
Establishes naming, formatting, and commenting conventions as team-level agreements. Students audit existing code against a defined standard and produce corrections.
Lesson 3 • Clean Code Principles
Covers meaningful names, small functions, and minimal side effects as clean code tenets. Students rewrite complex functions to satisfy readability criteria.
Lesson 4 • Technical Debt Management
Defines technical debt, its causes, and strategies for controlled repayment. Students assess a codebase, quantify debt, and propose a remediation plan.
Lesson 5 • Static Analysis and Code Review
Covers static analysis tools and structured peer review processes for defect prevention. Students conduct a formal code review using a checklist-based approach.
Chapter 7HideHide detailsSee detailsSoftware Testing and Quality Assurance
Software Testing and Quality Assurance
Lesson 1 • Test Automation and Continuous Testing
Introduces automation frameworks, test pyramid strategy, and CI pipeline integration. Students configure an automated test suite that runs on every code commit.
Lesson 2 • Black-Box and White-Box Techniques
Teaches equivalence partitioning, boundary analysis, and path coverage as complementary techniques. Students derive test cases from both specification and code structure.
Lesson 3 • System and Acceptance Testing
Covers end-to-end system testing, regression suites, and user acceptance testing processes. Students design a system test plan aligned with requirements.
Lesson 4 • Unit and Integration Testing
Covers test-driven development, mock objects, and integration test strategies. Students write unit tests and integration tests for a provided module set.
Lesson 5 • Testing Fundamentals and Terminology
Defines verification, validation, faults, failures, and test oracle concepts. Establishes a shared vocabulary for all subsequent testing techniques.
Chapter 8HideHide detailsSee detailsSoftware Project Management and Delivery
Software Project Management and Delivery
Lesson 1 • Project Planning and Scope Management
Covers work breakdown structures, milestone definition, and scope baseline creation. Students decompose a project into manageable tasks with clear deliverables.
Lesson 2 • Release Planning and Delivery Metrics
Introduces release train planning, velocity tracking, and delivery health metrics. Students interpret burndown charts and adjust plans based on real data.
Lesson 3 • Effort Estimation Techniques
Introduces function point analysis, story points, and expert judgement as estimation methods. Students calibrate estimates using historical velocity data.
Lesson 4 • Risk Management in Software Projects
Teaches risk identification, probability-impact assessment, and mitigation strategy selection. Students build a risk register and response plan for a sample project.
Lesson 5 • Team Dynamics and Communication
Covers team formation models, communication channels, and conflict resolution strategies. Students apply communication planning to a distributed team scenario.
Your valid completion certificate
This course is for you:
Junior developer: wants to grow beyond writing code into structured engineering practice.
Computer science graduate: needs real-world methodology to complement academic theory.
Self-taught programmer: lacks formal engineering training but has hands-on coding experience.
QA engineer: aims to deepen understanding of the full development and delivery process.
Technical project manager: seeks engineering fluency to collaborate more effectively with developers.
Career changer: brings domain expertise and now wants to formalise software engineering skills.
What our students say
Your lessons are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of my interest without needing to change platforms... I thank you for everything you do, I've already recommended you to other people...

I like how the lessons are straight to the point and how I can change chapters and skip content I don't need.

I like the content and the way videos are presented and transcribed, which speeds up the process!

The platform is fast, simple to use. The diversity of content and complementary videos help a lot with learning.

Top training programmes
FAQ
Who is Dedika?
Is the certificate valid in Kenya?
Are the courses free?
What is the course workload?
What are the courses like?
How do the courses work?
What is the duration of the courses?
What is the cost or price of the courses?
What is an EAD or online course and how does it work?
PDF Course




















