Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia de software
Lu A. Alexandre s
Lu A. Alexandre s
Engenharia de software
Contedo u
Lu A. Alexandre s
Engenharia de software
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
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
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
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
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
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
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
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
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
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
Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos
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
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
Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos
Modelo em cascata
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
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
Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos
Aplicao ca
Lu A. Alexandre s
Engenharia de software
Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos
Modelo evolucionrio a
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
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
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
Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos
Lu A. Alexandre s
Engenharia de software
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
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
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
Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos
Outras abordagens
Lu A. Alexandre s
Engenharia de software
Desenvolvimento em cascata Desenvolvimento evolucionrio a Desenvolvimento baseado em componentes. Outras abordagens Custos
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
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
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