Architecture and Design: Core + Advanced Training Training Course
In this instructor-led, live training, participants will learn the foundational and advanced concepts of software architecture and design as they step through a series of hands-on live-lab exercises and discussions.
Audience
- Software professionals
- Software designers
- Developers
Format of the Course
- Part lecture, part discussion, exercises and heavy hands-on practice
Note
- To request a customized training for this course, please contact us to arrange.
Course Outline
Architecture and Design –Core Training -- 3 days
Introduction to Software Architecture and Design principles
Software Architecture Techniques
Security Architecture
Integration Architecture
Architecture Project – Group Assignment
Architecture and Design – Advance Training -- 3 days
Large Scale Software Design
Design for Serviceability
Role of modeling in architecture
Architecture Quality management
Enterprise Architecture
Cloud Architectures
Big Data Overview
Mobile and Social Networking
Latest trends in Microservices and API
Case Study
Summary and Conclusion
Requirements
- Software development experience
Need help picking the right course?
southafrica@nobleprog.co.za or +27 (0)10 005 5793
Architecture and Design: Core + Advanced Training Training Course - Enquiry
Testimonials (1)
I liked the exercises that helped to open the mind and gain new insights into software architecture.
Gabriele - EAGLEPROJECTS S.p.A.
Course - Architecture and Design: Core + Advanced Training
Related Courses
Creative Problem Solving with Gamification Techniques (Design Thinking)
14 HoursThis instructor-led, live training in Botswana (online or onsite) is aimed at beginner-level to intermediate-level participants who wish to solve everyday workplace challenges through gamification techniques.
By the end of this training, participants will be able to:
- Understand the principles of Design Thinking and its application to problem-solving.
- Incorporate gamification techniques to foster engagement and innovation.
- Develop creative and practical solutions to common workplace issues.
- Collaborate effectively across teams to implement problem-solving strategies.
- Apply iterative approaches to refine solutions through feedback and experimentation.
Domain Driven Design: Concepts and Practices
21 HoursThis instructor-led live training in Botswana (online or on-site) is aimed at intermediate-level developers, architects, and analysts who wish to learn and apply DDD concepts and practices to their software projects.
By the end of this training, participants will be able to:
- Grasp core DDD concepts (bounded contexts, entities, etc.) and their application in software projects.
- Apply strategic DDD to define and design the domain model, identify subdomains, and establish boundaries.
- Implement tactical DDD using patterns such as CQRS, factories, and event sourcing.
- Refactor and modernize legacy systems effectively with DDD techniques.
- Design and implement product, domain, and team-oriented architectures.
- Utilize data mesh to create a domain-oriented data platform supporting data discovery and governance.
Introduction to Domain Driven Design
14 HoursDomain-Driven Design (DDD) is a robust software development methodology that emphasizes modelling intricate business behaviours by harmonising technical execution with fundamental business principles. This course examines how DDD assists teams in managing complexity and mitigating risk via strategic and tactical patterns. Participants will acquire the skills to establish a "Ubiquitous Language," delineate precise boundaries using Bounded Contexts, and apply specific structural elements such as Entities, Value Objects, and Aggregates. The objective is to construct adaptable and maintainable software architectures that stay aligned with the dynamic business domain.
Domain-Driven Design: Concepts and Practices for Senior Developers
21 HoursDomain-Driven Design (DDD) is a software development methodology that prioritises building systems around the business domain, leveraging a shared ubiquitous language alongside tactical and strategic modelling techniques.
This instructor-led live training, available either online or on-site, targets advanced senior developers who aim to apply DDD principles to construct robust, maintainable, and scalable systems.
Upon completion of this training, participants will be able to:
- Identify and model core domain concepts using ubiquitous language and bounded contexts.
- Apply tactical DDD patterns such as entities, value objects, aggregates, repositories, and domain services.
- Design context maps and strategic boundaries to manage complexity across microservices and teams.
- Integrate DDD practices into Agile teams and CI/CD workflows to improve collaboration and delivery.
Format of the Course
- Interactive lecture and discussion.
- Plenty of exercises and practice.
- Hands-on implementation in a live-lab environment.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
Design Patterns
14 HoursThere is a wealth of proven patterns readily accessible for everyone. Often, the challenge lies in adapting the nomenclature and implementing the pattern within a specific technology. This approach can save hundreds of hours that would otherwise be consumed by design and testing efforts. Training Objectives This course has two primary objectives: first, it enables you to reuse widely-recognised patterns, and second, it empowers you to create and reuse patterns tailored to your organisation. It assists you in estimating how patterns can reduce costs, systematise the design process, and generate a code framework based on your patterns. Audience Software designers, business analysts, project managers, programmers, developers, operational managers, and software division managers. Course Approach The course focuses on use cases and their relationship with a specific pattern. Most examples are explained in UML and in simple Java examples (the language can change if the course is booked as a closed course). It guides you through the sources of the patterns as well as showing you how to catalogue and describe patterns which can be reused across your organisation.
Design Thinking: Empathize with Internal Clients
7 HoursDesign Thinking is a human-centred approach to problem-solving that relies on empathy, definition, ideation, prototyping, and testing. This course places particular emphasis on the Empathize stage, focusing on linking previously identified pain points to the actual needs of internal clients. It utilizes dynamic and collaborative activities to convert insights into tangible results.
This instructor-led, live training (available online or on-site) is designed for beginner to intermediate teams and leaders who wish to enhance their empathy skills, strengthen relationships with internal clients, and transform pain points into meaningful opportunities for improvement.
By the end of this training, participants will be able to:
- Apply empathy-based techniques to uncover and validate client needs.
- Translate mapped pain points into clear, actionable needs.
- Engage in dynamic role plays and simulations to practice client-centered conversations.
- Collaboratively redefine problem statements from the client’s perspective.
Course Format
- Interactive lectures and guided discussions.
- Dynamic, hands-on role plays and empathy exercises.
- Group workshops for collaborative problem reframing.
Course Customization Options
- To request a customized version tailored to a specific internal process (e.g., procurement or equipment provisioning), please contact us to arrange.
Design Thinking: Empathize & Define for Internal Clients
7 HoursDesign Thinking is a human-centered methodology for solving problems through empathy, definition, ideation, prototyping and testing. Focusing on the first two stages — Empathize and Define — helps teams better understand internal clients and define the right problems to solve.
This instructor-led, live training (online or onsite) is aimed at beginner-level to intermediate-level teams and leaders who wish to strengthen their connection with internal clients, reduce resistance to change, and improve operational efficiency through practical, collaborative methods.
By the end of this training, participants will be able to:
- Use active listening and interviewing techniques to gather meaningful insights about internal clients.
- Create empathy maps and capture user needs and pain points.
- Differentiate real root problems from perceived issues using tools like the 5 Whys and problem trees.
- Draft clear, actionable problem statements (POVs) that guide solution work.
Format of the Course
- Interactive lecture and discussion.
- Practical, hands-on exercises and role-plays.
- Group workshops and plenary feedback sessions.
Course Customization Options
- To request a customized version tailored to a specific internal process (e.g., procurement or equipment provisioning), please contact us to arrange.
Design Thinking Workshop for Software Developers
14 HoursIn this instructor-led, live workshop training in Botswana (online or onsite), participants will learn how to apply the five stages of Design Thinking to gain a deeper understanding of the problems experienced by end-users of a product or service, and subsequently develop the most effective approach for resolving them.
By the end of this training, participants will be able to:
- Utilise creative strategies to align customers' needs with technologically feasible solutions.
- Formulate a strategy to increase customer value and enhance product and service offerings.
Design Thinking: Innovation Methodologies
24 HoursThis guided live training in Botswana (online or in-person) targets beginner to intermediate level professionals who wish to understand and apply Design Thinking methodologies to drive innovation and improve business solutions.
By the end of this training, participants will be able to:
- Understand the core principles of Design Thinking and its role in innovation.
- Apply the five phases of Design Thinking to problem-solving.
- Utilize ideation techniques and tools to foster creativity.
- Implement Design Thinking strategies to improve processes and enhance efficiency.
Innovative Leadership through Design Thinking
14 HoursThis instructor-led, live training in Botswana (online or on-site) is designed for entry-level leaders and HR professionals who aim to learn and apply Design Thinking methodologies to nurture innovation, improve problem-solving skills, and engage teams effectively.
By the conclusion of this training, participants will be able to:
- Equip participants with tools and methodologies to foster innovation and team engagement.
- Develop skills in empathy mapping, ideation, and prototyping for solving complex challenges.
- Apply Design Thinking principles to leadership and HR scenarios.
- Promote a culture of innovation within tech teams.
Design Thinking: Innovation & Creative Problem Solving
4 HoursOverview:
The Design Thinking (DT) methodology comprises five distinct stages: empathise, define the problem, ideate, prototype, and test.
In today's increasingly complex environment, we encounter challenges that often demand unconventional approaches. Design Thinking provides a structured framework for tackling these complex issues. By mastering design thinking, individuals can address complicated problems with greater effectiveness, improve communication, enhance persuasion skills, drive better business outcomes, and elevate both organisational and personal performance and behaviour.
- How DT functions: learning from users and the problem context, identifying patterns, developing a design model (accommodating model drift), testing the model, evaluating its efficacy, and re-engineering as necessary.
- The interplay between DT, innovation, and entrepreneurship.
- DT methods and tools: personas, stakeholder maps, customer journey maps, service blueprints, and business model innovation.
- Application of DT: cultivating a design mindset, driving disruptive innovation, applying iterative approaches, utilising agile estimation techniques, enhancing critical thinking, problem solving, teamwork, leadership readiness, communication skills, technological fluency, forward-thinking, intercultural and ethical competency, emotional intelligence, self-awareness, negotiating skills, and conflict resolution.
Objectives:
- To comprehend the fundamentals and nuances of DT.
- To explore key concepts, factors, theories, types, and models within DT.
- To experiment with, experience, and practice DT.
Delivery:
This is a one-day (4-hour) training course, structured as follows:
- Lectures (40% - presentation of theories, concepts, models, and interactions),
- Group exercises (30% - group dynamics, games, group discussion, and mock conflict resolution exercises),
- Individual activities (15% - writing, designing, and peer discussion)
- Other materials (15% - videos, reading).
Note: Due to the interactive nature of this course, a minimum group size of 3 participants is required.
Design Patterns (GoF) for Java
21 HoursThis instructor-led live training in Botswana (online or onsite) is aimed at intermediate-level Java developers who wish to apply design patterns to improve software structure, maintainability, and scalability.
By the end of this training, participants will be able to:
- Understand the purpose and benefits of design patterns.
- Apply Creational, Structural, and Behavioral patterns effectively in Java.
- Improve code reusability, scalability, and maintainability.
- Refactor existing codebases using design patterns.
Design Patterns in PHP
14 HoursThis instructor-led live training in Botswana (online or in-person) is tailored for intermediate PHP developers who wish to effectively apply design patterns in their projects.
Upon completion of this training, participants will be capable of:
- Comprehending the purpose and advantages of design patterns.
- Identifying and applying suitable design patterns to common scenarios.
- Organising PHP applications in line with industry-recognised best practices.
- Integrating patterns into contemporary frameworks such as Symfony or Zend.
JavaScript - Advanced Programming
14 HoursThis course is tailored for JavaScript developers who aim to design and implement sophisticated internet applications. The training focuses on disseminating best practices in JavaScript programming and identifying common pitfalls. A key component of the session is exploring the object-oriented capabilities inherent in JavaScript syntax.
Kubernetes Design Patterns
21 HoursThe recent advancement of microservices and container technologies has fundamentally transformed how software is designed, developed, deployed, and operated. Contemporary applications must be engineered for scalability, elasticity, resilience, and adaptability. In response to these evolving demands, modern architectures necessitate a distinct set of patterns and practices. This training explores methods to identify, comprehend, and adapt to these new requirements.
Audience
This training is designed for individuals who possess a reasonable familiarity with container technology and Kubernetes concepts but may lack extensive practical experience. Drawing on use cases and lessons learned from real-world projects, the course aims to inspire participants to build and manage superior cloud-native applications.
- Developers
- Operations staff
- DevOps engineers
- QA Engineers
- IT Project Managers
Format of the Course
- Interactive lectures and discussions
- Extensive exercises and practical sessions
- Hands-on implementation in a live-lab environment
Course Customization Options
- To request a customized training for this course, please contact us to arrange.