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
Regras
Restries aplicadas a modelos de sistemas
Recomendaes
Heursticas em boas prticas de projeto
Diretrizes de processo
Quais atividades seguir
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
Lower-CASE
ferramentas de apoio s fases finais processo de software
(implementao e testes)
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.
Nvel de confiana
Software confivel no deve ocasionar danos fsicos ou
econmicos, no caso de um defeito no sistema.
Eficincia
O Software no deve desperdiar os recursos do sistema.
Facilidade de uso
O Software deve ser utilizvel, sem esforos indevidos, pelo
usurio para quem foi projetado.
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
Heterogeneidade
Sistemas so distribudos e inclui uma mistura de hardware e
software. Deve-se desenvolver tcnicas para construir
softwares confiveis e flexveis.
Fornecimento
Existe presso crescente para uma entrega rpida do software.
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.
Competncia
Os engenheiros no devem enganar quanto ao seu nvel de
competncia. No devem aceitar servios que estejam fora do
seu limite de 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.
M utilizao de computadores
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)
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.
2. CLIENTE E EMPREGADOR
Os engenheiros de software agiro de acordo com os
melhores interesses de seus clientes e empregadores e
consistente com o interesse pblico.
3. PRODUTO
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
JULGAMENTO
Os engenheiros de software mantero integridade e
independncia em seu julgamento profissional.
5. GERENCIAMENTO
Os gerentes e lderes de engenharia de software adotaro e
promovero uma abordagem tica para o gerenciamento do
desenvolvimento e da manuteno do software.
6. PROFISSO
Os engenheiros de software fomentaro a integridade e
reputao da profisso, de modo consistente com o interesse
pblico.
Cdigo de tica - princpios
7. COLEGAS
Os engenheiros de software sero justos e daro apoio aos
seus colegas.
8. PESSOAL
Os engenheiros de software participaro de aprendizado
constante com relao prtica de sua profisso e
promovero uma abordagem tica dessa prtica.
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