aula 01 - conceitos gerais · pdf fileconfiabilidade; preço e desempenho; sistemas...
TRANSCRIPT
14/02/2016
1
UML
Prof. Esp. Fabiano Taguchihttp://fabianotaguchi.wordpress.com
UML
� COMPETÊNCIACOMPETÊNCIACOMPETÊNCIACOMPETÊNCIA:::: Conhecer e desenvolver estudos de casousando modelagem orientada a objeto.
� HABILIDADEHABILIDADEHABILIDADEHABILIDADE:::: Conhecer os fundamentos do desenvolvimento deum sistema e as ferramentas de análise e desenvolvimento deprojetos de Sistemas de Informação.
� CARGACARGACARGACARGA HORÁRIAHORÁRIAHORÁRIAHORÁRIA:::: 44 horas
14/02/2016
2
INFORMAÇÕES IMPORTANTES
� ATENÇÃO COM AS FALTAS E O CONTEÚDO!
� AVALIAÇÃO IRÁ ACONTECER NO DECORRER DAS AULAS.� EXERCÍCIOS DURANTE AS AULAS� APRESENTAÇÃO DA MODELAGEM DE UM SISTEMA
� AULAS SERÃO DIVIDIDAS ENTRE TEORIA E PRÁTICA.
DESENVOLVIMENTO DE SOFTWARES
14/02/2016
3
CRISE DO SOFTWARE
“A indústria do software tem tido uma crise que a acompanha há quase 30 anos.”
Esses problemas abrangem:
� Desenvolvimento;
� Testes;
� Manutenção.
CRISE DO SOFTWARE
Custos do hardware diminuem
Custos do software aumentam
Os desafios do softwares são classificados em:
� Confiabilidade;
� Preço e desempenho;
� Sistemas críticos.
14/02/2016
4
A VERDADE É QUE:
A sofisticação do software ultrapassou a capacidade deconstrução, que também não consegue acompanhar a demandapor novos softwares. Por que?
� Planejamento?
� Documentação?
� Testes?
ENGENHARIA DE SOFTWARE
“Engenharia de software é uma disciplina que estuda todos os aspectos da produção de softwares.”
Diferindo em aspectos como:Diferindo em aspectos como:Diferindo em aspectos como:Diferindo em aspectos como:
� Software é desenvolvido, não produzido;
� Software não se desgasta;
� Produzido para um cliente específico.
14/02/2016
5
ASPECTOS DE UM BOM SOFTWARE
� Facilidade de manutenção;
� Confiança;
� Eficiência;
� Usabilidade.
ATIVIDADES EM UM PROJETO
1. Especificação de requisitos;
2. Projeto de software
3. Implementação
4. Validação do software
5. Evolução do software
14/02/2016
6
AVALIAÇÃO DE APRENDIZAGEM
01 - Por que leva tanto tempo para concluir um sistema de software?
02 – Por que os custos são tão altos?
03 - Por que não achamos todos os erros antes de entregar o softwareao cliente?
04 - Por que gasta-se tantos recursos para manter sistemas existentes(antigos)?
MODELOS DE PROCESSOS
14/02/2016
7
MODELO CASCATA
Consiste em atividades sequenciais, com documentaçãorígida. Este modelo é pouco usado na prática, pois:
� Raramente o cliente consegue estabelecer todos os requisitosde início;
� Difícil de se adequar as mudanças;
� Versão só pode ser visualizada ao final do projeto.
MODELO CASCATA
14/02/2016
8
DESENVOLVIMENTO INCREMENTAL
As atividades são intercaladas, permitindo que sejapassado um feedback imediato ao cliente. Neste modelo asmudanças tendem a corromper a modularidade do sistema,tornando a gerencia deste projeto algo bastante complexo.
No desenvolvimento incremental é possível começar adesenvolver o sistema pelas partes de menos complexidade emais claras para o cliente.
DESENVOLVIMENTO INCREMENTAL
14/02/2016
9
BASEADO EM REUSO
Este processo baseia-se na integração dos componentesreusáveis, com isso, diminui a quantidade de software a serdesenvolvido, os custos e os riscos.
Em contra partida este modelo torna a gerencia bastantecomplexa.
DEFINIÇÃO DE REQUSIITOS
14/02/2016
10
REQUISITOS
São os serviços fornecidos pro um sistema e sãoclassificados em requisitos funcionais e não funcionais.
� FUNCIONAISFUNCIONAISFUNCIONAISFUNCIONAIS = Descrevem as funcionalidade e serviços
� NÃONÃONÃONÃO FUNCIONAISFUNCIONAISFUNCIONAISFUNCIONAIS = Definem propriedades e restrições
REQUISITOS FUNCIONAIS
Este requisitos documentam como o sistema deve reagir aentradas específicas e como devem se comportar emdeterminadas situações.
Exemplos:
� Todo usuário poderá fazer consultas em um banco de dados.
� Cada nota fiscal deverá possuir um código.
� Sistema deve notificar o requisitante por e-mail quando arequisição estiver disponível para retirada.
14/02/2016
11
REQUISITOS NÃO FUNCIONAIS
Mapeiam aspectos qualitativos de um software: performance,segurança, perspectiva do usuário, comunicação e usabilidade.
Exemplos:
� A interface do usuário deverá sem escrito em HTML simples;
� Todos os documentos devem seguir o padrão de nome XYZ-00;
� O tempo de resposta de uma requisição deve ser de 0,2 segundos.
ENGENHARIA DE REQUISITOS
14/02/2016
12
ETAPAS DA ENGENHARIA DE REQUISITOS
Quatro são as fases:
1. Estudo de viabilidade;
2. Elicitação de requisitos;
3. Especificação de requisitos
4. Validação de requisitos
ESTUDO DE VIABILIDADE
Todo sistema novo deve começar por um estudo deviabilidade, no qual deve ser respondidas perguntas como:
� O sistema pode ser implementado com a tecnologia atualdentro das restrições de custo e prazo?
� O sistema pode ser integrado a outros sistemas em operação?
� Como a organização se comportaria sem este sistema?
� Que processos serão auxiliados por esse novo sistema?
14/02/2016
13
ELICITAÇÃO E ANÁLISE DE REQUISITOS
ESPECIFICAÇÃO DOS REQUISITOS
Construir o documento com os requisitos identificados.
14/02/2016
14
VALIDAÇÃO DE REQUISITOS
Esta etapa serve para mostrar que os requisitos realmentedefinem o sistema que o cliente deseja, nesta etapa é possívelverificar os problemas com os requisitos, com verificações de:
� Validade;
� Consistência;
� Completude;
� Realismo.
EXERCÍCIOS DE APRENDIZAGEM
14/02/2016
15
EXERCÍCIOS DE APRENDIZAGEM
UML
14/02/2016
16
ORIENTAÇÃO A OBJETO
� Abstração
� Classes
�Objetos
� Atributos
� Métodos
� Método construtor
� Herança
� Polimorfismo
� Sobrecarga
� Encapsulamento
� Interface
MODELAGEM
O que é modelagem?O que é modelagem?O que é modelagem?O que é modelagem?
Por que precisamos usar modelos?Por que precisamos usar modelos?Por que precisamos usar modelos?Por que precisamos usar modelos?
14/02/2016
17
HISTÓRICO
A UML surgiu entre os anos de 1998 e 2000.
Consiste em uma linguagem visual para especificação desistemas orientados a objetos, independente da linguagem deprogramação a ser usada.
� Dados (Estrutural)
�Operações (Funcional)
� Eventos (Temporal)
HISTÓRICO
Em seu início notações diferentes eram usados paradescrever projetos orientados a objetos, a UML acabou por setornar a integração dessas várias notações.
� É uma linguagem não proprietária;
� Não é uma metodologia de desenvolvimento.
14/02/2016
18
FERRAMENTAS
Existe uma gama de ferramentas muito grande paramodelagem a partir da UML, dentre as mais conhecidas:
� Rational Rose;
� Enterprise Architect;
� Astah;
� StarUML;
� ArgoUML.
OBJETIVO DA UML
� Modelar sistemas usando os conceitos de orientação a objetos;
� Ajudar a equipe de projeto a visualizar um sistema como elepretende ser;
� Auxiliar a especificar a estrutura e o comportamento do sistemaao passar do tempo;
� Proporcionar um modelo que sirva de guia para a construçãodo sistema;
14/02/2016
19
CONCEITOS UML
Dois conceitos iniciais são importantes :
� DIAGRAMADIAGRAMADIAGRAMADIAGRAMA: É uma visão de um modelo.
� MODELOMODELOMODELOMODELO: É a descrição completa de um sistema em umadeterminada perspectiva.
ESTRUTURAÇÃO UML – 13 DIAGRAMAS
DIAGRAMAS ESTRUTURAISDIAGRAMAS ESTRUTURAISDIAGRAMAS ESTRUTURAISDIAGRAMAS ESTRUTURAIS� Diagrama de classes, objetos e pacotes;� Diagrama de implantação, componentes e estruturação composta.
DIAGRAMAS COMPORTAMENTAISDIAGRAMAS COMPORTAMENTAISDIAGRAMAS COMPORTAMENTAISDIAGRAMAS COMPORTAMENTAIS� Casos de uso e diagrama de atividades;� Diagrama de máquinas de estado.
DIAGRAMAS DE INTERAÇÃODIAGRAMAS DE INTERAÇÃODIAGRAMAS DE INTERAÇÃODIAGRAMAS DE INTERAÇÃO� Diagramas de sequência, comunicação, tempo e visão geral da interatividade.
14/02/2016
20
EXERCÍCIOS
EXERCÍCIO
Em grupo de até 04 pessoas, liste 10 requisitos funcionais e 10requisitos não funcionais para os seguintes projetos de software:
� Posto de combustível;
� Venda de passagens;
� Pizzaria;
� Escola de idiomas;
� Padaria.
14/02/2016
21
DEFINIÇÃO DO SISTEMA – POSTO DE COMBUSTÍVEL
O caso em questão será o desenvolvimento de um sistema paracontrole de pagamentos de abastecimento em um posto decombustível localizado no centro da cidade. Este sistema deveráarmazenar todas as informações necessárias para que se possafazer a venda de combustível ao cliente.
DEFINIÇÃO DO SISTEMA – VENDA DE PASSAGENS
O sistema para venda de passagensatenderá uma empresa de transportes emespecífico, este sistema tem como objetivofazer a venda e reservas de passagensrodoviárias.
14/02/2016
22
DEFINIÇÃO DO SISTEMA – PIZZARIA
Uma pizzaria da cidade vaicomeçar a trabalhar com teleentregas, para isso necessita deum sistema para controle depedidos. O objetivo do sistema égerenciar os pedidos de pizza erepassar ao setor de produção.
DEFINIÇÃO DO SISTEMA – ESCOLA DE IDIOMAS
Uma escola de idiomas foi criada por dois amigos, e precisar de um sistema para matricular os alunos. O objetivo deste sistema é que se faça o cadastro e matrícula dos alunos.
14/02/2016
23
DEFINIÇÃO DO SISTEMA – PADARIA
Para uma padaria, o sistema a ser desenvolvido será instaladoapenas no caixa da padaria, ou seja, o objetivo principal destesistema é fazer a gestão da cobrança das comandas.