18
MWSD01-R01 : Introdução a Arquitetura e Projeto de Soluções Mobile FACILITADOR: ALEX ALMEIDA(ARQUITETO DE SOFTWARE) EMAIL: [email protected] TWITTER: HTTPS:// TWITTER.COM/DVPALEX CEL.: 11 98721-3845

Mwds01 - Introdução a Arquitetura e Projeto de Soluções Mobile

Embed Size (px)

Citation preview

MWSD01-R01 : Introdução a Arquitetura e Projeto de Soluções Mobile

FACILITADOR: ALEX ALMEIDA(ARQUITETO DE SOFTWARE)EMAIL: [email protected]

TWITTER: HTTPS://TWITTER.COM/DVPALEX

CEL.: 11 98721-3845

Agenda

• Apresentação

• Proposta

• UML

• SOAML

• SYSML

• Design Patterns

• Principles of Design

• Melhores práticas

• Arquitetura Base

Apresentação

Quem somos então e o que nos trás aqui?

O que é WSDEVS?

• Grupo para compartilhamento e replicação prática de conhecimentos de tecnologias.

Modelo de trabalho.

Proposta

Replicar o conhecimento de soluções Mobile utilizando design patterns, principles of design e melhores práticas

de mercado afim obter melhores resultados nos desafios de desenvolvimento soluções mobile tento a UML e

suas extensões como principal ferramenta de designer mais não se limitando apenas a ela.

Soluções Mobile tem um nível muito maior de exigência das demais plataformas principalmente em termos de :

Tamanho dos artefatos, Peformance, Testabilidade, Mantenabilidade, Comunicação e Robustez dado as

limitações de hardwares , links, variedades de tecnologias que precisam ser integradas(Entidades

Autenticadoras, Legado, Middleware ...), Infraestrutura e principalmente a diversidade de devices;

Desenvolver soluções nas principais plataformas nativas – IOS, Android e Windows e ainda Hibrida com

Phonegap.

“Projetar e construir soluções Mobiles com as melhores práticas , Design Patterns, Principle of Design são apenas necessidades básicas."

Designer arquitetônico de soluções mobile com UML e sua extensões através de melhores

práticas, Design Patterns e Principle Design para as plataformas IOS, Android, Windows

phone e Híbrido com Phonegap

UML

UML – Linguagem de notação para sistemas orientados a objeto aplicada a

especificação e análise de sistemas em seus aspectos funcionais , não funcionais

e arquitetônicos

UML – SOAML Extension

SoaML – Extensão da UML dirigida a SOA;

UML – SYSML extension

SysML – Extensão UML dirigida a

Engenharia de Software;

UML – SYSML extension

SysML – Extensão UML dirigida a

Engenharia de Software;Diagramas SysML:

• Requeriment Diagram;

UML – SYSML extension

SysML – Extensão UML dirigida a

Engenharia de Software;Diagramas SysML:

• Parametric Diagram.

Design Patterns

Grupos de Design Patterns:

• Creational Patterns (Padrões de Criação): Tratam da construção do objeto

e o de referência;

• Structural Patterns (Padrões Estruturais): Tratam da relação entre objetos

e como eles interagem entre sim para formarem grandes objetos

complexos;

• Behavioral Patterns (Padrões Comportamentais): Tratam da comunicação

entre os objetos, especialmente em termos de responsabilidade e de

algoritimos.

Design Patterns – Padrões de Projeto, Blueprint(Desenho técnico, documentação de arquitetura), Solução reconhecidas para problemas comum.

Design Patterns

• Creational Patterns (Padrões de Criação):

• Abstract Factory

• Builder

• Factory Method

• Prototype

• Singleton

• Structural Patterns (Padrões Estruturais):

• Adapter

• Bridge

• Composite

• Decorator

• Façade (ou Facade)

• Flyweight

• Proxy

Design Patterns – Padrões de Projeto, Blueprint(Desenho técnico, documentação de arquitetura), Solução reconhecidas para problemas comum.

• Behavioral Patterns (Padrões Comportamentais

• Chain of Responsibility

• Command

• Interpreter

• Iterator

• Mediator

• Memento

• Observer

• State

• Strategy

• Template Method

• Visitor

Principles of DesigN

Single Responsibility Principle (SRP), ou, Princípio da Responsabilidade Única. Esse princípio diz que as classes devem ser coesas, ou

seja, terem uma única responsabilidade. Classes assim tendem a ser mais reutilizáveis, mais simples, e propagam menos mudanças

para o resto do sistema.

• Open Closed Principle (OCP), ou Princípio do Aberto Fechado. Diz que as classes devem poder ter seu comportamento facilmente

estendidas quando necessário, por meio de herança, interface e composição. Ao mesmo tempo, não deve ser necessário abrir a

própria classe para realizar pequenas mudanças. No fim, o princípio diz que devemos ter boas abstrações espalhadas pelo sistema.

• Liskov Substitution Principle (LSP), ou Príncipio da Substituição de Liskov. Esse princípio diz que precisamos ter cuidado para usar

herança. Herança é um mecanismo poderoso, mas deve ser usado com parcimônia, evitando os casos de Gato-estende-Cachorro,

apenas por possuírem algo em comum.

• Interface Segregation Principle (ISP), ou Princípio da Segregação de Interfaces. Esse princípio diz que nossos módulos devem ser

enxutos, ou seja, devem ter poucos comportamentos. Interfaces que tem muitos comportamentos geralmente acabam se espalhando

por todo o sistema, dificultando manutenção.

• Dependency Inversion Principle (DIP), ou Princípio da Inversão de Dependências. Esse princípio diz que devemos sempre depender de

abstrações, afinal abstrações mudam menos e facilitam a mudança de comportamento e as futuras evoluções do código.

Principles of Design

Melhores práticas

Plataformas : IOS, Android, Windows Phone e Híbrido(Phonegap)

Campos de uso:

• Codificação

• Acesso de Recursos

• Usabilidade(UI) e Melhor experiência para o usuário(UX)

• Montagem da esteira de desenvolvimento e execução do projeto

• Teste

• Delivery

Melhores Práticas

Soluções mobile

Arquitetura base: Visão Geral

Webapi

Soluções mobile - CLOUD

Arquitetura base: Google App Engine

Soluções mobile - CLOUD

Arquitetura base: Windows Azure

Soluções mobile - CLOUD

FIM ! Dúvidas?

http://www.meetup.com/Sao-Paulo-Mobile-wsdevs-Meetup/

http://www.meetup.com/SOA-WSDEVS-Meetup/

http://www.meetup.com/Sao-Paulo-Scrum-Alm-e-MS-TFS-Meetup/

Nossos Meetups: