Você está na página 1de 28

Cap.

3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


2

Tpicos

ENGENHARIA DE SOFTWARE
PARTE 1 INTRODUO E VISO GERAL

Introduo A Programao como Fonte de Inovao Desenvolvimento Ad-Hoc As Metodologias Estruturadas As Metodologias Orientadas por Objetos Outras Metodologias

C AP. 3 E V O L U O D AS M E TO D O L O G I A S D E D E S E NV O LV I M E N TO D E S O F T WAR E

Comparao de Metodologias

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


3

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


4

Introduo

Introduo

1965 - para Dijkstra qualquer pedao de cdigo essencialmente uma srie de instrues de natureza matemtica, e como tal possvel provar a sua correo. 1967 - A expresso engenharia de software foi pela primeira vez aplicada numa conferncia da NATO. 1969 Dijkstra realou a importncia da preocupao com a preveno de erros, para alm de utilizar pela primeira vez a expresso programao estruturada. 1971 - Niklaus Wirth publicou um artigo com base no trabalho de Dijkstra e Bohm, defendendo a ideia da construo de programas de forma incremental, custa de unidades mais elementares.

1972 Parnas publicou o seu clebre artigo sobre encapsulamento de informao, no qual reforava a ideia de Wirth relativamente importncia de dividir um programa em unidades mais elementares, cada uma delas apenas disponibilizando um conjunto de

funcionalidades, mas escondendo a respetiva implementao. Apesar da importncia dos conceitos propostos nas dcadas de 1960 e 1970, e que tiveram impacto na atividade e tcnicas de programao utilizadas, j nesta altura se reconhecia que este esforo no seria suficiente, e que era preciso rentabilizar o trabalho do programador atravs de medidas com impacto em reas que no apenas a programao.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


5

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


6

Introduo

A Programao como Fonte de Inovao

Constantine tentou identificar mecanismos que possibilitassem que a conceo inadequada de software fosse evitada desde o incio, aquando da identificao de requisitos. Constantine, Stevens e Myers propuseram o conceito de Composite Design (desenho estruturado) que procurava representar sob a forma de diagramas as aes de um programa que posteriormente seriam codificadas. Esta foi uma das primeiras iniciativas para definir um processo mais consistente e abrangente, aplicado a todo o ciclo de desenvolvimento de software.

At muito recentemente, os principais saltos qualitativos em termos de conceitos com impacto significativo nas reas abrangidas pela

engenharia de software, iniciaram-se sempre pela rea das linguagens de programao.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


7

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


8

A Programao como Fonte de Inovao

A Programao como Fonte de Inovao

Evoluo das principais tcnicas e abordagens de programao, consoante o grau de complexidade e dimenso do software.

Primeira fase:
Surgiram as linguagens de baixo nvel, muito prximas da tecnologia e fortemente condicionadas por ela, na qual se incluem as linguagens mquina, em que as instrues eram meras sequncias de bits. A primeira iniciativa no sentido de elevar a atividade de programao surgiu com o aparecimento das linguagens assembly, que utilizavam mnemnicas como forma de substituir o cdigo mquina.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


9

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


10

A Programao como Fonte de Inovao

A Programao como Fonte de Inovao

Segunda fase:

Segunda fase:
A primeira alterao com impacto deu-se com as primeiras linguagens simblicas (Fortran, Algol, Cobol), numa tentativa de aproximar mais as tcnicas de programar do processo de raciocnio humano. As primeiras linguagens eram utilizadas sobretudo para clculos cientficos e de engenharia (Fortran). Gradualmente foram ganhando peso as para aplicaes comerciais (Cobol). Estas linguagens eram eminentemente imperativas, em que as instrues diziam o que se fazia. No entanto, a grande ausncia de regras sintticas e semnticas possibilitava a construo de programas difceis de compreender. Aparecimento da expresso cdigo esparguete, que resultou da utilizao abusiva da instruo GOTO.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


11

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


12

A Programao como Fonte de Inovao

A Programao como Fonte de Inovao

Terceira fase:

Terceira fase:
Caracterizada pelo desenvolvimento de sistemas de maior dimenso com base em linguagens estruturadas de mais alto nvel (por ex:, Pascal, C, 4GL), que eram suportadas por mtodos estruturados. Os programas construdos com recurso s linguagens estruturadas

apresentavam uma organizao em blocos de cdigo, constitudos custa de construes simples (isto , sequncias, selees e repeties).

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


13

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


14

A Programao como Fonte de Inovao

A Programao como Fonte de Inovao

Terceira fase (problemas surgidos):


O aumento da complexidade e dimenso dos programas causou graves problemas nas tcnicas de programao, pois os programas eram
constitudos por uma sequncia de blocos de instrues, todos localizados fisicamente no mesmo ficheiro, o que no facilitava a decomposio do problema noutros mais elementares nem suportava adequadamente o trabalho em equipa.

Terceira fase (Modula-2):


A linguagem Modula-2 (definida pelo mesmo autor da linguagem Pascal, Niklaus Wirth) introduziu o conceito de mdulo, enquanto bloco de cdigo no qual um programa se poderia decompor. A ideia era agrupar num mdulo dados e cdigo, que estivessem

relacionados de forma a limitar as interaes entre mdulos invocao de funes. No entanto, era ainda possvel aceder do exterior aos dados declarados dentro de um mdulo.

Utilizao abusiva dos dados globais a um programa,


possibilitavam que todas as instrues de um programa acedessem a esses dados, tornando difcil perceber quem manipulava que informao, e dificultando a verificao da consistncia do sistema.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


15

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


16

A Programao como Fonte de Inovao

A Programao como Fonte de Inovao

Terceira fase (tipo de dados abstrato):


De forma a impossibilitar o acesso do exterior aos dados dentro dos mdulos, os tericos propuseram o conceito de tipo de dados abstrato, cuja principal concretizao prtica ocorreu na linguagem ADA. Estes novos tipos de dados permitem
esconder totalmente partes da sua implementao (quer ao nvel dos dados quer do cdigo), e disponibilizar para o exterior o que se designa por interface.

Quarta fase:

Pela primeira vez, foi possvel definir uma associao to forte entre dados e cdigo.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


17

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


18

A Programao como Fonte de Inovao

A Programao como Fonte de Inovao

Quarta fase:
A evoluo dos conceitos de mdulo e tipo de dados abstrato, em termos de abstrao e de encapsulamento da informao, conduziu naturalmente ao aparecimento das linguagens orientadas por objetos (Smalltalk, C++, Java, Object Pascal, ). A principal distino entre objetos e tipos de dados abstratos, o suporte noo de herana pelos primeiros, o que no se verifica nos segundos. Nesta fase, o desenvolvimento de software ainda mais complexo e de maior dimenso, o que exige o suporte por parte de tecnologias avanadas como sejam
frameworks aplicacionais, frameworks de middleware, componentes de software, e utilizao de ambientes de desenvolvimento.
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

A figura seguinte apresenta um modelo simplificado que demonstra a visibilidade dos dados e como estes se encontram relacionados com o cdigo, relativamente a cada um dos conceitos acima referidos:
(1) programa, (2) mdulo, (3) tipos de dados abstratos, e (4) objetos.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


19

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


20

A Programao como Fonte de Inovao

A Programao como Fonte de Inovao

Evoluo dos conceitos de abstrao nas linguagens de programao.

A figura seguinte apresenta um diagrama que resume a evoluo de algumas linguagens de programao nos ltimos 50 anos.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


21

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


22

O Desenvolvimento Ad-Hoc

O Desenvolvimento Ad-Hoc

Em face
das potencialidades limitadas disponibilizadas ao nvel das linguagens de programao, e dos restantes componentes de suporte tecnolgico (computadores, sistemas operativos, tecnologias de armazenamento de informao, )

As profisses por excelncia na rea de informtica eram


de programador, que desenvolvia e testava os programas, e de operador, que os executava.

Muitas

organizaes

implementaram

sistemas

em

ambientes

proprietrios (tipo mainframe), utilizando


a linguagem Cobol para programar, e ficheiros para o armazenamento da informao.

as primeiras aplicaes foram construdas sem usar uma metodologia de desenvolvimento formal (programar e corrigir - build and fix). A ateno estava concentrada
na programao, e na resoluo das diversas restries de natureza tcnica, em particular nas capacidades limitadas do hardware da altura.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


23

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


24

O Desenvolvimento Ad-Hoc

O Desenvolvimento Ad-Hoc

Estes desenvolvimentos eram caracterizados por:


Envolvimento limitado dos utilizadores. Identificao de requisitos efetuada de forma inadequada. Fraca utilizao de tcnicas de anlise e desenho, que quando muito tinham uma perspetiva ad-hoc e eram de natureza emprica. Inexistncia de ferramentas de apoio a todo o processo. Tarefas de desenvolvimento muito demoradas. Sistemas de acesso informao pouco flexveis.

medida que a complexidade aumentou, tal situao tornou-se cada vez mais problemtica, o que foi ainda agravado por outras situaes:
Os informticos eram reconhecidamente bons programadores, mas raramente tinham a preocupao de compreender o negcio e de utilizar um discurso e expresses aceites e compreendidas por pessoas no tcnicas. No eram aplicados tcnicas ou mecanismos de controlo e de gesto de projeto, e por isso estes ultrapassavam frequentemente custos e prazos estimados. A fraca qualidade do produto final implicava correes frequentes, o que justificava o significativo peso relativo das tarefas de manuteno e a consequente diminuio do tempo disponvel para o desenvolvimento de novas solues.

Os requisitos dos utilizadores eram relegados para segundo plano, o que no constitua um problema demasiado grave, uma vez que as aplicaes eram simples, limitando-se a substituir (de forma limitada) tarefas realizadas manualmente por processos automticos.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


25

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


26

As Metodologias Estruturadas

As Metodologias Estruturadas Contexto e Motivao

Durante os anos 1970 e 1980 assistiu-se a um importante salto qualitativo com a introduo de um conjunto de metodologias que se baseavam essencialmente em tcnicas estruturadas de decomposio funcional. Estas metodologias tinham por objetivo
formalizar o processo de identificao de requisitos, de modo a reduzir as possibilidades de m interpretao dos mesmos, e introduzir tcnicas baseadas nas melhores prticas no processo de anlise e desenho.

Foi neste contexto que apareceram pela primeira vez os conceitos


de ciclo de vida, e de metodologias de desenvolvimento de software.

Estas metodologias eram compostas por uma sequncia de fases e atividades, com inputs e outputs, regras, intervenientes, tcnicas, notaes, ferramentas, documentao, tcnicas de gesto, etc., com o objetivo de prestar mais ateno ao processo global, e menos programao. A maioria destas metodologias adotaram o modelo em cascata, em que cada atividade tem que ser completada e finalizada antes que a atividade seguinte possa ser iniciada.

A designao de metodologias estruturadas deriva da aplicao de um conjunto de princpios semelhante ao utilizado pelas linguagens de programao (o principio da decomposio funcional).
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


27

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


28

As Metodologias Estruturadas Contexto e Motivao

As Metodologias Estruturadas Contexto e Motivao

As metodologias estruturadas

tradicionais estavam essencialmente

Anlise Funcional (cont),


Era facilmente concretizada (ou mesmo condicionada) pela estrutura que as linguagens de programao tradicionais ofereciam, com base na definio de blocos de cdigo que permitiam algum nvel de autonomia e de

orientadas segundo uma de duas abordagens:


Anlise Funcional - mais orientada para a decomposio funcional do sistema e a identificao dos respetivos processos; Anlise Orgnica mais centrada nos conceitos e nos dados das

encapsulamento da informao. No entanto, a possibilidade dos dados serem globalmente visveis e manipulados por todo o programa (o que era ento permitido pelas linguagens de programao), reduzia significativamente essas caractersticas. Estrutura era pouco flexvel, no sentido da
incorporao de novas funcionalidades e correo de erros de implementao,

organizaes.

Anlise Funcional:
as funes, algoritmos e atividades so a preocupao central do engenheiro de software, incide toda a anlise nas funcionalidades que o sistema deve realizar, e numa fase posterior na definio preocupa-se em como essas funcionalidades sero implementadas.

pois alteraes num ponto do programa poderiam produzir consequncias importantes e no facilmente identificveis noutros pontos do programa.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


29

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


30

As Metodologias Estruturadas Contexto e Motivao

As Metodologias Estruturadas Conceitos Bsicos

Anlise Orgnica,
A ateno concentra-se nos dados, colocando os conceitos e as entidades manipuladas no negcio como os elementos mais importantes do

As metodologias estruturadas introduziram um conjunto de conceitos, a maioria concretizados em diversos diagramas, destacando-se os seguintes (exclusivos das abordagens orientadas a processos):
Processo (de negcio) - uma sequncia de atividades, que processam vrios inputs e produzem vrios outputs.
Cada processo pode ser subdividido em processos mais elementares at se atingir um nvel que no possvel decompor mais. uma definio muito semelhante de processo de desenvolvimento de software.

desenvolvimento do sistema. Esta preocupao incide sobretudo


na compreenso e no agrupamento de dados comuns, e na identificao de relaes entre esses grupos de informao.

A ideia que mesmo quando uma aplicao muda, os conceitos principais devem permanecer e continuar a ser utilizados, sem alteraes significativas. A anlise de dados envolve a recolha, validao e classificao das entidades, atributos e relaes existentes num determinado domnio do problema.

Fluxo de Informao - representa toda a circulao (e o respetivo suporte) de informao que ocorre numa organizao de forma a executar os processos de negcio. Repositrio de dados - representam os conceitos sobre os quais importa organizao reter informao para utilizao futura.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


31

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


32

As Metodologias Estruturadas Conceitos Bsicos

As Metodologias Estruturadas Conceitos Bsicos

As metodologias estruturadas introduziram um conjunto de conceitos, a maioria concretizados em diversos diagramas, destacando-se os seguintes (comuns aos mtodos orientados a processos e aos dados):
Entidade - todos os conceitos de negcio, entidades fsicas ou abstratas, internas ou externas organizao, e que so relevantes para o desempenho adequado da funo da organizao. Estado de uma entidade - representado por um conjunto de valores que os atributos da entidade podem assumir. Evento - um acontecimento que desencadeado interna ou externamente ao sistema, ou pode representar simplesmente a passagem de tempo, e que desencadeia uma mudana de estado.

Caso da gesto de compras de materiais de uma empresa (enunciado):


Sempre que algum funcionrio tem necessidade de comprar bens para as suas atividades, este preenche uma requisio onde identifica os bens em questo (com base na consulta de uma lista anteriormente disponibilizada a todos os funcionrios), a qual envia para o seu diretor. Este, depois de analisar o pedido, pode ou no autorizar o mesmo. Neste segundo caso, o requisitante recebe uma notificao, e o processo pra. No caso do pedido ser aprovado, o requisitante preenche uma encomenda que envia para o fornecedor por ele selecionado. A entrada dos bens ocorre sempre no armazm, onde conferido o material recebido com a guia de remessa que o acompanha, bem como a(s) encomenda(s) que lhe deram origem (uma encomenda pode ser satisfeita de vrias vezes). Aps a ltima entrega, que completa a encomenda, a empresa confere a fatura que entretanto lhe foi sido enviada, relaciona-a com as encomendas respetivas, e se tudo estiver correto, emitido um meio de pagamento ao fornecedor (poder ser em cheque ou por transferncia bancria).

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


33

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


34

As Metodologias Estruturadas Conceitos Bsicos

As Metodologias Estruturadas Conceitos Bsicos

Caso da gesto de compras de materiais de uma empresa (resoluo):


Sempre que algum funcionrio tem necessidade de comprar bens para as suas atividades, este preenche uma requisio, onde identifica os bens em questo (com base na consulta de uma lista anteriormente disponibilizada a todos os funcionrios), a qual envia para o seu diretor. Este, depois de analisar o pedido, pode ou no autorizar o mesmo. Neste segundo caso, o requisitante recebe uma notificao, e o processo pra. No caso do pedido ser aprovado, o requisitante preenche uma encomenda que envia para o fornecedor por ele selecionado. A entrada dos bens ocorre sempre no armazm, onde conferido o material recebido com a guia de remessa que o acompanha, bem como a(s) encomenda(s) que lhe deram origem (uma encomenda pode ser satisfeita de vrias vezes). Aps a ltima entrega, que completa a encomenda, a empresa confere a fatura que entretanto lhe foi sido enviada, relaciona-a com as encomendas respetivas, e se tudo estiver correto, emitido um meio de pagamento ao fornecedor (poder ser em cheque ou por transferncia bancria).
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

O conceito de processo de negcio , normalmente, o mais relevante no caso das metodologias estruturadas. Os processos
so os primeiros a ser identificados, e conduzem toda a anlise e especificao posterior.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


35

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


36

As Metodologias Estruturadas Tcnicas e Notaes mais usadas

As Metodologias Estruturadas Tcnicas e Notaes mais usadas

Tipos de notaes propostas pelas metodologias estruturadas:


Diagramas de fluxo de dados (data flow diagram):
So especificaes orientadas aos processos, em que se identificam graficamente processos, entidades externas, fluxos de informao e repositrios de dados. So os principais diagramas utilizados na modelao de processos. Podem ser construdos em vrios nveis, uma vez que existe a possibilidade de especificar um processo atravs de um diagrama de maior detalhe. O diagrama de fluxo de dados de primeiro nvel nalgumas metodologias designado por diagrama de contexto.

Tipos de notaes propostas pelas metodologias estruturadas (cont):


Diagrama de transio de estados (state transition diagram):
uma representao grfica dos estados em que um sistema ou uma entidade se pode encontrar ao longo da sua existncia, e dos eventos que desencadeiam as transies entre estados.

Diagrama do ciclo de vida de entidade (entity life cycle):


consiste numa verso adaptada de um diagrama de estados, em que o objetivo descrever a evoluo de uma entidade ao longo da sua existncia, designadamente as operaes de criao, alteraes significativas e eliminao do sistema.

Diagramas entidade associao (entity relarionship diagram):


So especificaes grficas que representam as relaes estticas de um sistema, designadamente as entidades, com os seus atributos, e a forma como estas se encontram associadas.

Dicionrios de dados:
so repositrios de definies de todos os elementos e conceitos utilizados e manipulados pela organizao e respetivos sistemas de informao e que incluem entre outros os dados, ficheiros, processos e entidades.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


37

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


38

As Metodologias Estruturadas Tcnicas e Notaes mais usadas

As Metodologias Estruturadas Tcnicas e Notaes mais usadas

Tipos de notaes propostas pelas metodologias estruturadas (cont):


Matrizes entidade-processo:
so matrizes que demonstram as relaes existentes entre as entidades e os processos, isto , permitem identificar que entidades intervm em que processos.

Normalizao:
consiste num processo de construo do esquema de uma base de dados a partir da lista de entidades e dos respetivos atributos, aplicando um conjunto de regras designadas por formas normais do modelo relacional, cuja preocupao eliminar redundncias na estrutura de dados e garantir a integridade da informao.

Fluxogramas:
diagramas que expressam os passos de execuo de algoritmos e processamentos realizados no sistema.

O elevado nmero de metodologias disponveis no mercado fez com que a simbologia utilizada variasse normalmente conforme a

metodologia adotada. Por exemplo, na figura seguinte pode-se observar como o mesmo conceito processo representado por smbolos grficos distintos, conforme as metodologias de Yourdon e SSADM.
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


39

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


40

As Metodologias Estruturadas Tcnicas e Notaes mais usadas

As Metodologias Estruturadas Tcnicas e Notaes mais usadas

Processo representado segundo as notaes de SSADM e Yourdon.

Diagrama de fluxo de dados do problema de gesto de compras.

SSADM

Yourdon

A figura seguinte representa o enunciado da gesto de compras atravs de um diagrama de fluxo de dados (notao de Yourdon):
os processos (representados por ovais), as entidades intervenientes (retngulos), os repositrios de dados (retngulos abertos lateralmente), e os fluxos de informao (setas).
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


41

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


42

As Metodologias Estruturadas Tcnicas e Notaes mais usadas

As Metodologias Estruturadas Tcnicas e Notaes mais usadas

Poderamos representar alguns processos com um nvel de detalhe superior, e para isso j dispomos de informao no enunciado.
Por exemplo, no caso do processo registo da requisio (1.1), o respetivo detalhe poderia incluir, e por esta ordem,
a deteo da necessidade, a consulta lista de bens disponveis, o preenchimento da requisio, e o envio para o diretor.

Outro tipo de diagrama muito utilizado o entidade-associao, que apresenta a viso esttica do sistema, identificando as entidades sobre as quais interessa guardar informao, bem como o respetivo relacionamento. Qualquer relao expressa num diagrama entidade associao pode ser sempre analisada na perspetiva de ambas as entidades intervenientes, e implica a sua caracterizao segundo dois conceitos adicionais:

Esta informao seria tambm

adequadamente representada por

um

cardinalidade - nmero mximo de ocorrncias de cada uma na relao, e modularidade - nmero mnimo de ocorrncias de cada uma, o que permite identificar quais so obrigatrias ou opcionais.

diagrama de fluxo de dados, de nvel mais detalhado.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


43

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


44

As Metodologias Estruturadas Tcnicas e Notaes mais usadas

As Metodologias Estruturadas Tcnicas e Notaes mais usadas

Diagrama entidade associao para o exemplo da gesto de compras.

Na relao entre requisies e encomendas,


a cardinalidade desta relao, representada pelos smbolos mais prximos de cada retngulo, l-se uma requisio pode ser satisfeita por vrias encomendas; a modularidade pode ser lida podemos ter uma requisio que no d origem a nenhuma encomenda ( o caso em que o diretor no aprova o pedido).

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


45

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


46

As Metodologias Estruturadas Tcnicas e Notaes mais usadas

As Metodologias Estruturadas Tcnicas e Notaes mais usadas

Os

diagramas

apresentados

incluem-se

no

grupo

das

notaes

Algumas notaes mais conhecidas so:


Redes de Petri:
diagramas particularmente adequados para a representao de sistemas com problemas de concorrncia e com restries a nvel de sincronizao; utiliza conceitos como transies, funes de input e de output.

semiformais, uma vez que tinham um conjunto de regras associadas, e que deviam ser aplicadas na sua elaborao. No entanto, estes diagramas no garantem nem demonstram a respetiva correo, face s funcionalidades identificadas. No sentido de resolver este problema, foram propostas notaes formais, que se caracterizam por adotar conceitos muito prximos da matemtica, com o rigor e formalismo correspondentes, sendo deste modo possvel demonstrar a correo da especificao.

Linguagem Z:
linguagem de especificao formal, com simbologia e conceitos matemticos e lgica de primeira ordem (conjuntos, tipos de dados, constantes, definies de estado, estado inicial, operaes).

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


47

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


48

As Metodologias Estruturadas Principais Metodologias

As Metodologias Estruturadas Principais Metodologias

Das muitas metodologias propostas para o desenvolvimento de software, apenas se vo referir as metodologias estruturadas

SSADM
A modelao de um sistema segundo trs perspetivas complementares:
(1) a sua funcionalidade (DFD) (2) a sua estrutura - obtida atravs de diagramas de entidade associao (DEA) (3) a sua evoluo ao longo do tempo representada pelos diagramas de ciclos de vida de entidades. representada atravs de diagramas de fluxo de dados

conhecidas que maior relevncia e divulgao tiveram . SSADM (Structured Systems Analysis and Design Methodology),
Proposta por Learmonth (1981), e alvo de sucessivas revises. Durante muito tempo (e ainda hoje) foi considerada a metodologia de referncia e ensinada em diversos cursos universitrios. No Reino Unido, foi durante muito tempo obrigatria a sua utilizao em todos os projetos relacionados com o desenvolvimento de sistemas de informao a nvel governamental.

Estas trs vises so integradas;


por exemplo, os DFD so comparados com os DEA, de forma a garantir que cada entidade referida num DEA criada por algum processo especificado num DFD.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


49

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


50

As Metodologias Estruturadas Principais Metodologias

As Metodologias Estruturadas Principais Metodologias

SSADM
uma metodologia concebida sobretudo para a anlise e desenho do sistema, no contemplando as tarefas relacionadas com a implementao, testes e instalao do mesmo. Integra diversas notaes orientadas para a modelao quer dos processos quer dos dados. A sequncia de atividades envolve:
A realizao de um estudo de viabilidade, de modo a avaliar at que ponto o sistema tem custos aceitveis. A anlise de requisitos do negcio. A especificao dos mesmos requisitos. A especificao lgica do sistema, de modo a determinar a forma como os requisitos identificados so implementados. O desenho fsico do sistema.
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

STRADIS

(Structured

Analysis,

Design

and

Implementation

of

Information Systems).
desenvolvida por Gane e Sarson em finais da dcada de 1970, baseada na filosofia de decomposio funcional top-down, e suportada essencialmente pela utilizao de diagramas de fluxos de dados.

Yourdon Systems Method (proposta por Yourdon, revista em 1993);


semelhante STRADIS pois recorre muito decomposio funcional, mas tambm atribui uma importncia significativa estrutura dos dados.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


51

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


52

As Metodologias Estruturadas Principais Metodologias

Metodologias Orientadas por Objetos

Engenharia de Informao (proposta por James Martin em 1989)


integra muitos dos conceitos, melhores prticas, modelos e tcnicas das metodologias estruturadas e do desenvolvimento de software dos anos 1980 numa abordagem coerente a todas as atividades do processo de

Alguns problemas das tcnicas e metodologias estruturadas descritas:


No conseguem lidar adequadamente com o problema da complexidade e do tamanho crescente dos sistemas. No resolvem o problema da crescente atividade de manuteno do software. Verifica-se com frequncia a m compreenso dos requisitos do utilizador, por parte dos intervenientes tcnicos. Permanece a dificuldade de lidar com alteraes aos requisitos. No fcil a integrao e reutilizao de mdulos e componentes do sistema. Os erros de conceo so descobertos tardiamente. A qualidade do software baixa e o seu desempenho inadequado. No fcil identificar quem fez o qu, quando e porqu.

desenvolvimento de software. As suas razes esto no trabalho originalmente desenvolvido pela IBM na sua metodologia Business Systems Planning. Tem uma preocupao estratgica com a definio dos sistemas de informao, o que expresso nos diferentes estgios de evoluo do processo designadamente:
(1) planeamento estratgico dos sistemas de informao, (2) anlise de reas do negcio, (3) desenho de sistemas, e (4) implementao.
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


53

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


54

Metodologias Orientadas por Objetos

Metodologias Orientadas por Objetos

A aplicao de diversas das melhores prticas atuais de engenharia de software veio solucionar algumas destas questes e esteve na origem do conceito da orientao por objetos. A orientao por objetos, se bem que em termos prticos tenha sido primeiramente concretizada ao nvel das linguagens de programao, no tem impacto apenas a esse nvel.

O conceito da orientao por objetos baseia-se numa nova forma de analisar o mundo, pois reproduz a forma como o ser humano se apercebe e expressa a realidade que o rodeia. O ser humano classifica e subdivide o mundo em diferentes objetos, com base nas diferenas e semelhanas existentes ao nvel das caractersticas e comportamento dos mesmos objetos. As tcnicas orientadas por objetos identificam e definem cada objeto de modo a reutiliz-lo, da mesma forma que o ser humano acumula conhecimento com base no previamente adquirido.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


55

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


56

Metodologias Orientadas por Objetos

Metodologias Orientadas por Objetos - Contexto e Motivao

Nas abordagens orientadas por objetos, a perspetiva de modelao dos sistemas muda, uma vez que o mesmo conceito base utilizado ao longo de todas as fases do processo, promovendo a reutilizao e o encapsulamento da informao, e facilitando a manuteno. As metodologias orientadas por objetos so abordagens mais naturais do que as baseadas em processos e dados, e os conceitos bsicos so simples e reproduzem o mundo real. A definio exata de orientao por objetos no nica. Para Coad e Yourdon (1991), o paradigma da orientao por objetos resulta da convergncia de quatro outros conceitos: objetos,

As razes da engenharia de software orientada por objetos podem ser encontradas num trabalho desenvolvido na linguagem Simula em finais dos anos 1960, que estava vocacionada para a implementao de sistemas de simulao. Desde o incio dos anos 1970 que trs ideias independentes ganharam importncia, com o objetivo de facilitar todo o processo de

desenvolvimento de software, e que em ltima anlise esto na base da estrutura de conceitos do paradigma da orientao por objetos:
encapsulamento de informao, reutilizao de cdigo, e viso do mundo (e posterior modelao) segundo um conjunto de objetos, e no segundo uma perspetiva funcional.

classificao, herana e comunicao por mensagens.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


57

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


58

Metodologias Orientadas por Objetos - Contexto e Motivao

Metodologias Orientadas por Objetos - Contexto e Motivao

Estes trs conceitos esto na base da primeira linguagem classificada como verdadeiramente suportando este paradigma, a linguagem Smalltalk (Goldberg, 1989), criada nos laboratrios PARC da Xerox. No entanto, e at meados da dcada de 1980, a maioria das iniciativas relacionadas com o paradigma da orientao por objetos situava-se ao nvel da programao.

Coad e Yourdon (1991) identificaram as motivaes principais para a realizao de atividades de anlise segundo o paradigma da orientao por objetos:
Poder tratar domnios de problemas mais complexos. Melhorar a interao entre o analista e o especialista do problema. Aumentar a consistncia interna dos resultados da anlise. Representar explicitamente aspetos comuns a diversos conceitos. Construir especificaes capazes de resistir mudana. Reutilizar resultados da anlise. Conceber uma representao consistente para a anlise e desenho.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


59

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


60

Metodologias Orientadas por Objetos Conceitos Bsicos

Metodologias Orientadas por Objetos Conceitos Bsicos

Nas abordagens orientadas por objetos distinguem-se essencialmente dois grandes grupos de conceitos:
(1) os princpios, que constituem um conjunto de ideias base de todo o paradigma, e alguns deles so mesmo os requisitos necessrios para um sistema ser considerado orientado por objetos; e (2) as restantes noes base, comuns a todos os sistemas orientados por objetos.

Princpios Orientadores do Paradigma


Encapsulamento da informao, Herana, Polimorfismo, e Abstrao.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


61

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


62

Metodologias Orientadas por Objetos Conceitos Bsicos

Metodologias Orientadas por Objetos Conceitos Bsicos

Encapsulamento da informao
o processo de esconder todos os detalhes de um objeto que
no contribuem para as suas caractersticas essenciais, nem para a disponibilizao de funcionalidades para o seu exterior.

Herana
Representa a definio de relaes entre classes atravs da qual uma subclasse partilha, acrescenta ou redefine operaes e atributos a partir de uma ou mais superclasses;
uma subclasse uma especializao de uma ou mais superclasses.

Pode ser encarado como a localizao de funcionalidades numa nica abstrao autocontida, que esconde a respetiva implementao e decises de desenho, atravs da disponibilizao de uma interface pblica. O conjunto de operaes que so acessveis do exterior constitui a interface do objeto. Esta caracterstica permite a criao de objetos estveis e reutilizveis, reproduzindo o mundo real de forma correta.

uma forma de aumentar a reutilizao do que comum, permitindo adicionalmente acrescentar detalhes especficos. Este termo aparece associado s noes de generalizao e de

especializao.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


63

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


64

Metodologias Orientadas por Objetos Conceitos Bsicos

Metodologias Orientadas por Objetos Conceitos Bsicos

Polimorfismo
a capacidade de esconder vrias implementaes distintas atravs de uma nica interface. Outra forma de definir esta propriedade dizer que ela representa a capacidade de objetos diferentes responderem de forma diferente mesma mensagem. Tal concretizado pelo facto de uma operao aceitar argumentos de tipos diferentes ou mesmo desconhecidos. utilizada em situaes em que uma operao partilhada na maior parte dos casos, mas em que pelo menos uma subclasse necessita de uma verso especfica.

Abstrao
a representao concisa duma ideia ou objeto mais complexa, incidindo sobre as caractersticas essenciais do objeto. As abordagens tradicionais concretizam esta ideia pelas abstraes funcionais (processos), enquanto os mtodos orientados por objetos utilizam objetos.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


65

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


66

Metodologias Orientadas por Objetos Conceitos Bsicos

Metodologias Orientadas por Objetos Conceitos Bsicos

Estes quatro princpios so considerados necessrios e suficientes para considerar uma linguagem como sendo orientada por objetos. As linguagens que no suportam as noes de herana e/ou

Outros Conceitos Chave do Paradigma da Orientao por Objetos


Existem outros conceitos que so fundamentais para a compreenso do paradigma da orientao por objetos,
o conceito de objeto, O conceito de classe, para alm de outros que esto diretamente relacionados com estes.

polimorfismo so normalmente designadas por baseadas em objetos. Para alm destes princpios, existem outras noes importantes:
Modularidade - decomposio lgica e fsica de conceitos em unidades mais elementares, de forma a facilitar a aplicao dos princpios da engenharia de software. Concorrncia - propriedade que distingue um objeto ativo de um outro no ativo. Persistncia - propriedade de um objeto atravs da qual a sua existncia perdura no tempo e/ou no espao.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


67

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


68

Metodologias Orientadas por Objetos Conceitos Bsicos

Metodologias Orientadas por Objetos Conceitos Bsicos

Objeto: praticamente cada metodologia e respetivo autor apresentam definies prprias:


Firesmith (1996): um objeto pode ser definido como uma abstrao de software que modela todos os aspetos relevantes de uma nica entidade conceptual ou tangvel, que pertence ao domnio da soluo. Object Management Group: um objeto uma coisa, criada como uma instncia de um tipo de objetos. Cada objeto tem uma identidade nica distinta e independente de quaisquer das suas caractersticas. Cada objeto tem uma ou mais operaes. Berard (1993): objetos so as entidades reais ou conceptuais que podem ser encontradas no mundo que nos rodeia. Booch (1994): algo ao qual se pode fazer qualquer coisa; tem estado, comportamento e identidade.
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

Objeto: praticamente cada metodologia e respetivo autor apresentam definies prprias (cont) :
Coad e Yourdon (1991): uma abstrao de qualquer coisa no domnio de um problema, refletindo a capacidade do sistema de manter informao sobre ele e de interagir com ele; um encapsulamento de valores de atributos e dos seus servios exclusivos. Rumbaugh (1991): um objeto um conceito, abstrao ou coisa com fronteiras bem definidas e com significado para o problema em questo; promove a reutilizao e funciona como uma base concreta para a respetiva implementao em software. Shlaer e Mellor (1988): um objeto uma abstrao de um conjunto de coisas do mundo real de tal forma que todos os elementos do conjunto (instncias) tm as mesmas caractersticas e respeitam as mesmas regras e polticas.
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


69

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


70

Metodologias Orientadas por Objetos Conceitos Bsicos

Metodologias Orientadas por Objetos Conceitos Bsicos

Resumidamente, e de forma a integrar as diversas definies,


os objetos representam
entidades fsicas, Conceptuais, ou apenas necessrias para a representao em computador (por exemplo, estruturas de dados);

Alguns autores

enumeram as fontes onde pesquisar os possveis

candidatos a objetos, independentemente do problema a solucionar:


Shlaer e Mellor:
entidades e coisas tangveis, funes de pessoas, organizaes, incidentes, eventos, interaes, e especificaes.

um objeto pode ser


um conceito, uma abstrao, ou uma entidade, com fronteiras bem definidas e que tem um significado para um problema e respetiva soluo;

um objeto tem
estado, Comportamento, e identidade.
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


71

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


72

Metodologias Orientadas por Objetos Conceitos Bsicos

Metodologias Orientadas por Objetos Conceitos Bsicos

Alguns autores

enumeram as fontes onde pesquisar os possveis

Outros Conceitos Chave do Paradigma da Orientao por Objetos


Atributos
So propriedades nomeadas de um objeto que indicam os valores possveis que esse atributo pode assumir ao longo do tempo; O estado de um objeto definido pelo valor dos seus atributos.

candidatos a objetos, independentemente do problema a solucionar:


Coad e Yourdon:
estruturas, outros sistemas, dispositivos, coisas ou acontecimentos memorizados, funes desempenhadas, procedimentos operacionais, locais geogrficos, e unidades organizacionais.

Comportamento de um objeto
o conjunto de aes que um objeto pode realizar de forma independente. Normalmente existem dois termos para referir os mecanismos utilizados para implementar este conceito: ao nvel da anlise o termo mais utilizado o de operao ou servio, ao nvel da programao o termo mtodo refere-se implementao de uma operao. A maioria das operaes realizadas responde a perguntas ou alteram o estado do objeto. Na prtica, implementam um servio e/ou funcionalidade que pode ser requerido por qualquer objeto que faa parte do universo do problema.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


73

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


74

Metodologias Orientadas por Objetos Conceitos Bsicos

Metodologias Orientadas por Objetos Conceitos Bsicos

Classe
um descrio de grupos de objetos com
propriedades (atributos), comportamento (operaes), e relaes comuns.

