Buscar

AULA_VisãoGeral_SI22014-2

Prévia do material em texto

1 
Processos de Software, 
Modelos e UML – Uma Visão 
Geral 
Franklin Ramalho 
Universidade Federal de Campina Grande - 
UFCG 
 SI2-UFCG 
2 
Agenda 
- Visão Geral da Disciplina 
 
- Por que estudar SI2? 
 
- O que estudar em SI2? 
 
- Quando aplicar o que aprendeu em SI2? 
 
- Página da Disciplina 
- Aulas 
- Horário de Atendimento 
- Forma de Avaliação 
 SI2-UFCG 
3 
Introdução 
• Desenvolvimento de Software 
 
• Software com Qualidade 
– Atenda aos requisitos do cliente 
– No prazo determinado 
– De forma eficiente 
 
• Como Garantir a qualidade do software? 
 
• Como desenvolver o software? 
 
 SI2-UFCG 
4 
Introdução 
• Um processo de software é um conjunto de atividades que 
juntas levam à produção de um produto de software 
 
• Tarefa complexa 
 
• Baseado em atividades 
 
• Decisões e julgamentos 
 
• Auxílio de ferramentas CASE 
– Limitado! 
 SI2-UFCG 
5 
Processo de Software 
Quem? 
O quê? 
Como? 
Quando? 
 SI2-UFCG 
6 
Processo de Software 
• Não existe processo ideal 
 
• Personalização de processos 
 
• Todos processos de software devem possuir algumas atividades em 
comum: 
– Especificação 
 
– Projeto 
 
– Implementação 
 
– Validação 
 
– Evolução 
2 
 SI2-UFCG 
7 
Introdução 
• Contínua melhora nos processos de desenvolvimento de 
software é requerida 
 
• Padronização tem papel fundamental! 
 SI2-UFCG 
8 
Modelos de Processo de Software 
• Um modelo de processo (paradigma de processo) de 
software é uma representação abstrata do processo de 
software 
 
• Diferentes perspectivas 
 
• Parciais 
 
• Genéricos 
– Funcionam como frameworks de processos de software 
 
 SI2-UFCG 
9 
Modelos de Processos de Software 
• Modelo cascata 
– Representa as atividades de desenvolvimento em diferentes fases do 
processo: requisitos, especificação, projeto, implementação e testes 
 
• Desenvolvimento Evolutivo 
– Intercala as atividades de especificação, desenvolvimento e 
validação 
 
• Eng. De Software baseada em componentes 
– Baseada no uso de componentes reusáveis e na sua integração 
 SI2-UFCG 
10 
Modelos de Processos de Software 
• Podem ser integrados 
– Sistemas complexos 
– Ex: RUP 
 
• Adaptações 
– Ex: Cleanroom process, método B (base formal) 
– Domínios específicos 
 
 SI2-UFCG 
11 
Processos Iterativos 
• Mudanças são inevitáveis 
– Em todas as fases 
 
• Desenvolvimento Iterativo é fundamental! 
 
• Modelos de processo: 
– Entrega incremental: Especificação, projeto e implementação 
quebrados em unidades menores (incrementos) desenvolvidos de 
acordo com prioridades 
– Desenvolvimento em espiral 
 
 SI2-UFCG 
12 
Atividades do Processo 
• Processos são baseados em atividades 
 
• Atividades: 
– Especificação 
– Desenvolvimento 
– Validação 
– Evolução 
 
• São organizadas de acordo com: 
– Tipo de software sendo desenvolvido 
– Estrutura organizacional 
– Pessoas 
– MODELO DE SOFTWARE adotado 
– Cliente 
3 
 SI2-UFCG 
13 
Especificação de Software 
• Entender e definir quais serviços devem ser providos pelo 
software e identificar quais são as restrições de operação e 
desenvolvimento do mesmo 
 
• Documentos precisam ser gerados de forma precisa 
especificando os requisitos e contratos que o software deve 
atender 
 
• Especificações acompanham o projeto de software também! 
– Mais detalhado 
 SI2-UFCG 
14 
Projeto e Implementação de Software 
• Implementação: atividades com foco na conversão da 
especificação em um sistema executável 
– Envolve: Projeto e programação 
– Pode envolver também: refinamentos (modelo evolutivo) 
 
