Get in Touch

Course Outline

QA/CI

  • Understanding Quality Assurance (QA)
  • Understanding Continuous Integration (CI)
  • The costs associated with software development, refactoring, and error correction
  • Project identification and comprehension
  • Organizational benefits

DDD

  • Software development driven by business requirements and DDD assumptions
  • Addressing communication challenges between IT and Business
  • Domain Modeling

Best Practices

  • The KISS and DRY principles
  • Coding standards
  • Building reusable code through Object-Oriented Programming (OOP) and design patterns
  • Identifying and reducing cyclomatic complexity

Software Metrics

  • Weighted Methods per Class (WMC)
  • Response for a Class (RFC)
  • Depth of Inheritance Tree (DIT)
  • Coupling Between Objects (CBO)
  • Lack of Cohesion of Methods (LCOM)
  • Number of Children (NOC)
  • Cyclomatic complexity
  • Class-level metrics
  • Model metrics
  • Usage metrics

Software Testing

  • Key questions: What, when, and how to test?
  • White-box and black-box testing methods
  • The role of testing in agile methodologies
  • TDD: Is it merely a source of increased project costs?
  • Unit testing using JUnit (Java) and PHPUnit (PHP)
  • Behavioral testing using JBehave (Java), and Behat and Mink (PHP)
  • Functional testing

Refactoring

  • Defining refactoring
  • Technical debt
  • Code smells
  • Refactoring patterns

Documentation

  • The role of documentation in agile methodologies
  • What aspects require documentation?
  • Types of documentation
  • Documentation in agile methodologies: Does "Working software over comprehensive documentation" hold true?
  • XMI standards
  • Automatic documentation generation using Javadoc (Java) and ApiGen (PHP)

CI Tools and Environment

  • CI Tools and Environment
    • PMD (Java), phpmd (PHP)
    • CPD (Java), phpcpd (PHP)
    • Lines Of Code Counter (Java), phploc (PHP)
    • UCDetector (Java), phpdcd (PHP)
    • Jdepend (Java), phpdepend (PHP)
  • Jenkins Continuous Integration Server

Agile and CI/QA

  • Planning and incremental development
  • Embracing change
  • Short development stages
  • Interdisciplinary teams
  • Extreme Programming and Code Review
  • Valuing individuals and interactions over processes and tools

Summary

  • Discussion
  • Q&A Session
  • Steps to initiate the implementation process

Requirements

Understanding of software development processes

 14 Hours

Number of participants


Price per participant

Testimonials (4)

Upcoming Courses

Related Categories