Software Engineering Large Practical coursework

38
Software Engineering Large Practical Stephen Gilmore School of Informatics Wednesday 26th September, 2012 Stephen Gilmore Software Engineering Large Practical

description

A description of the requirements and the assessment and marking for the Software Engineering Large Practical.

Transcript of Software Engineering Large Practical coursework

Page 1: Software Engineering Large Practical coursework

Software Engineering Large Practical

Stephen Gilmore

School of Informatics

Wednesday 26th September, 2012

Stephen Gilmore Software Engineering Large Practical

Page 2: Software Engineering Large Practical coursework

Summary

I The requirement for the Software Engineering Large Practicalis to create an app implemented in Java and XML for theAndroid phone.

I The purpose of the app is to develop a prototype system tohelp students to decide who they should vote for in studentelections.

Stephen Gilmore Software Engineering Large Practical

Page 3: Software Engineering Large Practical coursework

Outline

I In a student election, candidates nominate themselves for anoffice. For EUSA, these offices include President, VicePresident (Academic Affairs), Vice President (Societies andActivities), Vice President (Services), and others.

I Candidates reflect on the issues which are important to themand make promises to the student body on what they will doabout these issues if elected to office.

I Candidates can submit photographs of themselves andelection statements explaining what they want to achieve inthe hope of persuading people to vote for them.

I The photograph and statement are made available on theelection website.

Stephen Gilmore Software Engineering Large Practical

Page 4: Software Engineering Large Practical coursework

Details

I Photographs are made available in JPEG format with amaximum size of 2Mb.

I Images are at a resolution of 120 pixels wide by 150 pixelshigh.

I The number of words allowed in the election statement variesby office but is never more than 450 words.

Stephen Gilmore Software Engineering Large Practical

Page 5: Software Engineering Large Practical coursework

Reducing environmental impact

The traditional methodof making and hangingposters for electioncandidates has beencriticised as beingenvironmentallyunfriendly, aestheticallyunpleasing, andsomewhatold-fashioned.

Posters only give asuperficial impression ofa candidate’s prioritiesbecause they onlycontain a slogan,meaning that votersmust look elsewhere formore details.

Stephen Gilmore Software Engineering Large Practical

Page 6: Software Engineering Large Practical coursework

The idea: an app

In order to try to address these criticisms, the University ofEdinburgh is considering investing in an app for the Android phonewhich will allow matriculated students of the university to:

I read about candidates standing for election,

I support the decision-making process,

I cast votes, and – if they wish to –

I share the news that they have voted.

Stephen Gilmore Software Engineering Large Practical

Page 7: Software Engineering Large Practical coursework

Information on candidates

I The information on candidates is obtained by download of anXML document.

I This document specifies the candidates standing for election,their policies and other relevant details.

I The app should allow the user to browse this information andpresent it in a clear, readable display.

Stephen Gilmore Software Engineering Large Practical

Page 8: Software Engineering Large Practical coursework

XML documenthttp://www.inf.ed.ac.uk/teaching/courses/selp/

elections/election.xml

Stephen Gilmore Software Engineering Large Practical

Page 9: Software Engineering Large Practical coursework

Interface mockup

Stephen Gilmore Software Engineering Large Practical

Page 10: Software Engineering Large Practical coursework

Rating candidates

I In order to help with the decision-making process, users of thestudent voting app should be able to rate election candidateson a scale from zero to five stars and, if they are certain notto vote for them, to delete candidates entirely.

I The app should be stateful in the sense that ratings anddeletions are preserved between sessions with the app.

Stephen Gilmore Software Engineering Large Practical

Page 11: Software Engineering Large Practical coursework

Voting

I When the user has decided who to vote for they can use theapp to send a private email to

[email protected]

with a carbon copy (CC) to

matricno @sms.ed.ac.uk

where matricno is the matriculation number of the studentwho is voting.

I This email should make clear who is being voted for, and forwhich office. It is possible to vote more than once for anoffice: later votes will override earlier ones.

Stephen Gilmore Software Engineering Large Practical

Page 12: Software Engineering Large Practical coursework

Social aspects

I Once they have voted, users have the option to send a publictweet to

@InformaticsAndr

announcing that they have voted (but not who they havevoted for).

I This tweet should be labelled with the hashtag

#becounted

Stephen Gilmore Software Engineering Large Practical

Page 13: Software Engineering Large Practical coursework

Informatics Android Twitter account

https://twitter.com/InformaticsAndr

Stephen Gilmore Software Engineering Large Practical

Page 14: Software Engineering Large Practical coursework

Summary (1/2)

I It should be possible for the user to specify their matriculationnumber in the app.

I It should be possible to download the XML database ofcandidate information from the server into your app.

I It should be possible to browse the candidate information andread election promises and election statements.

I It should be possible to rate candidates using a star ratingsystem.

I It should be possible to delete candidates from the local copyof the candidate database.

Stephen Gilmore Software Engineering Large Practical

