Mostrando postagens com marcador Conceitos. Mostrar todas as postagens
Mostrando postagens com marcador Conceitos. Mostrar todas as postagens
terça-feira, 21 de março de 2017
Fatores de qualidade de McCall
10:31
cCall, Richards e Walters (McC77 Apud Pressman, 2016 Capítulo 19, pág. 416) criaram uma proposta de categorização de fatores que afetam a qualidade de software:
Operação do Produto (Características
operacionais)
Correção: Atende a especificação e aos objetivos do cliente.
Confiabilidade: Realiza a função pretendida com a precisão exigida.
Usabilidade: Esforço para utilizar, aprender, preparar as entradas e interpretar as saídas.
Integridade: Controle de acesso ao software e aos dados apenas para pessoas autorizadas (segurança).
Eficiência: Quantidade de recursos computacionais e código exigidos para uma função.
Revisão do Produto
Facilidade de manutenção: Esforço necessário para localizar e corrigir um erro (e para evoluir o software).
Flexibilidade: Esforço necessário para modificar um programa em operação.
Testabilidade: Esforço necessário para modificar um programa em operação.
Transição do produto
Portabilidade: Esforço para transferir um software de um ambiente (hardware/ software) para outro.
Reusabilidade: Esforço necessário para testar um programa para garantir que ele desempenhe a função pretendida. O quanto um programa ou partes do programa pode ser reuitizado em outras aplicações.
Interoperabilidade: Esforço necessário para integrar o software a outros sistemas.
Abraços...
segunda-feira, 20 de março de 2017
Qualidade de software
11:08
Para você o que é qualidade de software?
O entendimento de qualidade de software pode váriar, por pessoa e por papel, então vamos ver alguns exemplos!
Cliente (solicitante): Se o produto gera ganhos e benefícios para o negócio.
Usuário: Se o produto atende as metas e expectativas do usuário.
Empresa fornecedora do software: Se o produto gera ganhos para o fornecedor, se é um produto competitivo em relação aos concorrentes.
Equipe técnica (analistas e desenvolvedores): Se o produto atende a requisitos funcionais e técnicos de performance, segurança e evolução.
Área de controle de qualidade: Se o processo de desenvolvimento está em conformidade com os padrões de qualidade definidos.
O que é qualidade de software?
Para entender e definir o o que é qualidade de software, é necessário considerar:
As diferentes visões e expectativas dos envolvidos na criação utilização e evolução do software.
- Fatores de qualidade em todo o ciclo de vida do software
Os ganhos gerados por um software de qualidade
- Manutenção e evolução do software com custos controlados
- Agilidade nos processo de trabalho que utilizam o software
- Maior competitividade do software (com os produtos concorrentes)
Os impactos da baixa qualidade de software
- Alto custo (principalmente a longo prazo)
- Perdas para o negócio
- Fatores de qualidade em todo o ciclo de vida do software
Os ganhos gerados por um software de qualidade
- Manutenção e evolução do software com custos controlados
- Agilidade nos processo de trabalho que utilizam o software
- Maior competitividade do software (com os produtos concorrentes)
Os impactos da baixa qualidade de software
- Alto custo (principalmente a longo prazo)
- Perdas para o negócio
Agora vamos lá, Qualidade de software é quando o SW atende os requisitos do negócio, fornece uma experiência pro usuário satisfatória e tem uma quantidade minima aceitável de defeitos.(Adaptado de Forrester, Apud Gualtieri, 2010).
Qualidade de software está relacionada com satisfação do cliente, mas envolve outros fatores, entre os quais podemos considerar:
[SW de qualidade] = [Produto útil e compatível com uma necessidade] + [Processo de desenvolvimento de um produto controlado] + [Entrega dentro do orçamento e do prazo estipulado] + [Agrega valor para o fabricante e o usuário]
Abraços!
Qualidade de software está relacionada com satisfação do cliente, mas envolve outros fatores, entre os quais podemos considerar:
[SW de qualidade] = [Produto útil e compatível com uma necessidade] + [Processo de desenvolvimento de um produto controlado] + [Entrega dentro do orçamento e do prazo estipulado] + [Agrega valor para o fabricante e o usuário]
Abraços!
sexta-feira, 17 de março de 2017
XP - eXtreme Programming
17:45
E ai malandros, mais um post humilde para seus cultivadores e acumuladores, vocês sabem, aqui tem conhcimento de quase tudo, chorem.
O que é XP – Extreme Programming
A proposta do XP (BECK, 2005).É um estilo de desenvolvimento de SW que prioriza:
- Excelência na aplicação de técnicas de programação.
- Comunicação clara.
- Trabalho em EQUIPE.
- Fundamentado em VALORES, que utiliza PRÁTICAS (comprovadas como úteis), é orientado por PRINCÍPIOS (que direcionam a ação em situações onde não há uma prática reconhecida), e que executa ATIVIDADES essenciais em todo o ciclo do XP.
XP – Extreme Programming (1999)
XP é uma metodologia leve, para times de tamanho pequeno a médio, desenvolvendo software em face a requisitos vagos ou que mudam rápido.” (BECK, 1999 Apud BECK, 2005 – tradução nossa)
• Leve : mais foco na entrega de valor para o cliente do que nas atividades de documentação e controle.
• Metodologia que pode ser usada por times de qualquer tamanho
• Inicialmente pensada para times pequenos e médios,
• Foi utilizada com sucesso por times grandes (Kent Beck, 2005)
• Adaptável a requisitos vagos ou que mudam rápido.
XP – Extreme Programming (2005)
Segundo Kent Beck (2005), XP é uma metodologia leve, para times de qualquer tamanho, desenvolvendo software em face a requisitos vagos ou que mudam rápido.
• Leve : mais foco na entrega de valor para o cliente;
• Metodologia que pode ser usada por times de qualquer tamanho
• Os valores e princípios do XP podem ser aplicados a times de qualquer tamanho,
mas as práticas sugeridas originalmente para o uso do XP devem ser alteradas quando muitas pessoas estão envolvidas (Kent Beck, 2005).
• Adaptável a requisitos vagos ou que mudam rápido.
Principios
Fazer um trabalho de qualidade, mudar incrementalmente, feedback rápido, aceitar mudanças e adotar a simplicidade.
Valores
Comunicação, simplicidade, feedback, coragem e respeito.
Atividades
Ouvir, testar, codificar, projetar.
As práticas adotadas, só você unir tudo que eu acabei de dizer, que automaticamente você terá a resposta.
Tal como, Padrões de codificação, ritmo sustentável.
Jogo de planejamento, programação em par, refatoração Desenvolvimento guiado por testes (TDD).
Versões pequenas.
Integração contínua, posse coletiva do código.
Papeis da equipe de XP
Gerente de projetos
* Acredita na efetividade da metodologia XP e segue valores.
* Tem práticas e princípios do XP, promovendo sua aplicação pela equipe e em todo o projeto de SW.
* Principal contato com o cliente, estimula a participação ativa do cliente.
* Organiza o início do projeto e garante o ritmo do desenvolvimento.
Coach
* Vasta experiência e profundo conhecimento em XP, domina valores, práticas e princípios do XP.
* Monitora a equipe e garante a aplicação adequada do XP pela equipe e em todo o projeto de SW.
* Mentoria para questões relativas ao XP.
Desenvolvedor
* Conhecimento de análise e programação: projetista, designer, analista, programador, analista de banco de dados.
* Programação em par: sempre um com experiência, multiplicando conhecimento e contribuindo para o desenvolvimento profissional.
Analista de Testes
* Responsável por elaborar casos de teste junto ao cliente e aplicá-los nos final de cada iteração.
Redator Técnico
* Responsável pelas documentações necessárias (mesmo que seja uma documentação mínima de uma abordagem ágil e sem burocracias).
É isso ai galera, flws...
Principios
Fazer um trabalho de qualidade, mudar incrementalmente, feedback rápido, aceitar mudanças e adotar a simplicidade.
Valores
Comunicação, simplicidade, feedback, coragem e respeito.
Atividades
Ouvir, testar, codificar, projetar.
As práticas adotadas, só você unir tudo que eu acabei de dizer, que automaticamente você terá a resposta.
Tal como, Padrões de codificação, ritmo sustentável.
Jogo de planejamento, programação em par, refatoração Desenvolvimento guiado por testes (TDD).
Versões pequenas.
Integração contínua, posse coletiva do código.
Papeis da equipe de XP
Gerente de projetos
* Acredita na efetividade da metodologia XP e segue valores.
* Tem práticas e princípios do XP, promovendo sua aplicação pela equipe e em todo o projeto de SW.
* Principal contato com o cliente, estimula a participação ativa do cliente.
* Organiza o início do projeto e garante o ritmo do desenvolvimento.
Coach
* Vasta experiência e profundo conhecimento em XP, domina valores, práticas e princípios do XP.
* Monitora a equipe e garante a aplicação adequada do XP pela equipe e em todo o projeto de SW.
* Mentoria para questões relativas ao XP.
Desenvolvedor
* Conhecimento de análise e programação: projetista, designer, analista, programador, analista de banco de dados.
* Programação em par: sempre um com experiência, multiplicando conhecimento e contribuindo para o desenvolvimento profissional.
Analista de Testes
* Responsável por elaborar casos de teste junto ao cliente e aplicá-los nos final de cada iteração.
Redator Técnico
* Responsável pelas documentações necessárias (mesmo que seja uma documentação mínima de uma abordagem ágil e sem burocracias).
É isso ai galera, flws...
terça-feira, 14 de março de 2017
Processo de desenvolvimento de um SW com Scrum
17:51
Como dizem por ai, é melhor qualidade do que quantidade, aqui irei abordar o processo do scrum em uma equipe de desenvolvimento de software de forma bem eficaz! Vamos lá cambada.
Faz de conta que somos uma equipe, e vamos desenvolver um grande software (SW) para ficarmos ricos!
Nessa equipe, ambos os integrantes devem ter seus respectivos papéis, quais seriam esses papéis?
Existe o Cliente, Project Ownner (PO), Scrum Master e os desenvolvedores.
Product Owner (PO) – dono do produto
Define o produto (visão e funcionalidades) e lançamento das versões (resultado das iterações – executadas em sprints)
Define prioridades – elabora e mantém o backlog do produto
Scrum Master (SM)
Apoia o PO com o backlog do produto
Agiliza o trabalho: remove impedimentos, protege a equipe,
aplica valores e práticas Scrum.
Time de Desenvolvimento (ou equipe scrum)
Faz as estimativas e define as tarefas necessárias,
Desenvolve o produto, garante a qualidade,
Apresenta o produto para o cliente.
Cliente
Vou deixar uma imagem do scrum:
Como esse grupo vai funcionar:
1 - PO e Cliente: Apresentam itens candidatos ao backlog de produto e
definem prioridades;
2 - Planejamento da Sprint: O time seleciona o que será feito na Sprint, PO e SM participam (uma primeira sprint de planejamento, projeto do SW, arquitetura, melhor entendimento dos itens);
3. SM mantém o Sprint Backlog (iteração trabalho para 2 a 4 semanas);
4. Reunião diária: 3 perguntas. SM conduz e time se posiciona.
5. Revisão da Sprint: o PO avalia o produto gerado, aceita ou não.- o Cliente participa.
6. Retrospectiva da Sprint.
É isso ai né galera? Ta ótimo, flw.
segunda-feira, 12 de dezembro de 2016
UML - Diagrama de atividades
15:10
É o diagrama com maior ênfase a visão do processo a nível do usuário. Apresenta muitas semelhanças com os fluxogramas.
Estado inicial
Determina o início de um Diagrama de Atividades, ou seja, o momento a partir do qual parte o processo.
O Estado Inicial é representado por um círculo preenchido.
Estado Final
Indica o final do Diagrama de Atividades.
O Estado Final é representado por um círculo não preenchido envolvendo um segundo círculo preenchido.
Estado de ação
Representa a realização de uma ação dentro de um fluxo de controle.
Uma atividade costuma possuir diversos Estados de Ação.
Ponto de decisão
Representa um ponto do fluxo de controle onde deve ser realizado um teste, uma tomada de decisão.
As transições geradas por um Ponto de Decisão necessitam ser providas de uma Condição(texto entre colchetes) para determinar qual a condição do teste.
Nodo garfo
Representa um ponto onde recebe uma entrada do fluxo e gera diversas saídas.
Nodo Junção
Representa um ponto do fluxo onde recebe várias entradas e gera apenas uma saída.
Raias de natação
Com as raias de natação, procura-se identificar os diversos setores, departamentos ou mesmo os atores que interagem com um processo.
As Raias de Natação são formadas por retângulos representando divisões que identificam as zonas de influência.
UML - Diagrama de sequência
13:01
É um diagrama comportamental que procura determinar a sequência de eventos que ocorrem em um determinado processo, identificando quais mensagens devem ser disparadas e envolvidos e em que ordem.
Objetivo
- Determinar a ordem em que os eventos ocorrem.
- As mensagens que são enviadas.
- Os métodos que são chamados.
- E como os objetos interagem dentro de um determinado processo.
Atores
Os Atores declarados nesse diagrama, são estâncias dos diagramas de caso de uso, representando entidades externas que interagem com o sistema e que solicitam serviços.
Linha de vida
- Representa o tempo em que um objeto existe durante um processo.
- As linhas de vida são representadas por linhas verticais tracejadas partindo do retângulo que representa o objeto.
- A linha de vida é representada por um X quando o objeto é destruído.
Foco de controle ou ativação
- Indica os períodos em que um determinado objeto está participando ativamente de um processo.
- Os focos de controle são representado por uma linha mais grossa, dentro da linha de vida.
Mensagens
- As mensagens são utilizadas para demonstrar as concorrências de eventos, que normalmente forçam a chamada de um método em algum dos objetos envolvidos no processo.
- Quando uma mensagem ocorre entre dois atores, não dispara métodos.
– As mensagens são representadas por linhas entre dois componentes, contendo setas indicando qual o componente enviou a mensagem e qual a recebeu.
- Os textos contidos nas mensagens primeiramente identificam qual evento ocorreu e forçou o envio da mensagem e qual o método foi chamado.
Mensagens de Retorno
– Este tipo de mensagem identifica a resposta a uma mensagem para o objeto ou ator que a chamou.
– Pode retornar informações específicas do método chamado ou apenas um valor indicando se o método foi executado com sucesso ou não.
Auto chamadas
– São mensagem que o objeto envia para si mesmo.
Abraços
sábado, 10 de dezembro de 2016
UML - Diagrama de Classe
11:15
Aqui continuamos mais um artigo da série "UML"
Qual o objetivo do Diagrama de Classe?
Permitir a visualização das classes do sistema com seus respectivos atributos e métodos.
Demonstrar como as classes se complementam, se relacionam e transmite informações entre si.
Composto por classes e associações existentes entre elas.
Uma classe na linguagem UML é representada por um retângulo com até 3 divisões:
1 - Contêm a descrição ou nome da classe.
2 - Os atributos da classe.
3 - Os métodos da classe.
Atributos e métodos podem não ser representados no diagrama.
Relacionamentos ou Associações
Um relacionamento ou associação descreve um vinculo que ocorre normalmente entre os objetos de uma ou mais classes.
Associação unária ou reflexiva.
Esse tipo de associação ocorre quando existe um relacionamento de um objeto de uma classe com os objetos da mesma classe.
A multiplicidade procura determinar o numero minimo e máximo de objetos envolvidos em cada extremidade da associação.
Associação Binária
Ocorrem quando são identificados relacionamento entre duas classes distintas.
É a associação mais encontrada nas situações.
A navegabilidade é representada por uma seta nas extremidades da associação, identificando o sentido que as informações são transmitidas entre os objetos das classes que estão envolvidas.
Associação ternária
São associações que conectam objetos de mais de duas classes.
Agregação
É um tipo especial de associação onde tenta demonstrar que as informações de um objeto (chamado objeto-todo) precisam ser complementadas pelas informações contidas em um ou mais objetos de outra classe (chamados objetos parte).
O símbolo agregação difere da associação por conter um losangulo na extremidade da classe que contém os objetos todo.
Composição
Constitui-se uma variação da agregação, onde é apresentado um vínculo mais forte entre os objetos-todo e os objetos-parte, procurando demonstrar que os objetos parte tem que estar associado a um único objeto-todo.
O Símbolo de composição diferencia-se graficamente do símbolo de agregação por utilizar um losango preenchido.
Generalização / Especialização
O objetivo dessa associação é representar a ocorrência de herança entre as classes.
Veja também:
quinta-feira, 8 de dezembro de 2016
UML - Diagrama de casos de uso
16:38
Fala galera, hoje o artigo vai ser sobre UML detalhando tudo sobre os Diagramas de caso de uso que muita gente se dar mal.
O diagrama de caso de uso concentra-se em dois itens principais, Atores e Casos de uso.
Atores
Os atores representam os papéis desempenhados pelos diversos usuários que poderão utilizar, de alguma forma, os serviços e funções do sistema.
![]() |
| Representação gráfica |
Casos de uso
Refere-se aos serviços, tarefas ou funcionalidades identificadas como necessárias ao software e que podem ser utilizados de alguma maneira pelos atores que interagem com o sistema.
Associações
Representam os relacionamentos entre:
- Os atores que fazem parte do diagrama.
- Entre os atores e os Casos de Uso.
- Entre os Casos de Uso e outros Casos de Uso.
Generalização / Especialização
É uma forma de associação entre os casos de uso na qual existem dois ou mais casos de uso com características semelhantes, apresentando pequenas diferenças entre si.
Inclusão
Costuma ser utilizado quando existe um canário, situação ou rotina comum a mais de um Caso de Uso.
A documentação desta rotina é colocada em um Caso de Uso especifico para que outros casos de uso utilizem esse serviço, evitando assim, descrever uma mesma sequencia de passos em vários Casos de uso.
Indicam uma obrigatoriedade de execução.
Extensão
Associações de extensão são utilizadas para descrever cenários opcionais de um Caso de Uso. Descrevem cenários que ocorrerão apenas em situações especificas se determinada condição for estabelecida.
Abraços
Artigos Relacionados:
UML - Diagrama de Atividades
UML - Diagrama de Sequencia
Assinar:
Postagens (Atom)







