SoftwareEngineeringforMobileApplication …dascalus/TSE2013_15.pdfSEforMobileAppDevelopment...
Transcript of SoftwareEngineeringforMobileApplication …dascalus/TSE2013_15.pdfSEforMobileAppDevelopment...
Software Engineering for Mobile ApplicationDevelopment
Vamsi Raju
April 11, 2013
OutlineBackstory
Platforms
SE Research Areas [1]Universal InterfacesSoftware ReuseNeed for Self-Adaptive Requirements
Future
Questions for Midterm
SE for Mobile App Development
Backstory
• "Wild" growth in smartphone market
• First computer for many people
• Increased adoption of web-based services through mobile
• Users spending a chunk of time on mobile
• We have an app for everything now!
Vamsi Raju | CS 791Z - Topics on Software Engineering 3/26
SE for Mobile App Development
Bottomline
Mobile deserves it’s own branch of Software Engineering
Vamsi Raju | CS 791Z - Topics on Software Engineering 4/26
SE for Mobile App Development
Platforms
• Android
• iOS
• Blackberry
• Windows Phone
Vamsi Raju | CS 791Z - Topics on Software Engineering 5/26
SE for Mobile App Development
Android
• Fragmented OS - {2.1, 2.2, 2.3, 2.3.3, 3.0, 4.0, 4.1, 4.2}
• Different Devices - {size, hardware, color}
Solving Android’s problems = Solving everybody else’s*
Vamsi Raju | CS 791Z - Topics on Software Engineering 6/26
SE for Mobile App Development
* Except Windows
• Metro is a disaster
• Who needs two Dropbox apps in the same PC?
Some problems are self-inflicted and need not be solved.
Vamsi Raju | CS 791Z - Topics on Software Engineering 7/26
SE for Mobile App Development
Reiterate
• Mobile is at a nascent stage
• Too many problems
• We should be picky in what we want to solve
Vamsi Raju | CS 791Z - Topics on Software Engineering 8/26
SE for Mobile App Development
SE Research Areas [1]
– Universal Interfaces
– Software Re-use
– Self-Adaptive requirements
Vamsi Raju | CS 791Z - Topics on Software Engineering 9/26
SE for Mobile App Development
Universal Interfaces
Simple tricks like scaling are not effective.
Vamsi Raju | CS 791Z - Topics on Software Engineering 10/26
SE for Mobile App Development
Side Nav bar
Vamsi Raju | CS 791Z - Topics on Software Engineering 11/26
SE for Mobile App Development
Pull down to refresh
Vamsi Raju | CS 791Z - Topics on Software Engineering 12/26
SE for Mobile App Development
Software Reuse
• PC Era - Develop only for Windows
• Mobile Era - Website + iOS + Android + Android + Windows +above
Managing multiple codebases is an issue.
Current solutions: Phonegap
Vamsi Raju | CS 791Z - Topics on Software Engineering 13/26
SE for Mobile App Development
Need for Self-Adaptive Requirements
• Battery life
• Processor speeds
• Front camera
• Display size
• Active Radios
• Location of device
• Fluctuating power levels
Vamsi Raju | CS 791Z - Topics on Software Engineering 14/26
SE for Mobile App Development
Non-functional requirements cannot be rigid for mobile devices.
Current solutions: SDK’s take care of most issues for native apps.
Vamsi Raju | CS 791Z - Topics on Software Engineering 15/26
SE for Mobile App Development
Future
Wouldn’t it be great if we have solutions ready for tomorrow’s problems?
Vamsi Raju | CS 791Z - Topics on Software Engineering 16/26
SE for Mobile App Development
My Divinations!
Vamsi Raju | CS 791Z - Topics on Software Engineering 17/26
SE for Mobile App Development
Convergence
• Convergence of operating systems is the future
• Mobile + Desktop + Tablet
• Different form factors share a single operating system
Vamsi Raju | CS 791Z - Topics on Software Engineering 18/26
SE for Mobile App Development
No not Metro!
• It’s actually diverging
• Metro and Desktop interface in the same operating system
• Maybe Windows Blue will be different
Vamsi Raju | CS 791Z - Topics on Software Engineering 19/26
SE for Mobile App Development
Maybe Ubuntu...
• Ubuntu for Desktop
• Ubuntu for Phones
• Ubuntu for Tablets
• Ubuntu for Android
• Ubuntu for TV
Vamsi Raju | CS 791Z - Topics on Software Engineering 20/26
SE for Mobile App Development
Or Google...
• Chromebook
• Chrome
• Android
Vamsi Raju | CS 791Z - Topics on Software Engineering 21/26
SE for Mobile App Development
Definitely Apple!*
*Speculation
• No signs of convergence right now
• iOS and OSX are different
• Remember PowerPC to Intel transition
Vamsi Raju | CS 791Z - Topics on Software Engineering 22/26
SE for Mobile App Development
(Important)2
• Consistent user experience on multiple form factors
• Code reuse for apps on multiple form factors
• Adaptive requirements for multiple form factors
Right now mobile apps aren’t complex.
We have Software Engineering processes for Desktop apps
We’ll need solutions in the future when they converge
Vamsi Raju | CS 791Z - Topics on Software Engineering 23/26
SE for Mobile App Development
Questions for Midterm
• Name three important areas for research in Software Engineering formobile app development.
• What are self-adaptive requirements and why are they necessary?
Vamsi Raju | CS 791Z - Topics on Software Engineering 24/26
References
[1] Anthony I. Wasserman. Software engineering issues for mobile applica-tion development. ACM, FoSER, November 2010.
Questions?Vamsi Raju for GSA! Vote for me!