SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Software Engineering Large Practical

              Stephen Gilmore

              School of Informatics


     Wednesday 26th September, 2012




         Stephen Gilmore   Software Engineering Large Practical
Summary




     The requirement for the Software Engineering Large Practical
     is to create an app implemented in Java and XML for the
     Android phone.
     The purpose of the app is to develop a prototype system to
     help students to decide who they should vote for in student
     elections.




                      Stephen Gilmore   Software Engineering Large Practical
Outline

      In a student election, candidates nominate themselves for an
      office. For EUSA, these offices include President, Vice
      President (Academic Affairs), Vice President (Societies and
      Activities), Vice President (Services), and others.
      Candidates reflect on the issues which are important to them
      and make promises to the student body on what they will do
      about these issues if elected to office.
      Candidates can submit photographs of themselves and
      election statements explaining what they want to achieve in
      the hope of persuading people to vote for them.
      The photograph and statement are made available on the
      election website.



                       Stephen Gilmore   Software Engineering Large Practical
Details




          Photographs are made available in JPEG format with a
          maximum size of 2Mb.
          Images are at a resolution of 120 pixels wide by 150 pixels
          high.
          The number of words allowed in the election statement varies
          by office but is never more than 450 words.




                           Stephen Gilmore   Software Engineering Large Practical
Reducing environmental impact
 The traditional method
 of making and hanging
 posters for election
 candidates has been
 criticised as being
 environmentally
 unfriendly, aesthetically
 unpleasing, and
 somewhat
 old-fashioned.
 Posters only give a
 superficial impression of
 a candidate’s priorities
 because they only
 contain a slogan,
 meaning that voters
 must look elsewhere for
 more details.
                             Stephen Gilmore   Software Engineering Large Practical
The idea: an app



   In order to try to address these criticisms, the University of
   Edinburgh is considering investing in an app for the Android phone
   which will allow matriculated students of the university to:
       read about candidates standing for election,
       support the decision-making process,
       cast votes, and – if they wish to –
       share the news that they have voted.




                        Stephen Gilmore   Software Engineering Large Practical
Information on candidates




      The information on candidates is obtained by download of an
      XML document.
      This document specifies the candidates standing for election,
      their policies and other relevant details.
      The app should allow the user to browse this information and
      present it in a clear, readable display.




                       Stephen Gilmore   Software Engineering Large Practical
XML document
  http://www.inf.ed.ac.uk/teaching/courses/selp/
  elections/election.xml




                   Stephen Gilmore   Software Engineering Large Practical
Interface mockup




                   Stephen Gilmore   Software Engineering Large Practical
Rating candidates




      In order to help with the decision-making process, users of the
      student voting app should be able to rate election candidates
      on a scale from zero to five stars and, if they are certain not
      to vote for them, to delete candidates entirely.
      The app should be stateful in the sense that ratings and
      deletions are preserved between sessions with the app.




                       Stephen Gilmore   Software Engineering Large Practical
Voting


         When the user has decided who to vote for they can use the
         app to send a private email to
                     informatics.android@gmail.com
         with a carbon copy (CC) to
                          matricno @sms.ed.ac.uk
         where matricno is the matriculation number of the student
         who is voting.
         This email should make clear who is being voted for, and for
         which office. It is possible to vote more than once for an
         office: later votes will override earlier ones.




                          Stephen Gilmore   Software Engineering Large Practical
Social aspects



       Once they have voted, users have the option to send a public
       tweet to
                             @InformaticsAndr
       announcing that they have voted (but not who they have
       voted for).
       This tweet should be labelled with the hashtag
                                   #becounted




                        Stephen Gilmore   Software Engineering Large Practical
Informatics Android Twitter account




                    https://twitter.com/InformaticsAndr

                   Stephen Gilmore   Software Engineering Large Practical
Summary (1/2)


     It should be possible for the user to specify their matriculation
     number in the app.
     It should be possible to download the XML database of
     candidate information from the server into your app.
     It should be possible to browse the candidate information and
     read election promises and election statements.
     It should be possible to rate candidates using a star rating
     system.
     It should be possible to delete candidates from the local copy
     of the candidate database.




                       Stephen Gilmore   Software Engineering Large Practical
Summary (2/2)



     It should be possible to vote for candidates from the app.
         This sends an email to informatics.android@gmail.com

         A carbon copy is sent to the user at their SMS email address
     It should be possible to send a tweet after voting.
         A tweet is sent to @InformaticsAndr

         This tweet should be labelled with the hashtag #becounted




                      Stephen Gilmore   Software Engineering Large Practical