Os atributos permitem, em geral,


identificar a classe, definir as caractersticas especiais da classe, definir o estado da classe, reter alguma informao sobre a classe, e identificar o comportamento do objeto.

uma das concretizaes do conceito abstrao no paradigma da orientao por objetos. Pode ser vista como
um template para um determinado objeto e todos os que lhe forem semelhantes, ou uma fbrica, que produz tantos objetos idnticos quanto necessrio.

Para especificar detalhadamente um atributo deve-se identificar


o domnio dos seus valores, as unidades de medida, o valor por omisso, o valor inicial, as condies de leitura e escrita, e eventuais condies relacionadas com outros atributos do objeto ou classe.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


75

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


76

Metodologias Orientadas por Objetos Conceitos Bsicos

Metodologias Orientadas por Objetos Conceitos Bsicos

Dado um enunciado de um problema, a anlise orientada por objetos procura identificar os objetos concretos e as respetivas classes, a partir de todos os substantivos que dele sejam extrados. O seu objetivo ltimo ser sempre identificar:
Um conjunto de classes que representem totalmente o domnio do problema. Os atributos de cada classe. A interface e os servios de cada classe. As diversas relaes entre classes. Objetos concretos que seja necessrio particularizar.

Cada

metodologia

prope

diferentes

formas

de

chegar

esta

informao, e normalmente referem alguns critrios. Por exemplo, Coad (1991) indica um conjunto de questes a colocar, de modo a averiguar se um substantivo do enunciado constitui um objeto ou uma classe:
A informao sobre o objeto tem que ser retida de modo a que o sistema funcione adequadamente? O objeto realiza operaes que alteram atributos de outros objetos? O objeto tem mais do que um atributo? Outros objetos aparentemente idnticos disponibilizam operaes idnticas? O objeto produz ou consome informao essencial para o funcionamento do sistema?

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


77

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


78

Metodologias Orientadas por Objetos Conceitos Bsicos

Metodologias Orientadas por Objetos Conceitos Bsicos

Noutras situaes, so indicadas checklists de circunstncias em que um potencial objeto no o deve ser, por exemplo:
Objetos ou classes com apenas um atributo. Classes com apenas um objeto. Objetos ou classes sem servios aplicveis, ou que no produzem um resultado visvel para o problema em anlise. Objetos ou classes que no sejam relevantes para a soluo do problema. Objetos ou classes que de facto correspondem a atributos de outros objetos.

Caso da gesto de compras de materiais de uma empresa (enunciado):


Sempre que algum funcionrio tem necessidade de comprar bens para as suas atividades, este preenche uma requisio onde identifica os bens em questo (com base na consulta de uma lista anteriormente disponibilizada a todos os funcionrios), a qual envia para o seu diretor. Este, depois de analisar o pedido, pode ou no autorizar o mesmo. Neste segundo caso, o requisitante recebe uma notificao, e o processo pra. No caso do pedido ser aprovado, o requisitante preenche uma encomenda que envia para o fornecedor por ele selecionado. A entrada dos bens ocorre sempre no armazm, onde conferido o material recebido com a guia de remessa que o acompanha, bem como a(s) encomenda(s) que lhe deram origem (uma encomenda pode ser satisfeita de vrias vezes). Aps a ltima entrega, que completa a encomenda, a empresa confere a fatura que entretanto lhe foi sido enviada, relaciona-a com as encomendas respetivas, e se tudo estiver correto, emitido um meio de pagamento ao fornecedor (poder ser em cheque ou por transferncia bancria).

No enunciado da gesto de compras, nota-se que a pesquisa passa a incidir sobre outras palavras (substantivos em vez de verbos), devido
mudana de paradigma, e aos conceitos base fundamentais que lhes esto subjacentes (objetos em vez de processos).
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


79

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


80

Metodologias Orientadas por Objetos Conceitos Bsicos

Metodologias Orientadas por Objetos Conceitos Bsicos (Outros Conceitos Chave)

Caso da gesto de compras de materiais de uma empresa (resoluo):


Sempre que algum funcionrio tem necessidade de comprar bens para as suas atividades, este preenche uma requisio onde identifica os bens em questo (com base na consulta de uma lista anteriormente disponibilizada a todos os funcionrios), a qual envia para o seu diretor. Este, depois de analisar o pedido, pode ou no autorizar o mesmo. Neste segundo caso, o requisitante recebe uma notificao, e o processo pra. No caso do pedido ser aprovado, o requisitante preenche uma encomenda que envia para o fornecedor por ele selecionado. A entrada dos bens ocorre sempre no armazm, onde conferido o material recebido com a guia de remessa que o acompanha, bem como a(s) encomenda(s) que lhe deram origem (uma encomenda pode ser satisfeita de vrias vezes). Aps a ltima entrega, que completa a encomenda, a empresa confere a fatura que entretanto lhe foi sido enviada, relaciona-a com as encomendas respetivas, e se tudo estiver correto, emitido um meio de pagamento ao fornecedor (poder ser em cheque ou por transferncia bancria).
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

As operaes realizadas por objetos podem ser identificadas pela pesquisa no enunciado de verbos associados a cada objeto. Essas operaes podem ser agrupadas nas seguintes categorias:
Modificador - operao que altera o estado de um objeto. Seletor - operao que acede ao estado de um objeto. Iterador - operao que permite que todas as partes de um objeto sejam acedidas segundo uma ordem bem definida. Construtor - cria um objeto e/ou inicializa o seu estado. Destrutor - liberta o estado de um objeto ou destri-o.

Os objetos funcionam como caixas negras - escondem os detalhes da sua implementao aos objetos que a utilizam. O acesso aos objetos efetuado atravs da interface por eles disponibilizada, composta por operaes e por atributos.
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


81

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


82

Metodologias Orientadas por Objetos Conceitos Bsicos

Metodologias Orientadas por Objetos Conceitos Bsicos

Os objetos comunicam entre si por mensagens, que so a invocao de um mtodo com o mesmo nome, no contexto do objeto recetor da mensagem. A figura seguinte apresenta o modelo de comunicao entre objetos por mensagens.

Na prtica, este modelo a invocao de uma funo, tal como nas abordagens tradicionais. A diferena que esta invocao realizada no contexto de um objeto, o que significa que tem em conta o seu estado, traduzido nos valores que os seus atributos assumem. Por isso, o mesmo mtodo executado com os mesmos parmetros sobre objetos diferentes, mas ambos instncias da mesma classe, pode produzir resultados diferentes.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


83

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


84

Metodologias Orientadas por Objetos Conceitos Bsicos

Metodologias Orientadas por Objetos Conceitos Bsicos

A interface o conjunto de operaes e atributos disponibilizados por uma classe e pode dividir-se em trs partes (consoante a visibilidade):
pblica - visvel para todos os objetos do sistema, protegida - s visvel pelas suas subclasses, e privada - faz parte da interface mas no visvel para nenhuma outra classe do sistema, s est disponvel na implementao da prpria classe.

Visibilidade de mtodos da interface.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


85

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


86

Metodologias Orientadas por Objetos Conceitos Bsicos

Metodologias Orientadas por Objetos Conceitos Bsicos

Entre as diversas classes de um sistema podem ser estabelecidas diferentes tipos de relaes:
Associao:
representam relaes estruturais entre objetos de classes diferentes, e cuja informao tem que ser preservada durante algum tempo; expressa pelo verbo ter.

