Course Outline
QA/CI for Government
- What is QA?
- What is CI?
- The costs associated with software development, refactoring, and fixing errors
- Identifying and understanding the project requirements
- Benefits for the organization
DDD for Government
- Software development based on business requirements and assumptions in Domain-Driven Design (DDD)
- Challenges in communication between IT and Business
- Development of a domain model
Best Practices for Government
- The KISS principle and DRY methodology
- Coding standards and best practices
- Creating reusable code through Object-Oriented Programming (OOP) and design patterns
- Identifying and reducing cyclomatic complexity in code
Software Metrics for Government
- Weight Method 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
- Metrics class
- Model metrics
- Metrics for use in software development
Software Testing for Government
- What, when, and how to test software effectively
- The "white-box" and "black box" testing methods
- The role of testing in agile methodologies
- TDD: Potential cost implications for projects
- Unit testing with JUnit (Java), PHPUnit (PHP)
- Behavioral tests using JBehave (Java), Behat and Mink (PHP)
- Functional testing practices
Refactoring for Government
- What is refactoring?
- Technical debt management
- Identifying code smells
- Common refactoring patterns
Documentation for Government
- The importance of documentation in agile methodologies
- What aspects to document
- Types of documentation required
- Documentation and agile methodologies: Balancing working software with comprehensive documentation
- Standard XMI for documentation
- Automatic generation of documentation from Javadoc (Java), ApiGen (PHP)
Tools and Environment CI for Government
- Tools and environment for Continuous Integration (CI)
- 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 for Government
- Planning and incremental development processes
- Embracing change in project management
- Short development stages (sprints)
- Interdisciplinary team collaboration
- Extreme Programming practices, including code review
- Valuing individuals and interactions over processes and tools
Summation for Government
- Discussion of key points
- Q&A session
- Steps to begin the implementation process
Requirements
Understanding of software development processes for government
Testimonials (5)
Engaging, and hands on practise.
Balavignesh Elumalai - Scottish Power
Course - SonarQube for DevOps
Trainer has in depth experince and well narreated in deed. The depth of the knowledge and the passion for teaching is highly appriciated.
Anup Kumar - SMR Automotive Mirrors Stuttgart
Course - Jenkins 2: Building CI/CD Pipelines
The trainer was very well organized. He explained about all the tools required for the training in the beginning. The trainer happily clarified all the doubts and practical use cases were discussed.
Vivek Verma - Global Knowledge Network Training Ltd
Course - DevOps Practical Implementation and Tools
Very detailed, trainer knows the subject very well and has covered a lot of topics
Gabriel Kelly Navarro - Opswerks
Course - Advanced Spinnaker
Luke was very knowledgeable, patient, and very open to satisfy my curiosity, for example I asked him to generate errors to see how system will response, etc. He would go above and beyond to answer questions or demonstrate the functionalities, even some of my questions were out of the class scope. He gave me a real experience with the system. I definitely will take another class with him and recommend him as a teacher for others. Thank you Luke!.