SlideShare a Scribd company logo
Software Engineering Large Practical

Feedback on Part 1 of the Practical

                  Stephen Gilmore

     School of Informatics, University of Edinburgh


              November 7th, 2012




             Stephen Gilmore   Software Engineering Large Practical
About Practical 1


      There are 19 people taking the Software Engineering Large
      Practical. There were 14 submissions, and 5 non-submisisons.
      The submissions have been marked and comments returned.
      The submissions varied widely.
          Some project submissions contained Java syntax errors and
          failed to compile. Some generated warnings. Some generated
          neither errors nor warnings.
          Some submissions had only limited functionality (e.g. a login
          screen). Some read the XML document from the server. Some
          created a database.
          Some looked more more like a submission for Part 2 than
          Part 1.




                       Stephen Gilmore   Software Engineering Large Practical
Lessons learnt




       Discovered a bug in the “submit” command which is now
       being fixed.
       Discovered an underspecification in the practical description,
       which should explain that we are using Java 1.6 and that Java
       1.7 language features are not available (such as strings in
       switch statements).




                       Stephen Gilmore   Software Engineering Large Practical
Point of this lecture




       Give feedback on the submissions generally, rather than
       individually.
       Allow you to get a sense of where you are in the class.
       See examples of some app designs.
       Consider additional features which you might like to
       implement.




                        Stephen Gilmore   Software Engineering Large Practical
Java and XML problems, warnings and errors


      Errors and warnings encountered are listed here.
      These included syntax errors in Java (e.g. missing
      semi-colons) and semantic errors (such as “variable not
      declared” errors).
      Some XML documents were ill-formed (e.g. not a single root
      element).
      Many uses of generics were not complete, and led to “raw
      types”.
      Many imports were never used. Some variables were not used.




                       Stephen Gilmore   Software Engineering Large Practical
Java problems: syntax errors




                    Stephen Gilmore   Software Engineering Large Practical
XML errors: “junk after document element”




                   Stephen Gilmore   Software Engineering Large Practical
Java problems: “cannot be resolved” or is not a field




                    Stephen Gilmore   Software Engineering Large Practical
XML problems: no resource found




                  Stephen Gilmore   Software Engineering Large Practical
Java problems: generics and raw types




ng




                        Stephen Gilmore   Software Engineering Large Practical
Java problems: imports not used




ng




                        Stephen Gilmore   Software Engineering Large Practical
Unused imports in Java code




ng




                        Stephen Gilmore   Software Engineering Large Practical
Java problems: variables not used




ng




                         Stephen Gilmore   Software Engineering Large Practical
Java problems: Java 1.5/Java 1.6 incompatibility




ng




                         Stephen Gilmore   Software Engineering Large Practical
User interfaces in development




      Some submissions had more user interface code than others.
      Some had working buttons, menus and textboxes.




                      Stephen Gilmore   Software Engineering Large Practical
Blank screen




png



                     Stephen Gilmore   Software Engineering Large Practical
Alpha version of interface: setting matriculation number




png                       shot 2012-10-30 at 09.35.44.png




                          Stephen Gilmore            Software Engineering Large Practical
Interface and settings




png                       shot 2012-10-30 at 10.14.54.png




                           Stephen Gilmore           Software Engineering Large Practical
Interface of alpha version




png                       shot 2012-10-30 at 13.26.38.png




                           Stephen Gilmore           Software Engineering Large Practical
Entering a student number




png                     shot 2012-10-30 at 14.04.56.png




                         Stephen Gilmore           Software Engineering Large Practical
Candidate lists in development




      Some submissions were able to retrieve the candidate list from
      the server and display this.
      Some submissions just listed the names of the candidates.
      Some included election statements.
      Some included photographs of the candidates.




                       Stephen Gilmore   Software Engineering Large Practical
Interace of alpha version — listing candidates




png                       shot 2012-10-30 at 15.21.16.png




                          Stephen Gilmore            Software Engineering Large Practical
Listing candidates




png                        shot 2012-10-31 at 13.23.00.png




                           Stephen Gilmore            Software Engineering Large Practical
Sign-in screen — candidates listed




png                       shot 2012-10-30 at 15.47.56.png




                          Stephen Gilmore            Software Engineering Large Practical
Logging in and viewing candidates




png                      shot 2012-10-30 at 14.46.34.png




                         Stephen Gilmore            Software Engineering Large Practical
Viewing candidates by category




png                      shot 2012-10-30 at 14.31.32.png




                         Stephen Gilmore            Software Engineering Large Practical
