• Nenhum resultado encontrado

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática

N/A
N/A
Protected

Academic year: 2021

Share "Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática"

Copied!
22
0
0

Texto

(1)

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática

Prof.: Monalessa Perini Barcellos

(monalessa@inf.ufes.br)

Disciplina:

INF6008/INF7008 – Engenharia de

Software

Conteúdo

1.

Introdução

1.1 O que é Engenharia de Software 1.2 Qualidade x Produtividade

1.3 Qualidade de Produto x Qualidade de Processo 1.4 Organismos Normativos

(2)

1. Introdução

Erroneamente, muitas vezes, desenvolver software é confundido com

programação.

Programação é uma abordagem (abordagem de construção)

corretamente adotada quando se pensa em problemas pequenos.

Por exemplo: calcular médias e ordenar conjuntos de dados.

Para problemas mais complexos é necessário adotar uma abordagem

de engenharia. Por exemplo: desenvolver um sistema de informação

para um banco.

Engenharia de Software Monalessa Perini Barcellos

1. Introdução

Analogamente:

Construir uma casinha de cachorro é um problema simples. O próprio dono pode comprar os materiais e construir a casinha em um final de semana.

Construir um edifício requer um projeto de engenharia civil, planejamento da execução da obra e desenvolvimento de modelos (maquetes e plantas de diversas naturezas), até a realização da obra, que deve ocorrer por etapas. Ao longo da realização do trabalho, é necessário realizar um acompanhamento para verificar prazos, custos e a qualidade do que se está construindo.

(3)

1.1 O que é Engenharia de Software

A Engenharia de Software surgiu com o objetivo de melhorar a qualidade dos produtos de software e aumentar a produtividade no processo de desenvolvimento.

Engenharia de Software Monalessa Perini Barcellos

1.1 O que é Engenharia de Software

A Engenharia de Software surgiu com o objetivo de melhorar a qualidade dos produtos de software e aumentar a produtividade no processo de desenvolvimento.

(4)

1.1 O que é Engenharia de Software

A Engenharia de Software:

• Trata de aspectos relacionados ao estabelecimento de processos, métodos, técnicas,

ferramentas e ambientes de suporte ao desenvolvimento de software.

• Propõe a divisão do problema em problemas menores, cujas soluções devem ser

integradas por uma arquitetura. As soluções devem ser obtidas utilizando-se procedimentos (métodos, técnicas, roteiros etc.), bem como ferramentas que automatizam o trabalho (ou parte dele). Tipicamente, são exigidas várias pessoas, cujo esforço deve ser planejado, coordenado e acompanhado. Também é requerido que a qualidade do que se está produzindo seja sistematicamente avaliada.

Engenharia de Software Monalessa Perini Barcellos

1.2 Qualidade x Produtividade

Qualidade Produtividade

=

(5)

1.2 Qualidade x Produtividade

Qualidade Produtividade

=

!

Engenharia de Software Monalessa Perini Barcellos

1.2 Qualidade x Produtividade

O objetivo da Engenharia de Software é melhorar a qualidade dos produtos de

software e aumentar a produtividade no processo de desenvolvimento. Então:

Qualidade Produtividade

=

(6)

1.2 Qualidade x Produtividade

Alguns resultados de um estudo realizado com empresas que adotaram o MR-MPS-SW*

Engenharia de Software Monalessa Perini Barcellos

* Fonte: SOFTEX, 2010, iMPS 2010 - Desempenho das Empresas que Adotaram o Modelo MPS de 2008 a 2010, disponível em http://www.softex.br/mpsbr.

1.2 Qualidade x Produtividade

Situação das empresas após os primeiros passos da implantação das práticas de melhoria (MPS.BR Nível G)

(7)

1.2 Qualidade x Produtividade

Situação das empresas após os primeiros passos da implantação das práticas de melhoria (MPS.BR Nível F)

Engenharia de Software Monalessa Perini Barcellos

1.2 Qualidade x Produtividade

Situação das empresas após a manutenção/evolução das práticas de melhoria (revalidação/evolução de nível)

(8)

1.2 Qualidade x Produtividade

Evidências sobre empresas que adotam o MR-MPS-SW*

Produtividade (PF/Mês) e Qualidade (Defeitos/PF)

Engenharia de Software Monalessa Perini Barcellos

Participantes: 132 empresas envolvidas com o MR-MPS-SW (15 iniciando a implementação,

37 em processo de avaliação, 47 avaliadas nível G, 19 avaliadas nível F e 14 avaliadas níveis E-A)

Produtividade

* SOFTEX, 2012, iMPS 2012: Evidências Sobre o Desempenho das Empresas que Adotaram o Modelo MPS-SW desde 2008, disponível em http://www.softex.br/mpsbr.

Qualidade

1.3 Qualidade de Produto x Qualidade de Processo

O que é qualidade?

Por exemplo, o que é um carro de qualidade?

Para responder a essa questão, devem ser considerados diversos

fatores, como: segurança, desempenho, beleza, conforto, tamanho e

custo, dentre outros.

(9)

Qualidade é um conceito relativo que está diretamente relacionado à

conformidade com requisitos e à satisfação do cliente.

Como isso se manifesta em software?

Qualidade de software

é um conjunto de características a

serem satisfeitas em um determinado grau, de modo que o

software satisfaça às necessidades de seus usuários.

Usuários finais Desenvolvedores Usuários indiretos

Engenharia de Software Monalessa Perini Barcellos

1.3 Qualidade de Produto x Qualidade de Processo

E o que é um software de qualidade?

Desenvolvedor (perspectiva interna): “É um software fácil de manter.”

Usuário (perspectiva externa de observação pelo uso do produto): “É um software

que satisfaz minhas necessidades, é fácil de usar, eficiente e confiável.”

Cliente (perspectiva externa de observação da qualidade em uso): “É um software

que agrega valor a meu negócio .”

(10)

1.3 Qualidade de Produto x Qualidade de Processo

Então:

Qualidade de software é um conceito com múltiplas facetas (perspectivas de

usuário, desenvolvedor e cliente) e que envolve diferentes características (por exemplo, usabilidade, confiabilidade, eficiência, manutenibilidade, portabilidade, segurança,

produtividade) que devem ser alcançadas em níveis diferentes, dependendo do

propósito do software.

Note que esse conceito foca produto.

Engenharia de Software Monalessa Perini Barcellos

1.3 Qualidade de Produto x Qualidade de Processo

Então:

Qualidade de software é um conceito com múltiplas facetas (perspectivas de

usuário, desenvolvedor e cliente) e que envolve diferentes características (por exemplo, usabilidade, confiabilidade, eficiência, manutenibilidade, portabilidade, segurança,

produtividade) que devem ser alcançadas em níveis diferentes, dependendo do

propósito do software.

Note que esse conceito foca produto.

(11)

Qualidade do Produto de Software

relaciona-se diretamente com a

Qualidade do Processo de Software Melhorando a qualidade do processo de software, é possível melhorar a qualidade dos produtos resultantes.

• A premissa por detrás dessa afirmativa é a de que processos bem estabelecidos, que

incorporam mecanismos sistemáticos para acompanhar o desenvolvimento e avaliar a qualidade, no geral, conduzem a produtos de qualidade.

• Um bom processo não garante que os produtos produzidos são de boa qualidade,

mas é um indicativo de que a organização é capaz de produzir bons produtos.

1.3 Qualidade de Produto x Qualidade de Processo

Engenharia de Software Monalessa Perini Barcellos

De modo geral, o que é um PROCESSO?

Uma receita de bolo é um processo?

A abertura de uma conta em um banco é um processo?

(12)

Um processo de software pode ser visto como o conjunto de atividades, métodos, práticas e transformações que guiam pessoas na produção de software. • Um processo eficaz deve, claramente, considerar as relações entre as atividades,

os artefatos produzidos no desenvolvimento, as ferramentas e os procedimentos necessários e a habilidade, o treinamento e a motivação do pessoal envolvido.

De modo geral, o que é um PROCESSO?

Uma receita de bolo é um processo?

A abertura de uma conta em um banco é um processo?

1.3 Qualidade de Produto x Qualidade de Processo

Engenharia de Software Monalessa Perini Barcellos

Elementos que compõem um processo de software:

Exemplo:

Atv1. Realizar levantamento de requisitos.

Pré-Atividade: Atv0

Insumo: Documento Planejamento de Entrevista Produto: Documento Registro de Entrevista. Recurso Humano: Analista de Sistemas

Procedimento: Técnica para Realização de Entrevistas

Atv2. Documentar requisitos.

Pré-Atividade: Atv1

Insumo: Documento Registro de Entrevista. Produto: Especificação Textual de Requisitos. Recurso Humano: Analista de Sistemas

Procedimento: Roteiro para Elaboração da Especificação Textual de Requisitos. Processo de Software Processos Atividades Pré-atividades Subatividades Artefatos Insumos Produtos Recursos Recursos Humanos Ferramentas de Software Hardware Procedimentos Métodos Técnicas Roteiros

(13)

Um processo de software, em uma abordagem de Engenharia de Software, envolve diversas atividades que podem ser classificadas quanto ao seu propósito em:

i. Atividades de Desenvolvimento (ou Técnicas ou de Construção): são as atividades

diretamente relacionadas ao processo de desenvolvimento do software, ou seja, que contribuem diretamente para o desenvolvimento do produto de software a ser entregue ao cliente. Ex.: especificação e análise de requisitos, projeto e implementação.

ii. Atividades de Gerência de Projeto: são aquelas relacionadas ao planejamento e

acompanhamento gerencial do projeto, tais como realização de estimativas, elaboração de cronogramas, análise dos riscos do projeto etc.

iii. Atividades de Apoio: são aquelas relacionadas principalmente com a garantia da qualidade do produto em desenvolvimento e do processo de software utilizado, tais como revisões e inspeções de produtos (intermediários ou finais) do desenvolvimento.

1.3 Qualidade de Produto x Qualidade de Processo

Engenharia de Software Monalessa Perini Barcellos

Atividades do processo de software:

Atividades de Desenvolvimento Atividades de Gerência Atividades de Apoio Produto de Software As Atividades de Gerência e as Atividades de Garantia da Qualidade podem ser vistas como “atividades guarda-chuva”, que “cobrem” o processo de desenvolvimento.

(14)

Há várias maneiras diferentes de fazer um bolo de chocolate. Pessoas alérgicas a leite precisam de receitas que não incluam leite.

Pessoas diabéticas precisam de receitas que não incluam açúcar.

Há várias formas diferentes de abrir uma conta bancária. Algumas pessoas podem abrir contas apenas para receberem seus salários. Algumas pessoas podem abrir contas com vantagens especiais, como limite de crédito.

Processos de software podem ter diversas definições distintas.

1.3 Qualidade de Produto x Qualidade de Processo

Engenharia de Software Monalessa Perini Barcellos

O que deve ser considerado para definir um processo de software?

• Características da aplicação (domínio do problema, tamanho, complexidade etc.) • Tecnologia a ser adotada na sua construção (paradigma de desenvolvimento,

linguagem de programação, mecanismo de persistência etc.) • Organização onde o produto será desenvolvido

• Características da equipe • Estabilidade dos requisitos • Outros

1.3 Qualidade de Produto x Qualidade de Processo

(15)

• Normas internacionais de qualidade são criadas no trabalho voluntário de especialistas do mundo todo.

• Essas normas tornaram-se a base para especificar produtos, organizar o fornecimento de serviços e até mesmo para a elaboração de legislação em vários países.

1.4 Normas e Organismos Normativos

Engenharia de Software Monalessa Perini Barcellos

Padrões de Facto

• Muitas vezes padrões surgem espontaneamente, a partir de uma necessidade ou como uma solução amplamente adotada quando comparada a outras alternativas.

Padrões de facto são padrões aplicados na prática, mas que não foram formalizados

como um regulamento.

• Podem ser criados involuntariamente ou por razões comerciais.

(16)

Padrões de Jure

São criados de maneira formal, regulamentada.

São escritos seguindo regulamentos e aprovados por instituições

reconhecidas publicamente como capacitadas para tal (ex.: ISO,

IEEE etc.).

1.4 Normas e Organismos Normativos

Engenharia de Software Monalessa Perini Barcellos

ISO - International Standardization Organization

