Introdução à Engenharia de Software e UML
-
Upload
natanael-simoes -
Category
Technology
-
view
185 -
download
1
Transcript of Introdução à Engenharia de Software e UML
Natanael Simõesnatanaelsimoes
Professor de Informática no Instituto Federal de Rondônia – Campus Ariquemes
Bel. Sistemas de Informação – IESUR 2012Esp. Planejamento Educacional e Docência no Ensino Superior – IESUR
2013Mestrando em Computação Aplicada – UEFS 2016
Projeto
“conjunto de atividades temporárias, realizadas em grupo, destinadas a produzir um produto, serviço ou resultado únicos”
Project Management Institute, 2013
Gerenciamento de Projetos• Administração é o principal interessado• Demanda aplicação de conhecimentos,
habilidades e técnicas na elaboração de atividades
• Define prazos, custos e qualidade• Mobiliza recursos técnicos e humanos
Como gerenciar um projeto1. Adote uma metodologia2. Comunique-se3. Defina o escopo4. Monte o time5. Desenvolva o cronograma6. Monitore os riscos7. Formalize o início e fim do projeto BARBI, 2013
Engenharia de Software• Sistemas de Informação e Análise de Sistemas são
os principais interessados• Gerencia o ciclo de vida dos softwares
Application Lifecycle Management – ALM• Aplica os conceitos de Gerência de Projetos aos
sistemas de informação• Uso constante de modelos abstratos
Engenharia de Software
“Engenharia de Software é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe em máquinas
reais”BAUER, 1960
Como gerenciar um projeto de software1. Adote uma metodologia de desenvolvimento
Metodologia de Desenvolvimento
Processo
MétodosFerramentas
Como gerenciar um projeto de software1. Adote uma metodologia de desenvolvimento
─ Processo• Cascata• Iterativo incremental• Evolucional• Espiral• Ágil
Como gerenciar um projeto de software1. Adote uma metodologia de desenvolvimento
─Métodos• Análise Estruturada• DFD – Diagrama de fluxo de dados• MER – Modelo Entidade-Relacionamento• Orientação a objetos• Scrum• XP• FDD – Feature Driven Development• TDD – Test Driven Develpment• UML
Como gerenciar um projeto de software1. Adote uma metodologia de desenvolvimento
─ Ferramentas• CASE – Computer-aided software engineering• IDE• Editor• Compilador• Debug• Testes• Refactoring
Como gerenciar um projeto de software2. Comunique-se com a equipe de desenvolvimento
Sei não Frank, essas “mina” parecem problema “não é só o peixe
que morre pela boca!”
BARBI, 2013
Como gerenciar um projeto de software3. Defina o escopo do sistema• O que o sistema vai fazer e o que não vai• "O ótimo é inimigo do bom"
Como gerenciar um projeto de software4. Monte o time de desenvolvimento• Conheça os stakeholders
(qualquer um pode ser um membro)• Enquanto se define o escopo as habilidades
necessárias para ser membro serão mais claras• Monte equipes com competências diversificadas
Como gerenciar um projeto de software5. Desenvolva o cronograma com sua equipe de
desenvolvimento• Defina as atividades a serem desenvolvidas• Defina quem executará a atividade e o tempo• Verifique a progressão das atividades
Como gerenciar um projeto de software6. Monitore os riscos que podem atrasar o desenvolvimento• Recursos
Orçamento, ferramentas, pessoas...• Funcionalidades
Alteração de requisitos...• Cronograma
Tempo estipulado foi pouco...
Como gerenciar um projeto de software7. Formalize o início e fim do projeto do sistema
─ Por que formalizar o início?• Expressa autoridade para envolver pessoas e recursos
─ Por que formalizar o fim?• Momento de avaliar erros e acertos (Know-how) • Clientes acham que podem mudar o tempo todo• Novas necessidades? Novo projeto!
“Adiciona mais uma telinha
simples”
“Muda a cor do texto”“Quero colocar minha foto no perfil”
Como gerenciar um projeto de software
1. Adote uma metodologia de desenvolvimento2. Comunique-se com a equipe de desenvolvimento3. Defina o escopo do sistema4. Monte o time de desenvolvimento5. Desenvolva o cronograma com sua equipe de
desenv.6. Monitore os riscos que podem atrasar o desenv.7. Formalize o início e fim do projeto do sistema
UML• 1997, por Booch, Rumbaugh e Jacobson•Não é uma metodologia!• Auxilia na visualização sistêmica de um problema•Não é depende de processo•Mais que uma ferramenta, um padrão de modelagem
35
Diagramas UML
Diagramas de Comportamento
Diagrama de Atividades
Diagrama de Caso de Uso
Diagrama de Estados
Diagramas de Interação
Diagrama de Sequência
Diagrama de Comunicação
Diagrama de Interatividade
Diagrama de Tempo
Diagramas de Estrutura
Diagrama de Classes
Diagrama de Componentes
Diagrama de Objetos
Diagrama de Perfil
Diagrama de Estrutura Composta
Diagrama de Instalação
Diagrama de Pacotes
Diagrama de Caso de Uso• Representa as funções globais de um sistema• Notações gráficas:
AtorCaso de usoRelacionamentoLimite
Ator• Representa um agente externo ao sistema
PessoaDispositivo (Impressora, leitor)Organização (IFRO, Prefeitura)Departamento (Recursos Humanos, Financeiro)Outro sistema (Webservice, DLL)
Ator
Vamos encontrar o(s) ator(es)a) “… o sistema possibilita ao cliente atualizar seus dados cadastrais
acessando o site na internet…”
b) “… o caixa eletrônico permitirá ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta…”
c) “… a secretária pode importar os Registros Acadêmicos do sistema administrativo, desde que informe o seu login e senha…”
E os atores são...a) “… o sistema possibilita ao cliente atualizar seus dados cadastrais acessando o site na internet…”
b) “… o caixa eletrônico permitirá ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta…”
c) “… a secretária pode importar os Registros Acadêmicos do sistema administrativo, desde que informe o seu login e senha…”
Vamos encontrar o(s) caso(s)a) “… o sistema possibilita ao cliente atualizar seus dados cadastrais acessando o site na internet…”
b) “… o caixa eletrônico permitirá ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta…”
c) “… a secretária pode importar os Registros Acadêmicos do sistema administrativo, desde que informe o seu login e senha…”
E os casos são...a) “… o sistema possibilita ao cliente atualizar seus dados cadastrais acessando o site na internet…”
b) “… o caixa eletrônico permitirá ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta…”
c) “… a secretária pode importar os Registros Acadêmicos do sistema administrativo, desde que informe o seu login e senha…”
Relacionamentos• Definem como atores e casos de uso se relacionam
entre si• Entre ator e caso de uso
Associação: O que o ator usaGerar
relatório
Ator
Relacionamentos• Entre ator e casos de uso
Generalização ou Especialização: herança de funções
Gerar relatório Imprimir
Relacionamentos• Entre ator e casos de uso
Include: processamento obrigatório
Marcar consulta
Procurar registro do paciente
<<include>>
Relacionamentos• Entre ator e casos de uso
Extend: processamento condicional
Verificar nível do
compartimento
Reabastecer compartimento
<<extend>>
Mão na massa!a) “… o sistema possibilita ao cliente atualizar seus dados cadastrais acessando o site na internet…”
b) “… o caixa eletrônico permitirá ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta…”
c) “… a secretária pode importar os Registros Acadêmicos do sistema administrativo, desde que informe o seu login e senha…”
Diagrama de Classes• Conjunto de representações de estruturas de objetos do mundo real e suas relações• Pré-requisito para os diagramas de:
ComunicaçãoSequênciaEstados
Classe• Representação das características e comportamentos abstraídos de objetos em comum do mundo real• Possui atributos, métodos e relacionamentos
Classe<<class>>Cachorro
- Cor:string- Altura:double- Tamanho:double- Peso:double- Raça:string- Nome:string
+ EmitirSom():void+ Correr(int velocidade):void+ Comer(Comida c):void+ Comer(Objeto o):void
Identificação da classe
Atributos
Métodos
Identificação da Classe
• <<class>>• <<entity>>• <<control>>• <<boundary>>• <<interface>>• <<abstract>>
<<class>>Cachorro
Estereótipo
Nome
Atributos[visibilidade] [nome] : [tipo]
• Visibilidade• Pública (+)• Protegida (#)• Privada (-)
• Nome do atributo• Tipo de dado
- Cor:string- Altura:double- Tamanho:double- Peso:double- Raça:string- Nome:string
Métodos[visibilidade] [nome] ([tipo p1] [nome p1], [tipo p2] [nome p2]):
[tipo]
• Visibilidade• Pública (+)• Protegida (#)• Privada (-)
• Nome do Método• Tipo e Nome de cada parâmetro• Tipo de retorno do método
- Cor:string- Altura:double- Tamanho:double- Peso:double- Raça:string- Nome:string
Relacionamento entre classes• Herança
Cachorro
+ Pegar(Bolinha b):boolean+ Pegar(Graveto g): boolean+ EmitirSom():void+ Correr(int velocidade):void
Mamifero
- Cor:string- Altura:double- Tamanho:double- Peso:double- Raça:string- Nome:string
+ EmitirSom():void+ Correr(int velocidade):void+ Comer(Comida c):void
Relacionamento entre classes• Realização
MySQL
<<interface>>DB
+ AbrirConexao(string host, string usuario, string senha, string porta, string banco):boolean+ Executar(string query): boolean+ Selecionar(string query): Collection+ FecharConexao:void
PostgreSQL SQLServer