Você está na página 1de 28

CCE 876 - Engenharia de Software

Introduo Engenharia de Software

Objetivos

Introduzir a Engenharia de Software e explicar sua importncia. Introduzir os conceitos principais relacionados Engenharia de software. Introduzir questes profissionais e ticas relevantes para os engenheiros de software.

Engenharia de Software

As economias de todas as naes desenvolvidas so dependentes de software. Cada vez mais sistemas so controlados por software. A engenharia de software se preocupa com teorias, mtodos e ferramentas para o desenvolvimento de software profissional. Gastos com Engenharia de Software representa uma frao significativa de todos os pases desenvolvidos

Custos de Software

Custos de software em geral dominam o custos do sistema. Os custos de software em um PC so, em geral, maiores que o custo do hardware Em Software, custa-se mais para manter do que para desenvolver. Para sistemas de vida til longa, os custos de manuteno podem ser vrias vezes mais que o custo de desenvolvimento. A engenharia de software est preocupada com o desenvolvimento de software com uma boa relao custo-benefcio.

Questes sobre engenharia de software


O que software? O que engenharia de software? Qual a diferena entre engenharia de software e cincia da computao? Qual a diferena entre engenharia de software e engenharia de sistemas? O que um processo de software? O que um modelo de processo de software?

Questes sobre engenharia de software


Quais so os custos de engenharia de software? O que so mtodos de desenvolvimento de software? O que CASE (Computer-Aided Software Engineering) Quais so os atributos de um bom software? Quais so os principais desafios enfrentados pela engenharia de software?

O que software?

Programas de computador e documentao associada. Produtos de Software podem ser desenvolvidos para um cliente especfico ou para o mercado. Produtos de software podem ser:
Genricos- produzidos e vendidos no mercado a qualquer cliente. Produtos sob encomenda (ou personalizados) - so encomendados por um cliente em particular (especificao desenvolvida e controlada pela organizao que est comprando o software)

O que engenharia de software?

Engenharia de software uma disciplina de engenharia que se ocupa de todos os aspectos da produo de software. Engenheiros de software devem adotar uma abordagem sistemtica e organizada em seu trabalho e usar tcnicas e ferramentas apropriadas dependendo do problema a ser resolvido, as restries de desenvolvimento e os recursos disponveis.

Qual a diferena entre engenharia de software e cincia da computao?

Cincia da computao se preocupa com as teorias e os mtodos bsicos referentes aos computadores e sistemas de software; a engenharia de software se dedica aos problemas prticos da produo de software. Conhecimento em Cincia da Computao fundamental para os engenheiros de software.

Qual a diferena entre engenharia de software e engenharia de sistemas?

Engenharia de sistemas com base em computadores se ocupa de todos os aspectos de desenvolvimento e da evoluo de sistemas baseado em computadores, incluindo hardware, software e engenharia do processo. A engenharia de software parte desse processo. Engenheiros de sistemas esto envolvidos na especificao do sistema, na definio de sua arquitetura geral, integrao e desenvolvimento.

O que um processo de software?

Um conjunto de atividades cujo objetivo o desenvolvimento ou evoluo do software. Atividades genricas a todos processos de software so:
Especificao - a funcionalidade do software e as restries em sua operao devem ser definidas Desenvolvimento - produo do software de modo que atenda a suas especificaes. Validao - o software deve ser validado para garantir que ele faz o que o cliente deseja. Evoluo - o software deve evoluir para atender s necessidades mutveis do cliente.

O que um modelo de processo de software?

Uma descrio simplificada de um processo de software, que representada a partir de uma perspectiva especfica. Exemplos de tipos de modelos de processos so:
Um modelo de Workflow - seqncia de atividades. Um modelo de fluxo de dados ou de atividades - fluxo de informao. Um modelo de papel/ao - quem faz o que.

Modelos genricos (paradigmas) de desenvolvimento


