1
Sumário Parte I - Qualidade, Métricas e Swebok Qualidade de Software Introdução. CMMI Histórico; Organização e Componentes do Modelo Representação por Estágio Representação Contínua Contínua versus Estágio; Componentes; Metas e Práticas Genéricas MG1 a MG5; Considerações. MPS.Br Introdução; Motivação; Visão Geral. SWEBOK Introdução; Áreas de Conhecimento. Métricas de Software Introdução; Conceitos; Método GQM; Normas ISO; Métricas de Produto de Software; Métricas de Processo de Software. Parte II - XML XML Introdução; O que é XML?; Comparações entre HTML e XML; Características da Linguagem XML; Definição Conceitual do XML; Padrões da Estrutura do XML; Principais Benefícios da Linguagem XML; Testando o Código w3schools. 2
Diga não à pirataria O leitor que adquiriu o e-book legalmente no site AlbertEije.COM poderá imprimir o conteúdo para seu uso pessoal. A cópia do conteúdo do livro sem autorização configura crime. Além de contribuir para a criminalidade, a cópia ilegal desestimula o autor de realizar novos trabalhos. Todos saem perdendo com a pirataria. 3
Autor Apresentação Albert Eije é bacharel em Sistemas de Informação e especialista em Engenharia de Software. Possui larga experiência no desenvolvimento dos mais diversos tipos de sistemas. O autor iniciou sua investida no universo da informática nos idos de 1990. Na época seu interesse era por computação gráfica: CorelDRAW, PageMaker, Photoshop, etc. Com o tempo conheceu o mundo da programação, primeiro através do Clipper, seguido do Delphi e várias outras linguagens e ferramentas. Desenvolver sistemas passou a ser o seu negócio. No início focou em pequenas e médias empresas: condomínios, livrarias, construtoras, etc. Um desenvolvedor que trabalha por conta própria costuma ser o faz-tudo da empresa por um bom tempo: analista, programador, vendedor, suporte, etc. Como funcionário do Banco do Brasil, trabalhou nas Diretorias de Governo e Tecnologia. Teve contato com sistemas de grande porte e participou do desenvolvimento de vários módulos do sistema do Banco do Brasil, o maior banco da América Latina. Atualmente faz parte da Equipe T2Ti, que já formou milhares de profissionais para o mercado de desenvolvimento de software, criando treinamentos personalizados e exclusivos não encontrados em outras empresas de treinamento. Escreveu dois livros que foram publicados pela Editora Ciência Moderna e outros 20 e-books que estão disponíveis no seu site: AlbertEije.COM. Contate o autor através do site AlbertEije.COM. 4
PARTE I Qualidade de Software, Métricas e Swebok 5
Qualidade de Software Introdução A qualidade de software é uma área de conhecimento da engenharia de software que objetiva garantir a qualidade do software através da definição e normatização de processos de desenvolvimento. Apesar dos modelos aplicados na garantia da qualidade de software atuarem principalmente no processo, o principal objetivo é garantir um produto final que satisfaça às expectativas do cliente, dentro daquilo que foi acordado inicialmente. Segundo a norma ISO 9000 (versão 2000), a qualidade é o grau em que um conjunto de características inerentes a um produto, processo ou sistema cumpre os requisitos inicialmente estipulados para estes. Rodney Brooks, diretor do Laboratório de Inteligência Artificial e Ciência da Computação do MIT, define qualidade como a conformidade aos requisitos. Essa definição exige determinar dois pontos: I) o que se entende por conformidade; e II) como são especificados - e por quem - os requisitos. A comunidade de software tem se dedicado em encontrar maneiras de aumentar a qualidade do produto: Swebok, CMM, MPS.BR e outras iniciativas tem sido criadas e utilizadas nesse sentido. Estudaremos os conceitos de tais iniciativas para compreendermos os modelos. No desenvolvimento de software, a qualidade do produto está diretamente relacionada à qualidade do processo de desenvolvimento. 6
CMMI Histórico Segundo Paulk et al (1993), o modelo de capacidade de maturidade para software (CMM) foi desenvolvido para guiar as organizações de software a selecionar estratégias de melhoria de processos, determinando a atual maturidade dos processos e identificando os poucos itens mais críticos para a qualidade de software e melhoria de processos. Cada nível de maturidade, com exceção do inicial, contém áreas chaves de processos (KPA Key Process Areas) que são dirigidas por metas e organizadas por características comuns. Este modelo é disposto evolutivamente, em cinco níveis, da forma que ao atingir um nível de maturidade a organização vai ampliando sua capacidade de processos. Internamente este é organizado em 4 principais componentes: níveis de maturidade áreas chaves de processos características comuns práticas chaves 7
CMMI Histórico Estas por sua vez procuram institucionalizar os processos e são formadas pelas práticas chaves, que estão no final da cadeia descrevendo as atividades. Cada nível de maturidade, com exceção do inicial, contém áreas chaves de processos (KPA Key Process Areas) que são dirigidas por metas e organizadas por características comuns. Desta forma, ao todo, o modelo é composto de 5 níveis de maturidade, 18 áreas chaves de processo, 20 características comuns (5 para cada KPA) e 316 práticas chaves. 8
CMMI Histórico Com o grande sucesso do modelo CMM e o surgimento de novos modelos de melhoria como os de aquisição de software (SA-CMM Software Acquisition Capability Maturity Model), gerenciamento de força de trabalho (P-CMM People Capability Maturity Model) e desenvolvimento de produto e processo de software integrados (IPD-CMM - Integrated Product Development Capability Maturity Model), surgiu a necessidade de se agrupar alguns destes para facilitar a aplicação nas organizações que utilizavam mais de um modelo. Por conta disso, o CMMI (Capability Maturity Model Integration), foi definido como um conjunto de boas práticas, que pretende prover uma visão integrada da maturidade de processos de desenvolvimento. Inicialmente, o CMMI teria como objetivo integrar em um único modelo três outros: o CMM-SW 2.0, o EIA/IS 731 e o IPD-CMM 0.98. No entanto, durante o seu desenvolvimento, foi também previsto que o modelo fosse consistente e compatível com a norma ISO/IEC 15504. 9
CMMI Organização e Componentes do Modelo Estruturalmente, o CMMI é composto de níveis de maturidade ou de capacidade, áreas de processo, metas genéricas e específicas, práticas genéricas e específicas. Esses componentes são organizados em duas representações: Estágio Contínua 10
CMMI Organização e Componentes do Modelo Representação por Estágio A representação por estágio é uma abordagem que usa um conjunto predefinido de áreas de processo para especificar um guia de melhoria para a organização. Na representação por estágio as áreas estão organizadas em níveis de maturidade. Os níveis estão classificados em cinco valores de 01 (um) a 05 (cinco). 11
CMMI Organização e Componentes do Modelo Representação por Estágio Nível 1 Inicial: Os processos são usualmente ad hoc e caóticos. Os sucessos geralmente dependem da competência e heroísmos das pessoas. Frequentemente cronograma e orçamento não são cumpridos. Nível 2 Gerenciado: Os processos são executados de acordo com uma política; os projetos utilizam pessoas com a capacidade necessária para produzir saídas controladas; os stakeholders necessários são envolvidos; os processos são monitorados, controlados e revisados e sua aderência verificada em relação a descrição existente. Nível 3 Definido: Os processos estão bem caracterizados e definidos, e estão descritos em padrões, procedimentos, ferramentas e métodos. O conjunto de processos padrões da organização estão definidos e são evoluídos durante o tempo. Nível 4 Quantitativamente Gerenciado: A organização e os projetos estabelecem objetivos quantitativos para a qualidade e desempenho dos processos, e utiliza estes objetivos como critério de gerenciamento. Nível 5 Otimizado: Melhorias contínuas são realizadas nos processos da organização, motivadas pelas análises quantitativas, evoluções tecnológicas e objetivos de negócio. 12
CMMI Organização e Componentes do Modelo Representação Contínua A representação contínua é indicada para organizações que desejam realizar melhorias relativas a uma área de processo específica. Nesta representação os níveis são denominados como níveis de capacidade e estão relacionados às práticas específicas e genéricas que, por sua vez, estão associadas a uma área de processo. Nesta forma, cada Área de Processo (A1, A2, A3, etc.) é avaliada individualmente de acordo com uma determinada estrutura de Metas Genéricas - MG e Metas Específicas ME. Só é possível passar de nível, caso todas metas sejam atendidas ou cumpridas. Existem seis níveis de capacidade indo do 0 (zero) ao 05 (cinco). 13
CMMI Organização e Componentes do Modelo Representação por Estágio Nível 0 Incompleto: O processo não é executado ou é só parcialmente executado. As metas específicas não são alcançadas e não existem metas genéricas neste nível. Por estes motivos, não existe razão para institucionalizar o processo. Nível 1 Executado: O processo é executado completamente e já satisfaz as metas específicas da área de processo. Contudo o processo ainda não está institucionalizado na organização. Nível 2 Gerenciado: Neste nível o processo é executado conforme políticas, os recursos possuem a habilidade necessária para produzir saídas controladas, este é monitorado, controlado, revisado, e avaliado em relação a sua aderência ao processo descrito. Agora o processo já é mantido durante o tempo na organização. Nível 3 Definido: O processo é adaptado a partir de um conjunto padrão de processos da organização e definido conforme guia de adaptação da organização, e contribui com produtos de trabalho, medições e outras informações de melhoria de processo para os recursos da organização. Nível 4 Quantitativamente Gerenciado: O processo é controlado utilizando estatísticas e outras técnicas quantitativas. Objetivos quantitativos para qualidade e desempenho dos processos são estabelecidos e utilizados como critério no gerenciamento. Nível 5 Otimizado: O processo é continuamente evoluído através de melhorias incrementais e inovações. 14
CMMI Organização e Componentes do Modelo Contínua versus Estágio Nível 0 Incompleto: O processo não é executado ou é só parcialmente executado. As metas específicas não são alcançadas e não existem metas genéricas neste nível. Por estes motivos, não existe razão para institucionalizar o processo. Nível 1 Executado: O processo é executado completamente e já satisfaz as metas específicas da área de processo. Contudo o processo ainda não está institucionalizado na organização. Nível 2 Gerenciado: Neste nível o processo é executado conforme políticas, os recursos possuem a habilidade necessária para produzir saídas controladas, este é monitorado, controlado, revisado, e avaliado em relação a sua aderência ao processo descrito. Agora o processo já é mantido durante o tempo na organização. Nível 3 Definido: O processo é adaptado a partir de um conjunto padrão de processos da organização e definido conforme guia de adaptação da organização, e contribui com produtos de trabalho, medições e outras informações de melhoria de processo para os recursos da organização. Nível 4 Quantitativamente Gerenciado: O processo é controlado utilizando estatísticas e outras técnicas quantitativas. Objetivos quantitativos para qualidade e desempenho dos processos são estabelecidos e utilizados como critério no gerenciamento. Nível 5 Otimizado: O processo é continuamente evoluído através de melhorias incrementais e inovações. 15
PARTE II XML 16
XML Introdução Em meados da década de 1990, o World Wide Web Consortium (W3C) começou a trabalhar em uma linguagem de marcação que combinasse a flexibilidade da SGML com a simplicidade da HTML. O princípio do projeto era criar uma linguagem que pudesse ser lida por software, e integrar-se com as demais linguagens. Sua filosofia seria incorporada por vários princípios importantes: Separação entre conteúdo e formatação; Simplicidade e legibilidade, tanto para humanos quanto para computadores; Possibilidade de criação de TAGs ilimitadas; Criação de arquivos para validação da estrutura do arquivo XML (Os chamados DTDs - Document Type Definition); Interligação de bancos de dados distintos; Concentração na estrutura da informação, não na sua aparência; O XML é um formato para a criação de documentos com dados organizados de forma hierárquica. Como exemplos desses tipos de documentos podemos citar: documentos de texto formatados, imagens vetoriais e bancos de dados. 17
XML O que é XML? É uma recomendação da W3C para gerar linguagens de marcação para necessidades especiais. É um subtipo do SGML (acrônimo de Standard Generalized Markup Language, ou Linguagem Padronizada de Marcação Genérica) capaz de descrever diversos tipos de dados. Seu propósito principal é a facilidade de compartilhamento de informações através da Internet. A principal característica do XML é a de criar uma única infraestrutura para a criação de outras linguagens tais como: XHTML é uma reformulação da linguagem de marcação HTML, baseada em XML. Combina as TAGs de marcação HTML com regras da XML. Este processo de padronização tem em vista a exibição de páginas Web em diversos dispositivos (televisão, palm, celular, etc). Sua intenção é melhorar a acessibilidade. RDF é uma linguagem para representar informação na Internet. MathML é uma aplicação do XML para representar símbolos e fórmulas matemáticas. 18
XML O que é XML? SDMX é uma iniciativa internacional com o objetivo de desenvolver e empregar processos eficientes para troca e compartilhamento de dados e metainformação estatística entre organizações internacionais e os seus países-membros. XBRL padrão emergente baseado no XML para definir informação financeira. É dirigido por um consórcio internacional sem fins lucrativos (XBRL International Incorporated) de mais de 300 organizações, entre entidades reguladoras, agências governamentais e empresas de software. SVG é a abreviatura de Scalable Vectorial Graphics que pode ser traduzido do inglês como gráficos vetoriais escaláveis. Trata-se de uma linguagem XML para descrever de forma vetorial desenhos e gráficos bidimensionais, quer de forma estática, quer dinâmica ou animada. Umas das principais características dos gráficos vetoriais, é que não perdem qualidade ao serem ampliados. A grande diferença entre o SVG e outros formatos vetoriais, é o fato de ser um formato aberto, não sendo propriedade de nenhuma empresa. 19
XML O que é XML? O XML não faz nada. Isso mesmo, não faz nada. Pode ser difícil de compreender no início, mas é simples: o XML foi criado para estruturar, armazenar e obter informações de transporte dos dados. Assim como o HTML, o XML é um texto simples organizado em TAGs. Vamos a um exemplo de XML: Curriculum Vitae: <?xml version="1.0" encoding="utf-8"?> <curriculo> <InformacaoPessoal> <DataNascimento>10-10-1980</DataNascimento> <Nomecompleto>Albert Eije Barreto Mouta</Nomecompleto> <Contatos> <Residencia> <Rua>R. Maria Tomasia</Rua> <Numero>458</Numero> <Cidade>Sao Paulo</Cidade> <Pais>Brasil</Pais> </Residencia> <Telefone>8888-5555</Telefone> <Email>alberteije@gmail.com</Email> </Contatos> <Nacionalidade>Brasileira</Nacionalidade> <Sexo>M</Sexo> </InformacaoPessoal> <objetivo>atuar na area de TI</objetivo> <Experiencia> <Cargo>Analista de Sistemas</Cargo> <Empregador>T2Ti.COM</Empregador> </Experiencia> <Formacao>Superior Completo</Formacao> </curriculo> 20