Software Engineering

Learning Outcomes:

  • Tracing the evolution of software engineering from traditional practices to modern Agile methodologies
  • Utilizing Eclipse IPSE and its tools (Maven, Symbolic Debugger, Javadoc) to enhance software development efficiency
  • Applying Test-Driven Development (TDD) techniques to ensure the creation of readable and functional code
  • Identifying and refactoring bad code smells to maintain code quality and standards using tools like CheckStyle
  • Mastering software version control concepts and tools, including SVN and Git, for effective software release management
  • Practicing SVN commands and workflows to manage and rectify coding errors efficiently
  • Communicating software design effectively with UML diagrams and exploiting APIs for rapid application development (RAD)
  • Analyzing and applying design patterns to prevent common software design problems
  • Exploring various testing types, including integration and system testing, to ensure robust software functionality
  • Understanding the role of Continuous Integration in maintaining a consistent testing regime
  • Applying software measures to predict and improve the quality, productivity, and maintainability of software
  • Differentiating between defects, faults, and failures to better manage software testing and complexity
  • Comparing and contrasting Agile and Waterfall methodologies to determine their applicability in different software development scenarios
  • Practicing SCRUM and other Agile techniques to enhance team collaboration and project management in software development

Skills for module:

Java

JUnit

Git

Maven

Object Oriented Programming

Design Patterns

Version Control

DevOps

Problem Solving

Critical Thinking

Communication

Project Management

Time Management

Adaptability

Software Engineering

CS2800

Learning Outcomes

  • Tracing the evolution of software engineering from traditional practices to modern Agile methodologies
  • Utilizing Eclipse IPSE and its tools (Maven, Symbolic Debugger, Javadoc) to enhance software development efficiency
  • Applying Test-Driven Development (TDD) techniques to ensure the creation of readable and functional code
  • Identifying and refactoring bad code smells to maintain code quality and standards using tools like CheckStyle
  • Mastering software version control concepts and tools, including SVN and Git, for effective software release management
  • Practicing SVN commands and workflows to manage and rectify coding errors efficiently
  • Communicating software design effectively with UML diagrams and exploiting APIs for rapid application development (RAD)
  • Analyzing and applying design patterns to prevent common software design problems
  • Exploring various testing types, including integration and system testing, to ensure robust software functionality
  • Understanding the role of Continuous Integration in maintaining a consistent testing regime
  • Applying software measures to predict and improve the quality, productivity, and maintainability of software
  • Differentiating between defects, faults, and failures to better manage software testing and complexity
  • Comparing and contrasting Agile and Waterfall methodologies to determine their applicability in different software development scenarios
  • Practicing SCRUM and other Agile techniques to enhance team collaboration and project management in software development