All assignments and the final project are completed in class CSCI5308 (Advanced Software Development Concepts) of MACS at Dalhousie University. CSCI5308 ASDC Dalhousie University.
- Dhrumil Rakesh Shah - (Creator)
- Learning Objectives:
- Practice developing effective unit tests.
- Practice implementing unit tests with JUnit.
- Practice working with TDD.
- 📄 Problem Statement PDF
- Learning Objectives:
- Practice procedural refactoring.
- Practice implementing good/quality code.
- Practice SOLID principles.
- 📄 Problem Statement PDF
- Learning Objectives:
- Describe the use of SOLID principles in your project.
- Describe the use of layers in your project.
- Describe the opportunities for refactoring and improvements in your project using design patterns.
- 📄 Problem Statement PDF
- Project Name: Blood Book
- Project Description: Blood Book is a Blood Bank Management System designed to manage information related to administrative and inventory management with blood banks and to connect blood donors and receivers.
- Inception Year: 2021
- Team Name: Group 13
- Team Members:
- Learning Objectives:
- Understood professional programming in an environment where quality is paramount.
- Understood the importance of integrating quality assurance into programming practices.
- Applied Agile methodology to develop this project.
- Used appropriate tools to automate builds, deployment and configuration.
- Understood GitFlow.
- Analyze and applied test driven development to the software project.
- Implemented the S.O.L.I.D. principles of object-oriented design (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion).
- Understood and implemented the principles of cohesion and coupling and avoid their misuse.
- Understood how to write clean, readable code.
- Applied design patterns and analyzed the benefits of using existing code / APIs.
- Recognized code smells and refactored the code to avoid them.
- Understood the importance of establishing boundaries in the systems (i.e. data, business logic, display logic)
- Understood the importance of the consistent application of naming conventions.
- Understood the concept of technical debt and the long-term costs of bad code.
- Analyzed and improved the existing code through refactoring.
- Identified and addressed the fragility and inflexibility in code.