SlideShare a Scribd company logo
Mohamed Taman @_tamanm
Enterprise Architect / Innovation & R&D Sr. manager @e-finance
Java Champion
Why Software Architecture
(Mobile Architecture)
Me, I, and Myself
• Java Champion, and Java Geek
• Enterprise Architect / Innovation & R&D Sr. Manager @efinance
• Mobile/Web/Blockchain/HashGraph/Cloud/DevOps/Big Data/IoT
• JCP (Won Duke’s choice award 2013, 2014, 2015)
• Speaks Java (Won Outstanding adopt-a-jsr participant 2013 JCP annual award)
• International Speaker
• Author (“JavaFX 8 essentials”, and upcoming “Mastering JDK 9” Video training
for Packt and Lynda.com)
Mohamed Taman @_tamanm
Reach me on
@_tamanm
http://eg.linkedin.com/in/mohamedtaman/
https://www.facebook.com/mohamed.m.taman.7 (Mohamed Mahmoud Taman)
http://tamanmohamed.blogspot.com
https://github.com/mohamed-taman
https://www.slideshare.net/tamanm
Software Architecture why Do We Need It?
• Like any other complex structure, software must be built on a solid foundation.
Failing to consider key scenarios, failing to design for common problems, or failing
to appreciate the long term consequences of key decisions can put your
application at risk.
• With no architecture in place, the code grew like ivy on a moisty garden shed,
resulting in poor maintainability and low productivity in adding new features to
the software.
Mohamed Taman @_tamanm
What is Software Architecture?
• Software application architecture is the process of defining a structured solution
that meets all of the technical and operational requirements, while optimizing
common quality attributes such as performance, security, and manageability.
• It involves a series of decisions based on a wide range of factors, and each of
these decisions can have considerable impact on the quality, performance,
maintainability, and overall success of the application.
Mohamed Taman @_tamanm
Concerns when thinking about software
architecture
• How will the users be using the application?
• How will the application be deployed into production and managed?
• What are the quality attribute requirements for the application, such as security,
performance, concurrency, internationalization, and configuration?
• How can the application be designed to be flexible and maintainable over time?
• What are the architectural trends that might impact your application now or
after it has been deployed?
Mohamed Taman @_tamanm
The Goals of Architecture
• Expose the structure of the system but hide the implementation details.
• Realize all of the use cases and scenarios.
• Try to address the requirements of various stakeholders.
• Handle both functional and quality requirements.
Mohamed Taman @_tamanm
Software Architecture offers some rather
relevant benefits
• Higher productivity. It is easier to add new features to existing software, since the structure is already
in place, and the location for every new piece of code is known beforehand.
• Better code maintainability. It is easier to maintain existing software, as the structure of the code is
visible and known, so it’s easier to find bugs and anomalies.
• Higher adaptability. New technical features, such a different front ends, or adding a business rule
engine are easier to achieve, as your software architecture creates a clear separation of concerns.
• Hype agnostic. Last but not least, it will allow you to see hypes and fads in the industry – or which
there are a lot – in the light of your current structure, and to fit these hypes and fads in if so required.
Mohamed Taman @_tamanm
Basic Building Block: OOP
• Encapsulation
• Composition, inheritance, and delegation
• Polymorphism
Mohamed Taman @_tamanm
OOP principals is the foundation to “Design Patterns”.
What is mobile application?
• A mobile application, most commonly referred to as an app, is a type of application software
designed to run on a mobile device, such as a smartphone or tablet computer.
• A mobile app is a software application developed specifically for use on small, wireless computing
devices, such as smartphones and tablets, rather than desktop or laptop computers.
• Mobile apps are designed with consideration for the demands and constraints of the devices and
also to take advantage of any specialized capabilities they have. A gaming app, for example, might
take advantage of the iPhone's accelerometer.
Mohamed Taman @_tamanm
What is mobile Website ?
The mobile web refers to access to the world wide web, i.e. the use of
browser-based Internet services, from a handheld mobile device, such
as a smartphone or a feature phone, connected to a mobile network or
other wireless network.
Mohamed Taman @_tamanm
What is mobile application architecture?
Mobile Application Architecture is set of techniques and patterns to
build fully structured mobile applications based on industry and vendor
specific standards and procedures those works on wireless mobile
devices like smartphones and tablets.
Mohamed Taman @_tamanm
Mobile Architecture Objectives
• Define a mobile application.
• Understand components found in a mobile application.
• Learn the key scenarios where mobile applications would be used.
• Learn the design considerations for mobile applications.
• Identify specific scenarios for mobile applications, such as deployment, power usage, and
synchronization.
• Learn the key patterns and technology considerations for designing mobile applications.
Mohamed Taman @_tamanm
Designing
Mobile
Applications
Mohamed Taman @_tamanm
General Design Considerations
• Decide if you will build a rich client, a thin Web client, or a Hybrid app.
• Determine the device types you will support.
• Consider occasionally connected and limited-bandwidth scenarios when appropriate.
• Design a UI appropriate for mobile devices, taking into account platform constraints.
• Design a layered architecture appropriate for mobile devices that improves reuse and maintainability.
• Consider device resource constraints such as battery life, memory size, and processor speed.
Mohamed Taman @_tamanm
Specific Design Issues
• Authentication and Authorization
• Caching
• Communication
• Configuration Management
• Data Access
• Device Specifics
• Exception Management
Mohamed Taman @_tamanm
• Logging
• Porting Applications
• Power Management
• Synchronization
• Testing
• User Interface
• Validation
Mobile Application types
Mohamed Taman @_tamanm
Supported
features
Mohamed Taman @_tamanm
Pros and Cons
Mohamed Taman @_tamanm
How Hybrid apps works?
Mohamed Taman @_tamanm
Resources and references
• https://prezi.com/dsuuipwgdzfc/developing-mobile-apps-hybrid-android-with-
netbeans-8/
• https://www.slideshare.net/hassandar18/architecture-of-mobile-software-
applications
• https://en.wikipedia.org/wiki/Object-oriented_programming
• https://www.codeproject.com/Articles/1064240/Introduction-to-Software-
Architecture
• https://msdn.microsoft.com/en-us/library/ee658098.aspx
• https://msdn.microsoft.com/en-us/library/ee658108.aspx
Mohamed Taman @_tamanm
Mohamed Taman @_tamanm

