- Perform background research and a feasibility study prior to embarking on a development project.
-
You should be able to apply the waterfall software development lifecycle model to a
development project. This includes developing a project plan, according to the workflow defined by the waterfall model,
and making a simple schedule and resource allocation model.
You should be able to structure this information in a Project Planning Document (PPD)
-
You should know how and when to adapt or replace the waterfall lifecycle model by other alternatives, including
user-centred development and iterative lifecycle models.
-
You should be able to collect and analyse user requirements using a formalism such
as UML, including business process modeling. You should be able to perform a simple risk assessment for a development project.
You should be able to structure this information in a User Requirements Document (URD).
-
You should be able to identify and apply appropriate software architectures and patterns
to carry out high level design of a system. You should be able to critically compare alternative choices.
You should be able to structure this information in an Architectural Design Document (ADD).
-
You should be able to work in a team to implement a project plan, URD, and ADD, by developing detailed
designs and code. You should have experience and/or awareness of testing problems. You should be able to develop
a simple testing report, and a simple Systems User Manual (SUM). You should be able to reflect on the outcome of
a project and present your reflections in a verbal report.
-
You should be able to conduct individual and detailed research into a topic covered by the course
in the field of software engineering. You should be able to search appropriate literature including
research publications, industrial newspapers and articles, and internet resources. You should
be able to summarise your findings in a clear and critical manner, according to the guidelines for a term paper.
You should be able to comment on past developments,
the current state of the art, and future issues. You should be able to relate your findings to other IT courses which
you have taken.