Additional features in development




      The application requires you to retrieve an XML document
      from the server.
      We can’t be sure that this will always succeed. What if we
      have no network connection?




                       Stephen Gilmore   Software Engineering Large Practical
Dealing with network connection issues




png                      shot 2012-10-30 at 14.34.25.png




                          Stephen Gilmore           Software Engineering Large Practical
Going further: rating, deleting, and sending tweets




       The other functions required by the app include rating
       favoured candidates, deleting unfavoured candidates, sending
       email and sending tweets.




                        Stephen Gilmore   Software Engineering Large Practical
Candidates selected and rated




png                      shot 2012-10-30 at 15.21.40.png




                         Stephen Gilmore            Software Engineering Large Practical
Rating a candidate and sending a tweet




png                      shot 2012-10-31 at 13.24.17.png




                         Stephen Gilmore            Software Engineering Large Practical
Viewing details and rating candidates




png                       shot 2012-10-30 at 14.47.10.png




                          Stephen Gilmore            Software Engineering Large Practical
Deleting a candidate




png                      shot 2012-10-30 at 14.47.52.png




                             Stephen Gilmore        Software Engineering Large Practical
Database contents




                    Stephen Gilmore   Software Engineering Large Practical
Viewing the database




                   Stephen Gilmore   Software Engineering Large Practical
Database




           Stephen Gilmore   Software Engineering Large Practical
Examples of good practice




      Adding logging to your app early helps you to develop it
      because it gives you a deeper understanding of how your app
      is working and what is not working.
      You are asked to add logging to your app so why not start
      now and reap the benefits?




                      Stephen Gilmore   Software Engineering Large Practical
Logging: It’s great! Look how helpful it is.




ng




                          Stephen Gilmore   Software Engineering Large Practical
Logging: why not start now? Seriously, it’s great.




ng




                         Stephen Gilmore   Software Engineering Large Practical
Closing remarks


      When implementing your app you should pay careful attention
      to the instructions in the practical handout which you received
      at the start of the course.
      You also have now available a sample XML file with data on
      the candidates in the election. Note that this is only a sample,
      and not a template.
      For example, all of the candidates in the sample XML file had
      made three promises but this is not specified by the
      regulations so it would be possible for candidates to make
      more promises, or fewer.




                       Stephen Gilmore   Software Engineering Large Practical
XML Update: new candidate added, with more promises




ng




                       Stephen Gilmore   Software Engineering Large Practical
End of course lectures




       Good luck!




                    Stephen Gilmore   Software Engineering Large Practical

More Related Content

What's hot

Do Bugs Reside in Complex Code?
Do Bugs Reside in Complex Code?Do Bugs Reside in Complex Code?
Do Bugs Reside in Complex Code?
CISPA Helmholtz Center for Information Security
 
Designing with tests
Designing with testsDesigning with tests
Designing with tests
Dror Helper
 
BDD Primer
BDD PrimerBDD Primer
BDD Primer
Attila Bertók
 
Clean code-v2.2
Clean code-v2.2Clean code-v2.2
Clean code-v2.2
Bình Trọng Án
 
Design for testability as a way to good coding (SOLID and IoC)
Design for testability as a way to good coding (SOLID and IoC)Design for testability as a way to good coding (SOLID and IoC)
Design for testability as a way to good coding (SOLID and IoC)
Simone Chiaretta
 
Clean Code summary
Clean Code summaryClean Code summary
Clean Code summary
Jan de Vries
 
Debugging
DebuggingDebugging
Debugging
Olivier Teytaud
 
On impact in Software Engineering Research (ICSE 2018 New Faculty Symposium)
On impact in Software Engineering Research (ICSE 2018 New Faculty Symposium)On impact in Software Engineering Research (ICSE 2018 New Faculty Symposium)
On impact in Software Engineering Research (ICSE 2018 New Faculty Symposium)
CISPA Helmholtz Center for Information Security
 
Clean Code III - Software Craftsmanship
Clean Code III - Software CraftsmanshipClean Code III - Software Craftsmanship
Clean Code III - Software Craftsmanship
Theo Jungeblut
 
On Impact in Software Engineering Research (HU Berlin 2021)
On Impact in Software Engineering Research (HU Berlin 2021)On Impact in Software Engineering Research (HU Berlin 2021)
On Impact in Software Engineering Research (HU Berlin 2021)
CISPA Helmholtz Center for Information Security
 
2015.01.09 - Writing Modern Applications for Mobile and Web
2015.01.09 - Writing Modern Applications for Mobile and Web2015.01.09 - Writing Modern Applications for Mobile and Web
2015.01.09 - Writing Modern Applications for Mobile and Web
Marco Parenzan
 