Entre as diversas classes de um sistema podem ser estabelecidas diferentes tipos de relaes (cont):
Dependncia:
relao em que uma mudana de estado num objeto (ocorrida pela receo de uma mensagem) pode implicar o envio de uma mensagem a outro objeto, e Exemplo: um automvel (para andar) precisa de se abastecer na bomba de gasolina.

Agregao:
a conhecida relao entre o todo e as partes (whole-part); um exemplo possvel a relao uma empresa tem empregados.

Generalizao/Especializao:
relaes entre classes que partilham a estrutura e comportamento; implementam o conceito de herana, que pode ser simples (uma classe tem apenas uma superclasse) ou mltipla (uma classe pode ter vrias superclasses); esta relao expressa pelo verbo ser, como no caso um co um animal.

Composio:
forma de agregao em que a relao de pertena forte e com tempos coincidentes; o objeto agregador responsvel pela criao e destruio do objeto que entra na sua composio; uma concretizao desta relao dizer que o corpo humano tem uma perna.
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

Algumas abordagens procuram definir conceitos que permitem agrupar classes: assunto (Coad e Yourdon), pacote (UML).
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


87

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


88

Metodologias Orientadas por Objetos Tcnicas e Notaes mais Utilizadas

Metodologias Orientadas por Objetos Tcnicas e Notaes mais Utilizadas

A proliferao destas metodologias levou ao aparecimento de diversas notaes e tcnicas de modelao, sendo as principais (quase todas presentes na Rational e na linguagem UML) as seguintes:
Diagrama de casos de uso/utilizao, Diagrama de classes, CRC (Class-Relationship-Collaboiration) cards, Diagrama de pacotes, Diagrama de estados, Diagramas de interao, Diagrama de atividades, Diagrama de eventos, Diagrama de contexto, e Diagrama de fluxo de dados.
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

Independentemente do nome dos diagramas utilizados por cada metodologia, cada uma apresenta
notaes para modelar a viso esttica do sistema:
a estrutura dos objetos, as relaes de agregao e de especializao, e a comunicao entre objetos);

outras notaes para os conceitos dinmicos


interaes, mudanas de estado, sequncias de aes, e mecanismos de temporizao.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


89

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


90

Metodologias Orientadas por Objetos Principais Metodologias

Metodologias Orientadas por Objetos Principais Metodologias

Ao longo das dcadas de 1980 e de 1990 surgiram inmeras propostas de metodologias, sobretudo concentradas nas tarefas de anlise e desenho, utilizando os conceitos relacionados com o paradigma da orientao por objetos. Algumas das metodologias mais significativas, quer pela sua utilizao quer pela relevncia dos conceitos abordados, so as seguintes:
Mtodo de Booch OOSE (Object Oriented Software Engineering) OMT (Object Modelling Technique) OOAD (Object Oriented Analysis and Design) Mtodo de Wirfs-Brock

Mtodo de Booch (proposto por Grady Booch em 1991)


Baseia-se na ideia da repetio de atividades de um processo de desenvolvimento de modo a refinar o modelo em sucessivas iteraes. As suas principais atividades esto orientadas para a
identificao de classes e objetos, e respetivas caractersticas, e determinao das relaes entre classes.

OOSE (proposto por Ivar Jacobson em 1992)


Resulta da evoluo do modelo Objectory (tambm do mesmo autor) e a sua maior contribuio foi a introduo da noo de caso de utilizao que funciona como uma descrio da interao entre o utilizador e o sistema.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


91

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


92

Metodologias Orientadas por Objetos Principais Metodologias

Metodologias Orientadas por Objetos Principais Metodologias

OMT (proposto por James Rumbaugh em 1991)


Concentrou as suas propostas na anlise e desenho de software, s quais aplicou tcnicas orientadas por objetos. A sua metodologia apresentava essencialmente trs modelos principais:
esttico ou de objetos (onde representam classes, objetos, a hierarquia e outras relaes), dinmico (apresentava o comportamento dos objetos e do sistema global) e funcional (diagrama de fluxo de informao no sistema semelhante aos diagramas de fluxos de dados).

OOAD (proposto por Coad e Yourdon em 1991)


apresentava como uma das suas principais vantagens o facto de ser muito simples (ao nvel dos conceitos, atividades e diagramas) o que o tornava um dos mais fceis de compreender. As suas principais atividades relacionadas com a anlise so no fundo aquilo que todos esperavam realizar num processo que aplicasse as noes da orientao por objetos:
Identificar objetos utilizando critrios simples (substantivos). Definir uma estrutura de relaes generalizao-especificao. Definir uma estrutura de relaes de associao (whole-part). Identificar assuntos (subsistemas). Definir os atributos. Definir os servios.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


93

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


94

Metodologias Orientadas por Objetos Principais Metodologias

Outras Metodologias

Mtodo de Wirfs-Brock
no efetua uma distino clara entre anlise e desenho, e a sua principal contribuio foi a definio de um diagrama designado por CRC cards (Class-Responsibility-Colaboration) que procura identificar as classes do sistema, a sua interface e as relaes entre elas. As principais atividades consistem em
avaliar a especificao do cliente, extrair classes candidatas por anlise da especificao, identificar grupos de classes (superclasses), definir e atribuir responsabilidades para cada classe, identificar relaes entre classes, identificar colaboraes entre classes com base nas responsabilidades, e construir representaes hierrquicas das classes.

Apesar dos benefcios reconhecidos na utilizao de metodologias (independentemente do paradigma utilizado), elas no esto isentas de crticas e de aspetos menos positivos:
Complexidade nos conceitos, tcnicas e aplicao. Desconhecimento global da metodologia e falta de competncias dos informticos para a sua execuo com qualidade. Ferramentas que suportam a metodologia difceis de utilizar. Constatao da ausncia de melhorias significativas no processo e produto final. Concentrao na anlise da situao atual, menor importncia aos objetivos futuros. Tempo que decorre at disponibilizao dos resultados finais. Rigidez na aplicao dos mtodos e conceitos.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


95

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


96

Outras Metodologias

Outras Metodologias

Desta forma, um novo grupo de metodologias comeou a aparecer nos ltimos anos, que implicam um nvel de formalismo muito menor. Muitas destas novas metodologias advogam
A no realizao de atividades de anlise e desenho. A produo de muito menos documentao por comparao com as metodologias estruturadas ou orientadas por objetos. Defendem que a principal documentao de um sistema , ou deveria ser, o cdigo fonte das aplicaes desenvolvidas. Comungam a ideia de que as principais atividades a realizar ao longo de todo o processo de desenvolvimento so essencialmente a programao e os testes.

Estes mtodos
So bastante adaptveis, pois respondem imprevisibilidade dos requisitos ao longo do tempo; e concentram-se
na satisfao das necessidades das pessoas (informticos e utilizadores), e no na definio de processos;

Partilham a ideia do desenvolvimento iterativo tpico das abordagens orientadas por objetos; e reforam a importncia da atividade de testes. Algumas referncias relevantes nesta rea so as abordagens
XP - Extreme Programming (Beck, 1999), Feature Driven Development (Coad, 1999), DSDM - Dynamic System Development Method.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


97

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


98

Outras Metodologias

Comparao de Metodologias

Em determinadas circunstncias estes mtodos so particularmente aconselhveis, sobretudo se estivermos a falar de sistemas pequenos ou com requisitos incertos ou volteis, em que
os programadores so responsveis, experientes e encontram-se motivados, os clientes so igualmente participativos e responsveis, ou ainda quando a equipa de desenvolvimento relativamente reduzida e estvel.

