This paper covers the development of large-scale, reliable, and maintainable software systems. Topics include software specification; software design; prototypes; system maintenance; code reading and browsing; software reuse; project management; human factors; documentation; standards for software and documentation; verification and validation; configuration management; and software evolution.
This paper is not an application development paper, as the list of lecture topics shows. The project is an opportunity to practice software engineering skills.As is usual with COSC345, the project is only partly specified. The project is to be completed in teams of three or four people. Each team will work on their own application This is as much about managing your time and documenting your work as about writing code.