Você está na página 1de 31

Uma viso geral da ES a O producto O processo

Engenharia de software
Lu A. Alexandre s

UBI, 3 de Maro de 2008 c

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Contedo u

Uma viso geral da Eng. de Software (ES). a O producto. O processo.

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

A importncia do software a

A economia global depende para quase tudo de software. Existem cada vez mais sistemas que so controlados por a software. Os pa desenvolvidos gastam uma percentagem aprecivel ses a do seu PIB em software. O nosso modo de vida depende do software!

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

O que a ES e

A ES uma rea do conhecimento que se ocupa de todos os e a aspectos relativos ao desenvolvimento prossional de software. Os engenheiros de software devem:
usar uma abordagem sistemtica e organizada; a usar ferramentas e tcnicas ajustadas ao problema em questo e a e aos recursos dispon veis.

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

O que a eng. de sistemas e

A eng. de sistemas uma rea do conhecimento que se ocupa e a de todos os aspectos relativos a sistemas informticos: a hardware, software e eng. de processos. A ES parte da eng. de sistemas. e Um eng. de sistemas preocupa-se com a especicao do ca sistema, o desenho a sua integrao e instalao. ca ca

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

O que so as CASE a

Computer-Aided Software Engineering (CASE) So aplicaes (ferramentas) que servem para automatizar a co algumas das tarefas do desenvolvimento de software. Por vezes so separadas em: a
CASE superior: aplicadas ` anlise de requisitos e ao desenho; a a CASE inferior: aplicadas ` programao, teste, deteco de a ca ca erros.

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desaos da ES

Heterogeneidade: desenvolver tcnicas que permitam e desenvolver software sobre plataformas e ambientes de execuo heterogneos; ca e Rapidez: desenvolver tcnicas que permitam acelerar a e entrega do software ao cliente; Conana: desenvolver tcnicas que demonstrem que o c e software criado de conana. e c

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

O que o software e

Programas de computador e documentao associada como ca requisitos, modelos e manuais (de programao, utilizao, ca ca instalao). ca O software pode ser desenvolvido para um unico cliente ou para um mercado geral. Software novo pode ser criado desenvolvendo novos programas, congurando software genrico ou reutilizando e software existente.

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Mitos do software

os termos terminado um programa, o nosso trabalho Ap acabou ; unico produto a ser entregue no m do projecto um O e executvel a ; Enquanto o software no estiver a funcionar no poss a a e vel avaliar a sua qualidade;

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Atributos dum bom software

