COM3420 Software Hut
|| The Software Hut (a microcosm of a real Software
House) gives students an opportunity to experience the
processes of engineering a real software system for a real
client in a competitive environment. The taught element
covers the tools and technologies needed to manage software development projects
successfully and to deliver software products that meet
both client expectations and quality standards. Topics
that are put into practice include: the requirements engineering process; software
modelling and testing; using specific software development
framework(s); group project management; quality assurance; testing. Tutorials take the form of project meetings, and so are
concerned with team management, conduct of meetings and
|| There will be no written examination for this
module. Assessment will be entirely on the basis of
the project work undertaken in teams. Marks are awarded
This module has the explicit objective of developing group teamwork skills. Participation in teamwork is mandatory and failure to participate will result in deduction of marks and eventually loss of credits. Furthermore, this group teamwork exercise cannot be repeated within the academic year. Failure will normally result in repeating the year.
- by departmental staff
(course lecturers), who assess each team's management of
their project; (LO3)
- by project clients, who assess the ability of teams to satisfactorily elicit requirements and develop and deliver a product that meets the client’s needs; (LOs 1 & 2)
- for individual reflection upon the lessons learned, on areas such as teamwork, project process, client interaction, and professional issues such as security, privacy and ethics (LO4).
||Dr Emma Norling, Dr Anthony Simons, Dr Jose Rojas, Mr Temitope Adeosun, TBC & epiGenesys
||The aims of this module are:
- to gain experience in dealing with clients, particularly in understanding and managing clients
- to enhance team working skills
- to experience, in a competitive environment, the practical problems of constructing, managing, testing and deploying a medium-sized software project, producing the associated user documentation and providing training and online support
- to examine professional issues, including security, privacy, and ethics, in a realistic context
||By the end of this course the students should be able to:
- Analyse a client’s business needs to agree on a software requirements specification.
- Apply an agile methodology, working in a team to develop a solution to their client’s requirements.
- Manage a team software project, including appropriate documentation of meetings, design process, software standards and testing strategies.
- Critically reflect upon individual and team activity in the software project, highlighting professional issues and personal growth.
Requirements Engineering (classic OO vs XP):
- group project vs individual project
- roles in a team
- documents used by the team
- team meetings and communication
Managing Software Development Projects:
- Requirements Capture and Analysis
- Functional versus non-functional requirements
- Managing changing requirements
Use of Prototypes:
- Project management strategies
- Risk analysis and management
- Quality management strategies
- Reviews and inspections
- Testing strategies and test plans
- Reasons for prototyping
- Characteristics of prototypes
- Use of prototypes for requirements elicitation and
- Usable Requirements Specification documents
- User manuals and on-line user support
||Students from departments other than Computer Science will need to demonstrate mathematical skills, programming skills in the required language, and some experience of developing web-based systems.
- The course is centred around the project, which
involves the students working in teams to develop an
application for a client.
- There is a short set of lectures on project management, delivered in the earlier weeks (approx. 5 hours).
- There will be technology training labs in the first seven weeks (approx 14 hours). These labs introduce specific technologies that the teams will be expected to use in the development of their client's solution.
- There will be a monitoring meeting each week, looking at team interactions and project progress.
||Feedback is provided on a weekly basis at the monitoring
meetings. There will also be feedback from both client and
staff at the end of the module.
- M Holcombe and F Ipate: Correct Systems: building
business process solutions. Springer
- M Holcombe: XP4Real, lecture notes.
- I Sommerville: Software Engineering Addison-Wesley
- R S Pressman: Software Engineering: A Practioner's
- S L Pfleeger: Software Engineering - Theory and
- Programming Ruby 1.9 & 2.0, Dave Thomas, Pragmatic.
- Agile Web Development with Rails 5.1, Sam Ruby and David Bryant Copeland, Pragmatic.
||This module is exempt from the University's Regulations relating to Intellectual Property which can be found at: https://www.sheffield.ac.uk/apse/apo/quality/policies-guidance/ip