Qualidade de Software



Documentos relacionados
Introdução ao Paradigma Orientado a Objetos. Principais conceitos

GARANTIA DA QUALIDADE DE SOFTWARE

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Programação de Computadores - I. Profª Beatriz Profº Israel

CURSO DE PROGRAMAÇÃO EM JAVA

Análise e Projeto Orientados por Objetos

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Qualidade de Software

Qualidade de Software. Prof.: Ivon Rodrigues Canedo. PUC Goiás

Programação Orientada a Objetos em Java

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

UML e a Ferramenta Astah. Profa. Reane Franco Goulart

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Análise e Projeto de Sistemas

Introdução Fatores de Qualidade Garantia de Qualidade Rivisões de Software Conclusão. Qualidade. Plácido A. S. Neto 1

Modelos de Qualidade de Produto de Software

Análise e Projeto de Sistemas. O que é modelagem. O que é modelagem. Tripé de apoio ao desenvolvimento. Notação: UML. Ferramenta: Rational Rose.

Universidade Paulista

Orientação a Objetos

Desenvolvimento Web TCC Turma A-1

ISO Aécio Costa

Engenharia de Software

Programação Orientada a Objeto

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Programação de Computadores II TCC Turma A-1

Utilizando os Diagramas da UML (Linguagem Unificada de Modelagem) para desenvolver aplicação em JSF

Introdução à Linguagem Java

Auditoria e Qualidade de Software ISO/IEC 9126 Engenharia de Software Qualidade de Produto

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

Linguagem de Programação I. Orientação a Objetos em Java

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Engenharia de Requisitos Estudo de Caso

Linguagem Java. Arquitetura e Ambiente de Desenvolvimento. Arquitetura e Ambiente de Desenvolvimento Prof. Anderson Augustinho Uniandrade

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

2 Engenharia de Software

Atividade da gerência da qualidade

Linguagens de. Aula 02. Profa Cristiane Koehler

3 Qualidade de Software

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Laboratório I Aula 2

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Introdução a Java. Hélder Nunes

Engenharia de Software

Profº. Enrique Pimentel Leite de Oliveira

Projeto de Sistemas I

TESTES AUTOMATIZADOS COM JUNITE MOCKITO

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

Governança de TI. ITIL v.2&3. parte 1

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

Engenharia de Software

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Prof. Dr. Ivanir Costa. Unidade III QUALIDADE DE SOFTWARE

Sobre o Professor Dr. Sylvio Barbon Junior

REPRESENTAÇÃO DE REQUISITOS VARIÁVEIS COM UML, SEGUINDO O MÉTODO ICONIX

Processos de Desenvolvimento de Software

Engenharia de Software

Modelagem de Processos. Prof.: Fernando Ascani

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

UNIVASF - Universidade Federal do Vale do São Francisco Manutenção de Software

RevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

NetBeans. Conhecendo um pouco da IDE

ProgramaTchê Programação OO com PHP

O Impacto da Engenharia de Requisitos no Processo de Métricas. Fátima Cesarino CAIXA

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Programação online em Java

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Gerenciador de Log. Documento Visão. Projeto Integrador 2015/2. Engenharia de Software. Versão 2.0. Engenharia de Software

Programação Orientada a Objetos

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Tipos de teste de software

Engenharia de Software III

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Veja e interprete rapidamente qualquer tipo de informação. Compare os resultados e construa seu próprio dashboard de forma simples.

Prof. Esp. Adriano Carvalho

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes

Modelagem de Software

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

Qualidade de Software. Profa. Cátia dos Reis Machado

Aula 2. Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4.

Projeto de Software Orientado a Objeto

Modelagem e Simulação Material 02 Projeto de Simulação

LINGUAGEM ORIENTADA A OBJETOS

Lógica de Programação

Integração Contínua com Rational Team Concert, Jenkins e SonarQube

UML Aspectos de projetos em Diagramas de classes

Manutenção desoftware. SCE 186- Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestrede2002

Introdução à orientação a objetos. João Tito Almeida Vianna 25/05/2013