Cumprir os requisitos: deve ser capaz de fazer o que foi pedido; Fcil de manter: tem de ser capaz de evoluir para se ajustar a `s necessidades; a Fivel: deve ser de conana; a c Eciente: no deve desperdiar recursos; a c Aceitvel: os utilizadores devem aceit-lo o que implica que a a deve ser compreensivel, utilizvel e compat com outros a vel sistemas

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Custo do software

O maior custo de um sistema informtico muitas vezes o do a e software. Para software feito ` medida os custos de evoluo so a ca a normalmente superiores aos custos de desenvolvimento inicial. Normalmente mais cara a manuteno do software que o e ca seu desenvolvimento. Os custos de desenvolvimento esto tambm ligados ao a e modelo de desenvolvimento usado (ver ` frente). a

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

O que o processo e
E o conjunto de actividades que tm como objectivo o e desenvolvimento de software. Em geral, o processo contm as seguintes actividades: e
Especicao: o que que o sistema deve fazer e quais as ca e restries existentes; co Desenho: denio do software de forma a cumprir requisitos; ca Implementao: escrita de cdigo; ca o Validao: vericao de que o software faz aquilo que estava ca ca especicado; Evoluo: modicao do software para que se adpate a ca ca mudanas nos requisitos. c

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

O que um modelo de processo e

E uma representao do processo segundo uma determinada ca perspectiva. Algumas perspectivas poss veis:
Workow: sequncia de actividades; e Data-ow: uxo de informao; ca Papel/aco: quem faz o qu. ca e

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Modelos de processo

Cascata (waterfall). Desenvolvimento evolucionrio; a Desenvolvimento baseado em componentes. Existem vrias variantes destes modelos (prototipagem, RAD, a espiral, etc.).

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Modelo em cascata

(imagem retirada de Sommerville,I. Software Engineering)


Lu A. Alexandre s Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Fases

Anlise de requisitos a Desenho do sistema e do software Implementao e teste de unidades ca Integrao e teste do sistema ca Instalao e manuteno ca ca

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Problemas

O principal problema deste modelo a diculdade em lidar e com a mudana aps o projecto estar a decorrer. c o Outro inconveniente que uma fase tem de estar terminada e para se poder passar ` seguinte. a

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Aplicao ca

Para sistemas grandes; Para sistemas desenvolvidos simultneamente em diversos a locais.

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Modelo evolucionrio a

(imagem retirada de Sommerville,I. Software Engineering)


Lu A. Alexandre s Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Fases

Exploratria: o objectivo trabalhar com o cliente a partir o e duma primeira especicao at atingir o produto nal. ca e Prototipagem: vo-se contruindo prottipos para claricar os a o requisitos do sistema.

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Problemas

Falta de visibilidade do processo; Resulta muitas vezes em sistema mal estruturados; Pode necessitar do uso de linguagens de desenvolvimento rpido; a

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Aplicao ca

Para sistemas pequenos a mdios; e Para partes de grandes sistemas, por exemplo, para a interface com o utilizador; Para sistemas com curto tempo de vida;

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Modelo baseado em componentes

(imagem retirada de Sommerville,I. Software Engineering)

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Fases

Processo baseado na reutilizao sistemtica de componentes. ca a Anlise de requisitos; a Anlise de componentes; a Modicao dos requisitos; ca Desenho do sistema; Desenvolvimento e integrao; ca Validao. ca

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Problemas

Requisitos podem no ser cumpridos exactamente. a A evoluo do sistema no pode no estar totalmente sob ca a a controlo visto os componentes poderem ser desenvolvidos por terceiros.

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Aplicao ca

Reduz quantidade de cdigo a desenvolver. o Conduz a um processo mais rpido. a Reduz custo de desenvolvimento.

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Outras abordagens

RAD (Rapid Application Development)


Tentam colocar SW junto do cliente o mais rpido poss a vel; Usam abundantemente ferramentas CASE; Usam linguagens de quarta gerao (visuais); ca Usam geradores de cdigo. o

Agile Development: XP (eXtreme Programming), Scrum, Dynamic Systems Development Method.


Metodologias centradas na programao; ca Eliminam quase toda a modelao e documentao; ca ca Usam processo de desenvolvimento iterativo e refactoring.

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Custo do software em funo do modelo ca

(imagem retirada de Sommerville,I. Software Engineering)


Lu A. Alexandre s Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Mitos do processo

requisitos mudam continuamente mas as mudanas so Os c a fceis de realizar pois o software exivel por denio a e ca ; nos atrasarmos no desenvolvimento juntamos mais Se programadores para cumprirmos os prazos (horda monglica) o ;

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Leituras complementares

Pressman: cap. 1 (produto), cap.2 (processo); Sommerville: cap. 1 (produto), cap. 4 (processo);

Lu A. Alexandre s

Engenharia de software

Uma viso geral da ES a O producto O processo

Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos

Questionrio a
1. Para que serve um engenheiro de software ? 2. Como se pode criar software reutilizando software existente ? 3. Comente a frase : Quanto mais cedo comearmos a escrever c cdigo, mais tempo levaremos para o terminar o . 4. Porque que importante que o software seja fcilmente e e a adaptvel ? a 5. O que tm em comum os 3 processos de desenvolvimento e descritos ? 6. A que mudana se refere um dos problemas do c desenvolvimento em cascata ?

Lu A. Alexandre s

Engenharia de software

Você também pode gostar