Back to Module List

CMPC2M02 - SOFTWARE ENGINEERING 1

Module Code:
CMPC2M02
Department:
Computing Sciences
Credit Value:
20
Level:
2
Software Engineering is one of the most essential skills for work in the software development industry. Students will gain an understanding of the issues involvedin designing and creating software systems from an industry perspective. They will be taught state of the art in phased software development methodology, with a special focus on the activities required to go from initial class model design to actual running software systems. These activities are complemented with an introduction into software project management and development facilitation.

Lectures will be given using a combination of data monitor and overhead projection. Lecture notes, exercise sheets and other relevant material will be available via Blackboard.


Module texts (and further reading):

  • Roger Pressman, Software Engineering, a Practitioner's approach
  • Timothy C. Lethbridge and Robert Laganière, Object-Oriented Software Engineering: Practical Software Development using UML and Java

Submission

Written coursework should be submitted by following the standard CMP practice. Students are advised to refer to the Guidelines and Hints on Written Work in CMP.

Deadlines

Coursework should be submitted before 23:59 on the deadline day. Paper copies can be submitted via the Hub drop boxes up to 22.00  in the LTS Hub, and there will be a ‘late box’ in the Library for submissions between 22.00 and midnight.

If coursework is handed in after the deadline day or an agreed extension:
 

 

Work submitted Marks deducted
On the day following the due date 10 marks
On either the 2nd or 3rd day after the due date 20 marks
On the 4th day after the due date and before the 20th day after the due date All the marks the work merits if submitted on time (ie no marks awarded)
After 20 working days Work will not be marked and a mark of zero will be entered

 


All extension requests will be managed through the LTS Hub. A request for an extension to a deadline for the submission of work for assessment should be submitted by the student to the appropriate Learning and Teaching Service Hub, prior to the deadline, on a University Extension Request Form accompanied by appropriate evidence. Extension requests will be considered by the appropriate Learning and Teaching Service Manager in those instances where (a) acceptable extenuating circumstances exist and (b) the request is submitted before the deadline. All other cases will be considered by a Coursework Coordinator in CMP.

Plagiarism

Plagiarism is the copying or close paraphrasing of published or unpublished work, including the work of another student; without due acknowledgement. Plagiarism is regarded a serious offence by the University, and all cases will be investigated. Possible consequences of plagiarism include deduction of marks and disciplinary action, as detailed by UEA's Policy on Plagiarism and Collusion.


Module specific:

  • To introduce the theory, models and processes that are used in software engineering.
  • To give students an understanding of appropriate design, planning practice for developing industry software systems and its documentation.
  • To introduce students to modelling techniques needed to create high-quality software systems from both a user and developer perspective
  • To give students experience of software models, phased development and how these lead to a well designed and well documented software system.


Transferable skills:

  • Experience of software development processes
  • Improved modelling, communication and presentation skills with respect to software development
  • Improved analysis and problem-solving skills

On completion of this module students should be able to:

  • Use a variety of UML models to describe various aspects of a software system.
  • Transfer modelling results from one software development phase to the next and understand how this transfer is achieved.
  • Analyse real-world requirements descriptions and turn these into a fully documented software system using a phased development methodology.

Total hours: 58 hours

Contact time: 22 hours lectures, 4 hours seminar, 32 hours supervised lab sessions

Lectures: 22 hours lectures(with provisional weekly schedule)

  • An understanding of software engineering processes, modelling of software and the phases that lead to refined design, architecture and implementation
  • An in-depth introduction to UML, class diagrams, sequence diagrams and state charts
  • Requirements analysis and Object-Oriented Analysis leading to initial class diagrams
  • Architectural analysis, risk analysis and optimisation of design choices
  • Refinement of software design models and moving towards class skeletons and implementation of designs
  • Realisation of the design and the identification and performance of refactoring to complete the development phases

Seminars (indcative content):  4 hours   

Seminar sessions will be scheduled to support lectures to perform group practice on the topics covered.

Topics will include:

  • Modelling classes based on requirements descriptions
  • Performing Object-Oriented Analysis and Design
  • Architectural trade-offs and refactoring


Laboratory classes (indicative content): 32 hours supervised lab sessions 

Lab classes will be scheduled to for students to perform a simplified software engineering life cycle for the development of a small software system. The emphasis will not be on the complexity of the created product but rather on explicitly running through each of the development phases and creating the design artefacts that are relevant. The development phases will have a deadline at which an updated design document is to be provided with all the information on the development that has been done up to that point.


Assessment is by project.