40
ITECH7602 - PROJECT SRS and SADD Presentation Team members Divya Nalla - 30107395 Raja Kandasamy - 30102984 Rajashekar Donti - 30106226 Ren Zhu - 30115339 Sadah Suliman - 30886830

ITECH7602 - PROJECT

  • Upload
    faris

  • View
    39

  • Download
    0

Embed Size (px)

DESCRIPTION

ITECH7602 - PROJECT. SRS and SADD Presentation Team members Divya Nalla - 30107395 Raja Kandasamy - 30102984 Rajashekar Donti - 30106226 Ren Zhu - 30115339 Sadah Suliman - 30886830. Software Specifications Requirement for an IOS Application. Design Pattern-Coding Structure-Implementation. - PowerPoint PPT Presentation

Citation preview

Page 1: ITECH7602 - PROJECT

ITECH7602 - PROJECT

• SRS and SADD Presentation

Team membersDivya Nalla - 30107395

Raja Kandasamy - 30102984Rajashekar Donti - 30106226

Ren Zhu - 30115339Sadah Suliman - 30886830

Page 2: ITECH7602 - PROJECT

D E S I G N P AT T E R N - C O D I N G S T R U C T U R E - I M P L E M E N T AT I O N

SOFTWARE SPECIFICATIONS REQUIREMENT FOR AN IOS APPLICATION

Page 3: ITECH7602 - PROJECT

SYSTEM

• Intel-Based Macintosh Computer with IOS DSK Installed• Applicable to All IOS Devices• Devices includes mobile devices like iPad, Iphone,

iTouch & iPod

Page 4: ITECH7602 - PROJECT

DESIGN CHOICES

• Pattern• Code Structure• Implementation

Page 5: ITECH7602 - PROJECT

APP DESIGN BASICS

• Handling Events• Displaying Content on the Screen• Interacting with the rest of the System• Run the application on background

Page 6: ITECH7602 - PROJECT

CORE APP OBJECTS

• Must be Different in Background and Foreground• Runs Simultaneously apps in the background• Only one foreground App but multiple apps can

run in the background

Page 7: ITECH7602 - PROJECT

APP STATES AND MULTITASKING

• iCloud Affects the Design of Your Data Model and UI Layers• iCloud allows you to share the user’s data among

multiple instances of your app running on different iOS and Mac OS X devices

Page 8: ITECH7602 - PROJECT

ICLOUD STORAGE

• Apps Require Some Specific Resources• Apps include images, sounds, and other types of

resources for presenting the app’s content but the App Store also requires some specific resources be present

Page 9: ITECH7602 - PROJECT

APP-RELATED RESOURCES

• Many App Behaviour's Can Be Customized• The core architecture of all apps may be the

same• These tweaks are how you add specific high-level

features, such as data protection and URL handling

Page 10: ITECH7602 - PROJECT

ADVANCED APP TRICKS

• Apps Must Be Tuned for Performance• Great apps are always tuned for the best possible

performance• This application will provide consistency• The current data are retrieved from the Google

API

Page 11: ITECH7602 - PROJECT

PERFORMANCE

•  For iOS apps, performance means more than just writing fast code• App does not degrade battery life significantly

Page 12: ITECH7602 - PROJECT

PERFORMANCE CONTD.,

• You can tune your code• The types of changes that are likely to provide

the most benefit

Page 13: ITECH7602 - PROJECT

PERFORMANCE TUNING

• The iOS Environment Affects Many App Behaviours• There are aspects of iOS itself that impact how

you design and write applications• it takes a more active role in providing security

for apps

Page 14: ITECH7602 - PROJECT

SECURITY

• Other system behaviours also affect everything from how memory is managed to how the system responds to hardware input• All of these system behaviours affect the way you

design your apps

Page 15: ITECH7602 - PROJECT

APPENDIX: THE IOS ENVIRONMENT

• Important information about the core objects of your app and how they work together• Tour of the architecture that is common to all iOS

apps and highlights key places where you can modify that architecture to meet your needs

Page 16: ITECH7602 - PROJECT

PREREQUISITES