Qualidade de software

Unidade II MODELAGEM DE PROCESSOS

Transcrição:

Qualidade de Software

O software é algo abstrato, pois são as instruções que quando executadas atingem o propósito desejado no sistema computacional. (Algoritmo). As principais características são: Complexidade: muitas regras, muitas linhas de código e desenvolvedores com ideias diferentes, mas que podem levar à mesma solução. Invisibilidade e intangibilidade: invisível para o usuário. O que se vê são as consequências da execução do software. Os desenvolvedores necessitam utilizar modelos para representar o sistema de software. Ex. UML Produção sob medida: Cada usuário é um cliente que usa o software a sua maneira, com ênfase em partes diferentes. Não se degasta com o uso: Em software os componentes lógicos são duráveis.

A ISO 9126, na versão brasileira NBR 13596, define qualidade de software como: A totalidade de características de um produto de software que lhe confere a capacidade de satisfazer necessidades explícitas e implícitas. Necessidades explícitas: fatores relativos à qualidade do processo de desenvolvimento do produto, percebidos somente pelas pessoas que trabalham no seu desenvolvimento. Necessidades implícitas: percebidas pelos desenvolvedores e pelos usuários. Conhecidas como qualidade em uso, devem permitir aos usuários efetividade, produtividade, segurança e satisfação em um contexto de uso especificado.

Segundo (Pezzé & Young, 2008), as qualidades de um produto de software podem ser divididas entre: Aquelas que afetam principalmente o desenvolvimento de software, tais como manutenibilidade, reusabilidade e rastreabilidade, embora suas consequências possam afetar ao cliente de forma indireta, aumentando o tempo entre a liberação de novas versões, por exemplo. São chamadas de propriedades internas; Visíveis pelos usuários do produto de software, tais como confiança, usabilidade e taxa de atendimento. São chamadas de propriedades externas;.

A qualidade de Software, envolve todo o ciclo de vida de Engenharia de Softwares, entretanto, é mais frequentemente associada a fase de Testes do ciclo de vida, porém estes estão longe de serem suficientes. A qualidade depende de cada parte do processo de software, não apenas do teste. Nenhuma quantidade de teste pode compensar a baixa qualidade causada por outras atividades do processo.

Uma grande ameaça à qualidade de software são as mudanças. De acordo com Weinberg (1997), na resolução de falhas, as maiores perdas podem vir de efeitos colaterais ou falhas introduzidas ao se resolver outras falhas. O processo de controle de mudanças contribui diretamente para a qualidade do software ao formalizar pedidos de mudança, avaliar a natureza da mudança e controlar o impacto da mudança. Pode ser utilizado a aplicação de modelos de gestão de serviços, tal como ITIL para o efetivo Gerenciamento de Mudanças.

Garantia de qualidade de software SQA (Software Quality Assurance) De acordo com (Côrtes & Chiossi, 2001), define -se como sendo um conjunto de atividades que assegura que todos os esforços serão feitos para garantir que os produtos de softwares tenham a qualidade desejada. Essas atividades devem: Minimizar o número de defeitos; Criar mecanismos para controlar o desenvolvimento e a manutenção de forma a preservar prazos e custo; Garantir que o produto possa ser usado no mercado; Melhorar a qualidade de versões futuras do produto ou de novos produtos A garantia de qualidade de software é uma atividade que é aplicada ao longo de todo o processo de engenharia de software, e abrange: Métodos e ferramentas de análise, projeto, codificação e teste; Revisões técnicas aplicadas durante cada fase de engenharia de software; Estratégia de testes de múltiplas fases; Controle da documentação de software e das mudanças feitas nela; Procedimento para garantir a adequação aos padrões de desenvolvimento de software;

Escolha de modelos e ferramentas para desenvolvimento e testes de software

UML (Unified Modeling Language) É uma linguagem de modelagem não proprietária de terceira geração. A UML não é uma metodologia de desenvolvimento, o que significa que ela não diz para você o que fazer primeiro e em seguida ou como projetar seu sistema, mas ela lhe auxilia a visualizar seu desenho e a comunicação entre objetos. Basicamente, a UML permite que desenvolvedores visualizem os produtos de seus trabalhos em diagramas padronizados. [UML] http://www.devmedia.com.br/uml-para-java/2711

LINGUAGEM ESTRUTURADA VS ORIENTADA A OBJETOS PARADIGMA DA LINGUAGEM ESTRUTURADA É um tipo de programação orientada para a ação, sendo que a unidade de programação é a função. grupos de ações que realizam alguma tarefa comum são reunidos em funções e as funções são agrupadas para formar programas. (DEITEL, PG.15) PARADIGMA DA LINGUAGEM ORIENTADA A OBJETOS A idéia da orientação a objetos é desenvolver programas baseados em objetos do mundo real. Para onde você olhar irá se deparar com objetos, sejam eles animados ou inanimados: pessoas, animais, carros, motos, etc. Os objetos possuem: Caracteristicas - tamanho, forma, cor, etc Comportamentos andar, falar, comer, etc. Na linguagem O.O a unidade de programação é a CLASSE a partir do qual os objetos são instanciados (criados)

Exemplo de código em C (Paradigma da Programação Estruturada) #include <sdtio.h> #include <conio.h> void main () { float NotaP1, NotaP2; float Media; } clrscr(); NotaDaP1 = 5.4; NotaDaP2 = 9.7; Media = (NotaP1 + NotaP2) / 2.0; printf("média Final : %f", Media); getch();

Exemplo de código em Java (Paradigma Orientação a Objetos) public class Carros { public static void main (String[] args) { Carros carro1 = new Carros( ); carro1.ligar( ); carro1.acelerar(50); } // atributos String cor; String modelo; double velocidade; int marcha; //construtor public Carros (String cores, int marchas) { this.cor=cores; this.marcha=marchas; this.modelo= Ferrari ; this.velocidade=0.0; } // métodos public void ligar () { System.out.println( Carro ligado ); } } public void acelerar(double valor) { this.velocidade+= valor; }

Linguagens orientadas a objetos facilitam a manutenção e documentação. Máquinas Virtuais Algumas linguagens, tais como Java, C#, entre outras, utilizam máquinas virtuais que conferem portabilidade as aplicações. Ex. Java Virtual Machine (JVM) Fonte: http://viralpatel.net/blogs/2008/12/java-virtual-machine-an-inside-story.htm A JVM, possui ainda coletor automático de lixo para liberar a memória não usada (Garbage Collector); Interpretação em tempo de execução (JIT)

IDE (Integrated Development Environment) Ambiente Integrado de Desenvolvimento, é uma aplicação que reúne características e ferramentas de apoio ao desenvolvimento de software. O objetivo é automatizar processos de codificação. Agiliza a construção de aplicações, gerando mais produtividade. Ex: Eclipse, NetBeans e Visual Studio

As características e ferramentas mais comuns encontradas nos IDEs são: Editor - edita o código-fonte do programa (linguagem suportada pela IDE); Modelagem auxilio na criação de classes, objetos, interfaces, projetos, pacotes, etc Depurador - auxilia no processo de encontrar e corrigir defeitos no código-fonte do programa Geração de código auxilio na construção de software, ferramentas de ajuda, auto completar, imports automáticos. Distribuição - auxilia no processo de distribuição do software. Documentação geração de documentação em função do código construído Refatoração - melhoria constante do código-fonte, construção de código mais limpo e de melhor entendimento. Testes Automatizados - realiza testes no software de forma automatizada, auxiliando na análise do impacto das alterações no código-fonte.

Referências [NETBEANS] dispon[ivel em: http://netbeans.org/ [ECLIPSE] dispon[ivel em: http://www.eclipse.org/ [VISUAL STUDIO] http://www.microsoft.com/visualstudio/11/pt-br/products/visualstudio [UML] http://blogdosanalistas.wordpress.com/uml/ [Qualidade de Software] Professor Ivanir Costa. UNIP Interativa