Get in Touch

Course Outline

QA/CI

  • What is QA?
  • What is CI?
  • The costs associated with software development, refactoring, and error correction
  • Identifying and understanding the project
  • Benefits for the organisation

DDD

  • Software development based on business requirements and DDD assumptions
  • Communication challenges between IT and business
  • The Domain Model

Best Practices

  • The KISS and DRY principles
  • Coding standards
  • Creating reusable code through OOP and design patterns
  • Identifying and reducing cyclomatic complexity

Software Metrics

  • Weighted Methods per Class
  • Response for a Class
  • Depth of Inheritance Tree
  • Coupling Between Objects
  • Lack of Cohesion in Methods
  • Number of Children
  • Cyclomatic Complexity
  • Class Metrics
  • Model Metrics
  • Metrics for Use

Software Testing

  • What, when, and how to test?
  • White-box and black-box testing methods
  • The role of testing in agile methodologies
  • TDD: does it only increase project costs?
  • Unit testing with JUnit (Java) and PHPUnit (PHP)
  • Behavioural tests using JBehave (Java), Behat and Mink (PHP)
  • Functional testing

Refactoring

  • What is refactoring?
  • Technical debt
  • Code smells
  • Refactoring patterns

Documentation

  • The role of documentation in agile methodologies
  • What should be documented?
  • Types of documentation
  • Documentation and agile methodologies: working software over comprehensive documentation?
  • XMI standard
  • Automatic documentation generation from Javadoc (Java) and ApiGen (PHP)

Tools and CI Environment

  • Tools and CI 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 iteration stages
  • Interdisciplinary teams
  • Extreme Programming and code reviews
  • Individuals and interactions over processes and tools

Summation

  • Discussion
  • Questions
  • How do you begin the implementation process?

Requirements

Knowledge of software development processes

 14 Hours

Number of participants


Price per participant

Testimonials (4)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories