• Nenhum resultado encontrado

IntroduçãoàEng.Software(1)

N/A
N/A
Protected

Academic year: 2021

Share "IntroduçãoàEng.Software(1)"

Copied!
24
0
0

Texto

(1)

Introdução à Engenharia

De Software

Claudio Cavalcanti

(2)
(3)

Objetivos

Introduzir a Engenharia de Software e

explicar sua importância

Responder a perguntas-chave sobre

engenharia de software

Introduzir questões éticas e profissionais e

explicar porque estas questões interessam

a Engenheiros de Software

(4)

Tópicos abordados

FAQs sobre Engenharia de Software

Responsabilidade ética e profissional

(5)

Engenharia de Software

As economias de TODOS os países

desenvolvidos são dependentes de

Softwares.

Mais e mais sistemas são controlados por

software

Engenharia de Software diz respeito a

teorias, métodos e ferramentas para

desenvolvimento profissional de Software.

Despesas com software representam uma

fração significativa do PIB de países

desenvolvidos.

(6)

Custos dos Software

Os custos dos Softwares frequentemente é a

principal fatia do custo total de um sistema

computacional. Geralmente, o custo dos programas

é mais alto que o custo do equipamento.

Os Custos dos Software são maiores para a

manutenção que para o desenvolvimento. Para

sistemas com grande vida útil, os custos de

manutenção podem ser diversas vezes maior que

os custos de desenvolvimento.

A Engenharia de Software está preocupada com a

(7)

FAQs sobre Engenharia de Software

O que é Software?

O que é Engenharia de Software?

Qual a diferença entre Engenharia de

Software e Ciência da Computação?

Qual a diferença entre Engenharia de

Software e Engenharia de Sistemas?

O que é um processo de Software?

O que é um modelo de processo de

(8)

FAQs sobre Engenharia de Software

Quais são os custos da Engenharia de

Software?

Quais são os métodos de Engenharia de

Software?

O que é CASE (Computer-Aided Software

Engineering)?

Quais são os atributos de um bom Software?

Quais são os principais desafios que

(9)

O que é Software?

Programas de computador e documentos associados a

este programa, tais como requerimentos, modelos do

projeto e manuais de usuários.

Produtos de Software precisam ser desenvolvidos para um

cliente em particular ou para um mercado em particular.

Produtos de Software podem ser

 Genéricos – desenvolvidos para serem vendidos para um grande

número de clientes ex. Programas para PC como Excel ou Word.

 Personalizado – desenvolvidos para um dado cliente de acordo com

sua especificação.

Novos Softwares podem ser criados pelo desenvolvimento

de programas genéricos já existentes a partir do resuo de

Software.

(10)

O que é Engenharia de Software?

Engenharia de Software é uma disciplina de

engenharia que se preocupa com todos os

aspectos do desenvolvimento de Software.

Engenheiros de Software devem adotar uma

abordagem sistemática e organizada para

seus trabalhos e usar ferramentas

apropriadas e técnicas dependendo do

problema a ser resolvido, das restrições de

desenvolvimento Software e dos recursos

disponíveis.

(11)

Qual a diferença entre Engenharia de

Software e Ciência da Computação?

A Ciência da Computação está preocupada

com as terorias e fundamentos; A Engenharia

de Software está preocupada com os

problemas práticos de desenvolvimento de

Software.

Teorias da Ciência da Computação ainda são

insuficientes para servirem como base ao

desenvolvimento de software. (ao contrário

do que acontece com a física e a engenharia

elétrica).

(12)

Qual a diferença entre Engenharia de

Software e Engenharia de Sistemas?

Engenharia de Sistemas está preocupada com

todos os aspectos de um sistema

computacional incluindo o hardware, o software

e o processo de engenharia. A Engenharia de

Software é parte do processo que se preocupa

com a infraestrutura, controle, aplicações e

banco de dados do sistema.

Engenheiros de sistema estão envolvidos com a

especificação do sistema, projeto arquitetural,

integração e implantação do sistema.

(13)

O que é Processo de Software?

Um conjunto de atividades cujo objetivo é o

desenvolvimento ou evolução do software.

Atividades presentes em todos os processos:

Especificação – O que o sistema deve fazer e

quais as restrições do desenvolvimento;

Desenvolvimento – produção do sistema de

software

Validação – Verificar se o software é o que o

cliente espera

Evolução – Modificar o software em resposta às

(14)

O que é um modelo do processo de Software?

Uma representação simplificada de um processo de

Software, apresentada em uma perspectiva

específica.

Exemplos de perspectivas de processos são

 Modelo de Workflow – sequência de atividades

 Modelo de fluxo de dados – fluxo das informações;  Modelo de Papel/Ação – Quem faz o que.

Modelos de processo genérico

 Cascata;

 Desenvolvimento Iterativo;

(15)

Quais são os custos da Engenharia de

Software?

Aproximadamente 60% dos gastos são com

desenvolvimento, 40% com testes. Para softwares

personalizados, o custo de evolução

frequentemente excede os custos de

desenvolvimento.

Custos variam dependendo do tipo de sistema a ser

desenvolvido e dos requerimentos dos atributos do

sistema tais como o desempenho e a confiança do

sistema.

Distribuição dos custos depende do modelo de

(16)

Distribuição dos custos por atividade

Waterfall model

Iterative development

Component-based software engineering

Development and evolution costs for long-lifetime systems

System evolution

10 200 30 400

0

System development

Specification Design Development Integration and testing

25 50 75 100

0

Specification Development Integration and testing

25 50 75 100

0

Specification Iterative development System testing

25 50 75 100

(17)

Custos para desenvolviment do produto

Specification Development System testing

25 50 75 100

(18)

Quais são os métodos de engenharia de

Software?

Abordagens estruturadas para desenvolvimento de

software que incluem modelagem do sistema,

notação, regras, Recomendações e guia de processos.

Descrição de modelos

 Descrição de modelos gráficos que devem ser produzidos; 

Regras

 Restrições aplicadas aos modelos; 

Recomendações

 Recomendações sobre boas práticas de projeto; 

Guia de processo

(19)

O que é CASE (Computer-Aided Software

Engineering)

Sistemas de Software voltados para prover suporte

automático para atividades de processo.

Sistemas CASE são frequentemente usados para dar

suporte ao método escolhido.

Upper-CASE

 Ferramentas para auxiliar as atividades no início do processo

de definição dos requisitos e de projeto;

Lower-CASE

 Ferramentas para auxiliar as atividades de fases posteriores

(20)

Quais são os atributos de um bom

software?

O Software deve prover funcionalidades e garantir o

desempenho para o usuário além de ser fácil de

manter, confiável e usável.

Facilidade de Manutenção

 O Software deve evoluir na medida que haja necessidade; 

Confiança

 Software precisa ser confiável; 

Eficiência

 O Software não deve desperdiçar os recursos do sistema; 

Usabilidade

 O Software precisa ser usável sem esforço excessivo por parte

(21)

Quais são os principais desafios da

Engenharia de Software?

Heterogeneidade

 Desenvolvimento de técnicas para construção de Software

que possa se acoplar a diferentes plataformas e ambientes de execução;

Entrega

 Técnicas de desenvolvimento que resulte em uma entrega

rápida de software;

Confiança

 Desenvolvimento de técnicas que demonstrem que o cliente

(22)

Responsabilidade Profissional e Ética

A Engenharia de Software envolve

responsabilidades mais amplas que

simplesmente a aplicação de técnicas.

Um Engenheiro de Software precisa se

comportar de forma honesta e ética para ser

respeitado pla comunidade.

Comportamento ético é mais do que apenas

(23)

Questões acerca da responsabilidade

profissional

Confidenciabilidade

Engenheiros normalmente devem respeitar a

confidenciabilidade de seus empregados ou

clientes, havendo ou não um acordo de

confidenciabilidade.

Competência

Engenheiros não devem desvirtuar seus níveis

de competência. Não se deve aceitar um

(24)

Questões acerca da responsabilidade

profissional

Direitos de propriedade Intelectual

 Engenheiros devem estar cientes das leis que protegem o uso

da propriedade intelectual tais como patentes, copyright, etc. Eles devem ser cautelosos para garantir que a propriedade intelectual de seus empregados e clientes está protegida.

Mau uso dos computadores

 Engenheiros de Software não devem usar suas habilidades

para utilizar de forma inadequada os computadores de outras pessoas. O Mau uso dos computadores pode abranger desde situações triviais (jogar usando o computador da empresa) como bem sérias (disseminação de vírus).

(25)

Código de Ética da ACM/IEEE