More Related Content

PPTX
Android development powered by Java SE 8 and Kotlin
PPTX
Mobile Application Development: Hybrid, Native and Mobile Web Apps
PPTX
Mobile applications chapter 5
PPSX
Multiplatform App Architecture
PPTX
01 01 - introduction to mobile application development
PPSX
Cross platform mobile application architecture for enterprise
PPT
Enterprise Mobile App UX: Designing from UI to Backend
PDF
Platform vs. Native vs. HTML5: Which mobile development makes sense for your ...
Android development powered by Java SE 8 and Kotlin
Mobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile applications chapter 5
Multiplatform App Architecture
01 01 - introduction to mobile application development
Cross platform mobile application architecture for enterprise
Enterprise Mobile App UX: Designing from UI to Backend
Platform vs. Native vs. HTML5: Which mobile development makes sense for your ...

What's hot (20)

PPTX
Introduction to Mobile Apps
PPT
Introduction to Mobile Application Development on Android
PPTX
Tk2323 lecture 1 introduction to mobile application
PDF
Building Cross Platform Mobile Applications
PPTX
Why MDM Alone Falls Short
PPTX
Mobile application design & development
PPTX
Should you say no to HTML5?
PPTX
Mobile development intro
PPTX
8 steps to a long term mobile strategy
PPTX
Mobile application design trend & history
PPTX
Intro to tech stacks bonny
PDF
The Mobile Ecosystem
PPTX
Intro To Mobile App Development
PDF
Native vs. Mobile Web vs. Hybrid Apps for Mobile Development
PDF
iOS App Development and Marketing
PDF
PPTX
Mobile app development
PPT
Best Mobile App Development Services in India
PDF
Designing for Tablet Experiences (Henrik Olsen)
PDF
Web2.0 Tablet Experience Design Workshop
Introduction to Mobile Apps
Introduction to Mobile Application Development on Android
Tk2323 lecture 1 introduction to mobile application
Building Cross Platform Mobile Applications
Why MDM Alone Falls Short
Mobile application design & development
Should you say no to HTML5?
Mobile development intro
8 steps to a long term mobile strategy
Mobile application design trend & history
Intro to tech stacks bonny
The Mobile Ecosystem
Intro To Mobile App Development
Native vs. Mobile Web vs. Hybrid Apps for Mobile Development
iOS App Development and Marketing
Mobile app development
Best Mobile App Development Services in India
Designing for Tablet Experiences (Henrik Olsen)
Web2.0 Tablet Experience Design Workshop
Ad