A comparao das metodologias existentes uma tarefa complexa devido a um conjunto de dificuldades que se colocam, como:
No existem metodologias iguais e portanto em qualquer comparao estaremos sempre a comparar conceitos por vezes no comparveis. Muitas metodologias so influenciadas ou particularmente concebidas para serem utilizadas com linguagens de programao especficas. Muitas metodologias assumem um contexto de aplicao onde no existem os problemas que no mundo real tm que enfrentar. A abrangncia das metodologias varia fortemente (algumas apenas

Noutras

situaes

ser

prefervel

um

processo

mais

formal,

nomeadamente sempre que


o projeto exigir a alocao de equipas de maior dimenso, existir um contrato com mbito e preos fixos, ou o risco seja elevado e o processo de controle do projeto deva ser reforado.

descrevem um processo, outras incluem tcnicas e notaes). A comparao entre metodologias tem que considerar obrigatoriamente apenas um subconjunto das mesmas, e um subconjunto de funcionalidades. A prpria definio do conceito metodologia pode ser limitativa.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


99

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


100

Comparao de Metodologias

Comparao de Metodologias

Vantagens (em termos conceptuais) das abordagens orientadas por objetos face s estruturadas:
Um nico paradigma consistente ao longo de todo o processo, mais prximo do processo cognitivo humano. Facilitam a reutilizao do cdigo e da arquitetura global do sistema, o que potencia o aumento de produtividade dos informticos. Apresentam modelos que refletem mais adequadamente o mundo real. No existe separao entre dados e processos, o conceito unificador agrega as duas vises. Os detalhes de implementao so escondidos do exterior pela aplicao de tcnicas de encapsulamento da informao. A facilidade de realizao das tarefas de manuteno maior, em resultado das diversas caractersticas anteriormente enumeradas. O sistema construdo consequentemente mais estvel.
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

Problemas das abordagens orientadas por objetos:


Nem sempre fcil encontrar os objetos e classes apropriados no domnio do problema, uma vez que a maioria dos informticos continua a pensar em termos funcionais. S recentemente comearam a surgir no mercado ferramentas de apoio ao processo de desenvolvimento segundo o paradigma da orientao por objetos.

Alguns aspetos concretos em como as abordagens orientadas por objetos se revelam mais adequadas que as estruturadas:
Gesto de Requisitos e Facilidade de Manuteno, Representao da Realidade, Outros Aspetos.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


101

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


102

Comparao de Metodologias - Gesto de Requisitos e Facilidade de Manuteno

Comparao de Metodologias - Gesto de Requisitos e Facilidade de Manuteno

No desenvolvimento estruturado,
O sistema consiste num conjunto de dados que so usados (em leitura e/ou escrita) por inmeras funes, de forma mais ou menos independente. O sistema corresponde a uma malha arbitrria de inmeras

Desenvolvimento objetos.

estruturado

vs.

desenvolvimento

orientado

por

interdependncias entre funes e dados.

No desenvolvimento orientado por objetos,


Dados e funes so agregados conjuntamente numa entidade lgica (o objeto) que providencia uma interface bem definida para outros objetos comunicarem com ele. O sistema corresponde a uma malha de interdependncias entre objetos.
Uma alterao dos dados pode implicar a alterao de inmeros fragmentos de cdigo Impacto restrito na alterao de dados e cdigo. Manuteno mais fceis, reutilizao, etc..

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


103

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


104

Comparao de Metodologias - Gesto de Requisitos e Facilidade de Manuteno

Comparao de Metodologias - Representao da Realidade

As abordagens orientadas por objetos facilitam significativamente a gesto das alteraes de requisitos. Imagine-se as implicaes que a alterao da estrutura dos dados implica em ambas as abordagens.
Na abordagem estruturada, seria necessrio adaptar consistentemente todas as funes que acedessem estrutura de dados envolvida, e, na pior das situaes, a todas as funes que dependessem funcionalmente dessas primeiras funes. Nas abordagens orientadas por objetos, apenas seria necessrio alterar a estrutura de dados que supostamente era definida no contexto interno de um determinado objeto. Caso essa alterao no implicasse a alterao da interface providenciada pelo objeto, no haveria mais nada a fazer!

Nas abordagens orientada por objetos, as entidades do mundo real so captadas diretamente por objetos:
um carro um objeto do tipo carro, uma conta bancria um objeto do tipo conta bancria, etc.

Tal como as entidades do mundo real, os objetos apresentam dados e comportamento, bem como identidade prpria.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


105

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


106

Comparao de Metodologias - Representao da Realidade

Comparao de Metodologias - Representao da Realidade

Nas

abordagens

estruturadas,

uma

conta

bancria

pode

ser

Especializao de contas bancrias na abordagem OO.

representada atravs de um ou mais mdulos com funes especficas que acedem a vrias estruturas de dados de forma independente. Nestas abordagens, o foco
na definio do modelo de dados da conta bancria (isto , no desenho da base de dados que suporta contas bancrias) ou, alternativamente, na definio dos processos/funes que acedem e manipulam contas bancrias.

difcil explicitar especializaes ou generalizaes correspondentes a conceitos inerentes a entidades do mundo real que existam ou que venham a existir.
No trivial na abordagem estruturada introduzir-se posteriormente a noo de contas bancrias especializadas, o que simples na abordagem orientada por objetos (ver figura).
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


107

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


108

Comparao de Metodologias - Outros Aspetos

Comparao de Metodologias - Outros Aspetos

As abordagens orientadas por objetos apresentam outras vantagens comparativamente com as abordagens estruturadas, resumidamente:
Providencia blocos de construo de alto nvel que reduzem os custos de desenvolvimento, pela promoo da reutilizao e encapsulamento de software; este fato permite
reduzir as interdependncias e facilitar a manuteno posterior.

Embora a abordagem orientada por objetos possa j ser considerada estabelecida e madura, implica alguns cuidados na sua aplicao, pelo facto de levantar algumas questes:
Exige uma nova forma de pensar o processo de desenvolvimento. A orientao por objetos deve ser utilizada em todas as fases do ciclo de vida do software.
Por exemplo, no tem muito sentido usar-se uma linguagem orientada por objetos a seguir a um ciclo de anlise e desenho tradicional, ou vice-versa.

Facilita a transferncia de conhecimento atravs da adoo de padres de desenho, reduzindo o custo de aprendizagem. Providencia um framework (aplicacional ou de middleware) para facilitar a extenso do sistema, reduzindo o custo de novas verses. Reduz o custo de alterao do sistema, em resposta s expectativas e requisitos dos utilizadores.
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

A gesto da empresa ou do projeto tem de comprar a mudana para a filosofia orientada por objetos, em particular tem de definir os objetivos comerciais para a mudana.
Por exemplo, reduo dos custos de manuteno do software.

A migrao para a orientao por objetos tem de ser devidamente planeada para garantir a sua eficcia.
Engenharia de Software - 2011/2012 Carlos Barrico - Departamento Informtica da UBI

Cap. 3 Evoluo das Metodologias de Desenvolvimentos de Software [Parte 1]


109

Comparao de Metodologias - Outros Aspetos

Apesar das vantagens sublinhadas da abordagem da orientao por objetos no desenvolvimento de software, no se deve concluir que esta sempre mais adequada que a aproximao estruturada.
H vrias situaes em que mais correto seguir uma metodologia estruturada. Por exemplo, se a linguagem de programao utilizada pela organizao for Cobol, RPG ou C e o ambiente de desenvolvimento for estruturado, ento far mais sentido aplicar metodologias estruturadas ao longo de todas as fases do projeto.

Engenharia de Software - 2011/2012

Carlos Barrico - Departamento Informtica da UBI