best practices for final year projects - cityu cshwchun/fyp/content/fyp2004.pdfcity university of...

Post on 29-May-2018

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

City University of Hong Kong

Software EngineeringBest Practices for Final Year Projects

byDr. Andy Chun, Hon WaiSubject Group Leader for SEDepartment of Computer Science

Software Engineering – Best Practices for FYP 2Copyright © Chun, Hon Wai 2004-2005

Content

FYP Lifecycle

Software Engineering – Best Practices for FYP 3Copyright © Chun, Hon Wai 2004-2005

Content

Agile Principles1. Talk to Your Advisor2. Work with Your Advisor3. Software Must Work4. Manage Changes

Software Engineering – Best Practices for FYP 4Copyright © Chun, Hon Wai 2004-2005

Content

FYP Best Practices5. Be an Expert6. Manage Project Scope7. Develop Iteratively8. Test Your Software9. Learn to Manage Yourself10. Practice Makes Perfect

Software Engineering – Best Practices for FYP 5Copyright © Chun, Hon Wai 2004-2005

Remember!

Your FYP is the single most important project in your whole undergraduate life!

Software Engineering – Best Practices for FYP 6Copyright © Chun, Hon Wai 2004-2005

FYP Lifecycle

Project ManagementEnvironment

Business Modeling

ImplementationTest

Analysis & Design

Preliminary Iteration(s)

Iter.#1

PhasesProcess Workflows

Iterations

Supporting Workflows

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Software Engineering – Best Practices for FYP 7Copyright © Chun, Hon Wai 2004-2005

4 Key Phases

1. Inception Phase2. Elaboration Phase3. Construction Phase4. Transition Phase

Software Engineering – Best Practices for FYP 8Copyright © Chun, Hon Wai 2004-2005

Inception Phase (Sept)

Tasks:Finalize FYP with advisorDo some basic reading to help decideSet goals and objectives for yourself

Objectives:Common understanding between you and advisor on scope of work

Deliverables:“Project Plan” - a detailed proposal with project schedule

Software Engineering – Best Practices for FYP 9Copyright © Chun, Hon Wai 2004-2005

Elaboration Phase (Oct-Nov)

Tasks:Perform background researchDefine system requirementsBased on research, design your system

Objectives:Detailed design based on solid research

Deliverables (may need 2 iterations):“Interim Report” (10%) - background research and initial design

Software Engineering – Best Practices for FYP 10Copyright © Chun, Hon Wai 2004-2005

Construction Phase (Dec-Mar)

Tasks:Coding and testingExperimentation and AnalysisDemonstrate prototype to advisor for feedback

Objectives:Finish software development

Deliverables (may need 2 iterations):Source code with documentationsDemonstration to advisor and assessor

Software Engineering – Best Practices for FYP 11Copyright © Chun, Hon Wai 2004-2005

Transition Phase (Mar-Apr)

Tasks:Document work as Final ReportPrepare for presentation

Objectives:Wrap up and present project

Deliverables:“Final Report” (30%)Source code“Project Presentation” (10%)

Software Engineering – Best Practices for FYP 12Copyright © Chun, Hon Wai 2004-2005

10 FYP Best Practices

My own personal observations for the past 10 years at CityUNote:

This is only my own personal opinion Follow your supervisor’s guidelines first

Software Engineering – Best Practices for FYP 13Copyright © Chun, Hon Wai 2004-2005

Talk to Your Advisor

Software Engineering – Best Practices for FYP 14Copyright © Chun, Hon Wai 2004-2005

Notes:

Report what you are doing at least once a month

Preferably once every 2 weeksTell advisor:

What papers you have readWhat you have learnedYour design/coding progress

Software Engineering – Best Practices for FYP 15Copyright © Chun, Hon Wai 2004-2005

Software Engineering Principles:

Agile Manifesto:Individuals and interactions over processes and tools

XP Value:Communication

Software Engineering – Best Practices for FYP 16Copyright © Chun, Hon Wai 2004-2005

Work with Your Advisor

Software Engineering – Best Practices for FYP 17Copyright © Chun, Hon Wai 2004-2005

Notes:

Discuss problems with your advisorSeek guidance and verification on project direction Give advisor drafts of all deliverables for feedbackUnderstand advisor expectations

Understand minimum requirement for a “pass” Understand what makes an “A” project

Software Engineering – Best Practices for FYP 18Copyright © Chun, Hon Wai 2004-2005

Software Engineering Principles:

Agile Manifesto:Customer collaboration over contract negotiation

XP Values:FeedbackCourage

Software Engineering – Best Practices for FYP 19Copyright © Chun, Hon Wai 2004-2005

Software Must Work

Software Engineering – Best Practices for FYP 20Copyright © Chun, Hon Wai 2004-2005

Notes:

Make sure your scope is not too largeDivide your project into stages

At least the first stage must workHave a prototype working by end of Semester A to be safe