Clean code
Clean codeClean code
Clean code
Jean Carlo Machado
 
Refactoring for Software Design Smells - Tech Talk
Refactoring for Software Design Smells - Tech TalkRefactoring for Software Design Smells - Tech Talk
Refactoring for Software Design Smells - Tech Talk
Ganesh Samarthyam
 
Clean Code II - Dependency Injection
Clean Code II - Dependency InjectionClean Code II - Dependency Injection
Clean Code II - Dependency Injection
Theo Jungeblut
 
On Impact in Software Engineering Research
On Impact in Software Engineering ResearchOn Impact in Software Engineering Research
On Impact in Software Engineering Research
CISPA Helmholtz Center for Information Security
 
On Impact in Software Engineering Research (Dagstuhl 2020)
On Impact in Software Engineering Research (Dagstuhl 2020)On Impact in Software Engineering Research (Dagstuhl 2020)
On Impact in Software Engineering Research (Dagstuhl 2020)
CISPA Helmholtz Center for Information Security
 
Software design principles
Software design principlesSoftware design principles
Software design principles
Md.Mojibul Hoque
 
Generic Tools, Specific Laguages
Generic Tools, Specific LaguagesGeneric Tools, Specific Laguages
Generic Tools, Specific Laguages
Markus Voelter
 
Code Smells
Code SmellsCode Smells

What's hot (20)

Do Bugs Reside in Complex Code?
Do Bugs Reside in Complex Code?Do Bugs Reside in Complex Code?
Do Bugs Reside in Complex Code?
 
Designing with tests
Designing with testsDesigning with tests
Designing with tests
 
BDD Primer
BDD PrimerBDD Primer
BDD Primer
 
Clean code-v2.2
Clean code-v2.2Clean code-v2.2
Clean code-v2.2
 
Design for testability as a way to good coding (SOLID and IoC)
Design for testability as a way to good coding (SOLID and IoC)Design for testability as a way to good coding (SOLID and IoC)
Design for testability as a way to good coding (SOLID and IoC)
 
Clean Code summary
Clean Code summaryClean Code summary
Clean Code summary
 
Debugging
DebuggingDebugging
Debugging
 
On impact in Software Engineering Research (ICSE 2018 New Faculty Symposium)
On impact in Software Engineering Research (ICSE 2018 New Faculty Symposium)On impact in Software Engineering Research (ICSE 2018 New Faculty Symposium)
On impact in Software Engineering Research (ICSE 2018 New Faculty Symposium)
 
Clean Code III - Software Craftsmanship
Clean Code III - Software CraftsmanshipClean Code III - Software Craftsmanship
Clean Code III - Software Craftsmanship
 
On Impact in Software Engineering Research (HU Berlin 2021)
On Impact in Software Engineering Research (HU Berlin 2021)On Impact in Software Engineering Research (HU Berlin 2021)
On Impact in Software Engineering Research (HU Berlin 2021)
 
2015.01.09 - Writing Modern Applications for Mobile and Web
2015.01.09 - Writing Modern Applications for Mobile and Web2015.01.09 - Writing Modern Applications for Mobile and Web
2015.01.09 - Writing Modern Applications for Mobile and Web
 
Clean code
Clean codeClean code
Clean code
 
Refactoring for Software Design Smells - Tech Talk
Refactoring for Software Design Smells - Tech TalkRefactoring for Software Design Smells - Tech Talk
Refactoring for Software Design Smells - Tech Talk
 
Clean Code II - Dependency Injection
Clean Code II - Dependency InjectionClean Code II - Dependency Injection
Clean Code II - Dependency Injection
 
On Impact in Software Engineering Research
On Impact in Software Engineering ResearchOn Impact in Software Engineering Research
On Impact in Software Engineering Research
 
Ch06lect1 ud
Ch06lect1 udCh06lect1 ud
Ch06lect1 ud
 
On Impact in Software Engineering Research (Dagstuhl 2020)
On Impact in Software Engineering Research (Dagstuhl 2020)On Impact in Software Engineering Research (Dagstuhl 2020)
On Impact in Software Engineering Research (Dagstuhl 2020)
 
Software design principles
Software design principlesSoftware design principles
Software design principles
 
Generic Tools, Specific Laguages
Generic Tools, Specific LaguagesGeneric Tools, Specific Laguages
Generic Tools, Specific Laguages
 
Code Smells
Code SmellsCode Smells
Code Smells
 