• Practical aspects involved with implementing your app•  installed the iOS SDK and configured your

development environment

Page 17: ITECH7602 - PROJECT

PREREQUISITES CONTD.,

• App Store provides information for Developing Environment on how to configure the Development Process and an overview

Page 18: ITECH7602 - PROJECT

CLASS DIAGRAM

Page 20: ITECH7602 - PROJECT

SOFTWARE ARCHITECTURE DESIGN DOCUMENT FOR IOS APP

Page 21: ITECH7602 - PROJECT

IOS ARCHITECTURE

• Layers1) Cocoa Touch2) Media3) Core Services4) Core Operating System

Page 22: ITECH7602 - PROJECT

FRAMEWORK

• Dynamic Shared Library• Header Files• Images• Helper Apps

Page 23: ITECH7602 - PROJECT

DEVELOPMENT ENVIRONMENT

• X-Code1)Create2)Test3)Debug4)TuneThis is to be done in an iOS Simulator

Page 24: ITECH7602 - PROJECT

DEVELOPER LIBRARY

• Documentation• Platform• Objective c• Google API

Page 25: ITECH7602 - PROJECT

DESIGN PATTERNS

• The great thing about these patterns is they work well regardless of the tools you are using—whether it’s Objective-C and iOS, Java and Android, or C# and Windows Phone

Page 26: ITECH7602 - PROJECT

EVOLUTION AND CHANGES IN APPS

• Not just once or twice, but many times over—and that’s even before you release it to the App store for the first time• After it’s released, your App will change even

more as others use it, provide feedback and suggest enhancements

Page 27: ITECH7602 - PROJECT

WHERE TO IMPLEMENT?

• User Interface(UI)• Core logic• Data• It is a Monolithic architecture that is difficult to

change• Creates a situation where you can’t change one

part of the App without changing the other

Page 28: ITECH7602 - PROJECT

MODEL-VIEW-CONTROLLER

• A more formal way to look at the three main parts of an App is by means of the Model-View-Controller design pattern

Model →  DataView → User InterfaceController → Core Logic

Page 29: ITECH7602 - PROJECT

MODEL

• The Model is your application’s data and, in iOS, usually takes the form of entities. An entity represents an object in the real world• Customer entity, Order entity, and Product entity

Page 30: ITECH7602 - PROJECT

VISION

Vision is the interaction between the user and the systems directly. The user interacts with objects like•Buttons •Slide bar•Dropdown boxes•Search bar

Page 31: ITECH7602 - PROJECT

CONTROLLER

• The Controller acts as an intermediary between the Model and the View. The Controller is where your core logic goes

Page 32: ITECH7602 - PROJECT

FLOW DIAGRAM

Page 33: ITECH7602 - PROJECT

INTERACTION

• User interacts with the view—• Touch• Tap• Pinch• Flick a user-interface object

Page 34: ITECH7602 - PROJECT

INTERACTION CONTD.,

• In response, the View passes a call to the Controller, and the Controller does something based on that interaction

Page 35: ITECH7602 - PROJECT

ALTERNATIVE PROCESS INTERACTION

• Sometimes when saved, a Model entity, it gets new or default values

• For example, if you save a new invoice entity, it may be assigned an invoice number. So, the model can fire an event that tells the controller

Page 36: ITECH7602 - PROJECT

EXAMPLE: CALCULATOR-CONTROL OBJECT

Page 37: ITECH7602 - PROJECT

DEFECTS

•  A view is typically bound to a single view controller • Ultimately, the view controller is a user-interface

object. It’s not the tight coupling between the view and the view controller that’s the problem—that’s perfectly fine

• The problem is the core logic code that’s in the view controller

Page 38: ITECH7602 - PROJECT

DEFECTS CONTD.,

• Unfortunately, because the core logic is buried inside the view controller, there isn’t a clean way to reuse this logic in another App. It’s “stuck in the weeds” of the user interface

Page 39: ITECH7602 - PROJECT

BETTER IMPLEMENTATION TECHNIQUES

•  Put in the core logic in some other place where you can access it from multiple Apps, or from multiple view controllers in a single App