Software Engineering – Best Practices for FYP 21Copyright © Chun, Hon Wai 2004-2005

Software Engineering Principles:

Agile Manifesto:Working software over comprehensive documentation

Software Engineering – Best Practices for FYP 22Copyright © Chun, Hon Wai 2004-2005

Manage Changes

Software Engineering – Best Practices for FYP 23Copyright © Chun, Hon Wai 2004-2005

Notes:

Changes are unavoidable for any project

Learn how to control changeBut make sure changes do not impact schedule

If so, reduce or modify scope if neededFYP title can be changed any timeNeed to have prototype working asapto know if heading towards a dead-end

Software Engineering – Best Practices for FYP 24Copyright © Chun, Hon Wai 2004-2005

Software Engineering Principles:

Agile Manifesto:Responding to change over following a plan

RUP Best Practice:Control changes to software

Software Engineering – Best Practices for FYP 25Copyright © Chun, Hon Wai 2004-2005

Be an Expert

Software Engineering – Best Practices for FYP 26Copyright © Chun, Hon Wai 2004-2005

Notes:

FYP is an opportunity for you to demonstrate you can learn on your ownShow what you have learned by being an expert on your FYP topic

Know what current state-of-the-artKnow all players: researchers/productsKnow current technology directionKnow success stories

Technical merit is 40% of FYP

Software Engineering – Best Practices for FYP 27Copyright © Chun, Hon Wai 2004-2005

Manage Project Scope

Software Engineering – Best Practices for FYP 28Copyright © Chun, Hon Wai 2004-2005

Notes:

Must have a checklist of requirements

Prioritize this listEstimate effort/time for each itemVerify all requirements can be done within schedule

Software Engineering – Best Practices for FYP 29Copyright © Chun, Hon Wai 2004-2005

Software Engineering Principles:

RUP Best Practices:Manage requirements

XP Best Practices:Planning Game

Software Engineering – Best Practices for FYP 30Copyright © Chun, Hon Wai 2004-2005

Develop Iteratively

Software Engineering – Best Practices for FYP 31Copyright © Chun, Hon Wai 2004-2005

Notes:

You should have at least 2 or 3 iterations

Iteration 1 is prototype – used to get feedback from advisorIteration 2 is normal FYP deliverableIteration 3 is enhanced FYP for “A” student

Software Engineering – Best Practices for FYP 32Copyright © Chun, Hon Wai 2004-2005

Software Engineering Principles:

RUP Best Practices:Develop software iteratively

XP Best Practices:Small Releases

Software Engineering – Best Practices for FYP 33Copyright © Chun, Hon Wai 2004-2005

Test Your Software

Software Engineering – Best Practices for FYP 34Copyright © Chun, Hon Wai 2004-2005

Notes:

Must have at least unit test casesUse *UnitUse Log4*

Do benchmarking and comparisonsMust be able to compare:

Compare your results with results from other approaches for same or similar problems

Software Engineering – Best Practices for FYP 35Copyright © Chun, Hon Wai 2004-2005

Software Engineering Principles:

RUP Best Practices:Verify Software Quality

XP Best Practices:Test-driven

Software Engineering – Best Practices for FYP 36Copyright © Chun, Hon Wai 2004-2005

Learn to Manage Yourself

Software Engineering – Best Practices for FYP 37Copyright © Chun, Hon Wai 2004-2005

Notes:

Manage your timeFYP is equivalent of 2 courses per semesterYour have only 13 + 9 weeks to do FYPWe expect you to put in roughly 300 hours total

Roughly 2 days/week (14 hours)

Write down what you have done each week

Software Engineering – Best Practices for FYP 38Copyright © Chun, Hon Wai 2004-2005

Notes:

Keep track of:Time spent each weekPages of document written each weekLOC written each weekBugs found each weekRequirements satisfied each week

Compare with original scheduleProject management skills count 10% of FYP

Software Engineering – Best Practices for FYP 39Copyright © Chun, Hon Wai 2004-2005

Software Engineering Principles:

Personal Software Process (PSP)From the CMM folks

Software Engineering – Best Practices for FYP 40Copyright © Chun, Hon Wai 2004-2005

Practice Makes Perfect

Software Engineering – Best Practices for FYP 41Copyright © Chun, Hon Wai 2004-2005

Notes:

Make sure you practice your presentation beforehand

Give advisor a copy of PPT at least 1 week before to get feedbackDry run in front of friends/classmates

Software Engineering – Best Practices for FYP 42Copyright © Chun, Hon Wai 2004-2005

References:

Agile Manifestoagilemanifesto.org

RUPibm.com/developerworks/rational/library/253.html

XPextremeprogramming.org

PSPwww.sei.cmu.edu/tsp/psp.html

Software Engineering – Best Practices for FYP 43Copyright © Chun, Hon Wai 2004-2005

Most Important Best Practice

Remember to Have Fun

Software Engineering – Best Practices for FYP 44Copyright © Chun, Hon Wai 2004-2005

Questions

top related