• O projeto de software é a descrição da estrutura do 
software a ser implementado 
– Arquitetura (mais detalhada) 
– Especificação abstrata 
– Projeto de Estrutura de Dados 
– Projeto de Interfaces 
– Projeto de Componentes 
– Projeto de Algoritmos 
– Diferentes níveis de abstração 
 SI2-UFCG 
15 
Validação e Evolução de Software 
• V & V tem o objetivo de mostrar que o software atende às 
suas especificações e às necessidades do cliente 
– Testes de unidade 
– Testes de integração 
– Testes de aceitação 
 
• Evolução de software 
– Ligado à manutenção de software 
 
 SI2-UFCG 
16 
Atividades do processo de software 
• Especificação 
 
 
• Projeto 
 
 
• Implementação 
 
 
• Validação 
 
 
• Evolução 
- Como permitir a comunicação 
entre equipes na mesma 
linguagem? 
 
- Como representar seus 
artefatos? 
 
- É preciso entrar em todos 
os níveis de detalhes? 
MODELOS 
Especificar, construir, documentar e 
visualizar artefatos de software ao longo 
de todas as atividades do processo de software 
e em diferentes níveis de detalhamento 
 SI2-UFCG 
17 
Vida 
útil 
extensa 
Equipe 
grande e 
rotativa 
 
 
 
Múltiplas 
versões 
 
 
 
 Tarefas 
 distribuídas 
 
Sistemas 
Complexos 
Modelos 
 
17 
Quando os modelos se tornam mais 
importante ainda! 
 SI2-UFCG 
18 
• Desenvolvimento Dirigido por Modelos (DDM) 
– MDD (Model-Driven Development) 
– MDE (Model-Driven Engineering) 
 
 
Técnica de eng. de software consistindo da aplicação de 
modelos e suas tecnologias no intuito de aumentar o nível de 
abstração sobre o qual desenvolvedores criam e evoluem 
software, com o objetivo de simplificar e formalizar as várias 
atividades e tarefas envolvidas no ciclo de vida de 
 um software. 
18 
Desenvolvimento Dirigido por Modelos 
4 
 SI2-UFCG 
19 
Modelos 
 SI2-UFCG 
20 
Notação para modelos 
• Expressiva 
 
• Simples 
 
• Precisa 
 
• Visual 
 
• Textual 
 
• Extensível 
 
• Padrão 
 SI2-UFCG 
21 
 SI2-UFCG 
22 
• UML é uma linguagem para especificação, visualização, 
construção e documentação de artefatos de sistemas de 
software. 
 
 
• Amplamente utilizada pelo mercado e pela academia 
 
 
• Extensível e inter-disciplinar 
 
22 
UML 
 SI2-UFCG 
23 
• Apenas uma linguagem, independente de processo 
 
 
• Não possui semântica formal precisa e completa 
 
 
• Abrange modelagem estrutural e comportamental 
23 
UML 
 SI2-UFCG 
24 
• Maior precisão 
 
• Organização da linguagem melhorada 
 
• Habilidade modelar sistemas de larga escala 
 
• Melhor suporte para DSLs 
 
• Melhor e maior consolidação e consistência da linguagem 
 
• Versão lançada em Agosto/2011: 2.4.1 
UML 2.0 
5 
 SI2-UFCG 
25 
• Parte estrutural 
 
– Diagrama de classes 
 
– Diagrama de objetos 
 
– Diagrama de Componentes 
 
– Diagrama de estruturas 
compostas 
 
– Diagrama de Implantação 
 
Classes, interfaces e 
relacionamentos 
Objetos e 
relacionamentos 
Componentes e 
dependências 
Nós físicos e 
configurações 
25 
Hierarquia erelacionamentos internos 
de componentes e classes 
UML 2.0 
 SI2-UFCG 
26 
• Parte comportamental 
 
– Diagrama de casos de uso 
 
 
– Diagrama de atividades 
 
 
– Diagrama de comunicação 
– Diagrama de seqüência 
– Diagrama de tempo 
– Diagrama de overview de interação 
 
 
– Máquina de estados comportamental 
– Máquina de estados de protocolos 
Diagramas de Interação: 
Objetos, relacionamentos 
e mensagens } 
Casos de uso, atores e 
relacionamentos 
Máquina de estados: 
Estados, transições, 
eventos e atividades } 
26 
Fluxo de atividades e 
entidade responsável 
UML 2.0 
 SI2-UFCG 
27 
• Desenhistas 
– Modelos para facilitar o entendimento do código 
– Seletivo 
 
• Projetistas 
– Arquitetos de software semelhantes a arquitetos da 
construção civil 
– Sem interferência dos programadores 
 
• Programadores de modelo 
– Modelos como linguagem de desenvolvimento com semântica 
executável 
– Modelos como linguagem executável 
Usuários de UML 
 SI2-UFCG 
28 
Abstração 
Executabilidade 
UML + LN 
Requisitos da 
Aplicação 
Modelo 
UML 
 
Código 
Fonte 
Código 
Binário 
Mistura de 2 questões 
Ortogonais: refinamento de 
negócio e tradução para 
uma plataforma 
Produtividade 
Portabilidade 
Interoperabilidade 
Documentação 
Prática tradicional: Desenhistas e 
Projetistas 
 SI2-UFCG 
29 
• MDA (Model Driven Architecture) – Uma realização particular 
de DDM 
– Iniciativa da OMG (Object Management Group) 
– 1997: Lançamento 
– 2000: Definição 
– 2007: Aperfeiçoamento e ampla utilização 
 
• Outras: 
– Agile Model-Driven Development (AMDD) 
– Domain-Oriented Programming (DOP) 
– Microsoft’s Software Factories 
– xUML 
 
• Predomínio e padrões tornam MDA o carro-chefe de DDM 
MDA 
 SI2-UFCG 
30 
MDA 
• Tornar a geração de código a partir de modelos UML 100% 
automática 
 
• UML 2.0 tornou-se necessária 
– Mais precisa 
– Mais completa 
– Melhor projetada 
 
• OCL 2.0 tornou-se necessária 
 
• UML 2.0 e OCL 2.0: Pivôs de MDA 
6 
 SI2-UFCG 
31 
Abstração 
Executabilidade 
UML/OCL 
CIM - Negócio 
UML/OCL 
PIM – 
Especificação 
da aplicação 
Perfis 
UML/OCL 
PSM – 
Realização 
da aplicação 
Código 
Fonte 
Código 
Binário 
Padrões de 
tradução de 
modelos 
Padrões de 
refinamento de 
modelos 
UML/OCL 
PIM – 
Realização 
da aplicação 
Produtividade 
Portabilidade 
Interoperabilidade 
Documentação 
DDM e MDA: Progamadores UML 
 SI2-UFCG 
32 
• Modelos não são necessariamente documentos 
– Muitos desenvolvedores não gostam de modelos (documentos?) 
 
• Conhecimento sobre o domínio é muito importante 
 
• Escolher o tipo certo de modelo não é tão simples 
 
• A linguagem visual ajuda bastante 
 
• Alta rotatividade: Imagine novatos na equipe 
– Milhões de linhas de código 
– Dezenas de modelos 
Ainda sobre modelos 
 SI2-UFCG 
33 
• Que tal codificar diretamente de sua cabeça e de forma 
imediata? 
 
• Precisa-se pensar antes de codificar! 
 
• Precisa-se abstrair! 
– Abstrair é muito difícil! 
 
• Precisa-se modelar! 
Ainda sobre modelos 
 SI2-UFCG 
34 
Por que preciso aprender UML? 
Análise de Software 
Projeto de Software 
Domínios específicos: 
Perfis UML 
Arquitetura de Software 
 SI2-UFCG 
35 
Por que preciso aprender UML? 
Programador precisa entender 
especificações UML 
Seu trabalho precisa ser entendido por outros 
Implementação 
- MDA 
- Nova geração: Compiladores UML 
 SI2-UFCG 
36 
Por que preciso aprender UML? 
Você precisa pagar SI2 para se formar! 
Linguagem explorada em concursos 
e POSCOMP

Continue navegando