Viewers also liked

Testing Android apps with Robotium
Testing Android apps with RobotiumTesting Android apps with Robotium
Testing Android apps with RobotiumStephen Gilmore
 
Taller Swift - iCon
Taller Swift - iConTaller Swift - iCon
Taller Swift - iCon
iCon
 
Swift Tutorial 1
Swift Tutorial 1Swift Tutorial 1
Swift Tutorial 1
Jintin Lin
 
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
Stephen Gilmore
 
Getting started with Xcode
Getting started with XcodeGetting started with Xcode
Getting started with Xcode
Stephen Gilmore
 
놀아요 Swift Playgrounds
놀아요 Swift Playgrounds놀아요 Swift Playgrounds
놀아요 Swift PlaygroundsWooKyoung Noh
 
Crash Course in Objective-C
Crash Course in Objective-CCrash Course in Objective-C
Crash Course in Objective-C
Stephen Gilmore
 
Swift Tutorial 2
Swift Tutorial  2Swift Tutorial  2
Swift Tutorial 2
Jintin Lin
 
Swifter Taipei 聊聊 Swift 遊樂場、變數常數、數字與運算
Swifter Taipei 聊聊 Swift 遊樂場、變數常數、數字與運算Swifter Taipei 聊聊 Swift 遊樂場、變數常數、數字與運算
Swifter Taipei 聊聊 Swift 遊樂場、變數常數、數字與運算
Xue Xin Tsai
 
Quick quiz on Objective-C
Quick quiz on Objective-CQuick quiz on Objective-C
Quick quiz on Objective-C
Stephen Gilmore
 
Programming in Objective-C
Programming in Objective-CProgramming in Objective-C
Programming in Objective-C
Ryan Chung
 
Standford 2015 iOS讀書會 week1: 1.Logistics , iOS 8 Overview 2. More Xcode and S...
Standford 2015 iOS讀書會 week1: 1.Logistics , iOS 8 Overview 2. More Xcode and S...Standford 2015 iOS讀書會 week1: 1.Logistics , iOS 8 Overview 2. More Xcode and S...
Standford 2015 iOS讀書會 week1: 1.Logistics , iOS 8 Overview 2. More Xcode and S...
彼得潘 Pan
 
Swift Basic
Swift BasicSwift Basic
Swift Basic
Ryan Chung
 
To swiftly go where no OS has gone before
To swiftly go where no OS has gone beforeTo swiftly go where no OS has gone before
To swiftly go where no OS has gone before
Paul Ardeleanu
 
Standford 2015 week8
Standford 2015 week8Standford 2015 week8
Standford 2015 week8彼得潘 Pan
 
打造你的第一個iPhone APP
打造你的第一個iPhone APP打造你的第一個iPhone APP
打造你的第一個iPhone APP
彼得潘 Pan
 
Objective-C Crash Course for Web Developers
Objective-C Crash Course for Web DevelopersObjective-C Crash Course for Web Developers
Objective-C Crash Course for Web Developers
Joris Verbogt
 
Swift-Programming Part 1
Swift-Programming Part 1Swift-Programming Part 1
Swift-Programming Part 1
Mindfire Solutions
 
Swift Summit: Pushing the boundaries of Swift to the Server
Swift Summit: Pushing the boundaries of Swift to the ServerSwift Summit: Pushing the boundaries of Swift to the Server
Swift Summit: Pushing the boundaries of Swift to the Server
Chris Bailey
 
Object Oriented Programming in Swift Ch0 - Encapsulation
Object Oriented Programming in Swift Ch0 - EncapsulationObject Oriented Programming in Swift Ch0 - Encapsulation
Object Oriented Programming in Swift Ch0 - Encapsulation
Chihyang Li
 

Viewers also liked (20)

Testing Android apps with Robotium
Testing Android apps with RobotiumTesting Android apps with Robotium
Testing Android apps with Robotium
 
Taller Swift - iCon
Taller Swift - iConTaller Swift - iCon
Taller Swift - iCon
 
Swift Tutorial 1
Swift Tutorial 1Swift Tutorial 1
Swift Tutorial 1
 
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
 
Getting started with Xcode
Getting started with XcodeGetting started with Xcode
Getting started with Xcode
 
놀아요 Swift Playgrounds
놀아요 Swift Playgrounds놀아요 Swift Playgrounds
놀아요 Swift Playgrounds
 
Crash Course in Objective-C
Crash Course in Objective-CCrash Course in Objective-C
Crash Course in Objective-C
 