As sociedades profissionais americanas tem

cooperado para a produção de um código de

práticas éticas.

Membros destas organizações assinam um código

de condutas no ingresso destas associações.

O Código contém oito princípios relacionados ao

comportamento e decisões tomadas por

Engenheiros de Software profissionais, incluindo

praticantes, educadores, gerentes, supervisores e

legisladores, assim como trainees e estudantes

da profissão.

(26)

Código de ética - Princípios

PUBLICO

 Os Engenheiros de Softwarem devem agir consistentemente

com o interesse público.

CLIENTE E EMPREGADOR

 Engenheiros de Software devem agir dentro dos melhores

interesses de seu cliente e empregador, de forma consistente com o interesse público.

PRODUTO

 Engenheiros de Software devem garantir que seus produtos e

futuras modificações do mesmo estejam de acordo com os mais altos padrões profissionais estabelecidos.

(27)

Código de Ética - princípios

JULGAMENTO

 Engenheiros de Software devem manter a integridade e a

independência no seu julgamento profissional.

GERENCIAMENTO

 Gerentes de Engenharia de Software e líderes devem

promover e participar de abordagens éticas no gerenciamento de desenvolvimento e manutenção de Software.

PROFISSÃO

 Os Engenheiros de Software devem promover a integridade e

reputação dos profissionais de acordo com o interesse público.

(28)

Código de Ética - princípios

COLEGAS

Engenheiros de Software devem ser justos e

colaborativos com seus colegas.

INDIVÍDUO

Engenheiros de Software devem, ao longo da

vida, aprender, respeitar e promover uma

abordagem ética na prática da profissão.

(29)

Dilemas éticos

Discordância dos princícipos com a política

da alta gerência da empresa.

Seu empregador atua de forma não ética e

entrega um sistema de desempenho crítico

antes da conclusão dos testes do sistema.

Participação no desenvolvimento de armas

(30)

Pontos-chave

 A Engenharia de Software é uma disciplina de engenharia

que está preocupada com os aspectos da produção de Softwares.

 Produtos de Software consistem em programas desenvolvidos

e sua respectiva documentação. Atributos essenciais dos produtos são manutenibilidade, confiabilidade, eficiência e usabilidade.

 O processo de Software consiste em atividades envolvidas no

desenvolvimento de produtos de Software. Atividades básicas são a especificação, desenvolvimiento, validação e evolução.

 Métodos são formas organizadas para produção de software.

Eles incluem sugestões a serem seguidas, notações, regras protegendo a descrição do sistema e guias do projeto.

(31)

Pontos-chave

Ferramentas CASE são sistemas de softwares

desenvolvidos para dar suporte às atividades rotineiras

no processo de software, criação e edição de diagramas,

verificação da consistência e relatar os testes já

executados.

Engenheiros de Software tem responsabilidades com a

profissão de engenharia e com a sociedade. Eles não

devem estar apenas preocupados com questões

técnicas.

Sociedades profissionais publicam códigos de conduta

os quais definem os padrões de comportamento

esperados por seus membros.

Referências

Documentos relacionados

Coloque em um balde ou bacia água quente (sem estar fervida) e coloque as seguintes essências; dez gotas de ylang-ylang*, dez gotas de sândalo*, dez gotas de essências de rosas*,

a. Reze, 10 Ave-Marias, uma para cada conta. Reze a Oração de Agradecimento seguida da Salve Rainha. Segurando o crucifixo do Terço, faça o Sinal da Cruz.. Então disse Maria: Eis aqui

XVI - Os candidatos classificados, até o preenchimento das vagas, respeitada a ordem geral de classificação e o número de vagas abertas pelos orientadores, deverão efetivar

Dessa forma, podemos compreender que o estudo pretende averiguar a relação de influência do conjunto de 5 fatores (segurança, consciência de saúde, confiança no

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

Biocontaminantes em amostras de água Água deionisada Água deinoisada Comentários > 0,24 e < 3 > 3 e < 30 Endotoxinas EU/m 3 12 35 Número total de viáveis UFC/m

É perceptível, desta forma, o constante aumento do aprofundamento dos personagens: os “príncipes” têm agora não só nome e falas, mas personalidades bem desenvolvidas,

O candidato poderá obter informações e orientações sobre o Simulado Virtual, tais como Editais, processo de inscrição, horário de prova, gabaritos, ranking e resultados