Page 15: Software Engineering Large Practical coursework

Summary (2/2)

I It should be possible to vote for candidates from the app.

I This sends an email to [email protected]

I A carbon copy is sent to the user at their SMS email address

I It should be possible to send a tweet after voting.

I A tweet is sent to @InformaticsAndr

I This tweet should be labelled with the hashtag #becounted

Stephen Gilmore Software Engineering Large Practical

Page 16: Software Engineering Large Practical coursework

Extra credit

I Additional credit will be awarded for additional useful featureswhich are not on the above list.

I Thus, if you have time remaining before the submissiondeadline and you have already met all the requirements listedabove then you can attract additional marks by being creative,conceiving of new features which can helpfully be added tothe application, and implementing these.

I If you have added additional features to your implementationin order to attract extra credit then you should be sure todocument these features if they are not immediately evidentfrom normal use of your application.

Stephen Gilmore Software Engineering Large Practical

Page 17: Software Engineering Large Practical coursework

Assessment

Stephen Gilmore Software Engineering Large Practical

Page 18: Software Engineering Large Practical coursework

Early submission credit

I In practical software development, timing and delivery ofcompleted applications and projects can be crucial in gaininga commercial or strategic advantage over competitors.

I Being the first to market means that your product has theopportunity to become known and similar products whichcome later may struggle to make the same impact, simplybecause they became available second.

I In order to motivate good project management, planning, andefficient software development, the SELP reserves marksabove 90% for work which is submitted early (specifically, oneweek before the deadline for Part 2).

I To achieve a mark above 90%, a practical submission must beexcellent in all technical, functional, and aesthetic aspectsand in addition to this it must be submitted early.

Stephen Gilmore Software Engineering Large Practical

Page 19: Software Engineering Large Practical coursework

Assessment criteria (1/3)

This practical exercise will be assessed in terms of the completenessof the solution to the problem, the quality of the Java and XMLcode produced, and the ingenuity and craftsmanship which havegone into designing a good and robust solution to the problem.

Stephen Gilmore Software Engineering Large Practical

Page 20: Software Engineering Large Practical coursework

Assessment criteria (2/3)

I For example, all other things being equal, an app which allowsusers to rate and delete election candidates should expect toreceive more marks than an app which does not allow this.

I A more complete solution will get more marks.

I All else being equal, an app which when loaded into Eclipsereports static analysis errors (called “Java Problems” inEclipse and displayed in the Problems View) should expect toattract fewer marks than one which does not.

I Sloppy development style ignoring compiler warnings will losemarks.

Stephen Gilmore Software Engineering Large Practical

Page 21: Software Engineering Large Practical coursework

Assessment criteria (3/3)

I Additionally, all else being equal, an app whose code containsexamples of poor Java programming style (such as emptycatch statements) should expect to attract fewer marks thanan application in which Java exceptions are handled gracefully.

I Poor programming style will lose marks.

I Finally, all else being equal, an application which containslogging statements (using the class android.util.Log andgenerating calls to Log.d or other methods) would expect toattract more marks than an equivalent application withoutlogging (because the version with logging is moremaintainable).

I Including logging will gain marks.

Stephen Gilmore Software Engineering Large Practical

Page 22: Software Engineering Large Practical coursework

Marking

Stephen Gilmore Software Engineering Large Practical

Page 23: Software Engineering Large Practical coursework

Marking (1/4)

1. The XML file specifying the information about the candidatesis updated to include a previously-unseen candidate to beexamined during testing.

I Submissions which have hardcoded in the candidateinformation will lose marks because they will not include theinformation about the previously-unseen candidate.

2. The accompanying documentation is read for instructions onhow to use the app.

I Submissions with insufficient documentation will lose markshere.

3. The Eclipse project is imported into an instance of the Eclipseplatform and inspected for errors or warnings (“JavaProblems”)

I Submissions with errors or static analysis warnings will losemarks here.

Stephen Gilmore Software Engineering Large Practical

Page 24: Software Engineering Large Practical coursework

Marking (2/4)

4. The project is launched as an Android application and run onthe emulator

I Submissions which fail to install or launch will lose marks here.I Requiring files to be pushed onto the emulator will lose marks

here.

5. The app is evaluated in user mode by browsing for content.I Submissions which have insufficient content will lose marks

here.

6. Evaluation continued by rating and deleting candidates.I Submissions which fail to rate or delete candidates will lose

marks here.I Producing “Application has unexpectedly quit” errors will lose

marks here.

Stephen Gilmore Software Engineering Large Practical

Page 25: Software Engineering Large Practical coursework

Marking (3/4)

7. Emulation is terminated and then restarted.I Submissions which fail to retain ratings or deletions will lose

marks here.

8. Other additional features of the application will be explored.I Voting for candidates will be tested here.I Tweeting will be tested here.I Submissions with useful additional features will gain marks

here.

9. Usability and aesthetics of the application will be explored.I Organisation and readability of the application will be