Modelo cascata. Desenvolvimento evolucionrio. Especificao formal. Modelagem de um sistema a partir de componentes reutilizveis.

Quais so os custos de engenharia de software?

De maneira grosseira, 60% dos custos so custos de desenvolvimento, 40% so custos de teste . Para software personalizado, o custo de evoluo freqentemente ultrapassa os custos de desenvolvimento. Custos podem variar, dependendo do tipo de sistema que est sendo desenvolvido e os requisitos dos atributos do sistema tais como performance e confiabilidade do sistema. A distribuio dos custos depende do modelo de desenvolvimento que est sendo utilizado.

O que so mtodos de engenharia de software?

Uma abordagem estruturada para o desenvolvimento de software que inclui modelos de sistema, notaes, regras, recomendaes e diretrizes de processo. Descries de modelos de sistema
Descries grficas so desenvolvidas - Ex. modelo de objetos Restries aplicadas a modelos de sistemas Heursticas em boas prticas de projeto Quais atividades seguir

Regras

Recomendaes

Diretrizes de processo

O que CASE (Computer-Aided Software Engineering)

Sistemas de software cujo objetivo fornecer suporte automatizado para as atividades de processo de software. Sistemas CASE so freqentemente utilizados para apoiar a aplicao dos mtodos. Upper-CASE
ferramentas de apoio s fases iniciais do processo de software ferramentas de apoio s fases finais processo de software (implementao e testes)

Lower-CASE

Quais so os atributos de um bom software?

O software deve atender os requisitos funcionais e desempenho que foram solicitados pelo usurio e alm disso deve atender requisitos no funcionais, tais como facilidade de manuteno, nvel de confiana, eficincia e facilidade de uso. Facilidade de manuteno
Software deve ser escrito de modo que possa evoluir para atender as necessidades mutveis. Software confivel no deve ocasionar danos fsicos ou econmicos, no caso de um defeito no sistema. O Software no deve desperdiar os recursos do sistema. O Software deve ser utilizvel, sem esforos indevidos, pelo usurio para quem foi projetado.

Nvel de confiana

Eficincia

Facilidade de uso

Quais so os principais desafios enfrentados pela engenharia de software?

Lidar com sistemas legados, lidar com a diversidade crescente e lidar com a crescente demanda e reduzir o tempo de entrega. Sistemas legados
Sistemas antigos, porm teis devem ser mantidos e atualizados Sistemas so distribudos e inclui uma mistura de hardware e software. Deve-se desenvolver tcnicas para construir softwares confiveis e flexveis. Existe presso crescente para uma entrega rpida do software.

Heterogeneidade

Fornecimento

Responsabilidade profissional e tica

O trabalho de engenheiros de software envolve responsabilidades mais amplas do que a simples aplicao de habilidades tcnicas. Engenheiros de software devem se comportar de maneira responsvel, tica e moral, para serem respeitados como profissionais. Comportamento tico muito mais que simplesmente respeitar as leis.

Questes de responsabilidade profissional

Confidencialidade
os engenheiros devem respeitar a confidencialidade de seus empregadores ou clientes, mesmo que no tenham assinado um acordo formal para tanto. Os engenheiros no devem enganar quanto ao seu nvel de competncia. No devem aceitar servios que estejam fora do seu limite de competncia.

Competncia

Questes de responsabilidade profissional

Direitos de propriedade intelectual


Os engenheiros devem estar cientes das leis locais que regular o uso da propriedade intelectual, como patentes e direitos autorais. Devem ser cuidadosos, a fim que assegurar que a propriedade intelectual de empregadores e clientes seja protegida. Engenheiros de software no devem empregar suas habilidades tcnicas para o mau uso dos computadores de outras pessoas. O mau uso de computadores abrange desde casos relativamente triviais (jogos), at casos mais srios (disseminao de vrus)

M utilizao de computadores

Cdigo de tica da ACM/IEEE

