Documente Academic
Documente Profesional
Documente Cultură
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 dedica s teorias, mtodos e ferramentas para desenvolvimento de software profissional Sistemas no-triviais Com base em um conjunto de requisitos
Custos de software
Os custos de software dominam os custos de sistemas computacionais.
Respeitando o cronograma acordado Satisfazendo as necessidades dos clientes Minimizando o custo de manuteno
3
Definies
Disciplina gerencial e tecnolgica que lida com a produo e manuteno sistemtica de produtos de software desenvolvidos dentro de estimativas de custo e tempo Multi-person construction of multi-version software(Parnas)
O que software?
Programas de computador e artefatos associados Produtos de software podem ser:
Genricos desenvolvidos para serem vendidos para uma grande variedade de clientes (e.g., Excel e Word) Personalizados desenvolvidos para um nico cliente de acordo com as suas especificaes.
Teorias de cincia da computao so ainda insuficientes para atuar como uma base completa para a engenharia de software (diferente de, por exemplo, fsica e engenharia eltrica).
Em outras palavras: no h receitas prontas!
9
Engenharia de sistemas:
Mais ampla Muita nfase em aspectos de hardware e infraestrutura
Abstrao do hardware Organizao fsica das partes do sistema Aspectos de comunicao
Exemplos: Processo Unificado (RUP), Programao Extrema, UML Components Diferente da definio do livro!!!
processo , modelo de processo , mtodo e metodologia
11
Recomendaes de boas prticas de projeto; Atividades que devem ser seguidas em determinada ordem s vezes tambm prescrevem ferramentas
13
14
15
Sistemas de software que se destinam a fornecer apoio automatizado para as atividades de desenvolvimento de software. Sistemas CASE so usados freqentemente para apoiar um mtodo especfico Upper-CASE
Ferramentas para apoiar as atividades iniciais de processo de requisitos e de projeto;
Lower-CASE
Ferramentas para apoiar as atividades finais tais como programao, debugging e teste.
16
Confiabilidade
O software deve funcionar de maneira que o usurio possa depender dele. No caso de falha, no traz danos fsicos ou econmicos
Eficincia
O software deve usar o mnimo de recursos e prover mxima funcionalidade
Usabilidade
O software deve ser compreensvel e fcil de usar
17
Sistemas de software devem ser capaz de lidar com diferentes plataformas de hardware e ambientes de execuo;
Entrega
O sistema deve ser entregue ao cliente no menor tempo possvel, com o menor custo possvel;
Confiana
O usurio deve poder justificadamente depositar sua confiana no sistema
Escala
O sistema deve funcionar adequadamente mesmo quando um grande nmero de usurios o est usando
18
Responsabilidade profissional e tica
A engenharia de software envolve responsabilidades mais amplas do que simplesmente a aplicao de habilidades tcnicas. Os engenheiros de software devem se comportar de modo honesto e eticamente responsvel para serem respeitados como profissionais. O comportamento tico mais do que simplesmente a sustentao de leis.
19
Competncia
Os engenheiros no devem conscientemente aceitar um trabalho que esteja fora de sua competncia.
20
Desenvolvedores devem estar cientes das leis locais que regem o uso de propriedade intelectual, tais como patentes, direitos autorais, etc. Eles devem tomar cuidado para assegurar que a propriedade intelectual dos funcionrios e clientes seja protegida.
21
Dilemas ticos
Discordncia, em princpio, das polticas da gerncia snior. Um funcionrio age de uma forma no tica e libera um sistema de segurana crtico sem finalizar o teste do sistema. Participao no desenvolvimento de sistemas de armamentos militares ou de sistemas nucleares
22
23