evaluated here.I Layout, colours, fonts and visual design will be evaluated here.

Stephen Gilmore Software Engineering Large Practical

Page 26: Software Engineering Large Practical coursework

Marking (4/4)

10. The Java source code will be inspected for good programmingstyle.

I Submissions with insufficient logging will lose marks here.I Submissions with too few comments will lose marks here.I Submissions with blocks of commented-out code will lose

marks here.

Stephen Gilmore Software Engineering Large Practical

Page 27: Software Engineering Large Practical coursework

Project management

Stephen Gilmore Software Engineering Large Practical

Page 28: Software Engineering Large Practical coursework

Managing a project

I Managing a project involves a range of skills.I You need to:

I identify roles and responsibilities;I carry out a range of tasks;I be aware of deadlines;I plan and anticipate problems; andI deliver a product.

Stephen Gilmore Software Engineering Large Practical

Page 29: Software Engineering Large Practical coursework

The Developer role

I Studies the problem; determines a solution.I Installs software, APIs and frameworks.I Reads documentation; learns about tools.I Writes code; debugs code; tests code.I Writes documentation.

For the Software Engineering LargePracticalYou have been assigned this role.

Stephen Gilmore Software Engineering Large Practical

Page 30: Software Engineering Large Practical coursework

The Project Manager role

I Identifies work which is to be done.I Sets parameters such as platform/architecture/language.I Sets priorities. Communicates priorities.I Doesn’t install software on your machine.I Doesn’t fix bugs in your code.

For the Software Engineering LargePracticalI have been assigned this role.

Stephen Gilmore Software Engineering Large Practical

Page 31: Software Engineering Large Practical coursework

Plan for the unexpected

I In planning a project you should build in some contingency todeal with problems which could delay your progress.

I You don’t know which problems will occur, but it would besurprising if no problems occurred.

I So, consider problems which could happen . . .I . . . the predictable unpredictables.

Stephen Gilmore Software Engineering Large Practical

Page 32: Software Engineering Large Practical coursework

Predictable unpredictables

I You could catch flu — a flu epidemic is predicted this year.I Laptop theft — if your laptop was stolen you would lose work.I Laptop failure — failures can be irreparable with no warning.I Broadband failure — your broadband service could fail.I Strikes could happen — staff or students elect not to work.I It could snow — labs and facilities could be closed or

inaccessible.

Total cost due to predictable unpredictables

Events such as the above could delay you by a week.

Stephen Gilmore Software Engineering Large Practical

Page 33: Software Engineering Large Practical coursework

Managing deadlines

I Most major projects have interim deadlines, milestones ordeliverables.

I Missing interim deadlines, milestones or deliverables usuallyincurs a penalty of some kind.

Stephen Gilmore Software Engineering Large Practical

Page 34: Software Engineering Large Practical coursework

Types of deadlines

There are different types of deadlines:

I soft deadlines which are not usually specified precisely — “thisshould be completed by Christmas”; and

I hard deadlines which must be specified precisely — “Part 2 ofthe Software Engineering Large Practical is due on Thursday20th December, 2012 at 16:00”.

Stephen Gilmore Software Engineering Large Practical

Page 35: Software Engineering Large Practical coursework

Dealing with hard deadlines

Factor in the potential problems with predictable unpredictables bytaking the hard deadlines and subtracting the estimated delay (weare considering this to be one week).

I Part 1 is due on Thursday 25th October, 2012 at 16:00.I try to complete this by Thursday 18th October, 2012 at 16:00.

I Early submission deadline for Part 2 is Thursday 13th

December, 2012 at 16:00.I try to complete this by Thursday 6th December, 2012 at 16:00.

I Part 2 is due on Thursday 20th December, 2012 at 16:00.I try to complete this by Thursday 13th December, 2012 at

16:00.

Stephen Gilmore Software Engineering Large Practical

Page 36: Software Engineering Large Practical coursework

Backing up your work

Secure copy (scp)

You should backup your code to your DiCE account. It is possibleto copy an entire folder to your DiCE account with just onecommand. If user is your username (e.g. s1234567)

scp -r ForumApp [email protected]:/home/user

will copy the folder ForumApp to your home directory.

Alternatives

Windows solution WinSCP

Cloud-based solution Dropbox — https://www.dropbox.com

Hardware solution Memory stick/CD

Caution

GitHub Free access is open source—anyone can copy your files

Stephen Gilmore Software Engineering Large Practical

Page 37: Software Engineering Large Practical coursework

Task management

I Applications which allow you to compile lists and categorisetasks can be useful when working on a large project.

I Several applications allow you to set dates and deadlines ontasks, set levels of importance and arrange lists to see taskswhich need to be done in the next few days.

I These are now typically cloud-based solutions which let yousee the same information on the Web, on the desktop and onmobile devices.

Stephen Gilmore Software Engineering Large Practical

Page 38: Software Engineering Large Practical coursework

Task management: Wunderlist

Stephen Gilmore Software Engineering Large Practical