Similar to Why software architecture (Mobile Architecture)? (20)

PPTX
architecture of mobile software applications
PPTX
demystifying_the_architectures_of_a_mobile_app_development.pptx
PDF
demystifying_the_architectures_of_a_mobile_app_development.pdf
PDF
Find the right mobile app architecture for your business [detailed guide]
PPTX
Mobile Application dev architecture..pptx
PDF
Hybrid Smart phone application development analysis
PDF
Mobile Applications Architecture - GDG Ternopil' Architecture Components Meetup
PDF
MOBILE-APP-DEVELOPMENT.for college students
PDF
App Architecture for Efficient Mobile App Development.pdf
PPTX
Importance of Mobile App Architecture For Mobile App Development
PPTX
Shape 2013 developing multi targeting windows store and windows phone apps
PDF
PDF
Fundamentals of Mobile App Development Technology
PPTX
Mobile application architecture
PPT
UNIT_1_1626771386169.ppt
PPTX
Mobile App Development - Codearrest.pptx
PDF
Architect a Winning Mobile Application
PPT
How App Usability, Functionality, and Analysis are Changing with Mobile
PPTX
Interactive Mobile Applications in the Enterprise: Are You Ready?
PPTX
Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile
architecture of mobile software applications
demystifying_the_architectures_of_a_mobile_app_development.pptx
demystifying_the_architectures_of_a_mobile_app_development.pdf
Find the right mobile app architecture for your business [detailed guide]
Mobile Application dev architecture..pptx
Hybrid Smart phone application development analysis
Mobile Applications Architecture - GDG Ternopil' Architecture Components Meetup
MOBILE-APP-DEVELOPMENT.for college students
App Architecture for Efficient Mobile App Development.pdf
Importance of Mobile App Architecture For Mobile App Development
Shape 2013 developing multi targeting windows store and windows phone apps
Fundamentals of Mobile App Development Technology
Mobile application architecture
UNIT_1_1626771386169.ppt
Mobile App Development - Codearrest.pptx
Architect a Winning Mobile Application
How App Usability, Functionality, and Analysis are Changing with Mobile
Interactive Mobile Applications in the Enterprise: Are You Ready?
Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile
Ad

More from Mohamed Taman (11)

PDF
Effective java se 11 through 12 ap is & language features, makes your lif...
PDF
Mohamed Taman short C.V version v1.0
PPTX
Unit testing & TDD concepts with best practice guidelines.
PPTX
DevOps concepts, tools, and technologies v1.0
PPTX
Top 10 key performance techniques for hybrid mobile and web apps
PDF
Android development powered by Java SE 8
PDF
Operating systems essentials & Android OS concepts
PDF
United nations UNHCR & WFP case study, a java success story
PDF
What’s new in Java SE, EE, ME, Embedded world & new Strategy
PDF
Drive yourself, community with adopts and jcp to professionalism
PPTX
Learn HTML5 & JEE7 by doing
Effective java se 11 through 12 ap is & language features, makes your lif...
Mohamed Taman short C.V version v1.0
Unit testing & TDD concepts with best practice guidelines.
DevOps concepts, tools, and technologies v1.0
Top 10 key performance techniques for hybrid mobile and web apps
Android development powered by Java SE 8
Operating systems essentials & Android OS concepts
United nations UNHCR & WFP case study, a java success story
What’s new in Java SE, EE, ME, Embedded world & new Strategy
Drive yourself, community with adopts and jcp to professionalism
Learn HTML5 & JEE7 by doing