Extra credit


       Additional credit will be awarded for additional useful features
       which are not on the above list.
       Thus, if you have time remaining before the submission
       deadline and you have already met all the requirements listed
       above then you can attract additional marks by being creative,
       conceiving of new features which can helpfully be added to
       the application, and implementing these.
       If you have added additional features to your implementation
       in order to attract extra credit then you should be sure to
       document these features if they are not immediately evident
       from normal use of your application.




                        Stephen Gilmore   Software Engineering Large Practical
Assessment




Stephen Gilmore   Software Engineering Large Practical
Early submission credit

       In practical software development, timing and delivery of
       completed applications and projects can be crucial in gaining
       a commercial or strategic advantage over competitors.
       Being the first to market means that your product has the
       opportunity to become known and similar products which
       come later may struggle to make the same impact, simply
       because they became available second.
       In order to motivate good project management, planning, and
       efficient software development, the SELP reserves marks
       above 90% for work which is submitted early (specifically, one
       week before the deadline for Part 2).
       To achieve a mark above 90%, a practical submission must be
       excellent in all technical, functional, and aesthetic aspects
       and in addition to this it must be submitted early.

                        Stephen Gilmore   Software Engineering Large Practical
Assessment criteria (1/3)




   This practical exercise will be assessed in terms of the completeness
   of the solution to the problem, the quality of the Java and XML
   code produced, and the ingenuity and craftsmanship which have
   gone into designing a good and robust solution to the problem.




                         Stephen Gilmore   Software Engineering Large Practical
Assessment criteria (2/3)


       For example, all other things being equal, an app which allows
       users to rate and delete election candidates should expect to
       receive more marks than an app which does not allow this.
           A more complete solution will get more marks.

       All else being equal, an app which when loaded into Eclipse
       reports static analysis errors (called “Java Problems” in
       Eclipse and displayed in the Problems View) should expect to
       attract fewer marks than one which does not.
           Sloppy development style ignoring compiler warnings will lose
           marks.




                        Stephen Gilmore   Software Engineering Large Practical
Assessment criteria (3/3)


       Additionally, all else being equal, an app whose code contains
       examples of poor Java programming style (such as empty
       catch statements) should expect to attract fewer marks than
       an application in which Java exceptions are handled gracefully.
           Poor programming style will lose marks.

       Finally, all else being equal, an application which contains
       logging statements (using the class android.util.Log and
       generating calls to Log.d or other methods) would expect to
       attract more marks than an equivalent application without
       logging (because the version with logging is more
       maintainable).
           Including logging will gain marks.




                        Stephen Gilmore   Software Engineering Large Practical
Marking




Stephen Gilmore   Software Engineering Large Practical
Marking (1/4)

    1. The XML file specifying the information about the candidates
       is updated to include a previously-unseen candidate to be
       examined during testing.
           Submissions which have hardcoded in the candidate
           information will lose marks because they will not include the
           information about the previously-unseen candidate.
    2. The accompanying documentation is read for instructions on
       how to use the app.
           Submissions with insufficient documentation will lose marks
           here.
    3. The Eclipse project is imported into an instance of the Eclipse
       platform and inspected for errors or warnings (“Java
       Problems”)
           Submissions with errors or static analysis warnings will lose
           marks here.


                         Stephen Gilmore   Software Engineering Large Practical
Marking (2/4)

    4. The project is launched as an Android application and run on
       the emulator
           Submissions which fail to install or launch will lose marks here.
           Requiring files to be pushed onto the emulator will lose marks
           here.
    5. The app is evaluated in user mode by browsing for content.
           Submissions which have insufficient content will lose marks
           here.
    6. Evaluation continued by rating and deleting candidates.
           Submissions which fail to rate or delete candidates will lose
           marks here.
           Producing “Application has unexpectedly quit” errors will lose
           marks here.




                         Stephen Gilmore   Software Engineering Large Practical
Marking (3/4)


    7. Emulation is terminated and then restarted.
            Submissions which fail to retain ratings or deletions will lose
            marks here.
    8. Other additional features of the application will be explored.
            Voting for candidates will be tested here.
            Tweeting will be tested here.
            Submissions with useful additional features will gain marks
            here.
    9. Usability and aesthetics of the application will be explored.
            Organisation and readability of the application will be
            evaluated here.
            Layout, colours, fonts and visual design will be evaluated here.




                          Stephen Gilmore   Software Engineering Large Practical
Marking (4/4)




   10. The Java source code will be inspected for good programming
       style.
           Submissions with insufficient logging will lose marks here.
           Submissions with too few comments will lose marks here.
           Submissions with blocks of commented-out code will lose
           marks here.




                        Stephen Gilmore   Software Engineering Large Practical
Project management




  Stephen Gilmore   Software Engineering Large Practical
