Sunteți pe pagina 1din 23

Uma

Introduo a Engenharia de So4ware


Centro de Inform-ca - Universidade Federal de Pernambuco Sistemas de Informao Vinicius Cardoso Garcia vcg@cin.ufpe.br Slides originais elaborados por Ian Sommerville
O autor permite o uso e a modicao dos slides para ns did-cos

[if977] Engenharia de So4ware - SI - CIn - UFPE

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

[if977] Engenharia de So4ware - SI - CIn - UFPE

Custos de software
Os custos de software dominam os custos de sistemas computacionais.

Em geral, software custa mais que hardware


Manter um software custa mais que desenvolv-lo A engenharia de software dedica-se ao desenvolvimento de software com custos adequados

Respeitando o cronograma acordado Satisfazendo as necessidades dos clientes Minimizando o custo de manuteno
3

[if977] Engenharia de So4ware - SI - CIn - UFPE

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)

[if977] Engenharia de So4ware - SI - CIn - UFPE

FAQs 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 processo de software? O que um modelo de processo de software?
5

[if977] Engenharia de So4ware - SI - CIn - UFPE

FAQs sobre engenharia de software


Quais so os custos da engenharia de software? Quais so os mtodos da engenharia de software? O que CASE (Computer-Aided Software Engeneering)? Quais so os atributos de um bom software? Quais so os desafios-chave enfrentados pela engenharia de software?
6

[if977] Engenharia de So4ware - SI - CIn - UFPE

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.

Um software novo pode ser criado atravs de


desenvolvimento de novos programas; configurao de sistemas de software genricos; ou reutilizao de um software existente.
7

[if977] Engenharia de So4ware - SI - CIn - UFPE

O que engenharia de software?


Engenharia de software uma disciplina relacionada com todos os aspectos da produo de software. ... e prope ferramentas, tcnicas e processos para:
Entender com preciso qual o problema (as necessidades associadas ao sistema que deve ser construdo/modificado) Produzir uma soluo adequada para esse problema (um sistema pronto para usar, levando-se em considerao as necessidades das partes interessadas) Levando-se em conta restries de desenvolvimento e recursos disponveis

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

[if977] Engenharia de So4ware - SI - CIn - UFPE

A cincia da computao dedica-se teoria e aos fundamentos;


Engenharia de software dedica-se aos aspectos prticos de desenvolvimento e de entrega de software O que vs. Como

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

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

[if977] Engenharia de So4ware - SI - CIn - UFPE

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

Engloba a engenharia do software

Os engenheiros de sistema esto envolvidos em diversas atividades da engenharia de software


Projeto da arquitetura Elicitao e especificao de requisitos
10

[if977] Engenharia de So4ware - SI - CIn - UFPE

O que processo de software?


Um conjunto estruturado de atividades, prticas, artefatos e ferramentas necessrios para o desenvolvimento de um sistema de software
Especificao; Desenvolvimento; Validao; Evoluo.

Exemplos: Processo Unificado (RUP), Programao Extrema, UML Components Diferente da definio do livro!!!
processo , modelo de processo , mtodo e metodologia

11

[if977] Engenharia de So4ware - SI - CIn - UFPE

O que processo de software?


Alguns elementos de um processo:
Modelos de sistema:
Modelos grficos que podem/devem ser produzidos e as notaes que devem ser empregadas; Restries aplicadas aos modelos de sistema;

Recomendaes de boas prticas de projeto; Atividades que devem ser seguidas em determinada ordem s vezes tambm prescrevem ferramentas

Um processo adere a um ou mais modelos de processo


12

[if977] Engenharia de So4ware - SI - CIn - UFPE

O que um modelo de processo de software?


Uma representao simplificada de um processo de software, apresentado sob uma perspectiva especfica
Incluindo algumas atividades e sua organizao de alto nvel

Modelos gerais de processo


Cascata; Desenvolvimento iterativo; Engenharia de software baseada em componentes.

Dois modelos no so necessariamente mutuamente excludentes! Representaes de modelos de processo:


Modelo de workflow seqncia de atividades; Modelo de fluxo de dados fluxo de informaes; Modelo de papel/ao quem faz o qu.

13

[if977] Engenharia de So4ware - SI - CIn - UFPE

Quais so os custos da engenharia de software?


60% dos custos so custos de desenvolvimento 40% so custos de testes Para software sob encomenda, os custos de evoluo normalmente excedem os de desenvolvimento. Os custos variam dependendo do tipo de sistema que est sendo desenvolvido e dos requisitos do sistema, tais como desempenho e confiabilidade A distribuio de custos depende do modelo de desenvolvimento que usado.

14

[if977] Engenharia de So4ware - SI - CIn - UFPE

Distribuio de custos nas atividades

15

[if977] Engenharia de So4ware - SI - CIn - UFPE

O que CASE (Computer-Aided Software Engineering)

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

[if977] Engenharia de So4ware - SI - CIn - UFPE

Quais so os atributos de um bom software?


O software deve fornecer a funcionalidade e o desempenho requeridos para o usurio e deve apresentar certas caractersticas Facilidade de manuteno
Deve ser fcil e barato fazer com que o sistema, depois de implantado, evolua para atender s necessidades dos clientes

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

Quais so os desafios-chave enfrentados pela engenharia de software? Heterogeneidade

[if977] Engenharia de So4ware - SI - CIn - UFPE

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

[if977] Engenharia de So4ware - SI - CIn - UFPE

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

[if977] Engenharia de So4ware - SI - CIn - UFPE

Questes de responsabilidade profissional


Confidencialidade
Os engenheiros de software devem normalmente respeitar a confidencialidade de seus funcionrios ou clientes, independentemente de ter ou no assinado um acordo formal.
Caso no aceitem essas condies, devem deixar isso expicito para seus contratantes

Competncia
Os engenheiros no devem conscientemente aceitar um trabalho que esteja fora de sua competncia.

20

[if977] Engenharia de So4ware - SI - CIn - UFPE

Questes de responsabilidade profissional


Direitos sobre propriedade intelectual

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

[if977] Engenharia de So4ware - SI - CIn - UFPE

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

[if977] Engenharia de So4ware - SI - CIn - UFPE

A@vidade Pr@ca Para a prxima aula


Projeto de um Avio
E ele tem que voar!

23

S-ar putea să vă placă și