300 likes | 317 Views
This module provides hands-on guidance for developing a significant system, preparing for your final year project. You will create an advanced prototype, build a professional portfolio, and hone problem-solving skills while addressing ethical implications. Embrace SCRUM development, pair programming, and gain courage to tackle uncertainties. Explore the impact of technology on society, master documentation, and tackle system development challenges. Learn about code structure, business card creation, and application of various tools. Obtain tips on project management, coding skills, and client interaction. Prepare for assessments and discussions, building a strong foundation for your computing career.
E N D
IMAT2204 Project Management and Development Whistle Stop Tour of The Module
The Final Year Project (Next year) • System of significant scope • Internal / external client or self proposed • Developed by you under your own steam • Supervisor allocated to keep an eye on you • Doing this well is really tough!
What is the Module About? • Prepare you for the final year with some hand holding • Learning outcomes • Create an advanced prototype with suitable database functionality • Create the beginnings of a professional portfolio of work • Demonstrate skills allowing them to act as a computing professional • Demonstrate an appreciation of the personal and global ethical consequences of technology • Demonstrate problem solving skills allowing them to adapt to the challenges of changing technology • Application of skills from other modules on the course
Other Outcomes • An 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 Structure • Before Xmas • 1 Lecture • 2 hr Lab • Plenty of structure and examples • After Xmas • SCRUM Development • Individual sprints are assessed • Pair programming • Tutor support
The Need for Courage • For every person and every project there is some element of fear • Fear makes you tentative • Fear makes you less communicative • Fear makes you shy away from feedback • Fear makes you shy away from mistakes • We need to address the culture of fear that comes with exploring the unknown
Social Impact Study • Can writing code kill people?
Social Impact StudyPersonal, National & Global • Thousands of deaths • Arab spring • Syria • ISIS • Refugee crisis
Dr. Abraham Erskine • Documentation is important
Initial Artefacts • System specification • Event tables • Use case diagrams • Use case descriptions • Test plans • Smoke and mirrors prototype • Class diagrams • Sequence diagrams • Entity Relationship Diagrams • Test Framework
Dealing with Uncertainty • Getting 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!
Question • Question – How do you eat an elephant?
Programming Pathways • Pathway 1 – Creating a Simple Class • Pathway 2 – Creating a “Simple” Data Bound Collection • Pathway 4 – Creating the Complex Item Class • Pathway 5 – Creating the Complex Collection Class • Use the examples provided as a starting point to copy and adapt
The Project Bank • The 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)
Building on IMAT1604 • Made more complicated by strict adherence to the three layered architecture
True or False? • Applications must follow the three layered architecture
Presentation (Interface) Data Layer Database Presentation (Interface) Presentation (Interface) Middle Layer Business Logic (Classes) Data Layer Database Differing Architectures
Thick Middle Layer – Thin Presentation Layer • All code for the system goes in the middle layer • Keep presentation code to an absolute minimum!
Presentation (Interface) Middle Layer Business Logic (Classes) Data Layer Database Thick Presentation – Thin Middle
Which is Best? • Three layered • Two layered • One layered • Thick or thin layers
Issues to Consider • Design for Code Re-use • Design for ease of maintenance • Automated testing • Consider collaboration issues • Consider Version Control • File Sharing • Creating a class library
The Assignments • For this module there are three assessments you need to concentrate on • Assignment 1a Advanced Prototype (First deadline this week!) • Assignment 1b Final Report • Assignment 2 TDD Phase Test
Things to think about now! • Getting Started • Take time to discuss think and plan • Each member of the team to select an individual component of the system • Each component must contain a 1:M class • Start by identifying a single significant table each • Check 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 Deadline • Wk 1 Team Business Pack • Cover page • SWOT analysis • CVs • Identification of suitable project component including a 1:M relationship • Order form