The course is an introduction to the techniques and methodology of designing, developing, implementing and deploying large software projects as well as their management. The course will present the techniques and methodologies related to the software life cycle, requirements analysis and software design, reliability testing and installation of software products.
Upon successful completion of the course, students will be able to:
- Name the four phases of a typical software development methodology and the activities that take place in each of them.
- Analyze the requirements of software projects with dozens of use cases.
- Design object-oriented software systems with hundreds of classes and dozens of packages.
- Illustrate the static and dynamic behavior of software systems with UML with hundreds of classes and dozens of packages.
- Participate as members of multi-member (>10) teams in object-oriented software systems development processes.
- Apply all 23 design patterns.
- Explain the characteristics of flexible software development methodologies (agile methods).
- Use at least two modern IDEs.
- Manage software projects with large teams (>10 people).
- Estimate the cost and completion time of large software projects with hundreds of classes and dozens of packages.