Mobile Software Engineering (at University of Cambridge Wednesday Seminars)


Published on

The talk gave an insight into characteristics and challenges in software engineering of mobile apps from a more industrial perspective. A model for mobile software engineering was discussed and various best-practices proposed. Essential mobile software engineering techniques, such as experience prototyping, in-context requirement gathering (and testing), or UI/UIX design were explained using examples, case studies from real-world projects, and tools.

Published in: Technology, Business
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Engineering manager at Samsung Mobile in Staines, UKTeam lead of the bada team: coordinates the activities to position and promote Samsung’s new mobile phone platform and ecosystem bada within the relevant developer communities. These activities comprise R&D projects, creating training material such as demo code, tutorials, blog posts, videos or the recently published “Introduction to bada” book, and organising and presenting at events such as developer days.At samsung: R&D with D and r (unis)Before that worked at Salzburg Research for roughly 7 years: applied research in area of mobile and LBS.Established and managed the ML Sun CoE.Presentation today not strictly scientific: rather a practical report from experience with some best practices. Some of the contents have been published, eg, at PC WSWith colleague and friend Nicolas Goell, who also switched from research to industry.And bada book !!
  • Mobile Software Engineering (at University of Cambridge Wednesday Seminars)

    1. 1. Mobile Software EngineeringCharacteristics and ChallengesCambridge Wednesday Seminar, March 2, 2011<br />Dr Manfred Bortenschlager<br />Samsung Electronics Research Institute<br />Staines, UK<br />With thanks for contributions to:<br />TomiAhonen<br />Nicolas Goell<br />Norbert Seyff<br />
    2. 2. Background<br />Contents of this talk are also published in<br />Introduction to bada<br />By Ben Morris, Manfred Bortenschlager, Jon Lansdell, Cheng Luo, Michelle Somerville (2010), Wiley and Sons Ltd.<br /><br /><ul><li>Manfred Bortenschlager, Nicolas Goell (2010): Why Software Engineering for Mobile Applications is Different. In: Proceedings of Workshop on Programming Methods for Mobile and Pervasive Systems. 8th International Conference on Pervasive Computing, Helsinki, Finland.</li></li></ul><li>Overview<br />Motivation – 3 questions<br />Characteristics – What makes mobile different ?<br />Mobile Software Engineering Process – Best-practices<br />Including Case Studies<br />Tool Support<br />Take Away<br />
    3. 3. Why is “mobile” interesting ?<br />
    4. 4. Why is “mobile” interesting ?<br />Big<br />
    5. 5. Why is “mobile” interesting ?<br />Big<br />5.2bn mobile phone subscriptions <br />vs. 4.2bn people with toothbrush <br />On-hand <br />For 91% of the population the device is only an arm’s length away (24/7)<br />Users look at their mobile device 150x/day on average <br />Individual <br />60% of married people will not share their mobile with spouse <br />Relevant <br />11% of under-25 year-olds find it ok to read text messages whilst having sex !! <br />Sources: <br />TomiAhonen (2011),<br />Gartner (2010), Morgan Stanley (2007), Wired Magazine (2006), RetrevoGadgetology Report (2010) by way of Prof. Vince Mitchell (Cass University)<br />
    6. 6. Why is “mobile” interesting ?<br />Gadget convergence<br />Jacobs Media and Arbitron study of smartphone users finds they're spending less time with:<br />Digital cameras <br />GPS units <br />Laptop/desktop computers<br />Video game systems <br />Camcorders <br />iPods <br />and car radios <br />Source: Jacobs Media and Arbitron Sept 27, 2010 (by way of T. Ahonen, 2011)<br />
    7. 7. Why is “mobile” interesting ?<br />
    8. 8. Why is “mobile” interesting ?<br />We have the OK from “above” !!<br />
    9. 9. Why is “mobile” interesting ?<br />We have the OK from “above” !!<br />Statue of an angel holding a mobile phone at St. John's Cathedral in Den Bosch, Netherlands<br />
    10. 10. What is Mobile Software Engineering ?<br />Is it any different from “conventional” SWE ?<br />Depends… on granularity level<br />Mobile Software Engineering (MSWE) …<br />… is the adaptive process of creating a software product that is intended to be used by people while they are mobile.<br />By this, the process must take into account the specific characteristics of mobile usage to deliver the required quality.<br />Quality is defined as “meeting or exceeding customer’s expectations”<br />Which influences user acceptance, which influences market success<br />
    11. 11. Why is MSWE important ?<br />Source:<br /><br />
    12. 12. Why is MSWE important ?<br />29% of mobile phone usage is apps (23% voice calls)<br />It is not advisable to simply mirror successful fixed (desktop) software to mobile<br />2 unsuccessful case studies<br />1. Port of Microsoft’s collaboration software Groove to mobile<br />2. Port of ESRI’sArcGIS software to mobile <br />Sources: TomiAhonen (2011)<br />
    13. 13. Characteristics<br />Higher heterogeneity<br />Desktop world for developers is quite homogeneous<br />Initially: problem of device fragmentation<br />“inability to develop an application against a reference operating context and achieve the intended behavior in all operating contexts suitable for the application”<br />Recently: shift towards platform fragmentation<br />iOS, Android, bada, Blackberry, Win Phone 7, Symbian, J2ME/JavaFX, WebOS, Win Mobile, OpenMoko, LiMo<br />Homogeneity at least within platform<br />Well, to a certain degree… Some platforms do better than others.<br />Sources: D. Rajapakse. Techniques for de-fragmenting mobile applications: A taxonomy. In 20th Intl. SEKE Conf.,2008.<br />
    14. 14. Characteristics<br />Different usage context<br />Due to limited cognitive resources, users pay more attention to current activity, less to software interaction <br />Higher susceptibility to distractions<br />Limited attention time span: 4 seconds<br />Inherent context factors<br />Mobility (constant change of position)<br />Device capabilities (CPU, battery, screen size)<br />Operator plan and communication costs<br />Interaction possibilities <br />Sources: <br />A. Oulasvirta, S. Tamminen, V. Roto, and J. Kuorelahti. Interaction in 4-second bursts: the fragmented nature of attentional resources in mobile hci. In Proceedings of CHI 2005, pages 919–928, 2005.<br />
    15. 15. Characteristics<br />Different interaction possibilities / user experience<br />Conventional “desktop means” cannot be assumed<br />No mouse, keyboard, large screen<br />Instead<br />Multipoint-touch<br />Gestures and motion detection<br />Sensors (acceleration, tilt, GPS, compass)<br />Haptic feedback <br />STT/TTS<br />Camera (face detection/recognition)<br />
    16. 16. Characteristics<br />Different market rules<br />Much shorter product lifecycles<br />With much shorter time-to-market<br />More difficult user attraction: a lost user is very difficult to win back<br />Cf. Web Enginnering<br />Different product distribution means<br />Mostly centralised application stores: The “Apple Model”<br />Different business models<br />Depending on platform  different ecosystem rules<br />Different price policies (Android: free apps)<br />Different revenue channels (ads)<br />Different payment methods (operator billing)<br />
    17. 17. Research Methodology<br />Well, there was no strict scientific methodology<br />Based on practical work<br />25 projects (several platforms)<br />7 years<br />135 person months<br />Feedback by success and failure<br />“Formalising” a process over time based on experiences<br />Best-practise recommendations<br />Hints & pitfalls<br />
    18. 18. A Mobile Software Engineering Process<br />No ground-breaking new model<br />But practical and adaptive<br />Adapt “process-heaviness” to project size !<br />SW engineering techniques reused, reordered, adapted<br />Influenced by ideas from Agile/Scrum<br />Core ideas:<br />Not based on sequential stages only <br />But iterative, incremental (first things first), interactive<br />Early analysis with exit points<br />Emphasis on prototyping and testing<br />
    19. 19. A Mobile Software Engineering Process<br />
    20. 20. A Mobile Software Engineering Process<br />
    21. 21. Feasibility and Economic Efficiency Analysis<br />Initial Requirements Engineering<br />Business, user, and system requirements<br />Design Drafting<br />UI and basic screen flow<br />Early high-level architecture considerations<br />Early Prototyping<br />Paper or click-able mock-ups<br />Experience prototyping<br />User Acceptance Testing<br />Get a feeling for the acceptance in real world usage<br />Milestone: Decision for Continuation<br />
    22. 22. Case Study<br />App for “Mobile Couponing” (iOS)<br />Idea of providing coupons as 2D barcodes delivered to retail customers by text message <br />Get products for free by scanning these barcodes<br />First phase<br />High-level solution design created<br />Implementation costs estimated<br />User acceptance test executed<br />Negative feedback<br />Decision not to continue<br /> Potentially saved a lot of money<br />
    23. 23. Case Study<br />Friend or Foe (Android)<br />Address book replacement<br />Analyses “communicativeness” with my contacts<br />Calls, SMS, reactions, <br />Classification into “friends” and “foes”<br />Can change over time  notifications<br />Early prototyping helped to shape the app <br />User acceptance tests confirmed right track<br /> Finalist in Android Developer Challenge 2009<br />
    24. 24. A Mobile Software Engineering Process<br />
    25. 25. Software Product Realisation<br />Requirements Reviewing and Refining<br />Capturing, refining requirements<br />Mobile Scenario Presenter<br />Design Detailing <br />Fine grained UI and software design<br />
    26. 26. Case Study<br />Augmented reality game (bada): AiRaid – Rise of the Undead<br />360deg AR first person shooter<br />Live camera feed with overlaid 3D OpenGL ES objects<br />
    27. 27. Example of a UI design flow diagram<br />
    28. 28. Software Product Realisation<br />Defining Test Cases<br />Based on use cases and requirements<br />Programming<br />Transforming the designs into program code that successfully passes the test cases<br />Try to be system resource conservative (CPU, especially battery)<br />Testing<br />3 stages<br />Emulator tests (lab)<br />Target device(s) tests (lab)<br />In-context tests (real world)<br />
    29. 29. Case Study<br />Mobile navigation app for inter-model travelling (J2ME)<br />Car, public transport, pedestrian navigation<br />Switch between means<br />Bluetooth beacons for indoor localisation and navigation<br />Testing<br />All lab tests went smooth !<br />Tube station in Vienna was a totally different story !!<br />
    30. 30. Software Product Realisation<br />User Acceptance Testing<br />Make sure to meet the user requirements<br />Usage of HCI techniques<br />Questionnaire, controlled experiments, focus groups<br />Milestone: Version Released<br />
    31. 31. Case Study<br />Peak.AR (iOS)<br />Augmented reality app that gives info about surrounding mountain peaks<br />Focus on users’ context<br />Difficult user interaction (cold, gloves)<br />Start app with one click<br />Visibility analysis (no info overload)<br />Switch between AR- and map-view by changing device orientation<br />Unreliable connectivity<br />Peak information stored locally<br />
    32. 32. Case Study<br />
    33. 33. A Mobile Software Engineering Process<br />
    34. 34. Distribution<br />Marketing<br />Make use of Social Networks<br />Marketing via app stores (free/paid apps, banners, discounts, trial versions)<br />Preparing for Distribution/Deployment<br />Understand the QA/certification processes (guidelines)<br />Find right distribution strategy based on <br />Ecosystem provider<br />Target audience<br />Product Maintaining<br />Product updates, community treatment, support, bug fixing<br />
    35. 35. Case Study<br />Red Bull Hot Spot Viewer (Android)<br />RB is operator and media house in Austria<br />Wanted to bring media content to their users with unique experience<br />AR viewer to RB hot spots with additional info (video, sound, ranking) and time slider<br />Distribution strategy: <br />NOT via app store <br />But pre-loaded on device or retrievable from dedicated RB server for RB customers only <br />
    36. 36. Tool Support<br />Graphical WYSIWYG UI Builder for prototyping<br />Easy and quick deployment<br />Separation of concerns<br />UI design vs implementation of functionality<br />Testing <br />Event injector<br />UI Sequencer<br />Remote test lab<br />
    37. 37.
    38. 38.
    39. 39. bada IDE: UI Builder for Rapid Prototyping<br />
    40. 40. Mobile Scenario Presenter<br />It is difficult – for everyone – to think of reasonable requirements in a lab environment or during workshop<br />Real valuable requirements become apparent during actual in-context usage <br />Higher quantity – better quality<br />Source: <br />Norbert Seyff, Neil A. M. Maiden, Inger Kristine Karlsen, James Lockerbie, Paul Grünbacher, Florian Graf, Cornelius Ncube (2009): Exploring how to use scenarios to discover requirements. In: Requirements Engineering 14(2): 91-111.<br />
    41. 41. To Take Away …<br />Core differences/characteristics<br />Different usage context<br />Different market rules<br />SWE techniques<br />Heavy use of prototyping<br />Nearly in any stage<br />Testing<br />3 step testing with different focus<br />
    42. 42. Mobile Software Engineering<br />For more info visit: <br /><br />Contact:<br />Dr Manfred Bortenschlager<br />Samsung Electronics Research Institute<br />Staines, UK<br /><br />