Post on 14-Jul-2015
Alessandro Almeida | www.alessandroalmeida.com
Aula 2
Disciplina de engenharia cujo foco está em todos os aspectos da produção de software, desde os estágios iniciais da especificação do sistema até sua manutenção, quando o sistema já está sendo usado.
...todos os aspectos da produção de software...
Não apenas processos “técnicos”, mas também as atividades de gerenciamento de projeto, por exemplo.
Aula 2
5%
45%
47%
3%
9%
43%
45%
3%
0%
5%
10%
15%
20%
25%
30%
35%
40%
45%
50%
Sempre Na maioria das vezes Poucas vezes Nunca
2011
2012
4%
34%
55%
7% 5%
33%
55%
7%
0%
10%
20%
30%
40%
50%
60%
Sempre Na maioria das vezes Poucas vezes Nunca
2011
2012
1%
23%
64%
12%
3%
23%
61%
13%
0%
10%
20%
30%
40%
50%
60%
70%
Sempre Na maioria das vezes Poucas vezes Nunca
2011
2012
0%
15%
74%
11%
2%
16%
69%
13%
0%
10%
20%
30%
40%
50%
60%
70%
80%
Sempre Na maioria das vezes Poucas vezes Nunca
2011
2012
Não cumprimento dos prazos Comunicação Escopo não definido adequadamente Mudanças de escopo constantes Estimativas incorretas Entre outros...
Gerente de Projeto (na vida real)
Agora, a principal motivação para pensarmos em Engenharia de Software:
E na minha empresa, como funcionam os projetos de desenvolvimento ou manutenção
de software?
Enfrentamos problemas com prazo, custo, qualidade, escopo, satisfação do cliente, etc.?
Aulas 3, 4 e 5
O que posso considerar ao definir um processo que atenda minhas demandas de Engenharia
de Software?
Etc... mps.Br
PMBoK
BABoK
SWEBoK
Extreme Programming
SCRUM
RUP
EUP OpenUP
CMMI
Qual é o significado do acrônimo?
Capability Maturity Model Integration®
Fontes: Houaiss e Merriam-Webster
Capability Maturity Model Integration®
1 : the quality or state of being capable 2 : poder de produção, de execução; rendimento máximo 3 : qualidade ou condição de capaz
Fontes: Houaiss e Merriam-Webster
Capability Maturity Model Integration®
1 : the quality or state of being mature 2 : estado, condição (de estrutura, forma, função ou organismo) num estágio adulto; condição de plenitude em arte, saber ou habilidade adquirida 3 : estado ou condição de pleno desenvolvimento
Fontes: Houaiss e Merriam-Webster
Primeiro você torna-se capaz de realizar algo, depois você adquire a maturidade
Sou capaz!
Aprendi, treinei e sei executar...
Possuo maturidade!
Sou capaz e tenho experiência...
Capability Maturity Model Integration®
1 : simplificação da realidade 2 : representação em escala reduzida de objeto, a ser reproduzida em dimensões normais; maquete
Fontes: Houaiss e Merriam-Webster
Compilação de “boas práticas” no processo de diversas empresas de software
Mostra O QUÊ fazer, e não COMO fazer Práticas distribuídas em “áreas de processo”
Área de Processo = PA (Process Area)
Agrupamento de práticas comuns de uma determinada “disciplina”.
Onde fica o “O que fazer?”.
Por exemplo: Project Planning (PP)
Modelos de maturidade mantidos pelo SEI (Software Engineering Institute)
http://www.sei.cmu.edu/cmmi
Abrangem todo ciclo de vida para o desenvolvimento (CMMI-DEV) e operação de software (CMMI-SVC)
Também aborda projetos de aquisição (CMMI-ACQ)
Sponsor:
DoD (U.S. Department of Defense)
Versão 1.3 publicada em novembro de 2010
Para quem não quer gastar...
Para quem quer investir...
CMMI Model
Foundation
CMMI-DEV CMMI-ACQ
CMMI-SVC
Fonte: -http://www.sei.cmu.edu/cmmi/models/CMMI-Services-status.html
Representações
Contínua (Capability Levels)
Por estágio (Maturity Levels)
Exemplo:
Exemplo:
Processos ad hoc Initial
Configuration Management (CM) Measurement and Analysis (MA) Project Monitoring and Control (PMC) Project Planning (PP) Process and Product Quality Assurance (PPQA) Requirements Management (REQM) Supplier Agreement Management (SAM)
Managed
Decision Analysis and Resolution (DAR) Integrated Project Management (IPM) Organizational Process Definition (OPD) Organizational Process Focus (OPF) Organizational Training (OT) Product Integration (PI) Requirements Development (RD) Risk Management (RSKM) Technical Solution (TS) Validation (VAL) Verification (VER)
Defined
Organizational Process Performance (OPP) Quantitative Project Management (QPM) Quantitatively Managed
Causal Analysis and Resolution (CAR) Organizational Innovation and Deployment (OID) Optimizing
Processos ad hoc Initial
Configuration Management (CM) Measurement and Analysis (MA) Work Monitoring and Control (WMC) Work Planning (WP) Process and Product Quality Assurance (PPQA) Requirements Management (REQM) Service Delivery (SD) Supplier Agreement Management (SAM)
Managed
Capacity and Availability Management (CAM) Decision Analysis and Resolution (DAR) Incident Resolution and Prevention (IRP) Integrated Work Management (IWM) Organizational Process Definition (OPD) Organizational Process Focus (OPF) Organizational Training (OT) Risk Management (RSKM) Service Continuity (SCON) Service System Development (SSD) Service System Transition (SST) Strategic Service Management (STSM)
Defined
Organizational Process Performance (OPP) Quantitative Work Management (QWM) Quantitatively Managed
Causal Analysis and Resolution (CAR) Organizational Innovation and Deployment (OID) Optimizing
Processos ad hoc Initial
Acquisition Requirements Development (ARD) Agreement Management (AM) Configuration Management (CM) Measurement and Analysis (MA) Project Monitoring and Control (PMC) Project Planning (PP) Process and Product Quality Assurance (PPQA) Requirements Management (REQM) Solicitation and Supplier Agreement Development (SSAD)
Managed
Acquisition Technical Management (ATM) Acquisition Validation (AVAL) Acquisition Verification (AVER) Decision Analysis and Resolution (DAR) Integrated Project Management (IPM) Organizational Process Definition (OPD) Organizational Process Focus (OPF) Organizational Training (OT) Risk Management (RSKM)
Defined
Organizational Process Performance (OPP) Quantitative Project Management (QPM) Quantitatively Managed
Causal Analysis and Resolution (CAR) Organizational Innovation and Deployment (OID) Optimizing
“Certificação” e exigências de clientes propiciam o processo só para constar
Perde-se o propósito do CMMI
O CMMI é totalmente “orientado a evidências”
Embora contemple todo o ciclo de vida, há pouca preocupação com gestão de pessoas
Para tentar resolver: People CMM
Alto custo de implementação
Melhoria de processo do software brasileiro
www.softex.br/mpsbr
Criado no final de 2003 Foco em micro, pequenas e médias empresas
Custo de implementação e avaliação menor
Aproximadamente, 380 empresas já foram avaliadas no modelo (mais de 70% são PME)
Base Técnica para a definição do mps.Br
ISO/IEC 12207: Ciclo de Vida de processos de software
ISO/IEC 15504: Avaliações de processos de software
CMMI-DEV, 1.2
Níveis:
G (Parcialmente Gerenciado) até A (Em otimização)
Reconhecido internacionalmente Consolidado (quase 20 anos) Dois tipos de abordagens para
implementação
Contínua
Estágio
Empresas no mundo inteiro utilizam Modelo abrangente
DEV, SVC e ACQ
Modelo brasileiro
A questão do idioma influencia muito
7 níveis de maturidade
Os resultados podem ser visualizados no “curto prazo”
Custo baixo
Comparado com o CMMI
Foca a realidade brasileira
Micros, pequenas e médias empresas
Não se esqueçam que ....
são compilação de “boas práticas”
mostram O QUÊ fazer, e não COMO fazer
“Depende...” Tudo depende da MOTIVAÇÃO.
Qual é o nosso objetivo?
Quem é o nosso cliente?
Qual é a cultura da empresa?
Etc...
Aulas 9, 10, 11, 12, 13 e 14
O que é?
Entendendo DFD sem precisar consultar o livro...
DIAGRAMA
“representação gráfica, por meio de figuras geométricas (pontos, linhas, áreas etc.), de fatos, fenômenos, grandezas, ou das relações entre eles; gráfico, esquema” (Fonte: Houaiss)
DIAGRAMA
“representação gráfica, por meio de figuras geométricas (pontos, linhas, áreas etc.), de fatos, fenômenos, grandezas, ou das relações entre eles; gráfico, esquema” (Fonte: Houaiss)
FLUXO
“escoamento ou movimento contínuo de algo que segue um curso” (Fonte: Houaiss)
FLUXO
“escoamento ou movimento contínuo de algo que segue um curso” (Fonte: Houaiss)
A B C D E
DADO
“informação relativa a um indivíduo, capaz de identificá-lo” (Fonte: Houaiss)
“informação capaz de ser processada por um computador” (Fonte: Houaiss)
DADO
“informação relativa a um indivíduo, capaz de identificá-lo” (Fonte: Houaiss)
“informação capaz de ser processada por um computador” (Fonte: Houaiss)
Prontuário Nome do Aluno
16030364 Alessandro Rodrigues de Almeida
16030365 Raul Seixas
O que é um Diagrama de Fluxo de Dados?
Representação gráfica que mostra o movimento das informações dentro de um sistema
Ferramenta de modelagem gráfica da solução
Análise Estruturada
Permite imaginar um sistema como uma rede de processos funcionais, interligados por dutos e tanques de armazenamentos de dados
Pode ser apresentado para o cliente!
Se for construído da forma correta, é claro
Também conhecido como...
Diagrama de bolhas
DFD
Modelo de processo
Diagrama de fluxo de trabalho
Modelo funcional
“uma representação de como o sistema funciona”
Quer ser um especialista em DFD?
Quem lembra da referência básica indicada na primeira aula?
Analisando um pouco já é possível entender Representação simples Intuitivo Na construção, lembre-se que o cliente
(usuário) é quem vai validar
Ou seja, o cara precisa entender seu desenho
O DFD pode ser desenhado em uma página
Seu cliente vai conseguir examinar o diagrama sem se confundir!
Também utilizado para modelagem de processos...
Fonte: PMBoK, 4ª Edição
DFD ajuda!
Mas não é A SOLUÇÃO para gerenciamento de requisitos e
modelagem da solução.
O DFD ajuda na modelagem da solução.
Entendendo a estrutura – Parte 1
Primeiro componente de um DFD Mostra como uma ou mais entradas são
convertidas em saídas Normalmente, é representado por um círculo
Mas também pode ser uma elipse ou um retângulo
Exemplo:
Validar CPF
Graficamente representado por uma seta que entra ou sai de um processo
Utilizado para mostrar o movimento de fragmentos ou de pacotes de informações de um ponto a outro do sistema
Ou seja, representa os dados em movimento
Exemplo: situação do
pedido
Modela uma coleção de pacotes de dados em repouso
Ou seja, o banco de dados
Normalmente, o nome escolhido para identificar o depósito é o plural do nome dos pacotes transportados pelos fluxos para dentro e para fora dos depósitos
Exemplo:
Pedidos
Representa as entidades externas com as quais o sistema se comunica
Tipicamente, é uma pessoa ou um grupo de pessoas
Mas também pode ser outro sistema com o qual o seu sistema vai se comunicar (por exemplo: B2B)
Exemplo:
Clientes
Entendendo a estrutura – Parte 2
1. Escolher nomes significativos para os processos, fluxos, depósitos e terminadores
2. Numerar os processos 3. Evitar DFDs complexos demais 4. Refazer o DFD tantas vezes forem
necessárias, até obter uma boa estética 5. Certificar-se de que o DFD seja
internamente consistente, além de manter a consistência com outros DFDs
Rotular os processos de modo a identificar as funções que o sistema executa
Iniciando com um verbo no infinitivo...
Validar CPF
Nomes não recomendados para processos: Fazer serviço
Funções diversas
Manipular entrada
Cuidar dos clientes
Processar dados
Edição geral Os nomes acima podem significar muita coisa... Além disso, demonstram que o Analista de Sistemas
não está certo de qual função está sendo executada
Facilitam a referência ao processo
É mais fácil dizer bolha 1 em vez de Editar erros de transações e de relatórios
Facilitam a leitura no detalhamento dos DFDs
A bolha 2 será detalhada através das bolhas 2.1, 2.2 e 2.3
Processo no primeiro nível...
Processo no segundo nível...
Qual processo estamos detalhando?
Um DFD deve ser prontamente compreendido, facilmente absorvido e agradável aos olhos Ou seja, não crie um DFD com diversos processos,
fluxos, depósitos e terminadores... O ideal é que o DFD se ajuste em uma folha
A4 Aprenderemos a “quebrar” o DFD em níveis (nível
0, 1 e 2)
Lembrem do exemplo anterior
Refaça o DFD 5, 10 ou 15 vezes até que esteja...
Tecnicamente correto
Aceitável pelo seu cliente
Tão bem desenhado que você não fique constrangido em mostrá-lo aos diretores da sua empresa
Tome cuidado com...
Poços sem fundo: Bolhas com fluxo de entrada, mas sem fluxo de saída
Tome cuidado com...
Bolhas com geração espontânea: Bolhas com fluxo de saída, mas sem o fluxo de entrada
Tome cuidado com...
Fluxos e processos sem rótulo: Se não conseguiu definir um nome satisfatório para o processo ou fluxo, pode ser que há algum item implícito no sistema que ainda não foi identificado
Tome cuidado com...
Depósitos somente leitura ou somente escrita: Seu banco de dados somente recebe dados ou somente é consultado? Reveja se é assim mesmo que funciona...
Entendendo a estrutura – Parte 3
Nem sempre o DFD vai se ajustar em uma folha A4
Em projetos reais, o fluxo de dados é maior e mais complexo...
Difícil de entender!
O que fazer nestes casos?
“Quebrar” o DFD em níveis!
Vantagens...
Os níveis permitem uma visão geral...
▪ Nos níveis 0 e 1 é possível compreender o diagrama sem a necessidade de entrar no detalhe dos processos, fluxos e depósitos que compõem o DFD
Os níveis permitem o entendimento gradual...
▪ Você pode apresentar um nível de cada vez
▪ Não vai se assustar e nem assustar o cliente e demais envolvidos com um diagrama complexo e extenso logo na primeira apresentação
Vantagens...
Mantém a documentação enxuta
Garante a 3ª diretriz para elaborar um (bom) DFD: Evitar DFDs complexos demais
Neste exemplo, estamos detalhando somente o processo 2. Remeter Livros
\
Chegamos no Nível 2 do DFD... O que faremos agora?
Descrição de cada processo, no nível mais baixo do DFD
Ajuda no entendimento do diagrama de fluxo de dados e serve de apoio para a construção do sistema
Nome do Processo Descrição
2.1 Separar pedido • No módulo de pedidos, pesquisar pedidos em aberto.
• Na tela de pedidos em aberto, o usuário realiza a separação do pedido.
2.2 Realizar baixa no estoque • XXXXXX
2.3 Encaminhar pedido para a transportadora
• XXXXXX
2. Remeter Livros
Entendendo requisitos funcionais e não funcionais...
De acordo com o Houaiss...
“que foi requisitado, requerido”
“condição para se alcançar determinado fim”
Em Engenharia de Software...
“definição de uma característica, atributo, habilidade ou qualidade que um sistema (ou qualquer um de seus módulos e sub-rotinas) deve necessariamente prover para ser útil a seus usuários”
▪ Fonte: Wikipedia (http://pt.wikipedia.org/wiki/Requisito)
Divididos em Requisitos Funcionais e Requisitos Não Funcionais
Funções ou tarefas que o sistema deverá executar ou fornecer
Exemplos:
1. O sistema deve permitir o cadastro de CPF, RG e Título de Eleitor
2. O sistema deve permitir a baixa automática do estoque quando da venda de um produto
3. O sistema deve gerar relatórios segregados para gerentes e analistas
Relacionados ao uso da aplicação em termos de desempenho, usabilidade, confiabilidade, segurança, disponibilidade, e tecnologias envolvidas.
Normalmente, não é preciso o cliente dizer sobre eles, pois eles são características mínimas de um software de qualidade
Exemplos:
1. O sistema deve operar em Windows 95 e Windows 8
2. O retorno de uma pesquisa não pode demorar 2 segundos
3. A base de dados deve ser acessada somente por usuários autorizados
ID Tipo Descrição
1 F O sistema deve permitir o cadastro de CPF, RG e Título de Eleitor
2 F O sistema deve permitir a baixa automática do estoque quando da venda de um produto
3 F O sistema deve gerar relatórios segregados para gerentes e analistas
4 NF O sistema deve operar em Windows 95 e Windows 8
5 NF O retorno de uma pesquisa não pode demorar 2 segundos
6 NF A base de dados deve ser acessada somente por usuários autorizados
alessandro.almeida@uol.com.br www.slideshare.net/alessandroalmeida