Managing a project




      Managing a project involves a range of skills.
      You need to:
          identify roles and responsibilities;
          carry out a range of tasks;
          be aware of deadlines;
          plan and anticipate problems; and
          deliver a product.




                        Stephen Gilmore   Software Engineering Large Practical
The Developer role




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

                              For the Software Engineering Large
                              Practical
                              You have been assigned this role.




                       Stephen Gilmore   Software Engineering Large Practical
The Project Manager role




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

                             For the Software Engineering Large
                             Practical
                             I have been assigned this role.




                      Stephen Gilmore   Software Engineering Large Practical
Plan for the unexpected




      In planning a project you should build in some contingency to
      deal with problems which could delay your progress.
      You don’t know which problems will occur, but it would be
      surprising if no problems occurred.
          So, consider problems which could happen . . .
          . . . the predictable unpredictables.




                       Stephen Gilmore   Software Engineering Large Practical
Predictable unpredictables




       You could catch flu — a flu epidemic is predicted this year.
       Laptop theft — if your laptop was stolen you would lose work.
       Laptop failure — failures can be irreparable with no warning.
       Broadband failure — your broadband service could fail.
       Strikes could happen — staff or students elect not to work.
       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
Managing deadlines




      Most major projects have interim deadlines, milestones or
      deliverables.
      Missing interim deadlines, milestones or deliverables usually
      incurs a penalty of some kind.




                       Stephen Gilmore   Software Engineering Large Practical
Types of deadlines




   There are different types of deadlines:
       soft deadlines which are not usually specified precisely — “this
       should be completed by Christmas”; and
       hard deadlines which must be specified precisely — “Part 2 of
       the Software Engineering Large Practical is due on Thursday
       20th December, 2012 at 16:00”.




                         Stephen Gilmore   Software Engineering Large Practical
Dealing with hard deadlines

   Factor in the potential problems with predictable unpredictables by
   taking the hard deadlines and subtracting the estimated delay (we
   are considering this to be one week).

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

       Early submission deadline for Part 2 is Thursday 13th
       December, 2012 at 16:00.
            try to complete this by Thursday 6th December, 2012 at 16:00.

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



                         Stephen Gilmore   Software Engineering Large Practical
Backing up your work
   Secure copy (scp)
   You should backup your code to your DiCE account. It is possible
   to copy an entire folder to your DiCE account with just one
   command. If user is your username (e.g. s1234567)
   scp -r ForumApp user @student.ssh.inf.ed.ac.uk:/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
Task management



     Applications which allow you to compile lists and categorise
     tasks can be useful when working on a large project.
     Several applications allow you to set dates and deadlines on
     tasks, set levels of importance and arrange lists to see tasks
     which need to be done in the next few days.
     These are now typically cloud-based solutions which let you
     see the same information on the Web, on the desktop and on
     mobile devices.




                      Stephen Gilmore   Software Engineering Large Practical
Task management: Wunderlist




                  Stephen Gilmore   Software Engineering Large Practical

Contenu connexe

Tendances

Analysis concepts and principles
Analysis concepts and principlesAnalysis concepts and principles
Analysis concepts and principles
saurabhshertukde
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software design
Cliftone Mullah
 

Tendances (20)

Object Oriented Analysis
Object Oriented AnalysisObject Oriented Analysis
Object Oriented Analysis
 
SWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design ToolsSWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design Tools
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Software design presentation
Software design presentationSoftware design presentation
Software design presentation
 
Lecture 14 requirements modeling - flow and behavior
Lecture 14   requirements modeling - flow and  behaviorLecture 14   requirements modeling - flow and  behavior
Lecture 14 requirements modeling - flow and behavior
 
Software System Development Methodologies, tools, design and life cycle by K....
Software System Development Methodologies, tools, design and life cycle by K....Software System Development Methodologies, tools, design and life cycle by K....
Software System Development Methodologies, tools, design and life cycle by K....
 
Analysis concepts and principles
Analysis concepts and principlesAnalysis concepts and principles
Analysis concepts and principles
 
SWE-401 - 12. Software CASE Tools Overview
SWE-401 - 12. Software CASE Tools OverviewSWE-401 - 12. Software CASE Tools Overview
SWE-401 - 12. Software CASE Tools Overview
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software design
 
Software engg unit 4
Software engg unit 4 Software engg unit 4
Software engg unit 4
 
SWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software EngineeringSWE-401 - 1. Introduction to Software Engineering
SWE-401 - 1. Introduction to Software Engineering
 
SWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design BasicsSWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design Basics
 
Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012
 
Unit 3- requirements for software development
Unit 3-  requirements for software  development Unit 3-  requirements for software  development
Unit 3- requirements for software development
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
 
Ch 4 software engineering
Ch 4 software engineeringCh 4 software engineering
Ch 4 software engineering
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
 