As sociedades profissionais dos US tem cooperado no sentido de produzir um cdigo de tica para ser praticado por seus membros. Membros dessas organizaes se comprometem a seguir esse cdigo quando se inscrevem como membros. O cdigo contm oito princpios relacionados ao comportamento de e decises feitas por profissionais de software, incluindo desenvolvedores, educadores, gerentes, supervisores e estudantes da profisso

Cdigo de tica - prembulo

Prembulo
A verso resumida do cdigo apresenta as aspiraes em um alto nvel de abstrao; as clausulas que esto includas na verso integral so exemplos e detalhes de como essas aspiraes modificam o modo pelo qual agimos como profissionais da engenharia de software. Sem essas aspiraes, os detalhes podem se tornar muito especficos e tediosos; sem os detalhes, as aspiraes podem se tornar aparentemente importantes, mas vazias; juntos aspiraes e detalhes formam um cdigo coeso.. Engenheiros de software se comprometero a fazer da anlise, da especificao, do projeto, do desenvolvimento, dos testes e da manuteno de software uma profisso benfica e respeitada. De acordo com seu compromisso com a sade, a segurana e o bem estar do pblico, os engenheiros de software devero assegurar que seus produtos e as alteraes a eles relacionadas cumpram o mais alto padro profissional possvel:

Cdigo de tica - princpios

1. PBLICO
OS engenheiros de software agiro consistentemente com o interesse pblico. Os engenheiros de software agiro de acordo com os melhores interesses de seus clientes e empregadores e consistente com o interesse pblico. Engenheiros de software devero assegurar que seus produtos e as alteraes a eles relacionadas cumpram o mais alto padro profissional possvel.

2. CLIENTE E EMPREGADOR

3. PRODUTO

Cdigo de tica- princpios

JULGAMENTO
Os engenheiros de software mantero integridade e independncia em seu julgamento profissional. Os gerentes e lderes de engenharia de software adotaro e promovero uma abordagem tica para o gerenciamento do desenvolvimento e da manuteno do software. Os engenheiros de software fomentaro a integridade e reputao da profisso, de modo consistente com o interesse pblico.

5. GERENCIAMENTO

6. PROFISSO

Cdigo de tica - princpios

7. COLEGAS
Os engenheiros de software sero justos e daro apoio aos seus colegas. Os engenheiros de software participaro de aprendizado constante com relao prtica de sua profisso e promovero uma abordagem tica dessa prtica.

8. PESSOAL

Dilemas ticos

Discordncia, em princpio, das polticas dos nveis mais altos de gesto da companhia. O empregador age de um modo que no tico e, por exemplo, libera um sistema crtico de segurana sem terminar os testes do sistema. Participao no desenvolvimento de sistemas militares e nucleares.

Pontos Chave

A engenharia de software uma disciplina da engenharia que se ocupa de todos os aspectos da produo de software.. Produtos de software consistem de programas desenvolvidos e da documentao associada. Os atributos essenciais dos produtos so a facilidade de manuteno, a confiana e a evoluo do software. O processo de software consiste em atividades envolvidas no desenvolvimento de produtos de software. As atividades bsicas so a especificao, o desenvolvimento, a validao e a evoluo do software. Mtodos so os meios organizados de produzir software. Eles incluem sugestes sobre o processo a ser seguido, as notaes a serem utilizadas, as regras que regem as descries de sistema produzidas e as diretrizes do projeto.

Pontos chave

Ferramentas CASE so sistemas de software projetados para dar apoio s atividades de rotina no processo de software, tais como editar diagramas de projeto, verificar a consistncia de diagramas e manter o controle dos testes de programas. Os engenheiros de software tem responsabilidades para com a engenharia como profisso e a sociedade. Eles no devem se preocupar exclusivamente com questes tcnicas. As sociedades profissionais publicam cdigos de conduta que estabelecem os padres comportamentais esperados por seus membros.

Você também pode gostar