Swift Tutorial 2
Swift Tutorial  2Swift Tutorial  2
Swift Tutorial 2
 
Swifter Taipei 聊聊 Swift 遊樂場、變數常數、數字與運算
Swifter Taipei 聊聊 Swift 遊樂場、變數常數、數字與運算Swifter Taipei 聊聊 Swift 遊樂場、變數常數、數字與運算
Swifter Taipei 聊聊 Swift 遊樂場、變數常數、數字與運算
 
Quick quiz on Objective-C
Quick quiz on Objective-CQuick quiz on Objective-C
Quick quiz on Objective-C
 
Programming in Objective-C
Programming in Objective-CProgramming in Objective-C
Programming in Objective-C
 
Standford 2015 iOS讀書會 week1: 1.Logistics , iOS 8 Overview 2. More Xcode and S...
Standford 2015 iOS讀書會 week1: 1.Logistics , iOS 8 Overview 2. More Xcode and S...Standford 2015 iOS讀書會 week1: 1.Logistics , iOS 8 Overview 2. More Xcode and S...
Standford 2015 iOS讀書會 week1: 1.Logistics , iOS 8 Overview 2. More Xcode and S...
 
Swift Basic
Swift BasicSwift Basic
Swift Basic
 
To swiftly go where no OS has gone before
To swiftly go where no OS has gone beforeTo swiftly go where no OS has gone before
To swiftly go where no OS has gone before
 
Standford 2015 week8
Standford 2015 week8Standford 2015 week8
Standford 2015 week8
 
打造你的第一個iPhone APP
打造你的第一個iPhone APP打造你的第一個iPhone APP
打造你的第一個iPhone APP
 
Objective-C Crash Course for Web Developers
Objective-C Crash Course for Web DevelopersObjective-C Crash Course for Web Developers
Objective-C Crash Course for Web Developers
 
Swift-Programming Part 1
Swift-Programming Part 1Swift-Programming Part 1
Swift-Programming Part 1
 
Swift Summit: Pushing the boundaries of Swift to the Server
Swift Summit: Pushing the boundaries of Swift to the ServerSwift Summit: Pushing the boundaries of Swift to the Server
Swift Summit: Pushing the boundaries of Swift to the Server
 
Object Oriented Programming in Swift Ch0 - Encapsulation
Object Oriented Programming in Swift Ch0 - EncapsulationObject Oriented Programming in Swift Ch0 - Encapsulation
Object Oriented Programming in Swift Ch0 - Encapsulation
 

Similar to Feedback on Part 1 of the Software Engineering Large Practical

Beginning Android Development
Beginning Android DevelopmentBeginning Android Development
Beginning Android Development
Stephen Gilmore
 
SELP: Debugging, AVDs and Manifests
SELP: Debugging, AVDs and ManifestsSELP: Debugging, AVDs and Manifests
SELP: Debugging, AVDs and Manifests
Stephen Gilmore
 
Working with databases in Android
Working with databases in AndroidWorking with databases in Android
Working with databases in Android
Stephen Gilmore
 
Software Engineering Large Practical coursework
Software Engineering Large Practical courseworkSoftware Engineering Large Practical coursework
Software Engineering Large Practical coursework
Stephen Gilmore
 
Plug in framework made easy
Plug in framework made easyPlug in framework made easy
Plug in framework made easy
Thomas Cheah
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
Vernon Stinebaker
 
