A disciplined process is vital to the success of any major software development project. In this unit, you will learn essential skills for managing software development efforts and for working within coordinated teams. You will learn how to decide upon and document your team's structure and process model. Your team will be expected to follow the process model they have documented, and to evaluate its effectiveness. There are many factors that can potentially cause a software project to fail. This unit will equip you with techniques to identify and manage these risks, including ethical considerations, and will take a risk-focused approach to project organisation.
Minimum total expected workload to achieve the learning outcomes for this unit is 144 hours per semester typically comprising a mixture of scheduled online and face to face learning activities and independent study. Independent study may include associated reading and preparation for scheduled teaching activities. Lectures are asynchronous - no room booking required.
Document a software process in a project management plan, including process model, team organisation, risk management, and time management;
Elicit functional and non-functional requirements, including human aspects, for a small-to-medium size software project from stakeholders through interview and/or document analysis techniques, capture these using appropriate methods for the given process model (including user stories and use cases), and analyse these requirements for completeness including test-ability;
Describe the nature and purpose of a software engineering process, including the historical evolution of the concept, and describe the major features of the most common process models;
Identify relevant risks for a small-to-medium size software project, analyse their impact and likelihood, identify appropriate mitigations, and document these in a risk matrix.;
Identify and apply relevant ethical considerations for software engineering projects and analyse them in light of ethical codes and standards;
Apply a lightweight process to the development of a small software project in small groups, including the use of software engineering tools such as revision control and issue tracking systems, analyse their strengths and weaknesses and make recommendations for improving the process based on experience and observation.
