Download presentation
Presentation is loading. Please wait.
Published byReynold Charles Modified over 8 years ago
1
Software Engineering and Mobile Apps COM811 2016 Presentation
2
Objectives To revisit and review the software Life Cycle: To review the Waterfall and Incremental development processes: To revisit the Analysis phase: To revisit the Design phase: To revisit the Implementation phase: To revisit the Testing Phase: To revisit the Documentation issue:
3
Objective To review ‘traditional practice’ in the context of Mobility and App creation:
4
THE SOFTWARE LIFE CYCLE A fundamental concept in software engineering is the software lifecycle. Software, like many other products, goes through a cycle of repeating phases.
5
The Software Lifecycle
6
The Waterfall Model
7
The Incremental Model
8
The development process starts with the analysis phase. This phase results in a specification document that shows what the software will do without specifying how it will be done. The analysis phase can use two separate approaches, depending on whether the implementation phase is done using a procedural programming language or an object- oriented language. The Analysis Phase
9
An Example Data-Flow Diagram (Forouzan: Foundations of Computer Science)
10
An example of a state diagram (An Elevator State)
11
An example ‘use case’ diagram
12
An example ‘class’ diagram
13
Design Phase The design phase defines how the system will accomplish what was defined in the analysis phase. In the design phase, all components of the system are defined.
14
A structure chart
15
Classes with attributes and methods
16
IMPLEMENTATION PHASE In the waterfall model, after the design phase is completed, the implementation phase can start. In this phase the programmers write the code for the modules in procedure-oriented design, or write the program units to implement classes in object-oriented design. There are several issues to consider in each case.
17
Quality factors
18
Software testing
19
The Testing Phase The goal of the testing phase is to find errors, which means that a good testing strategy is the one that finds most errors. All errors? Should this be a Design Issue? There are two types of testing: glass-box and black-box.
20
An example of basis path testing Generate a strategy to follow all possible path permutations
21
DOCUMENTATION For software to be used properly and maintained efficiently, documentation is needed. Usually, three separate sets of documentation are prepared for software: user, system, and technical.
22
DOCUMENTATION User Documentation: How the user Interacts with the system System Documentation: A library of documents that describe the requirements, capabilities, limitations, design, operation and maintenance of the system Technical Documentation: Details of how specific system components are configured and how they operate
23
DOCUMENTATION If the software has problems after release, they must be documented too. If the software is modified, all modifications and their relationship to the original package must also be documented. Documentation only stops when the package becomes obsolete.
24
Development Tools: Development Environments are proprietary but generally support the design challenges
25
The Industry Drives the development Tools: Android Eclipse IDE and Google Android SDK Android ADT http://developer.android.com IntellijIDEA http://www.jetbrains.com Android Studio iPhone Apple Developer SDK and Tools http://developer.apple.com
26
The Industry Drives the development Tools: Windows Phone Visual Studio IDE and Phone SDK http://developer.windowsphone.com Blackberry http://developer.blackberry.com
27
Device Manufacturer’s Support Sites Samsung http://developer.samsung.com HTC http://www.htcdev.com Sony https://developer.sony.com Motorola http://developer.motorola.com
28
Suopport for Testing on Multiple Devices (Samsung) Samsung http://developer.samsung.com
29
Guides to Good Practice: Many Exist: Android https://developer.android.com/guide/index.ht ml https://developer.android.com/guide/index.ht ml Apple (iOS) https://developer.apple.com/devcenter/ios/in dex.action https://developer.apple.com/devcenter/ios/in dex.action Windows Phone (Windows UWP Apps) https://developer.microsoft.com/en- us/windows/develop https://developer.microsoft.com/en- us/windows/develop
30
Software Engineering and Mobility Software Engineering has been a major contributor to the success and expansion of the software industry: It brought order to the initial chaos of fragmented code. This was Mainly via the concept of OOP. This is still important for mobile systems. However mobile systems are sufficiently different to merit special consideration:
31
Software Engineering for Mobility? A new Concept? Mobile devices differ significantly from Desktop devices, and as a consequence, applications for mobile devices differ from desktop applications in significant ways Mobility brings new challenges and new opportunities: Mobility and Smartphone Technology opens up a whole new era of opportunities
32
Apps are Different Fast time-to-Market International competition Short life cycle? Low unit price Difficult to make money? Can revolutionize a business practice Can generate new businesses Are in their infancy
33
App Design Designers follow ‘Best Practices’ Tendency to ignore Formal Development processes Maybe because of timescale? Agile emerging as a technique Process driven by Industry standard tools!
34
Mobility: Design and Development The design process for mobile apps is different The User Interface is vital Responsiveness is critical Wireless Communications networks are unreliable User sessions are short and ‘bursty’
35
Key Steps for Good design 1: Start with Performance and Stay with Performance Responsiveness and Power conservation are critical considerations, which impact on the entire app design process
36
Key Steps for Good design 2: Design the right User Interface For mobile apps, the User-Interface is critical
37
Key Steps for Good design 3: Get your Data and Memory model right Consuming data, discarding data, managing scarce memory;
38
Key Steps for Good design 4: Get your Communications and Input/Output models right Using Local resources? Using external resources? Availability? Reliability? Assume that communications will fail often, so fail gracefully, and recover automatically. Defensive design makes for a good user experience.
39
Key Steps for Good design 5: Repeat steps 1, 2, 3, and 4 as Necessary. Modern Mobile Development is an Iterative Process!
40
Key Steps for Good design 6: Package your app for Installation.( Last but certainly not least!) What needs to get deployed with the app? The executable plus images, text, database files, Runtime libraries ? Device capability detection (will the app run on a specific device) Versioning
42
Challenges Devices are resource –constrained Limited Power Small User-Interface surface Limited processing power Limited memory …
43
Opportunities Mobility Information available anytime-anyplace Location-Awareness Mapping Augmented Reality Context Sensors
44
GPS Accelerometer NFC Light Pressure Temperature Proximity Gyroscope Sensors offer Context-detection Context-Aware Behaviour
45
Context Apps can be designed to provide information to the user:- Anytime: In any location: Whether or not the user knows they need the information This last point is very exciting!
46
The App Decides…? For the first time it has become possible to reverse the traditional interaction process between the User and the Computer: On a PC the user acts first and the PC responds:
47
The App as an Instigator? With a context-sensitive app, it is possible for the App to instigate the communication…! The possibilities here are very far reaching Potentially life changing.
48
A View from the Industry Design and Development Methodologies for Apps Agile: Scrum
49
Agile –Scrum References http://www.ontimenow.com/scrum- training http://www.ontimenow.com/scrum- training http://www.ontimenow.com/scrum http://www.ontimenow.com/downloads/ka nban-diagram-by-axosoft.pdf http://www.ontimenow.com/downloads/ka nban-diagram-by-axosoft.pdf
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.