Thailand SPIN Day 2014: มิตร ศัตรู หรือความไม่รู้ต่างหากที่หลอกเรา (29/5/2557...
Thailand SPIN Day 2014: มิตร ศัตรู หรือความไม่รู้ต่างหากที่หลอกเรา (29/5/2557...Thailand SPIN Day 2014: มิตร ศัตรู หรือความไม่รู้ต่างหากที่หลอกเรา (29/5/2557...
Thailand SPIN Day 2014: มิตร ศัตรู หรือความไม่รู้ต่างหากที่หลอกเรา (29/5/2557...
Apple Taton
 
Introduction to development with Django web framework
Introduction to development with Django web frameworkIntroduction to development with Django web framework
Introduction to development with Django web framework
Sammy Fung
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
VandanaVipparthi
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
RohitGoyal183
 
Django
DjangoDjango
Popular Pitfalls In Sdlc Phases 1
Popular Pitfalls In Sdlc Phases 1Popular Pitfalls In Sdlc Phases 1
Popular Pitfalls In Sdlc Phases 1
Ramkumar Ramachandran
 
Cloud Native Debugging in Production - Dig Deep into your agents
Cloud Native Debugging in Production - Dig Deep into your agentsCloud Native Debugging in Production - Dig Deep into your agents
Cloud Native Debugging in Production - Dig Deep into your agents
Shai Almog
 
Django
Django Django
What's New in Entity Framework 4, by Julie Lerman
What's New in Entity Framework 4, by Julie LermanWhat's New in Entity Framework 4, by Julie Lerman
What's New in Entity Framework 4, by Julie Lerman
Julie Lerman
 
Sexy Using Cucumber - BDD in your project
Sexy Using Cucumber - BDD in your projectSexy Using Cucumber - BDD in your project
Sexy Using Cucumber - BDD in your project
b4usolution .
 
SE CHAPTER 1 SOFTWARE ENGINEERING
SE CHAPTER 1 SOFTWARE ENGINEERINGSE CHAPTER 1 SOFTWARE ENGINEERING
SE CHAPTER 1 SOFTWARE ENGINEERING
Abrar ali
 
Jira for DevOps - Loves Cloud
Jira for DevOps - Loves CloudJira for DevOps - Loves Cloud
Jira for DevOps - Loves Cloud
Loves Cloud
 
Developer Experience to Testing
Developer Experience to TestingDeveloper Experience to Testing
Developer Experience to Testing
Mozaic Works
 

Similar to Feedback on Part 1 of the Software Engineering Large Practical (20)

Beginning Android Development
Beginning Android DevelopmentBeginning Android Development
Beginning Android Development
 
SELP: Debugging, AVDs and Manifests
SELP: Debugging, AVDs and ManifestsSELP: Debugging, AVDs and Manifests
SELP: Debugging, AVDs and Manifests
 
Working with databases in Android
Working with databases in AndroidWorking with databases in Android
Working with databases in Android
 
Software Engineering Large Practical coursework
Software Engineering Large Practical courseworkSoftware Engineering Large Practical coursework
Software Engineering Large Practical coursework
 
Plug in framework made easy
Plug in framework made easyPlug in framework made easy
Plug in framework made easy
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
Thailand SPIN Day 2014: มิตร ศัตรู หรือความไม่รู้ต่างหากที่หลอกเรา (29/5/2557...
Thailand SPIN Day 2014: มิตร ศัตรู หรือความไม่รู้ต่างหากที่หลอกเรา (29/5/2557...Thailand SPIN Day 2014: มิตร ศัตรู หรือความไม่รู้ต่างหากที่หลอกเรา (29/5/2557...
Thailand SPIN Day 2014: มิตร ศัตรู หรือความไม่รู้ต่างหากที่หลอกเรา (29/5/2557...
 
Introduction to development with Django web framework
Introduction to development with Django web frameworkIntroduction to development with Django web framework
Introduction to development with Django web framework
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
Django
DjangoDjango
Django
 
Popular Pitfalls In Sdlc Phases 1
Popular Pitfalls In Sdlc Phases 1Popular Pitfalls In Sdlc Phases 1
Popular Pitfalls In Sdlc Phases 1
 
Ian Antonio CV
Ian Antonio CVIan Antonio CV
Ian Antonio CV
 
Cloud Native Debugging in Production - Dig Deep into your agents
Cloud Native Debugging in Production - Dig Deep into your agentsCloud Native Debugging in Production - Dig Deep into your agents
Cloud Native Debugging in Production - Dig Deep into your agents
 
Django
Django Django
Django
 
What's New in Entity Framework 4, by Julie Lerman
What's New in Entity Framework 4, by Julie LermanWhat's New in Entity Framework 4, by Julie Lerman
What's New in Entity Framework 4, by Julie Lerman
 
Sexy Using Cucumber - BDD in your project
Sexy Using Cucumber - BDD in your projectSexy Using Cucumber - BDD in your project
Sexy Using Cucumber - BDD in your project
 
SE CHAPTER 1 SOFTWARE ENGINEERING
SE CHAPTER 1 SOFTWARE ENGINEERINGSE CHAPTER 1 SOFTWARE ENGINEERING
SE CHAPTER 1 SOFTWARE ENGINEERING
 
Jira for DevOps - Loves Cloud
Jira for DevOps - Loves CloudJira for DevOps - Loves Cloud
Jira for DevOps - Loves Cloud
 
Developer Experience to Testing
Developer Experience to TestingDeveloper Experience to Testing
Developer Experience to Testing
 

More from Stephen Gilmore

More Stochastic Simulation Examples
More Stochastic Simulation ExamplesMore Stochastic Simulation Examples
More Stochastic Simulation ExamplesStephen Gilmore
 
The Stochastic Simulation Algorithm
The Stochastic Simulation AlgorithmThe Stochastic Simulation Algorithm
The Stochastic Simulation Algorithm
Stephen Gilmore
 
Computer Science Large Practical coursework
Computer Science Large Practical courseworkComputer Science Large Practical coursework
Computer Science Large Practical coursework
Stephen Gilmore
 
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
Stephen Gilmore
 
Fixing errors in Android Java applications
Fixing errors in Android Java applicationsFixing errors in Android Java applications
Fixing errors in Android Java applicationsStephen Gilmore
 
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
Stephen Gilmore
 
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
Stephen Gilmore
 
Continuing Android development
Continuing Android developmentContinuing Android development
Continuing Android developmentStephen Gilmore
 
Project management for the individual practical
Project management for the individual practicalProject management for the individual practical
Project management for the individual practicalStephen Gilmore
 
Beginning Android development
Beginning Android developmentBeginning Android development
Beginning Android developmentStephen Gilmore
 
CS/SE Individual practical - DDMS and AVD
CS/SE Individual practical - DDMS and AVDCS/SE Individual practical - DDMS and AVD
CS/SE Individual practical - DDMS and AVDStephen Gilmore
 

More from Stephen Gilmore (11)

More Stochastic Simulation Examples
More Stochastic Simulation ExamplesMore Stochastic Simulation Examples
More Stochastic Simulation Examples
 
The Stochastic Simulation Algorithm
The Stochastic Simulation AlgorithmThe Stochastic Simulation Algorithm
The Stochastic Simulation Algorithm
 
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
 
Beginning Android development
Beginning Android developmentBeginning Android development
Beginning Android development
 
CS/SE Individual practical - DDMS and AVD
CS/SE Individual practical - DDMS and AVDCS/SE Individual practical - DDMS and AVD
CS/SE Individual practical - DDMS and AVD
 

Recently uploaded

Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
RaedMohamed3
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Po-Chuan Chen
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
Special education needs
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Atul Kumar Singh
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
timhan337
 
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCECLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
BhavyaRajput3
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
Tamralipta Mahavidyalaya
 
678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf
CarlosHernanMontoyab2
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
EduSkills OECD
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
Jheel Barad
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
DhatriParmar
 

Recently uploaded (20)

Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
 
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCECLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
 
678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
 

Feedback on Part 1 of the Software Engineering Large Practical

  • 1. Software Engineering Large Practical Feedback on Part 1 of the Practical Stephen Gilmore School of Informatics, University of Edinburgh November 7th, 2012 Stephen Gilmore Software Engineering Large Practical
  • 2. About Practical 1 There are 19 people taking the Software Engineering Large Practical. There were 14 submissions, and 5 non-submisisons. The submissions have been marked and comments returned. The submissions varied widely. Some project submissions contained Java syntax errors and failed to compile. Some generated warnings. Some generated neither errors nor warnings. Some submissions had only limited functionality (e.g. a login screen). Some read the XML document from the server. Some created a database. Some looked more more like a submission for Part 2 than Part 1. Stephen Gilmore Software Engineering Large Practical
  • 3. Lessons learnt Discovered a bug in the “submit” command which is now being fixed. Discovered an underspecification in the practical description, which should explain that we are using Java 1.6 and that Java 1.7 language features are not available (such as strings in switch statements). Stephen Gilmore Software Engineering Large Practical
  • 4. Point of this lecture Give feedback on the submissions generally, rather than individually. Allow you to get a sense of where you are in the class. See examples of some app designs. Consider additional features which you might like to implement. Stephen Gilmore Software Engineering Large Practical
  • 5. Java and XML problems, warnings and errors Errors and warnings encountered are listed here. These included syntax errors in Java (e.g. missing semi-colons) and semantic errors (such as “variable not declared” errors). Some XML documents were ill-formed (e.g. not a single root element). Many uses of generics were not complete, and led to “raw types”. Many imports were never used. Some variables were not used. Stephen Gilmore Software Engineering Large Practical
  • 6. Java problems: syntax errors Stephen Gilmore Software Engineering Large Practical
  • 7. XML errors: “junk after document element” Stephen Gilmore Software Engineering Large Practical
  • 8. Java problems: “cannot be resolved” or is not a field Stephen Gilmore Software Engineering Large Practical
  • 9. XML problems: no resource found Stephen Gilmore Software Engineering Large Practical
  • 10. Java problems: generics and raw types ng Stephen Gilmore Software Engineering Large Practical
  • 11. Java problems: imports not used ng Stephen Gilmore Software Engineering Large Practical
  • 12. Unused imports in Java code ng Stephen Gilmore Software Engineering Large Practical
  • 13. Java problems: variables not used ng Stephen Gilmore Software Engineering Large Practical
  • 14. Java problems: Java 1.5/Java 1.6 incompatibility ng Stephen Gilmore Software Engineering Large Practical
  • 15. User interfaces in development Some submissions had more user interface code than others. Some had working buttons, menus and textboxes. Stephen Gilmore Software Engineering Large Practical
  • 16. Blank screen png Stephen Gilmore Software Engineering Large Practical
  • 17. Alpha version of interface: setting matriculation number png shot 2012-10-30 at 09.35.44.png Stephen Gilmore Software Engineering Large Practical
  • 18. Interface and settings png shot 2012-10-30 at 10.14.54.png Stephen Gilmore Software Engineering Large Practical
  • 19. Interface of alpha version png shot 2012-10-30 at 13.26.38.png Stephen Gilmore Software Engineering Large Practical
  • 20. Entering a student number png shot 2012-10-30 at 14.04.56.png Stephen Gilmore Software Engineering Large Practical
  • 21. Candidate lists in development Some submissions were able to retrieve the candidate list from the server and display this. Some submissions just listed the names of the candidates. Some included election statements. Some included photographs of the candidates. Stephen Gilmore Software Engineering Large Practical
  • 22. Interace of alpha version — listing candidates png shot 2012-10-30 at 15.21.16.png Stephen Gilmore Software Engineering Large Practical
  • 23. Listing candidates png shot 2012-10-31 at 13.23.00.png Stephen Gilmore Software Engineering Large Practical
  • 24. Sign-in screen — candidates listed png shot 2012-10-30 at 15.47.56.png Stephen Gilmore Software Engineering Large Practical
  • 25. Logging in and viewing candidates png shot 2012-10-30 at 14.46.34.png Stephen Gilmore Software Engineering Large Practical
  • 26. Viewing candidates by category png shot 2012-10-30 at 14.31.32.png Stephen Gilmore Software Engineering Large Practical
  • 27. Additional features in development The application requires you to retrieve an XML document from the server. We can’t be sure that this will always succeed. What if we have no network connection? Stephen Gilmore Software Engineering Large Practical
  • 28. Dealing with network connection issues png shot 2012-10-30 at 14.34.25.png Stephen Gilmore Software Engineering Large Practical
  • 29. Going further: rating, deleting, and sending tweets The other functions required by the app include rating favoured candidates, deleting unfavoured candidates, sending email and sending tweets. Stephen Gilmore Software Engineering Large Practical
  • 30. Candidates selected and rated png shot 2012-10-30 at 15.21.40.png Stephen Gilmore Software Engineering Large Practical
  • 31. Rating a candidate and sending a tweet png shot 2012-10-31 at 13.24.17.png Stephen Gilmore Software Engineering Large Practical
  • 32. Viewing details and rating candidates png shot 2012-10-30 at 14.47.10.png Stephen Gilmore Software Engineering Large Practical
  • 33. Deleting a candidate png shot 2012-10-30 at 14.47.52.png Stephen Gilmore Software Engineering Large Practical
  • 34. Database contents Stephen Gilmore Software Engineering Large Practical
  • 35. Viewing the database Stephen Gilmore Software Engineering Large Practical
  • 36. Database Stephen Gilmore Software Engineering Large Practical
  • 37. Examples of good practice Adding logging to your app early helps you to develop it because it gives you a deeper understanding of how your app is working and what is not working. You are asked to add logging to your app so why not start now and reap the benefits? Stephen Gilmore Software Engineering Large Practical
  • 38. Logging: It’s great! Look how helpful it is. ng Stephen Gilmore Software Engineering Large Practical
  • 39. Logging: why not start now? Seriously, it’s great. ng Stephen Gilmore Software Engineering Large Practical
  • 40. Closing remarks When implementing your app you should pay careful attention to the instructions in the practical handout which you received at the start of the course. You also have now available a sample XML file with data on the candidates in the election. Note that this is only a sample, and not a template. For example, all of the candidates in the sample XML file had made three promises but this is not specified by the regulations so it would be possible for candidates to make more promises, or fewer. Stephen Gilmore Software Engineering Large Practical
  • 41. XML Update: new candidate added, with more promises ng Stephen Gilmore Software Engineering Large Practical
  • 42. End of course lectures Good luck! Stephen Gilmore Software Engineering Large Practical