Skip to content

HotCiv is a simple Civilization-style game that is used to demonstrate various software design patterns and principles using TDD.

License

Notifications You must be signed in to change notification settings

Raiyan2000/ece1145--NuclearWarElephants-YRJ-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HotCiv: Demonstrating Software Design Patterns and Principles with Test-Driven Development (TDD)

HotCiv is a Civilization-style game designed to showcase various software design patterns and principles using Test-Driven Development (TDD). This project aims to provide insights into software development processes, software evolution, and maintaining high software quality standards.

🚀 Motivation

HotCiv was developed to address key questions in software development, such as:

  • What are the steps in a typical software development process?
  • How does software evolution impact product quality?
  • What practices contribute to writing maintainable software?
  • How are these activities organized in a company or typical programming journey?

💡 Principles and Tools

  • Followed three main standards from ISO 25010:
    • Maintainability (ISO 9126): Capability of software to be modifiable
    • Reliability (ISO 9126): Maintain a specified level of performance
    • Changeability (ISO 9126): Change by addition and not modification
  • SOLID Principles: Ensuring code quality and extensibility.
  • Extreme Programming (XP): Following TDD to maintain high test coverage and code quality.
  • Git Version Control: Leveraging Git for efficient collaboration and version management.
  • IntelliJ and JUnit: Utilizing industry-standard tools for development and testing.

🌟 Results and Design Patterns

  • Code Coverage: Achieving a commendable 93% code coverage.
  • Design Patterns Utilized: Including Compositional Design, STRATEGY Design, Abstract Factory, and Decorator.
  • Testing Methods: Employing systematic and unit testing to ensure robustness.
  • Integration with MiniDraw Framework: Demonstrating integration skills with external frameworks.

🚀 Quick Start

Clone the repository:

git clone https://github.com/Raiyan2000/ece1145--NuclearWarElephants-YRJ-.git

Navigate to this directory:

src/main/java/hotciv/visual

Run this file:

ShowSemiCiv.java

About

HotCiv is a simple Civilization-style game that is used to demonstrate various software design patterns and principles using TDD.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published