Course Outline

QA/CI for Government

  • What is Quality Assurance (QA)?
  • What is Continuous Integration (CI)?
  • The costs associated with software development, refactoring, and fixing errors
  • Identifying and understanding the project requirements for government
  • Benefits to the organization for government operations

Domain-Driven Design (DDD) for Government

  • Software development aligned with business requirements using Domain-Driven Design (DDD)
  • Challenges in communication between IT and business stakeholders for government
  • The concept of a domain model for government applications

Best Practices for Government Software Development

  • The KISS principle and DRY methodology for efficient coding
  • Establishing and adhering to coding standards for government projects
  • Creating reusable code through Object-Oriented Programming (OOP) and design patterns for government applications
  • Identifying and reducing cyclomatic complexity in government software

Software Metrics for Government

  • Weight Method per Class for assessing class complexity
  • Response For a Class to evaluate class responsibilities
  • Depth of Inheritance Tree to measure class hierarchy depth
  • Coupling Between Objects to assess dependencies between classes
  • Lack of Cohesion of Methods to identify method cohesion issues
  • Number of Children to count subclasses
  • Cyclomatic complexity to measure code complexity
  • Metrics class for comprehensive metric evaluation
  • Model Metrics for domain model assessment
  • Metrics for use in various stages of development for government

Software Testing for Government

  • Determining what, when, and how to test software for government applications
  • The methodologies of "white-box" and "black box" testing for government systems
  • The role of testing in agile methodologies for government projects
  • Total cost implications of Test-Driven Development (TDD) for government projects
  • Unit testing with JUnit (Java), PHPUnit (PHP) for government applications
  • Behavioral tests using JBehave (Java), Behat and Mink (PHP) for government systems
  • Functional testing for comprehensive system validation for government software

Refactoring for Government Software

  • What is refactoring in the context of government software development?
  • The concept of technical debt in government IT projects
  • Identifying code smells in government applications
  • Common refactoring patterns for improving government software quality

Documentation for Government Software Development

  • The importance of documentation in agile methodologies for government
  • What to document in government projects?
  • Types of documentation required for government software development
  • Documentation and agile methodologies: balancing working software with necessary documentation for government
  • Standard XMI for model interchange in government applications
  • Automatic generation of documentation from Javadoc (Java), ApiGen (PHP) for government projects

Tools and Environment for Continuous Integration (CI) for Government

  • Tools and environment for CI
    • PMD (Java), phpmd (PHP) for code analysis
    • CPD (Java), phpcpd (PHP) for detecting duplicate code
    • Lines Of Code Counter (Java), phploc (PHP) for measuring code size
    • UCDetector (Java), phpdcd (PHP) for unused code detection
    • Jdepend (Java), phpdepend (PHP) for dependency analysis
  • Jenkins Continuous Integration Server for government projects

Agile and CI/QA for Government

  • Planning and incremental development in government software projects
  • Embracing change in government IT environments
  • Short sprints for rapid delivery in government projects
  • Interdisciplinary teams for comprehensive project management in government
  • Extreme Programming (XP) and code review practices for government software
  • Prioritizing individuals and interactions over processes and tools in government development

Summation for Government

  • Discussion of key points for government stakeholders
  • Questions from the audience for government participants
  • Steps to begin the process of implementation for government projects

Requirements

Understanding of software development processes for government is essential to ensure efficient and effective project management. This knowledge encompasses methodologies such as Agile, Waterfall, and DevOps, which are critical for aligning with public sector workflows, governance, and accountability standards. Government agencies rely on these processes to deliver robust, secure, and compliant technology solutions that meet the needs of citizens and stakeholders.
 14 Hours

Number of participants


Price per participant

Testimonials (5)

Upcoming Courses

Related Categories