Skip to content

Latest commit

 

History

History
99 lines (92 loc) · 5.52 KB

File metadata and controls

99 lines (92 loc) · 5.52 KB

School of Computer Science Assessment Package Briefing Document Title: CMP3111M Software Engineering Assignment Indicative Weighting: 60% Learning Outcomes: On successful completion of this assessment package a student will have demonstrated competence in the following areas:  [LO1] synthesise concepts derived from current theories of advanced software engineering  [LO2] analyse the empirical nature of software engineering and the application of empirical methods in software engineering development  [LO3] utilise and evaluate advanced software engineering techniques and processes in the development of a software artefact.

As software engineers, our job is not just about programming and writing lines of code, we must also be aware of the larger context in which software and software systems are developed. In order to develop and build an application we must first analyse the problem domain, providing software (and design) solutions for challenges faced within the system to be developed. Working within a Software Engineering methodology is an important part of being a developer, understanding the roles and responsibilities within a software process allows you to understand the flow of an artefacts development. As such in order to write a critical reflection on the SCRUM methodology, you need to have been engaged in a SCRUM. For this assignment, you are to work within the constraints of an agile methodology, namely that of SCRUM. You will be assigned SCRUM teams (as discussed in Lectures and Workshops) and in these teams, you must ensure that each of you contribute to the roles that exist within this methodology. However, as is mentioned by the SCRUM process you can assume different roles at each iteration. Whilst this assessment is an individually assessed piece of work, the group work required in workshops is there to expose you to the process of SCRUM, which is a group based methodology.

Artefact: You have been asked by a software application developer – ACME Software Ltd - to develop a ‘Movie Information client’ that is a standalone desktop client, and that can be used to automatically connect to a film database (www.omdbapi.com) which displays information about films. You have been asked by ACME Software Ltd. to build the client interface application that connects to the online film database and must have the following requirement:  Display information for a film title which is requested  Films can be ‘saved’ in a ‘wishlist’ so that the user can keep track of what they want to watch – films can be added or taken away from this list. (Other items could be included here: such as a facility for making comments, other resources relating to the film etc). ACME Software Ltd would like some experimental functionality added such that a random film is selected and its details shown. They report that this could be done by creating a random IMDB ID. You should in your SCRUM teams:  Secure an API key for www.omdbapi.com  Create and use a GitHub repository to facilitate versioning, group communications etc.  Develop a standalone desktop application in whatever language you choose You will be able to speak with the Client (Lecturers and Demonstrators) to get more input regarding the system, this must be done with a SCRUM approach. You need to address any bugs that are located within the desktop application to ensure it works correctly. However, as an open source project you will need to provide bug reports, and Git requests, including branching, and pull requests. Deliverable: This is an individually assessed piece of work and you are asked to submit the following:

  1. The artefact. Although this isn’t graded directly, it is useful to see the application that is a result of the SE processes which are graded in this assignment.
  2. A log style report that gives the following information: a. SPRINT Logs – for each iteration you release b. Your own contribution to the project – what did you do, what roles did you have? c. Pair Programming Logs d. Lots of images of your SPRINT Charts (images of this are good!)
  3. A Critical Reflection a. Provide a Critical reflection of the use of SCRUM for the development of this artefact. b. Referring to other software development methodologies and processes you may have used previously, such as Waterfall, critically evaluate the process of developing an artefact using SCRUM and Agile processes.

c. This critical evaluation should include both the advantages and disadvantages of the SCRUM methodology. You should pay particular attention to how SCRUM differs in terms of implementing the methodology compared to others such as Waterfall, DSDM, Spiral, etc. 4. Open Source and SCRUM tools a. An evaluation of tools used to facilitate the development of an open source project using SCRUM b. What tools were used, how did you use them? c. What were the advantages and disadvantages of these? Further Information As a minimum the development process, and by extension your report must attempt to implement the following Agile and Software Development processes:-

  1. Domain Modelling
  2. UML
  3. SCRUM and SPRINTS
  4. Inclusion of at least 1 design pattern of your choice. Submission Guidelines The written report should be submitted on Blackboard to the ‘CMP3111M Assessment Item 1 Upload’ submission site This module is graded using a criterion reference grid. You should be clear in your understanding of the grading principles; if you are not, please seek the advice of the module co-ordinator. Hand In Instructions See hand in schedule. DO NOT include this briefing document with your submission.