En vedette

Software requirements specification
Software  requirements specificationSoftware  requirements specification
Software requirements specification
Krishnasai Gudavalli
 
Library Management System
Library Management SystemLibrary Management System
Library Management System
Aditya Shah
 
Library mangement system project srs documentation.doc
Library mangement system project srs documentation.docLibrary mangement system project srs documentation.doc
Library mangement system project srs documentation.doc
jimmykhan
 
User Centred Design (UCD) Presentation
User Centred Design (UCD) PresentationUser Centred Design (UCD) Presentation
User Centred Design (UCD) Presentation
Vinai Kumar
 
Programs for Operating System
Programs for Operating SystemPrograms for Operating System
Programs for Operating System
LPU
 

En vedette (20)

Software requirements specification of Library Management System
Software requirements specification of Library Management SystemSoftware requirements specification of Library Management System
Software requirements specification of Library Management System
 
Software requirements specification
Software  requirements specificationSoftware  requirements specification
Software requirements specification
 
Library Management System
Library Management SystemLibrary Management System
Library Management System
 
Library mangement system project srs documentation.doc
Library mangement system project srs documentation.docLibrary mangement system project srs documentation.doc
Library mangement system project srs documentation.doc
 
Tools for Mobile UX Design
Tools for Mobile UX DesignTools for Mobile UX Design
Tools for Mobile UX Design
 
Miva + WordPress
Miva + WordPressMiva + WordPress
Miva + WordPress
 
User Centred Design (UCD) Presentation
User Centred Design (UCD) PresentationUser Centred Design (UCD) Presentation
User Centred Design (UCD) Presentation
 
Ux Design for Mobile Apps
Ux Design for Mobile AppsUx Design for Mobile Apps
Ux Design for Mobile Apps
 
UX Design for Mobile Interfaces
UX Design for Mobile InterfacesUX Design for Mobile Interfaces
UX Design for Mobile Interfaces
 
2016 Mobile Design & UX Trends
2016 Mobile Design & UX Trends2016 Mobile Design & UX Trends
2016 Mobile Design & UX Trends
 
UX Design for Mobile Payment Experiences
UX Design for Mobile Payment ExperiencesUX Design for Mobile Payment Experiences
UX Design for Mobile Payment Experiences
 
Documenting Design: A Critical Step in Any Developers Workflow
Documenting Design: A Critical Step in Any Developers WorkflowDocumenting Design: A Critical Step in Any Developers Workflow
Documenting Design: A Critical Step in Any Developers Workflow
 
Videogame Design and Programming - 08 The Design Document
Videogame Design and Programming - 08 The Design DocumentVideogame Design and Programming - 08 The Design Document
Videogame Design and Programming - 08 The Design Document
 
work order of logic laboratory
work order of logic laboratory work order of logic laboratory
work order of logic laboratory
 
Bozorgmeh os lab
Bozorgmeh os labBozorgmeh os lab
Bozorgmeh os lab
 
Lab2
Lab2Lab2
Lab2
 
Gun make
Gun makeGun make
Gun make
 
Programs for Operating System
Programs for Operating SystemPrograms for Operating System
Programs for Operating System
 
Os file
Os fileOs file
Os file
 
OS tutoring #1
OS tutoring #1OS tutoring #1
OS tutoring #1
 

Similaire à Software Engineering Large Practical coursework

Tahseen Experience Resume
Tahseen Experience  ResumeTahseen Experience  Resume
Tahseen Experience Resume
Syed Ali
 
CV_Sayani_Updated
CV_Sayani_UpdatedCV_Sayani_Updated
CV_Sayani_Updated
SAYANI ROY
 
Varatharaj_Android
Varatharaj_AndroidVaratharaj_Android
Varatharaj_Android
Varatharaj E
 
70% of Candidates Use Mobile Devices to Search for Jobs… Will They Find Yours?
70% of Candidates Use Mobile Devices to Search for Jobs… Will They Find Yours?70% of Candidates Use Mobile Devices to Search for Jobs… Will They Find Yours?
70% of Candidates Use Mobile Devices to Search for Jobs… Will They Find Yours?
Talemetry
 
Software Assurance CSS321Security Static Ana.docx
Software Assurance CSS321Security Static Ana.docxSoftware Assurance CSS321Security Static Ana.docx
Software Assurance CSS321Security Static Ana.docx
whitneyleman54422
 

Similaire à Software Engineering Large Practical coursework (20)

Thorsignia - Custom software development services in india
Thorsignia - Custom software development services in indiaThorsignia - Custom software development services in india
Thorsignia - Custom software development services in india
 