(https://www.iso.org/home.html)

• Criada em 1946, começou a funcionar em 1947.

• Até 2018 foram publicados 22040 documentos internacionais de padronização*, tendo mais de 160 países participantes e mais de 50.000 especialistas que contribuem no mundo inteiro para a criação e verificação dos documentos.

• Cada país participante possui um órgão membro da ISO. • No Brasil esse órgão é a ABNT (http://www.abnt.org.br) * Cerca de 1100 novos documentos são publicados por ano.

(17)

A

ISO e as Normas Relacionadas a TI

A ISO criou com a IEC* (International Eletrotechnical Commission) a primeira comissão conjunta para elaboração de normas, o JTC1 (Joint Technical Committee 1). • O JTC1 é responsável pela criação de normas relacionadas a TI e é dividido em

subcomissões (SC) que, por sua vez, são divididas em grupos de trabalho (working groups – WG).

• Subcomissão SC-7: Engenharia de Software e de Sistemas. • Alguns grupos de trabalho da SC-7:

ü WG-2:Documentação de Sistemas ü WG-6: Avaliação e Métricas ü WG-7: Gerência do Ciclo de Vida ü WG-12: Medição do Tamanho Funcional

*Existente desde 1906.

1.4 Normas e Organismos Normativos

Engenharia de Software Monalessa Perini Barcellos

Identificação de uma Norma ISO

ISO: significa que é uma norma ISO.

IEC: significa que foi estabelecida em conjunto com a IEC. NBR: significa que é uma norma brasileira.

1.4 Normas e Organismos Normativos

Exemplos:

ISO 9001 - Quality Management Systems – Requirements ISO/IEC 15504 - Information Technology — Process Assessment NBR ISO 9001 - Sistemas de Gestão da Qualidade – Requisitos

(18)

- TS: significa que o documento é uma especificação técnica. Após uso e feedback pode evoluir para se tornar uma norma.

1.4 Normas e Organismos Normativos

ISO 9001:2000 - Quality Management Systems – Requirements ISO 9001:2015 - Quality Management Systems – Requirements

ISO/IEC 15504-1 - Information Technology - Process Assessment - Part 1: Concepts and Vocabulary ISO/IEC 15504-2 - Information Technology - Process Assessment - Part 2: Performing an Assessment

ISO/IEC FDIS 15504-1.6 - Information Technology - Process Assessment - Part 1: Concepts and Vocabulary

ISO/IEC TR 90003:2004 - Software Engineering -Guidelines for the Application of ISO 9001:2000 to Computer Software

-

Algumas normas trazem o ano para identificar sua versão.

- Algumas normas são divididas em partes.

- FDIS : significa que a norma está em estágio final de edição. A norma propriamente dita poderá conter modificações editoriais em relação a essa versão.

-

TR: significa que o documento é um relatório técnico.

ISO/TS 9002:2016 - Quality management systems - Guidelines for the application of ISO 9001:2015

Etapas de criação de uma Norma

Uma norma possui pelo menos um editor e um ou mais coeditores, que são pessoas de conhecimento técnico reconhecido e que podem se dedicar ao projeto.

• O editor (junto com os coeditores) é responsável pela escrita do primeiro esboço do documento.

Esse esboço é distribuído para análise pelos grupos de trabalho internacionais. • A partir daí, sugestões de modificações são submetidas, avaliadas e introduzidas,

em um ciclo que culmina com a versão final.

(19)

Criação das Normas ISO/IEC

1.4 Normas e Organismos Normativos

Engenharia de Software Monalessa Perini Barcellos

New Work Item Proposal (NWI) Aproved designado para

Work Group (WG) + Líder

produzem Working Draft (WD)

refinado pelo WG (várias vezes) Committee

Draft (CD)

Outros Work Groups

submetido à votação Draft International Standard (DIS) sugerem alterações que levam o WG a produzir refinado pelo WG (várias vezes) Final DIS (FDIS) sofre apenas alterações editoriais International Standard (IS) ou Technical Report (TR)

Criação das Normas ISO/IEC

Assim que uma nova proposta de item de trabalho (New Work Item proposal - NWI) é aprovada, um grupo de trabalho (WG) e um líder são designados.

Um grupo de especialistas produz um esboço de trabalho (Working Draft – WD) que é refinado até atingir o grau de maturidade de esboço do comitê (Committee Draft – CD), quando é enviado aos grupos de trabalho internacionais (WGs).

• O trabalho segue em ciclos de modificação e uma data é fixada para votação.

Passada a votação, o documento atinge o estágio de esboço de norma internacional (Draft

International Standard – DIS), quando passa por um novo ciclo de análise e modificações.

• Passada uma nova votação que aprova o documento no estágio de esboço finalizado (Final DIS – FDIS), apenas modificações de caráter editorial podem ser efetuadas.Finalmente a norma é publicada como Norma Internacional (International Standard – IS)

(20)

Uso das Normas pelas Organizações

Duas etapas gerais: Adequação x Certificação

Adequação: deve preceder a certificação e consiste em colocar em prática, total

ou parcialmente, aquilo que é nela proposto.

Certificação: Envolve a participação de um organismo ou empresa externa que

possa atestar que a empresa candidata segue efetivamente o padrão.

1.4 Normas e Organismos Normativos

Engenharia de Software Monalessa Perini Barcellos

Processo de Certificação

1. A empresa estabelece o seu sistema da qualidade.

2. A empresa faz uma solicitação formal a um órgão certificador.

3. O órgão certificador faz uma primeira visita à empresa para colher mais dados e explicar o

processo de certificação.

4. Pré-análise: o órgão certificador verifica se a documentação do sistema da qualidade está

de acordo com a norma e gera um relatório de não conformidades.

5. A empresa realiza ajustes em seu sistema de qualidade.

6. Avaliação: o órgão certificador envia uma equipe à empresa com fins de auditoria. A

equipe gera um novo relatório de não conformidades e decide:

l Certificar a empresa, sugerindo apenas pequenas correções a serem realizadas. l Certificar a empresa, porém sob a condição de que certas correções sejam

efetuadas.

l Não certificar a empresa, recomendando uma nova etapa de adequação à

norma antes de uma nova tentativa de certificação.

7. Durante a validade da certificação, o órgão certificador realiza visitas periódicas à

empresa para assegurar que o sistema continua sendo efetivo.

(21)

IEEE - Institute of Electrical and Electronics Engineers

https://www.ieee.org

• Possui mais de 423.000 membros em 160 países. • Até 2018 foram publicados mais de 1300 padrões.

• Possui um comitê para estabelecimento de padrões em Engenharia de Software de Software e Sistemas (Software & Systems Engineering Standards Committee – S2ESC) -https://www.computer.org/web/standards/s2esc

• Exemplos de padrões estabelecidos pelo S2ESC:

ü IEEE Std 1061-1998- IEEE Standard for a Software Quality Metrics Methology ü IEEE Std 830-1998 - IEEE Recommended Practice for Software Requirements Specifications

ü IEEE Std 1012-2016 - IEEE Standard for System, Software, and Hardware Verification and Validation

1.4 Normas e Organismos Normativos

Engenharia de Software Monalessa Perini Barcellos

Outros Organismos

CMMI Institute (estabelecido a partir do Software Engineering Institute – Carnegie

Melon University) – responsável pelo CMMI (http://cmmiinstitute.com)

Softex (Sociedade Brasileira para Promoção da Exportação de Software) –

responsável pelo MR MPS.BR (https://www.softex.br).

Prodfor (Programa Integrado de Desenvolvimento da Qualificação de

Fornecedores) - responsável pela certificação SGQF (Sistema de Gestão da Qualidade em Fornecimento), exigida por alguns órgãos capixabas.

(22)

Referências

• BARCELLOS, M. P., 2018, Material da disciplina Engenharia de Software, Universidade Federal do Espírito Santo, Vitória – ES.

• FALBO, R. A., 2007, Material da disciplina Qualidade de Software, Universidade Federal do Espírito Santo, Vitória – ES.

Engenharia de Software Monalessa Perini Barcellos

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática

Prof.: Monalessa Perini Barcellos

(monalessa@inf.ufes.br)

Disciplina:

INF6008/INF7008 – Engenharia de

Referências

Documentos relacionados

Tese apresentada como requisito parcial para obtenção do título de Doutor pelo Programa de Pós-graduação em Direito da PUC-Rio.. Aprovada pela Comissão Examinadora abaixo

 Hospedeiro envia uma mensagem de descoberta DHCP  Monta um datagrama UDP com a porta de destino. 67, endereço de destino 255.255.255.255 (difusão IP), porta fonte 68 e

 Em caso de empate nos jogos finais, a partida será decidida por meio de cobrança alternada de tiros de 7 metros, com uma cobrança para cada equipe até que haja um

Somado a isto, nas duas últimas semanas, registramos um crescimento expressivo no volume de dados gravados no banco de dados, conforme gráfico abaixo (superando 5Gb no

Este trabalho pretende contribuir com o desenvolvimento do Turismo em Caverna, Espeleoturismo, a partir da avaliação da percepção de qualidade de serviços pelos visitantes

No âmbito da Assistência Social, a política de inclusão sócio-produtiva promovida pelo CIP visa amenizar a situação socioeconômica precária que atinge grande parte da

Para disciplinar o processo de desenvolvimento, a Engenharia de Usabilidade, também conceituada e descrita neste capítulo, descreve os métodos estruturados, a

RESUMO: Este artigo retrata a trajetória do desenvolvimento da estrutura arquivística da Universidade Federal do Rio de Janeiro (UFRJ), desde a sua primeira unidade de refe-