The Final Year Project (Next year)System of significant scopeInternal / external client or self proposedDeveloped by you under your own steamSupervisor allocated to keep an eye on youDoing this well is really tough!
What is the Module About?Prepare you for the final year with some hand
holding
Learning outcomesCreate an advanced prototype with suitable database
functionalityCreate the beginnings of a professional portfolio of
workDemonstrate skills allowing you to act as a computing
professionalDemonstrate problem solving skills allowing you to
adapt to the challenges of changing technologyApplication of skills from other modules on the course
Other OutcomesAn understanding of important
documentation artefacts Some idea of how to approach systems
development problems
A better sense of your skills reflected in your CV
A class library that you may use in other projects, especially your final year project
A business card to get you started as a computing professional
Module StructureBefore Xmas
1 Lecture2 hr LabPlenty of structure and examples
After XmasSCRUM DevelopmentIndividual sprints are assessedPair programmingTutor support
The Need for CourageFor every person and every project there is
some element of fear
Fear makes you tentativeFear makes you less communicativeFear makes you shy away from feedbackFear makes you shy away from mistakes
We need to address the culture of fear that comes with exploring the unknown
Initial ArtefactsSystem specificationEthical reviewEvent tablesUse case diagramsUse case descriptionsTest plansSmoke and mirrors prototypeClass diagramsSequence diagramsEntity Relationship DiagramsTest Framework
Remember Systems Development is DifficultGetting inside the head of the client (so that
they get the product they want)Coming to terms with the various tools you
need to use (e.g. Visual Studio, Enterprise Architect etc.)
Working with team members (They will drive you mad!)
Creating the documentation and understanding the notation
Writing the code!
The Project BankThe Project Bank is intended to be a Customer
Relationship Management (CRM) system Customer relationship management is a system for
managing a company’s interactions with current and future customers. It often involves using technology to organize, automate and synchronize sales, marketing, customer service, and technical support.
(Wikipedea)
Differing ArchitecturesPresentation(Interface)
Data LayerDatabase
Middle LayerBusiness Logic(Classes)
Presentation(Interface)
Presentation(Interface)
Data LayerDatabase
Thick Middle Layer – Thin Presentation LayerAll code for the system goes in the middle
layerKeep presentation code to an absolute
minimum!
Thick Presentation – Thin Middle
Presentation(Interface)
Data LayerDatabase
Middle LayerBusiness Logic(Classes)
Issues to ConsiderDesign for Code Re-useDesign for ease of maintenanceAutomated testingConsider collaboration issues
Consider Version ControlFile Sharing
Creating a class library
The AssignmentsFor this module there are four assessments
you need to concentrate on
Assignment 1a Advanced Prototype (First deadline this week!)
Assignment 1b Prototype PresentationAssignment 1c Final ReportAssignment 2 TDD Phase Test
Things to think about now!Getting Started
Take time to discuss think and planEach member of the team to select an individual
component of the systemEach component must contain a 1:M relationshipCheck that the selected component is suitable
early on otherwise you will have to go back to the drawing board
You are responsible for the development of your component
Significant overlap of components could result in zero marks
First DeadlineWk 1 Team Business Pack
Cover page SWOT analysis CVs Identification of suitable project component
including a 1:M relationshipOrder form