DEVELOPING CUSTOM APPS USING DYNAMIC XML PARSING
DEVELOPING CUSTOM APPS USING DYNAMIC XML PARSINGDEVELOPING CUSTOM APPS USING DYNAMIC XML PARSING
DEVELOPING CUSTOM APPS USING DYNAMIC XML PARSING
 
IRJET- Implementation of Handling Android Application using SMS(Short Mes...
IRJET-  	  Implementation of Handling Android Application using SMS(Short Mes...IRJET-  	  Implementation of Handling Android Application using SMS(Short Mes...
IRJET- Implementation of Handling Android Application using SMS(Short Mes...
 
Chapter 1 - Mobile World - Business and Technology Drivers
Chapter 1 - Mobile World - Business and Technology DriversChapter 1 - Mobile World - Business and Technology Drivers
Chapter 1 - Mobile World - Business and Technology Drivers
 
Key Steps & Best Practices to Custom Mobile App Development Process
Key Steps & Best Practices to Custom Mobile App Development ProcessKey Steps & Best Practices to Custom Mobile App Development Process
Key Steps & Best Practices to Custom Mobile App Development Process
 
Resume11.docx (1)
Resume11.docx (1)Resume11.docx (1)
Resume11.docx (1)
 
Location sharing and automatic message sender Android Application
Location sharing and automatic message sender Android ApplicationLocation sharing and automatic message sender Android Application
Location sharing and automatic message sender Android Application
 
Tahseen Experience Resume
Tahseen Experience  ResumeTahseen Experience  Resume
Tahseen Experience Resume
 
how to choose right mobile app development tools
how to choose right mobile app development toolshow to choose right mobile app development tools
how to choose right mobile app development tools
 
CV_Sayani_Updated
CV_Sayani_UpdatedCV_Sayani_Updated
CV_Sayani_Updated
 
Varatharaj_Android
Varatharaj_AndroidVaratharaj_Android
Varatharaj_Android
 
70% of Candidates Use Mobile Devices to Search for Jobs… Will They Find Yours?
70% of Candidates Use Mobile Devices to Search for Jobs… Will They Find Yours?70% of Candidates Use Mobile Devices to Search for Jobs… Will They Find Yours?
70% of Candidates Use Mobile Devices to Search for Jobs… Will They Find Yours?
 
Chapter 3 - Common Test Types and Test Process for Mobile Applications
Chapter 3 - Common Test Types and Test Process for Mobile ApplicationsChapter 3 - Common Test Types and Test Process for Mobile Applications
Chapter 3 - Common Test Types and Test Process for Mobile Applications
 
Software Assurance CSS321Security Static Ana.docx
Software Assurance CSS321Security Static Ana.docxSoftware Assurance CSS321Security Static Ana.docx
Software Assurance CSS321Security Static Ana.docx
 
anucv
anucvanucv
anucv
 
Resume_Vinod
Resume_VinodResume_Vinod
Resume_Vinod
 
Getting Your App Discovered: Android Market & Beyond
Getting Your App Discovered: Android Market & BeyondGetting Your App Discovered: Android Market & Beyond
Getting Your App Discovered: Android Market & Beyond
 
Sunil_Personal
Sunil_PersonalSunil_Personal
Sunil_Personal
 
Resume_Vinod
Resume_VinodResume_Vinod
Resume_Vinod
 
Mobile application development process
Mobile application development processMobile application development process
Mobile application development process
 

Plus de Stephen Gilmore

More Stochastic Simulation Examples
More Stochastic Simulation ExamplesMore Stochastic Simulation Examples
More Stochastic Simulation Examples
Stephen Gilmore
 
Testing Android apps with Robotium
Testing Android apps with RobotiumTesting Android apps with Robotium
Testing Android apps with Robotium
Stephen Gilmore
 
Fixing errors in Android Java applications
Fixing errors in Android Java applicationsFixing errors in Android Java applications
Fixing errors in Android Java applications
Stephen Gilmore
 
Continuing Android development
Continuing Android developmentContinuing Android development
Continuing Android development
Stephen Gilmore
 
Project management for the individual practical
Project management for the individual practicalProject management for the individual practical
Project management for the individual practical
Stephen Gilmore
 

Plus de Stephen Gilmore (20)

Feedback on Part 1 of the CSLP
Feedback on Part 1 of the CSLPFeedback on Part 1 of the CSLP
Feedback on Part 1 of the CSLP
 
Feedback on Part 1 of the Software Engineering Large Practical
Feedback on Part 1 of the Software Engineering Large PracticalFeedback on Part 1 of the Software Engineering Large Practical
Feedback on Part 1 of the Software Engineering Large Practical
 
Arrays in Objective-C
Arrays in Objective-CArrays in Objective-C
Arrays in Objective-C
 
More Stochastic Simulation Examples
More Stochastic Simulation ExamplesMore Stochastic Simulation Examples
More Stochastic Simulation Examples
 
Testing Android apps with Robotium
Testing Android apps with RobotiumTesting Android apps with Robotium
Testing Android apps with Robotium
 
Common Java problems when developing with Android
Common Java problems when developing with AndroidCommon Java problems when developing with Android
Common Java problems when developing with Android
 
Quick quiz on Objective-C
Quick quiz on Objective-CQuick quiz on Objective-C
Quick quiz on Objective-C
 
Getting started with Xcode
Getting started with XcodeGetting started with Xcode
Getting started with Xcode
 
Working with databases in Android
Working with databases in AndroidWorking with databases in Android
Working with databases in Android
 
Crash Course in Objective-C
Crash Course in Objective-CCrash Course in Objective-C
Crash Course in Objective-C
 
SELP: Debugging, AVDs and Manifests
SELP: Debugging, AVDs and ManifestsSELP: Debugging, AVDs and Manifests
SELP: Debugging, AVDs and Manifests
 
The Stochastic Simulation Algorithm
The Stochastic Simulation AlgorithmThe Stochastic Simulation Algorithm
The Stochastic Simulation Algorithm
 
Beginning Android Development
Beginning Android DevelopmentBeginning Android Development
Beginning Android Development
 
Computer Science Large Practical coursework
Computer Science Large Practical courseworkComputer Science Large Practical coursework
Computer Science Large Practical coursework
 
Introduction to the CSLP and the SELP
Introduction to the CSLP and the SELPIntroduction to the CSLP and the SELP
Introduction to the CSLP and the SELP
 
Fixing errors in Android Java applications
Fixing errors in Android Java applicationsFixing errors in Android Java applications
Fixing errors in Android Java applications
 
Feedback on Part 1 of the Individual Practical
Feedback on Part 1 of the Individual PracticalFeedback on Part 1 of the Individual Practical
Feedback on Part 1 of the Individual Practical
 
Creating and working with databases in Android
Creating and working with databases in AndroidCreating and working with databases in Android
Creating and working with databases in Android
 
Continuing Android development
Continuing Android developmentContinuing Android development
Continuing Android development
 
Project management for the individual practical
Project management for the individual practicalProject management for the individual practical
Project management for the individual practical
 

Dernier

Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Krashi Coaching
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
heathfieldcps1
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 

Dernier (20)

Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 

Software Engineering Large Practical coursework

  • 1. Software Engineering Large Practical Stephen Gilmore School of Informatics Wednesday 26th September, 2012 Stephen Gilmore Software Engineering Large Practical
  • 2. Summary The requirement for the Software Engineering Large Practical is to create an app implemented in Java and XML for the Android phone. The purpose of the app is to develop a prototype system to help students to decide who they should vote for in student elections. Stephen Gilmore Software Engineering Large Practical
  • 3. Outline In a student election, candidates nominate themselves for an office. For EUSA, these offices include President, Vice President (Academic Affairs), Vice President (Societies and Activities), Vice President (Services), and others. Candidates reflect on the issues which are important to them and make promises to the student body on what they will do about these issues if elected to office. Candidates can submit photographs of themselves and election statements explaining what they want to achieve in the hope of persuading people to vote for them. The photograph and statement are made available on the election website. Stephen Gilmore Software Engineering Large Practical
  • 4. Details Photographs are made available in JPEG format with a maximum size of 2Mb. Images are at a resolution of 120 pixels wide by 150 pixels high. The number of words allowed in the election statement varies by office but is never more than 450 words. Stephen Gilmore Software Engineering Large Practical
  • 5. Reducing environmental impact The traditional method of making and hanging posters for election candidates has been criticised as being environmentally unfriendly, aesthetically unpleasing, and somewhat old-fashioned. Posters only give a superficial impression of a candidate’s priorities because they only contain a slogan, meaning that voters must look elsewhere for more details. Stephen Gilmore Software Engineering Large Practical
  • 6. The idea: an app In order to try to address these criticisms, the University of Edinburgh is considering investing in an app for the Android phone which will allow matriculated students of the university to: read about candidates standing for election, support the decision-making process, cast votes, and – if they wish to – share the news that they have voted. Stephen Gilmore Software Engineering Large Practical
  • 7. Information on candidates The information on candidates is obtained by download of an XML document. This document specifies the candidates standing for election, their policies and other relevant details. The app should allow the user to browse this information and present it in a clear, readable display. Stephen Gilmore Software Engineering Large Practical
  • 8. XML document http://www.inf.ed.ac.uk/teaching/courses/selp/ elections/election.xml Stephen Gilmore Software Engineering Large Practical
  • 9. Interface mockup Stephen Gilmore Software Engineering Large Practical
  • 10. Rating candidates In order to help with the decision-making process, users of the student voting app should be able to rate election candidates on a scale from zero to five stars and, if they are certain not to vote for them, to delete candidates entirely. The app should be stateful in the sense that ratings and deletions are preserved between sessions with the app. Stephen Gilmore Software Engineering Large Practical
  • 11. Voting When the user has decided who to vote for they can use the app to send a private email to informatics.android@gmail.com with a carbon copy (CC) to matricno @sms.ed.ac.uk where matricno is the matriculation number of the student who is voting. This email should make clear who is being voted for, and for which office. It is possible to vote more than once for an office: later votes will override earlier ones. Stephen Gilmore Software Engineering Large Practical
  • 12. Social aspects Once they have voted, users have the option to send a public tweet to @InformaticsAndr announcing that they have voted (but not who they have voted for). This tweet should be labelled with the hashtag #becounted Stephen Gilmore Software Engineering Large Practical
  • 13. Informatics Android Twitter account https://twitter.com/InformaticsAndr Stephen Gilmore Software Engineering Large Practical
  • 14. Summary (1/2) It should be possible for the user to specify their matriculation number in the app. It should be possible to download the XML database of candidate information from the server into your app. It should be possible to browse the candidate information and read election promises and election statements. It should be possible to rate candidates using a star rating system. It should be possible to delete candidates from the local copy of the candidate database. Stephen Gilmore Software Engineering Large Practical
  • 15. Summary (2/2) It should be possible to vote for candidates from the app. This sends an email to informatics.android@gmail.com A carbon copy is sent to the user at their SMS email address It should be possible to send a tweet after voting. A tweet is sent to @InformaticsAndr This tweet should be labelled with the hashtag #becounted Stephen Gilmore Software Engineering Large Practical
  • 16. Extra credit Additional credit will be awarded for additional useful features which are not on the above list. Thus, if you have time remaining before the submission deadline and you have already met all the requirements listed above then you can attract additional marks by being creative, conceiving of new features which can helpfully be added to the application, and implementing these. If you have added additional features to your implementation in order to attract extra credit then you should be sure to document these features if they are not immediately evident from normal use of your application. Stephen Gilmore Software Engineering Large Practical
  • 17. Assessment Stephen Gilmore Software Engineering Large Practical
  • 18. Early submission credit In practical software development, timing and delivery of completed applications and projects can be crucial in gaining a commercial or strategic advantage over competitors. Being the first to market means that your product has the opportunity to become known and similar products which come later may struggle to make the same impact, simply because they became available second. In order to motivate good project management, planning, and efficient software development, the SELP reserves marks above 90% for work which is submitted early (specifically, one week before the deadline for Part 2). To achieve a mark above 90%, a practical submission must be excellent in all technical, functional, and aesthetic aspects and in addition to this it must be submitted early. Stephen Gilmore Software Engineering Large Practical
  • 19. Assessment criteria (1/3) This practical exercise will be assessed in terms of the completeness of the solution to the problem, the quality of the Java and XML code produced, and the ingenuity and craftsmanship which have gone into designing a good and robust solution to the problem. Stephen Gilmore Software Engineering Large Practical
  • 20. Assessment criteria (2/3) For example, all other things being equal, an app which allows users to rate and delete election candidates should expect to receive more marks than an app which does not allow this. A more complete solution will get more marks. All else being equal, an app which when loaded into Eclipse reports static analysis errors (called “Java Problems” in Eclipse and displayed in the Problems View) should expect to attract fewer marks than one which does not. Sloppy development style ignoring compiler warnings will lose marks. Stephen Gilmore Software Engineering Large Practical
  • 21. Assessment criteria (3/3) Additionally, all else being equal, an app whose code contains examples of poor Java programming style (such as empty catch statements) should expect to attract fewer marks than an application in which Java exceptions are handled gracefully. Poor programming style will lose marks. Finally, all else being equal, an application which contains logging statements (using the class android.util.Log and generating calls to Log.d or other methods) would expect to attract more marks than an equivalent application without logging (because the version with logging is more maintainable). Including logging will gain marks. Stephen Gilmore Software Engineering Large Practical
  • 22. Marking Stephen Gilmore Software Engineering Large Practical
  • 23. Marking (1/4) 1. The XML file specifying the information about the candidates is updated to include a previously-unseen candidate to be examined during testing. Submissions which have hardcoded in the candidate information will lose marks because they will not include the information about the previously-unseen candidate. 2. The accompanying documentation is read for instructions on how to use the app. Submissions with insufficient documentation will lose marks here. 3. The Eclipse project is imported into an instance of the Eclipse platform and inspected for errors or warnings (“Java Problems”) Submissions with errors or static analysis warnings will lose marks here. Stephen Gilmore Software Engineering Large Practical
  • 24. Marking (2/4) 4. The project is launched as an Android application and run on the emulator Submissions which fail to install or launch will lose marks here. Requiring files to be pushed onto the emulator will lose marks here. 5. The app is evaluated in user mode by browsing for content. Submissions which have insufficient content will lose marks here. 6. Evaluation continued by rating and deleting candidates. Submissions which fail to rate or delete candidates will lose marks here. Producing “Application has unexpectedly quit” errors will lose marks here. Stephen Gilmore Software Engineering Large Practical
  • 25. Marking (3/4) 7. Emulation is terminated and then restarted. Submissions which fail to retain ratings or deletions will lose marks here. 8. Other additional features of the application will be explored. Voting for candidates will be tested here. Tweeting will be tested here. Submissions with useful additional features will gain marks here. 9. Usability and aesthetics of the application will be explored. Organisation and readability of the application will be evaluated here. Layout, colours, fonts and visual design will be evaluated here. Stephen Gilmore Software Engineering Large Practical
  • 26. Marking (4/4) 10. The Java source code will be inspected for good programming style. Submissions with insufficient logging will lose marks here. Submissions with too few comments will lose marks here. Submissions with blocks of commented-out code will lose marks here. Stephen Gilmore Software Engineering Large Practical
  • 27. Project management Stephen Gilmore Software Engineering Large Practical
  • 28. Managing a project Managing a project involves a range of skills. You need to: identify roles and responsibilities; carry out a range of tasks; be aware of deadlines; plan and anticipate problems; and deliver a product. Stephen Gilmore Software Engineering Large Practical
  • 29. The Developer role Studies the problem; determines a solution. Installs software, APIs and frameworks. Reads documentation; learns about tools. Writes code; debugs code; tests code. Writes documentation. For the Software Engineering Large Practical You have been assigned this role. Stephen Gilmore Software Engineering Large Practical
  • 30. The Project Manager role Identifies work which is to be done. Sets parameters such as platform/architecture/language. Sets priorities. Communicates priorities. Doesn’t install software on your machine. Doesn’t fix bugs in your code. For the Software Engineering Large Practical I have been assigned this role. Stephen Gilmore Software Engineering Large Practical
  • 31. Plan for the unexpected In planning a project you should build in some contingency to deal with problems which could delay your progress. You don’t know which problems will occur, but it would be surprising if no problems occurred. So, consider problems which could happen . . . . . . the predictable unpredictables. Stephen Gilmore Software Engineering Large Practical
  • 32. Predictable unpredictables You could catch flu — a flu epidemic is predicted this year. Laptop theft — if your laptop was stolen you would lose work. Laptop failure — failures can be irreparable with no warning. Broadband failure — your broadband service could fail. Strikes could happen — staff or students elect not to work. 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
  • 33. Managing deadlines Most major projects have interim deadlines, milestones or deliverables. Missing interim deadlines, milestones or deliverables usually incurs a penalty of some kind. Stephen Gilmore Software Engineering Large Practical
  • 34. Types of deadlines There are different types of deadlines: soft deadlines which are not usually specified precisely — “this should be completed by Christmas”; and hard deadlines which must be specified precisely — “Part 2 of the Software Engineering Large Practical is due on Thursday 20th December, 2012 at 16:00”. Stephen Gilmore Software Engineering Large Practical
  • 35. Dealing with hard deadlines Factor in the potential problems with predictable unpredictables by taking the hard deadlines and subtracting the estimated delay (we are considering this to be one week). Part 1 is due on Thursday 25th October, 2012 at 16:00. try to complete this by Thursday 18th October, 2012 at 16:00. Early submission deadline for Part 2 is Thursday 13th December, 2012 at 16:00. try to complete this by Thursday 6th December, 2012 at 16:00. Part 2 is due on Thursday 20th December, 2012 at 16:00. try to complete this by Thursday 13th December, 2012 at 16:00. Stephen Gilmore Software Engineering Large Practical
  • 36. Backing up your work Secure copy (scp) You should backup your code to your DiCE account. It is possible to copy an entire folder to your DiCE account with just one command. If user is your username (e.g. s1234567) scp -r ForumApp user @student.ssh.inf.ed.ac.uk:/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
  • 37. Task management Applications which allow you to compile lists and categorise tasks can be useful when working on a large project. Several applications allow you to set dates and deadlines on tasks, set levels of importance and arrange lists to see tasks which need to be done in the next few days. These are now typically cloud-based solutions which let you see the same information on the Web, on the desktop and on mobile devices. Stephen Gilmore Software Engineering Large Practical
  • 38. Task management: Wunderlist Stephen Gilmore Software Engineering Large Practical