All Studies

Software Engineering

Completed

Software development as an engineering process — requirements, design, teamwork, testing, iteration, and maintainable delivery.

What I Learned

I learned to think about software development as a full lifecycle, not just coding. The module helped me understand requirements, design decisions, teamwork practices, and how testing and documentation support long-term quality.

Key Concepts

  • Software lifecycle and iterative development
  • Requirements-driven design
  • Collaboration, testing, and maintainability

Key Topics

  • Requirements engineering
  • System design and architecture
  • Agile / iterative development
  • Version control and collaboration
  • Testing strategies
  • Documentation and maintainability

Practical Takeaways

  • Stronger ability to break software projects into manageable stages
  • Improved habits in version control, testing, and documentation
  • Better understanding of how real software teams coordinate development work

Tools & Technologies

  • Git and GitHub
  • UML / design diagrams
  • Issue tracking / Kanban boards
  • Testing tools

References & Resources

  • University of York module materials (COM00144M)
  • Software engineering process and design guidance
  • Git / GitHub documentation

Notes

This module was important for building a professional mindset around planning, collaboration, and maintainable delivery — useful both academically and in industry roles.