Você está na página 1de 42

Metodologia de Desenvolvimento I

Aula 1 Professor: Borges Contato: profborges@gmail.com

Importncia da Modelagem

Modelagem de Sistemas

Importncia da Modelagem
Produto de uma equipe de sistemas um bom software O que um bom software?

Importncia da Modelagem de Sistemas

Bom software :
Produto que satisfaz as necessidades e anseios dos usurios e respectivos negcios. Para isso necessrio:
Realizar reunies e interagir com usurios de forma disciplinada Objetivando expor os requisitos reais do sistema

Importncia da Modelagem de Sistemas


Como fazer um bom software ou software de qualidade?

Importncia da Modelagem de Sistemas


Necessidade de criar uma base slida (fundao) de arquitetura que permita evolues sem traumas.

Importncia da Modelagem de Sistemas


Modelagem a parte central de todas as atividades que levam implantao de um bom software (Booch, G., Rumbaugh, J., Jacobson I., 2000)

Modelagem de Sistemas
Porque fazer modelagem, ou seja, construir modelos?

Porque fazer Modelagem?

Para:
Comunicar a estrutura e comportamento desejado do sistema Visualizar e controlar a arquitetura do Sistema Compreender melhor o sistema que esta sendo desenvolvido
Expor oportunidades de simplificao e reutilizao

Gerenciar os riscos

Modelagem de Sistemas

O que um modelo?

Modelagem de Sistemas
Modelo uma simplificao da realidade

Estruturas grficas, planos gerais ou detalhados que fornecem uma viso panormica do sistema.

Modelos podem ser:


Estruturais (organizao do sistema) Comportamentais (dinmica do sistema)

Porque fazer a Modelagem?


Construmos modelos para entender melhor o sistema que estamos desenvolvendo

Alcanar quatro objetivos:


Ajudam a visualizar o sistema como ele ou como desejamos que seja Permitem especificar a estrutura ou o comportamento um guia para a construo do sistema Documentam as decises tomadas

Princpios da Modelagem

Princpios da Modelagem

Quatro princpios bsicos


A escolha dos modelos a serem criados tem profunda influncia sobre a maneira como um determinado problema atacado e como uma soluo definida Cada modelo poder ser expresso em diferentes nveis de preciso Os melhores modelos esto relacionados realidade Nenhum modelo nico suficiente, usar um conjunto de modelos independentes.

Debate

DEBATE

importante fazer modelagem?


Em que situaes?

Quando utilizar?

Introduo UML

Introduo UML
UML (Unified Modeling Language) uma linguagem-padro para elaborao da estrutura de projetos de software. UML define uma notao e no metamodelo Utilizada para:

Visualizar, Especificar, Construir, Documentar os artefatos de um sistema complexo de software

Destina-se a sistemas complexos de

Modelo conceitual

Modelo Conceitual

Trs elementos principais


Blocos de construo Regras de combinao dos blocos Mecanismos Bsicos

Blocos de construo
Relacionamentos
Dependncias Associao Generalizao Realizao

Blocos de construo
Diagramas
Classes Objetos Casos de uso Seqncia Colaboraes (atualmente chamado de comunicao) Estados Componentes Implantao

Regras da UML

Definem semntica
Nomes Escopo Visibilidade Integridade Execuo

Mecanismos bsicos

Padro de caractersticas
Especificaes
Fornece atributos, operaes e comportamentos Utilizado para determinar os detalhes do sistema

Adornos
Caractersticas adicionais (grficas ou textuais) que so utilizadas na especificao de um elemento da UML. Exemplo: determinar se classe abstrata, visibilidade de elementos (+,-,#), etc...

Divises comuns
Classes e objetos, casos de uso e instncia de casos de uso, etc..

Mecanismos de extensibilidade
Esteretipos, valores atribudos, restries

Introduo UML Prs e contras

Prs e Contras da UML

Contra(s)
Maior tempo gasto com modelagem

Prs
Maior assertividade na codificao Menor tempo gasto com codificao Problemas so encontrados em tempo hbil Rastreabilidade de problemas Gerao de cdigo a partir dos diagramas
MDA

Introduo Arquitetura de software

Importncia da Arquitetura
Participantes do desenvolvimento do software tem diferentes pontos de vista ao longo do desenvolvimento Arquitetura permite gerenciar esses diferentes pontos de vistas Controlar o desenvolvimento iterativo e incremental do sistema durante o ciclo de vida

Importncia da Arquitetura

Conjunto de decises para:


Organizao do sistema Selecionar os elementos estruturais, interfaces que compem o sistema Definir o seu comportamento Compor os elementos (estruturais e comportamentais) em subsistemas progressivamente maiores Definir o padro do sistema para a empresa

Importncia da Arquitetura

Conjunto de decises para:


Tratar as funcionalidades Desempenho Flexibilidade Reutilizao Abrangncia Integraes Restries sejam econmicas ou tecnolgicas Questes de esttica e usabilidade

Modelagem da Arquitetura de software

Modelagem da Arquitetura Viso 4 + 1

Projeto Casos de Uso Processo

Implementao

Implantao

Vises de arquitetura

Viso de Casos de Uso


Descreve o comportamento do sistema com base na viso dos usurios e analistas No a organizao do sistema utilizada para capturar os aspectos estticos

Vises de arquitetura

Viso de Projeto
Suporte aos requisitos funcionais que sero fornecidos aos usurios Os aspectos estticos so capturados pelos diagramas de classes e objetos; os dinmicos pelos diagramas de iterao, estados e atividades

Vises de arquitetura

Viso do Processo
Foca no comportamento do sistema Explica os processos e como eles se comunicam,. Foca nos quesitos de:
Concorrncia Distribuio Integrao Performance Escalabilidade

So utilizados os mesmos diagramas da viso de projetos mas o diagrama de atividades o principal diagrama usado

Vises de arquitetura

Viso de implementao
Visualizar e gerenciar as verses dos componentes e arquivos utilizados na programao do sistema executvel Os aspectos estticos so capturados pelos diagramas de componentes; os dinmicos pelos diagramas de iterao, estados e atividades

Vises de arquitetura

Viso de implantao
Foca nos Ns que formam a topologia de hardware em que o sistema ser executado Mostra a distribuio dos componentes nos Ns Mostra a interligao e comunicao dos componentes do sistema dentro de cada N e entre Ns
Os aspectos estticos so capturados pelos diagramas de implantao; os

Metodologia de desenvolvimento

Metodologia de desenvolvimento

Metodologia x Processo x Linguagem


Mtodo pressupe um modelo de linguagem e um processo Processo so os passos que devem ser seguidos para a construo do projeto Modelo de linguagem a notao que o mtodo usa para descrever e documentar o projeto

Metodologia de desenvolvimento

Processo de desenvolvimento
Composto de diversas fases Cada fase possui tarefas a serem executadas Cada fase permite gerar artefatos O esforo tem como objetivo principal a construo de software de qualidade Tipos de processos?

Metodologia de desenvolvimento

Trabalho individual
Tipos de processos de desenvolvimento de software Abordar os aspectos positivos e negativos de cada processo Entrega: prxima aula