Why software architecture (Mobile Architecture)?

  • 1. Mohamed Taman @_tamanm Enterprise Architect / Innovation & R&D Sr. manager @e-finance Java Champion Why Software Architecture (Mobile Architecture)
  • 2. Me, I, and Myself • Java Champion, and Java Geek • Enterprise Architect / Innovation & R&D Sr. Manager @efinance • Mobile/Web/Blockchain/HashGraph/Cloud/DevOps/Big Data/IoT • JCP (Won Duke’s choice award 2013, 2014, 2015) • Speaks Java (Won Outstanding adopt-a-jsr participant 2013 JCP annual award) • International Speaker • Author (“JavaFX 8 essentials”, and upcoming “Mastering JDK 9” Video training for Packt and Lynda.com) Mohamed Taman @_tamanm
  • 3. Reach me on @_tamanm http://eg.linkedin.com/in/mohamedtaman/ https://www.facebook.com/mohamed.m.taman.7 (Mohamed Mahmoud Taman) http://tamanmohamed.blogspot.com https://github.com/mohamed-taman https://www.slideshare.net/tamanm
  • 4. Software Architecture why Do We Need It? • Like any other complex structure, software must be built on a solid foundation. Failing to consider key scenarios, failing to design for common problems, or failing to appreciate the long term consequences of key decisions can put your application at risk. • With no architecture in place, the code grew like ivy on a moisty garden shed, resulting in poor maintainability and low productivity in adding new features to the software. Mohamed Taman @_tamanm
  • 5. What is Software Architecture? • Software application architecture is the process of defining a structured solution that meets all of the technical and operational requirements, while optimizing common quality attributes such as performance, security, and manageability. • It involves a series of decisions based on a wide range of factors, and each of these decisions can have considerable impact on the quality, performance, maintainability, and overall success of the application. Mohamed Taman @_tamanm
  • 6. Concerns when thinking about software architecture • How will the users be using the application? • How will the application be deployed into production and managed? • What are the quality attribute requirements for the application, such as security, performance, concurrency, internationalization, and configuration? • How can the application be designed to be flexible and maintainable over time? • What are the architectural trends that might impact your application now or after it has been deployed? Mohamed Taman @_tamanm
  • 7. The Goals of Architecture • Expose the structure of the system but hide the implementation details. • Realize all of the use cases and scenarios. • Try to address the requirements of various stakeholders. • Handle both functional and quality requirements. Mohamed Taman @_tamanm
  • 8. Software Architecture offers some rather relevant benefits • Higher productivity. It is easier to add new features to existing software, since the structure is already in place, and the location for every new piece of code is known beforehand. • Better code maintainability. It is easier to maintain existing software, as the structure of the code is visible and known, so it’s easier to find bugs and anomalies. • Higher adaptability. New technical features, such a different front ends, or adding a business rule engine are easier to achieve, as your software architecture creates a clear separation of concerns. • Hype agnostic. Last but not least, it will allow you to see hypes and fads in the industry – or which there are a lot – in the light of your current structure, and to fit these hypes and fads in if so required. Mohamed Taman @_tamanm
  • 9. Basic Building Block: OOP • Encapsulation • Composition, inheritance, and delegation • Polymorphism Mohamed Taman @_tamanm OOP principals is the foundation to “Design Patterns”.
  • 10. What is mobile application? • A mobile application, most commonly referred to as an app, is a type of application software designed to run on a mobile device, such as a smartphone or tablet computer. • A mobile app is a software application developed specifically for use on small, wireless computing devices, such as smartphones and tablets, rather than desktop or laptop computers. • Mobile apps are designed with consideration for the demands and constraints of the devices and also to take advantage of any specialized capabilities they have. A gaming app, for example, might take advantage of the iPhone's accelerometer. Mohamed Taman @_tamanm
  • 11. What is mobile Website ? The mobile web refers to access to the world wide web, i.e. the use of browser-based Internet services, from a handheld mobile device, such as a smartphone or a feature phone, connected to a mobile network or other wireless network. Mohamed Taman @_tamanm
  • 12. What is mobile application architecture? Mobile Application Architecture is set of techniques and patterns to build fully structured mobile applications based on industry and vendor specific standards and procedures those works on wireless mobile devices like smartphones and tablets. Mohamed Taman @_tamanm
  • 13. Mobile Architecture Objectives • Define a mobile application. • Understand components found in a mobile application. • Learn the key scenarios where mobile applications would be used. • Learn the design considerations for mobile applications. • Identify specific scenarios for mobile applications, such as deployment, power usage, and synchronization. • Learn the key patterns and technology considerations for designing mobile applications. Mohamed Taman @_tamanm
  • 15. General Design Considerations • Decide if you will build a rich client, a thin Web client, or a Hybrid app. • Determine the device types you will support. • Consider occasionally connected and limited-bandwidth scenarios when appropriate. • Design a UI appropriate for mobile devices, taking into account platform constraints. • Design a layered architecture appropriate for mobile devices that improves reuse and maintainability. • Consider device resource constraints such as battery life, memory size, and processor speed. Mohamed Taman @_tamanm
  • 16. Specific Design Issues • Authentication and Authorization • Caching • Communication • Configuration Management • Data Access • Device Specifics • Exception Management Mohamed Taman @_tamanm • Logging • Porting Applications • Power Management • Synchronization • Testing • User Interface • Validation
  • 19. Pros and Cons Mohamed Taman @_tamanm
  • 20. How Hybrid apps works? Mohamed Taman @_tamanm
  • 21. Resources and references • https://prezi.com/dsuuipwgdzfc/developing-mobile-apps-hybrid-android-with- netbeans-8/ • https://www.slideshare.net/hassandar18/architecture-of-mobile-software- applications • https://en.wikipedia.org/wiki/Object-oriented_programming • https://www.codeproject.com/Articles/1064240/Introduction-to-Software- Architecture • https://msdn.microsoft.com/en-us/library/ee658098.aspx • https://msdn.microsoft.com/en-us/library/ee658108.aspx Mohamed Taman @_tamanm

Editor's Notes

  • #16: Decide if you will build a rich client, a thin Web client, or rich Internet application (RIA aka Hybrid). If your application requires local processing and must work in an occasionally connected scenario, consider designing a rich client. A rich client application will be more complex to install and maintain. If your application can depend on server processing and will always be fully connected, consider designing a thin client. If your application requires a rich UI, only limited access to local resources, and must be portable to other platforms, design an RIA client. Determine the device types you will support. When choosing which device types to support, consider screen size and resolution, CPU performance characteristics, memory and storage space, and development tool environment availability. In addition, factor in user requirements and organizational constraints. You may require specific hardware such as a global positioning system (GPS) or a camera, which may impact not only your application type, but also your device choice. Consider occasionally connected and limited-bandwidth scenarios when appropriate. If your mobile device is a stand-alone device, you will not need to account for connection issues. When network connectivity is required, mobile applications should handle cases when a network connection is intermittent or not available. It is vital in this case to design your caching, state management, and data access mechanisms with intermittent network connectivity in mind; batch communications for delivery when connectivity is available. Choose hardware and software protocols based on speed, power consumption, and granularity, and not just on ease of programming. Design a UI appropriate for mobile devices, taking into account platform constraints. Mobile devices require a simpler architecture, simpler UI, and other specific design decisions in order to work within the constraints imposed by the device hardware. Keep these constraints in mind and design specifically for the device instead of trying to reuse the architecture or UI from a desktop or Web application. The main constraints are memory, battery life, ability to adapt to difference screen sizes and orientations, security, and network bandwidth. Design a layered architecture appropriate for mobile devices that improves reuse and maintainability. Depending on the application type, multiple layers may be located on the device itself. Use the concept of layers to maximize separation of concerns, and to improve reuse and maintainability for your mobile application. However, aim to achieve the smallest footprint on the device by simplifying your design compared to a desktop or Web application. Consider device resource constraints such as battery life, memory size, and processor speed. Every design decision should take into account the limited CPU, memory, storage capacity, and battery life of mobile devices. Battery life is usually the most limiting factor in mobile devices. Backlighting, reading and writing to memory, wireless connections, specialized hardware, and processor speed all have an impact on the overall power usage. When the amount of memory available is low, the Windows Mobile operating system may ask your application to shut down or sacrifice cached data, slowing program execution. Optimize your application to minimize its power and memory footprint while considering performance during this process.