Preview only show first 10 pages with watermark. For full document please download

Engenharia De Software - Aula 3

Engenharia de software Luís A. Alexandre UBI, 25 de Fevereiro de 2008

   EMBED


Share

Transcript

Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Engenharia de Software Lu´ıs A. Alexandre UBI, 10 de Mar¸co de 2008 Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Conte´udo I T´opicos de gest˜ao de projecto I O paradigma OO I Identifica¸c˜ao dos elementos dum modelo OO I Conclus˜ao Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao O que ´e a Gest˜ao de Projecto I O desenvolvimento de software ´e normalmente organizado em projectos. I O projecto pode ser definido como sendo ”um empreendimento tempor´ario levado a cabo com o objectivo de produzir um produto ou servi¸co u ´nico”. I No projecto est˜ao normalmente envolvidas v´arias pessoas. ´ necess´ario que exista algum tipo de coordena¸c˜ao: E I I I I das ac¸c˜ oes desenvolvidas no projecto das pessoas envolvidas no projecto Essa coordena¸c˜ao ou gest˜ao ´e normalmente feita por um chefe de projecto. Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Fases de um projecto I Selec¸c˜ao e avalia¸c˜ao de um projecto I Defini¸c˜ao e planeamento detalhado I Execu¸c˜ao, controlo e encerramento do projecto I Gest˜ao de equipas I Iremos focar aspectos do primeiro e u ´ltimo pontos. Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Selec¸c˜ao de um projecto I A selec¸c˜ao de um projecto tem que ver com os objectivos que a organiza¸c˜ao tem: I I I estamos numa fase de cria¸c˜ao de novos produtos ou de amadurecimento dos existentes ? que vantagens, face `a concorrˆencia, trar´a o resultado do projecto ? (baixa custos, aumenta produtividade, abre nova ´area de neg´ ocio, etc.) existem recursos suficientes para o desenvolvimento do projecto (humanos e materiais) ? Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Avalia¸c˜ao de um projecto I I A avalia¸c˜ao de um projecto ´e feita de 2 ˆangulos: avalia¸c˜ao financeira e t´ecnica. Do ponto de vista financeiro: ser´a que compensa `a organiza¸c˜ao desenvolvˆe-lo ? Podem usar-se v´arios indicadores para efectuar esta avalia¸c˜ao, entre eles: I I I I VAL (Valor Actualizado L´ıquido): se o valor do projecto no final for X , ver a rela¸c˜ao entre o que temos que investir hoje para atingir o valor X no futuro. Projectos com VAL <0 devem ser rejeitados. TIR (Taxa Interna de Rentabilidade): uma medida de quanto tem de ser a produtividade da equipa para que o VAL seja positivo PRI (Per´ıodo de Recupera¸c˜ao do Investimento): qual o tempo necess´ario para a recupera¸c˜ao do investimento inicial. Do ponto de vista t´ecnico h´a que verificar se ´e exequ´ıvel e adequado. Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Gest˜ao de equipas I I Uma componente fundamental num projecto de software s˜ao as pessoas. ´ importante saber gerir as pessoas pois s˜ao o elemento E chave: podem tornar o projecto num sucesso ou num fracasso. I Ao ser formada uma nova equipa surge ansiedade: tem que ser gerida pois distrai os membros do projecto do objectivo central. I Fontes de ansiedade: como se lida com o chefe ?, como vai funcionar o projecto ?, ser´a que este projecto vai beneficiar a minha carreira ?, que altera¸c˜ oes vai implicar no meu estilo de vida ?, terei competˆencia para o integrar ? Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Papel do chefe de projecto I O chefe de projecto deve discutir com os membros da equipa: I I I I I I I quais os objectivos do projecto; quem est´a envolvido e porquˆe; a importˆancia do projecto para a organiza¸c˜ao; as recompensas que resultar˜ao do sucesso do projecto; os problemas e limita¸c˜ oes que poder˜ao ser encontrados; regras para funcionamento do projecto (frequˆencia de reuni˜oes, tipo de documenta¸c˜ao a usar,etc.); pedir sugest˜ oes aos membros. Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Competˆencias do chefe de projecto I O chefe de projecto deve possuir as seguintes competˆencias: I I I I I saber liderar (estilos: directivo, participativo, laissez-faire) saber criar um ”esp´ırito de equipa” saber motivar os membros da equipa saber delegar a autoridade saber gerir conflitos (cinco formas de o fazer: competi¸c˜ao, colabora¸c˜ao, compromisso, supress˜ao, acomoda¸c˜ao) Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Abordagem OO I Vivemos rodeados por objectos. I Abordagem OO para desenvolver software proposta no fim dos 1960s O problema ´e caracterizado por: I I I I um conjunto de objectos pelos atributos dos objectos pelos comportamentos dos objectos I Os objectos s˜ao manipulados usando m´etodos (ou opera¸c˜oes ou servi¸cos) I Os objectos comunicam entre si usando mensagens Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Abordagem OO I O processo mais adaptado ao desenvolvimento OO ´e o evolutivo. I Este processo deve ser visto numa perspectiva de reutiliza¸c˜ao de componentes: procurar componentes antes de come¸car a implementar. I Identificar as classes b´asicas do problema na primeira abordagem ao cliente. I As classes produzidas devem ser disponibilizadas para reutiliza¸c˜ao. I A necessidade duma abordagem evolutiva justifica-se pela dificuldade em identificar numa primeira fase todas as classes necess´arias. Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Abordagem OO I Vantagens: I I I Reutiliza¸c˜ao de componentes Manuten¸c˜ao mais f´acil Altera¸c˜ oes mais f´aceis Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Classes e objectos I Classe: conceito OO que encapsula dados e ac¸c˜oes relativas a uma entidade. I Os dados (atributos) s˜ao normalmente apenas acess´ıveis usando ac¸c˜oes(m´etodos): a informa¸c˜ao est´a oculta. I As modifica¸c˜oes ficam facilitadas pois desde que o comportamento duma classe se mantenha, os atributos podem ser modificados. I Os objectos s˜ao instˆancias das classes. Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Atributos I Representam caracter´ısticas est´aveis dos objectos. I Ex: uma ma¸c˜a tem uma cor, um peso, uma categoria, uma variedade. I Os atributos podem receber valores por defeito. Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Opera¸c˜oes, m´etodos ou servi¸cos I Cada uma das opera¸c˜ oes encapsuladas num objecto fornece uma representa¸c˜ao de um dos seus comportamentos ou efectua algum servi¸co relacionado com os atributos do objecto. I Ex: um objecto alarme tanto pode ter m´etodos para accionarem uma sirene como m´etodos para informar sobre o estado da sirene. Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Mensagens I S˜ao o meio de interac¸c˜ao entre objectos. I Um objecto envia uma mensagem a outro o qual efectua alguma opera¸c˜ao como consequˆencia da mensagem que recebeu. Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Os 3 conceitos chave I O encapsulamento ´e o conceito relativo `a jun¸c˜ao de dados e opera¸c˜oes num u ´nico objecto. Permite uma maior modularidade e reduz os efeitos colaterais resultantes de altera¸c˜oes. I A heran¸ca permite que atributos e opera¸c˜ oes duma classe sejam herdados por todas as suas subclasses e objectos instanciados a partir delas, reduzindo o c´ odigo que necessita de ser escrito e tornando a modela¸c˜ao mais elegante. I O polimorfismo permite o uso do mesmo nome para v´arias opera¸c˜oes (distintas) facilitando compreens˜ao e modifica¸c˜oes. Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Identificar classes e objectos I I Dada uma descri¸c˜ao do problema, anotar os substantivos (e seus sin´onimos). Os objectos podem ser: I I I I Entidades externas que produzem ou consomem informa¸c˜ao a ser gerada pelo software (ex: outros sistemas, dispositivos, pessoas). Coisas que s˜ao parte do dom´ınio de informa¸c˜ao do problema (ex: relat´ orios, figuras, sinais). Ocorrˆencias ou eventos que ocorrem dentro do contexto da opera¸c˜ao do sistema (ex: abertura duma janela, envio duma mensagem, movimento dum robot). Pap´eis desempenhados por pessoas que interagem com o sistema (ex: gerente, vendedor, engenheiro). Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Identificar classes e objectos I Os objectos podem ser (continua¸c˜ao): I I I Unidades organizacionais que s˜ao relevantes para a aplica¸c˜ao (ex: empresa, departamento, uma equipa). Lugares que estabelecem o contexto do problema ou a fun¸c˜ao global do sistema (ex: departamento de produ¸c˜ao, armaz´em). Estruturas que definem uma classe de objectos ou classes que est˜ao relacionadas com objectos (ex: sensores, ve´ıculos, computadores). Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Identificar classes e objectos I I A lista de objectos que se obt´em filtrando a descri¸c˜ao do problema levando em conta a categoriza¸c˜ao anterior, deve ser considerada como uma lista de potenciais objectos. Para seleccionar aqueles que devem ser usados, devem ser consideradas as seguintes caracter´ısticas: 1. Informa¸c˜ao retida: se a informa¸c˜ao sobre ele tiver que ser guardada para que o sistema funcione. 2. Servi¸cos necess´arios: deve ter um conjunto de opera¸c˜oes identific´aveis que podem alterar o valor dos seus atributos. 3. Atributos m´ ultiplos: objectos com apenas um atributo devem tornar-se atributo de outros objectos. Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Identificar classes e objectos I caracter´ısticas (continua¸c˜ao): 4 Atributos comuns: os atributos definidos para o objecto aplicam-se a todas as ocorrˆencias do objecto. 5 Opera¸c˜ oes comuns: as opera¸c˜ oes definidas para o objecto aplicam-se a todas as ocorrˆencias do objecto. 6 Requisitos essenciais: uma entidade externa que produza ou consuma informa¸c˜ao essencial para o sistema deve ser definida como objecto. Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Especificar atributos I Identificar os dados que descrevem o objecto no contexto do problema. I Exemplo: um jogador de futebol numa aplica¸c˜ao de contabilidade pode ter como atributos o nome, NIF, morada e ordenado enquanto que numa aplica¸c˜ao de estat´ıstica pode ter o clube a que pertence, o n. de golos marcados, a idade. Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Definir opera¸c˜oes I As opera¸c˜oes definem o comportamento do objecto e modificam de alguma forma os seus atributos. I Procurar os verbos na descri¸c˜ao do problema: quando estes se referem a ac¸c˜oes relacionadas com objecto identificados ´e prov´avel que estejamos perante uma opera¸c˜ao v´alida. I Verificar se os objectos na descri¸c˜ao comunicam entre si: se sim, temos opera¸c˜ oes relacionadas com o envio, recep¸c˜ao e processamento de mensagens. Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Leituras complementares I Ant´onio Miguel, ”Gest˜ao de projectos de software”, 2a. edi¸c˜ao, FCA, 2006. I Pressman: 20.1 at´e 20.3 inclusive. Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Question´ario 1. Cite um indicador que pode ser usado para avaliar um projecto do ponto de vista financeiro. 2. Cite duas competˆencias que um lider de projecto deve possuir. 3. Considere a seguinte descri¸c˜ao: ”O software X permite que o utilizador configure a sua caixa de email. Permite a cria¸c˜ao, remo¸c˜ao e altera¸c˜ao de contactos numa lista de contactos associada `a caixa de correio. Cada contacto tem al´em do endere¸co email, um nome e um n. de telefone. O X emite um aviso sonoro sempre que ´e recebida uma mensagem nova. A interac¸c˜ao com o X ´e feita via browser. Toda a interface de X ´e configur´avel em termos de aparˆencia.” Identifique poss´ıveis objectos, atributos, m´etodos e mensagens de X. Lu´ıs A. Alexandre Engenharia de Software Gest˜ ao de projecto O paradigma OO Identifica¸c˜ ao dos elementos dum modelo OO Conclus˜ ao Question´ario 4 Qual a importˆancia do encapsulamento em termos de desenvolvimento de software ? 5 Porque ´e que um processo evolutivo ´e mais adequado quando se pretende desenvolver software usando uma abordagem OO ? Lu´ıs A. Alexandre Engenharia de Software