Académique Documents
Professionnel Documents
Culture Documents
BIBLIOGRAFIA RECOMENDADA PARA A MATRIA PRESSMAN, Roger S. (2002). Engenharia de Software. Editora: McGraw-Hill. FIORINI, Soeli T., VON STAA, Arndt., BAPTISTA, Renan Martins (1998). Engenharia de Software com CMM. Editora: Brasport. MAFFEO, Bruno (1997). Engenharia de Software e Especificao de Sistemas. Editora: Campus.
ATENO Esta apostila serve somente como um guia para a matria, no havendo compromisso com o fornecimento de detalhes sobre os tpicos abordados. Para a obteno de mais detalhes sobre os assuntos trabalhos, consulte a bibliografia citada acima e ao final deste documento.
V2.1
2/43
Unidade I - Conceituao
I.1 - Fatores Considerados no Desenvolvimento de Software
SOFTWARE
ENGENHARIA DE SOFTWARE
A IMPORTNCIA DO SOFTWARE
V2.1
3/43
A IMPORTNCIA DO SOFTWARE
AVANOS DA MICROELETRNICA
V2.1
4/43
EVOLUO
IMPACTO DE CONSUMO
1950
1960
1970
1980
2000
V2.1
5/43
CARACTERSTICAS E COMPONENTES O SOFTWARE DESENVOLVIDO OU PROJETADO POR ENGENHARIA, NO MANUFATURADO NO SENTIDO CLSSICO ( NO PROCESSO MECNICO) O SOFTWARE NO SE DESGASTA Curva de falha para o hardware Curva ideal de falhas do software Curva real de falhas do software A MAIORIA DOS SOFTWARES FEITO SOB MEDIDA EM VEZ DE SER MONTADO DE COMPONENTES EXISTENTES COMPONENTES DO SOFTWARE SO CRIADOS POR MEIO DE UMA SRIE DE CONVERSES QUE MAPEIAM AS EXIGNCIAS DO CLIENTE PARA CDICO EXECUTVEL EM MQUINA
O MODELO DAS EXIGNCIAS
PROJETO
CODIFICAO EM
LINGUAGEM
AS LINGUAGENS EM USO SO: LINGUAGENS DE MQUINA : LINGUAGENS DE ALTO NVEL: Pascal, C, ADA, C++, Object Pascal, Eiffel, LISP, PROLOG, etc. E NO PROCEDIMENTAIS: Linguagens de Banco de Dados
V2.1
6/43
Produtos de uma soluo com a aplicao de engenharia de software: Cdigo Executvel (Programa, Subprogramas, DLLs, Scripts etc.) Cdigo Fonte Bibliotecas Banco de Dados Manual do Usurio (Help On-line) Manual de Operao Manual Tcnico (Documentao do Cdigo) Treinamento Manual de Instalao (Pacote de Instalao) Manual de Procedimentos
EXIGNCIA: REUSABILIDADE
V2.1
7/43
APLICAES EM SOFTWARES SOFTWARE BSICO COMPILADORES, EDITORES DE TEXTOS, SISTEMAS OPERACIONAIS etc. SOFTWARE DE TEMPO REAL RESPONDE DENTRO DE RESTRIES DE TEMPO ESTRITAS. SISTEMA DE CONTROLE DE VO E DE SINALIZAO DE TRNSITO SOFTWARE COMERCIAL FOLHA DE PAGAMENTO, CONTAS A PAGAR E A RECEBER, ESTOQUE, EVOLUINDO PARA MIS - OPERAES COMERCIAIS E DE APOIO A DECISO SOFTWARE CIENTFICO E DE ENGENHARIA SISTEMA DE ASTRONOMIA, SISTEMA DE CONTROLE DA DINMICA ORBITAL DE NAVES ESPACIAIS, SISTEMAS DE MANUFATURA AUTOMATIZADA, CAD etc. SOFTWARE EMBUTIDO FUNES DIGITAIS EM AUTOMVEIS (CONTROLE DE COMBUSTVEL, SISTEMA DE FREIOS, CONTROLE DE TECLADO PARA FORNOS MICROONDAS SOFTWARE DE COMPUTADOR PESSOAL
PROCESSAMENTO DE TEXTOS, PLANILHA ELETRNICA, GERENCIADOR DE DADOS etc. SOFTWARE DE INTELIGNCIA ARTIFICIAL SOFTWARE BASEADO EM CONHECIMENTO
V2.1
8/43
PROBLEMAS AS ESTIMATIVAS DE PRAZO E DE CUSTO SO FREQUENTEMENTE IMPRECISAS A PRODUTIVIDADE DAS PESSOAS DA REA DE SOFTWARE NO TEM ACOMPANHADO A DEMANDA POR SERVIOS A QUALIDADE DE SOFTWARE MENOS QUE A ADEQUADA NO SE DEDICA TEMPO COLETA DE DADOS ( ERRA-SE NO PLANEJAMENTO ) INSATISFAO DO CLIENTE COM O SISTEMA PRONTO ( COMUNICAO ENTRE O CLIENTE E O DESENVOLVEDOR FRACA) DIFICULDADE EM MANTER O SOFTWARE EXISTENTE
E CAUSAS
ANALISTA X USURIO
V2.1
9/43
CAUSAS EXPERINCIA POUCO MAIS DE 40 ANOS PROFISSIONAIS DE INFORMTICA COM POUCO TREINAMENTO FORMAL EM TCNICAS PARA DESENVOLVIMENTO DE SOFTWARES GERENTES SEM BACKGROUND TUDO DEVE SER FEITO PARA ONTEM
V2.1
10/43
ENGENHARIA DE SOFTWARE
O estabelecimento e uso de slidos princpios de engenharia para que se possa obter economicamente um software que seja confivel e que funcione eficientemente em mquinas reais. Fritz Bauer
uma disciplina que integra mtodos, ferramentas e procedimentos para o desenvolvimento de software de computador. mtodos: envolvem um amplo conjunto de tarefas que incluem: planejamento e estimativa de projeto, anlise de requisitos de software e de sistemas, projeto de estrutura de dados, especificao e codificao de programas, teste e manuteno. ferramentas Engineering : CASE Computer-Aided Software
procedimentos : constituem o elo de ligao que mantm juntos os mtodos e as ferramentas para desenvolvimento do software.
V2.1
11/43
Estudode V iabilidade A nlise de Sistem as Projetode Sistem as C onstruo Testes Im plantao M anuteno
1 Estudo de Viabilidade
Especificao preliminar de requisitos e restries Anlise de Custo-benefcio Benefcios quantitativos: Anlise Financeira - Clculos VPL = VPB - VPC VPL = Valor Presente Lquido VPB = Valor Presente dos Benefcios VPC = Valor Presente dos Custos Quando VPL > 0, o projeto gera valor Mesmo projetos com VPL < 0, consumidores de valor, podem ser aceitos, principalmente quando eles representem opes de ganhos futuros vide mercado de opes reais.
2 Anlise de Sistemas
O que fazer? Ausncia de detalhes fsicos, de implementao.
V2.1 12/43
3 Projeto de Sistemas
Como fazer? Incorporao dos detalhes fsicos.
4 Testes
Integrao de Mdulos Integrao de Sistemas Homologao pelos Usurios
5 Implantao
Plano de implantao Plano de contingncia Treinamento Converses e migraes Implantao em Produo
6 Manuteno
Manutenes corretivas Manutenes evolutivas e adaptativas
V2.1
13/43
Desenho
Implementao e Teste
Integrao e Teste
Operacionalizao e Manuteno
V2.1
14/43
PROTOTIPAO
PROCESSO QUE CAPACITA O DESENVOLVEDOR A CRIAR UM MODELO DO SOFTWARE QUE SER IMPLEMENTADO.
Fim
Incio
Projeto Rpido
V2.1
15/43
O MODELO ESPIRAL
R isk analys is R isk analys is R isk analys is Prot otyp e 2 Risk analysis Prot oty pe 1 C oncept o f Operati on
Prot otyp e 3
Sim ul ati ons, m odels, b en ch marks S /W requi rement s Prod uct desi gn
C ode Uni t t es t Desi gn V& V Integr ati on test Accep tance test Develop, v erify Serv ice next -l evel p rod uct
Detail ed desi gn
- O processo representado como uma espiral em vez de sequncia de actividades - Cada volta da espiral representa uma fase do processo - No h fases fixas como especifica e desenho - as voltas na espiral so determinadas pelo que requerido - Riscos so explicitamente avaliados e resolvidos no processo
V2.1
16/43
As novas ferramentas CASE agora suportam o uso das 4GT. Gerao de Cdigo Automtica
V2.1
17/43
COMBINANDO PARADIGMAS
ANLISE DE REQUISITOS
PROTOTIPAO
4GT
MODELO ESPIRAL
4GT
MANUTENO
V2.1
18/43
V2.1
19/43
Medidas de Produtividade Medidas e Mtricas A medio nos capacita a quantificar e, por conseguinte, a administrar mais efetivamente. Muitas vezes leva a controvrsias e a argumentaes: Quais as mtricas apropriadas? Medies no mundo fsico podem ser diretas (ex.: tamanho de um parafuso) ou indiretas (ex.: qualidade dos parafusos, com base no nmero de rejeitados).
V2.1
20/43
Estimativas De esforo humano exigido. Ex.: pessoas/hora, pessoas/ms. De durao cronolgica do projeto. Ex.: em tempo de calendrio. De custo. Ex.: em reais ou dlares. Em muitos casos as estimativas so feitas usando-se a experincia passada como nico guia, mas somente ela poder no ser suficiente para todos os casos. Assim, surgiram vrias tcnicas de estimativa para o desenvolvimento de software. Atributos das tcnicas de estimativa: O escopo do projeto deve ser estabelecido antecipadamente; O histrico de aferies passadas usado como uma base a partir da qual estimativas so feitas; O projeto dividido em pequenas partes que so estimadas individualmente.
Medidas do Software O software medido pelas seguintes razes: Indicar a sua qualidade; Avaliar a produtividade das pessoas que o produzem; Avaliar os benefcios derivados, em termos de qualidade e produtividade; Formar uma linha bsica (baseline) para estimativas; Ajudar a justificar pedidos de novas ferramentas e treinamento. Mtricas de produtividade (PF / hora, LOC / hora etc.) PF = Pontos de Funo, tpico abordado mais adiante neste documento. LOC = Nmero de Linhas de Cdigo. Mtricas da qualidade (No. Erros / PF, No. Erros / LOC) Mtricas tcnicas (Ex.: complexidade lgica, grau de modularidade) Mtricas orientadas ao tamanho (Ex.: nmero de linhas de cdigo LOC) Mtricas orientadas funo (Ex.: mtodo Ponto de Funo)
Mtricas orientadas ao tamanho Medidas diretas do software e do processo de desenvolvimento LOC Linhas de Cdigo Provocam controvrsias e no so universalmente aceitas como a melhor maneira de medir Prs: Podem ser facilmente contadas; Tem significado direto, ou seja, o nmero de linhas de um programa. Contras: So dependentes da linguagem de programao, pois penalizam programas bem projetados, porm mais curtos, e no podem acomodar facilmente linguagens no procedimentais;
Prof. Moacir Sanglard V2.1 21/43
Seu uso em estimativas requer um nvel de detalhe alto, ficando difcil na Anlise, por exemplo, saber quantas linhas ter o sistema. Mtricas orientadas funo Medidas indiretas do software e do processo de desenvolvimento Em vez de contar as linhas de cdigo, a mtrica concentra-se na funcionalidade ou na utilidade do programa Tambm controversa FP Mtodo do Ponto de Funo
Parmetros de medida Nmero de entradas do usurio Nmero de sadas do usurio Nmero de consultas do usurio Nmero de arquivos lgicos internos Nmero de arquivos de interface externa Contagem total Simples (__ x 3) + (__ x 4) + (__ x 3) + (__ x 7) + (__ x 5) + Fator de Ponderao Mdio Complexo (__ x 4) + (__ x 6) + (__ x 5) + (__ x 7) + (__ x 4) + (__ x 6) + (__ x 10) + (__ x 15) + (__ x 7) + (__ x 10) + Subtota l = = = = = =
+ + + +
Nmero de entradas do usurio: cada entrada do usurio que proporcione dados distintos orientados aplicao contada. As entradas dever ser distinguidas das consultas, as quais so contadas separadamente. Nmero de sadas do usurio: cada sada do usurio que proporcione informaes orientadas a aplicao contada. Por exemplo, um relatrio contado como uma sada. Nmero de consultas do usurio: uma consulta definida como uma entrada on-line que resulte na gerao de alguma resposta e software imediata na forma de uma sada on-line. Cada consulta distinta contada. Nmero de arquivos lgicos internos: cada arquivo lgico, ou seja, um agrupamento lgico de dados, que pode ser uma parte de um grande banco de dados ou um arquivo convencional que seja mantido pela aplicao, contado. Nmero de arquivos de interface externa: todas as interfaces legveis por mquina (por exemplo, arquivos de dados em fita ou disco) que sejam usadas para transmitir informaes a outro sistema so contadas, incluindo os arquivos lgicos que sejam somente consultados pela aplicao. Assim que os dados anteriores tiverem sido reunidos, um valor de complexidade associado a cada contagem. Cada organizao desenvolve critrios para determinar se uma entrada particular simples, mdia ou complexa. A contagem total obtida atravs do somatrio dos valores da coluna Sub total representa o Nmero de Pontos de Funo No Ajustados. Valor de Ajuste da Complexidade definido com base nas respostas s perguntas a seguir, que so dadas atravs da pontuao numa escala de 0 a 5:
Prof. Moacir Sanglard V2.1 22/43
0 Sem influncia
1 Incidental
2 Moderado
3 Mdio
4 Significativo
5 Essencial
1) o sistema requer backup e recuperao confiveis? 2) So exigidas comunicaes de dados? 3) H funes de processamento distribudas? 4) O desempenho crtico? 5) O sistema funcionar intensivamente utilizado? num ambiente operacional existente,
6) O sistema requer entrada de dados on-line? 7) A entrada de dados on-line exige que a transao de entrada seja elaborada em mltiplas telas ou operaes? 8) Os arquivos so atualizados on-line? 9) A entrada, sada, arquivos oo consultas so complexos? 10) O processo interno complexo? 11) O cdigo foi projetado de forma a ser reutilizvel? 12) A converso e a instalao esto includas no projeto? 13) O sistema organizaes? projetado para mltiplas instalaes em diferentes
14) A aplicao projetada de forma a facilitar mudanas (parametrizao, customizao) e o uso (conforto) pelo usurio? Somar os valores dados a cada pergunta anterior para compor o Valor de Ajuste da Complexidade Para computar os pontos de funo, a seguinte frmula usada: PF = PontosdeFunoNoAjustados ValordeAjustedaComplexidade] x [0,65 + 0,01 x =
ValordeAjustedaComplexidade]
Os pontos de funo - PF podem ser usados de maneira anloga s LOC como medida de produtividade, qualidade e outros atributos do software: Produtividade = PF / pessoa-ms Qualidade = defeitos / PF Custo = $ / PF Documentao = pginas de documentao / PF Prs:
Prof. Moacir Sanglard V2.1 23/43
Independe da linguagem de programao, ou seja, funciona para linguagens convencionais e no-procedimentais; Se baseia em dados que tm maior probabilidade de ser conhecidos logo no comeo da evoluo de um projeto (estimativas). Contras: Se baseia em dados subjetivos; Dificuldade de definio do domnio da aplicao a posteriori; No tem nenhum significado direto, apenas um nmero. Ponto de Particularidade Feature Point Variao do mtodo de PF para aplicaes de tempo real, controle de processos e software embutido
Parmetros de medida Nmero de entradas do usurio Nmero de sadas do usurio Nmero de consultas do usurio Nmero de arquivos lgicos internos Nmero de arquivos de interface externa Algoritmos Contagem total Contagem Fator de Ponderao x4 x5 x4 x7 x7 x3 Subtotal = = = = = = = + + + + + +
A tabela anterior deve ser utilizada para o clculo dos Pontos de Funo No Ajustados e os demais clculos so feitos de forma idntica
V2.1
24/43
Ponto por Objeto Medida indireta do software criada por Barry Boehm para fornecer subsdio em termos de informao de tamanho necessria para a aplicao do modelo COCOMO II, descrito a seguir nesta apostila. Calculada usando-se a contagem da quantidade de: telas (inerface com o usurio), relatrios e componentes. Cada instncia de objeto classificada em simples, mdia ou difcil, usando critrios definidos por Boehm, basicamente quantidade e fonte das tabelas de dados do cliente e servidores, que so necessrias para gerar a tela ou relatrio, e da quantidade de campos ou sees apresentadas como parte da tela ou relatrio. Aps a determinao da complexidade, a quantidade de telas, relatrios e de componentes ponderada de acordo com o quadro a seguir:
Tipo de objeto Tela Relatrio Componente 3GL Fator de Ponderao Simples Mdio Difcil (__ x 1) + (__ x 2) + (__ x 3) + (__ x 2) + (__ x 5) + (__ x 8) + (__ x 10) + TOTAL
SubTotal
= = = =
+ +
Novos Pontos por Objeto = NOP = (pontos por objeto) x [(100 - % de reuso)/100]
V2.1
25/43
V2.1
26/43
V2.1
27/43
Gerente
Infraestrutura
Aplicaes
Negcio
Telecomunicaes
Geral
Desenvolvimento
Suporte e Arquitetura
Operaes
Analistas
Analistas
Operadores
Programadores
V2.1
28/43
Exerccio - Unidade II
MINI-MUNDO PROPOSTO COMO ESTUDO DE CASO Um restaurante necessita de automatizar algumas de suas atividades. Desta forma, solicitou um sistema que controlasse o pedido de encomendas feitas pelo cliente atravs do telefone, o fornecimento e a compra de ingredientes para fazer os pratos e a composio de cada prato. Toda encomenda feita pelo cliente, naturalmente, possui um nmero para identific-la. Ao fazer uma encomenda, o cliente informa seu nome, endereo, telefone e os pratos que deseja, com a respectivas quantidades. Por exemplo, a encomenda 123 do cliente Pedro constituda de 3 saladas mistas e 2 frangos grelhados simples. Cada prato possui o seu preo unitrio. Um dos objetivos do sistema registrar para cada prato, os ingredientes que o compem, com as respectivas quantidades. Ou seja, um pudim composto de duas latas de leite condensado, dentre outras coisas. Outro objetivo gerar uma listagem, contendo para cada fornecedor, os ingredientes que fornece. Tambm necessrio que seja gerado um relatrio contendo, para cada encomenda, o nome do cliente, o endereo, o telefone e os pratos pedidos, com as respectivas quantidades e preos. O sistema deve registrar a compra de ingredientes, guardando o nmero da nota fiscal, a quantidade comprada de cada ingrediente, a data de compra e o nome do fornecedor, a fim de contabilizar o custo com a compra de ingredientes.
Prova 1
V2.1
29/43
V2.1
30/43
Obs.: Cada uma das opes to boa quanto to bons forem os dados histricos Tcnicas de Decomposio Estimativas de LOC e Pontos de Funo Estima-se LOC ou PF otimista, mais provvel e pessimista para cada funo Mdia ponderada: MP = (otimistas + 4*maisprovveis + pessimistas) / 6 Aplica uma das abordagens a seguir: 1. Multiplicar MP pela mtrica de produtividade mdia correspondente MP calculada anteriormente. Ex: MP = 310 PF Produtividade mdia baseada em projetos passados = 5,5 PF/pessoams Esforo = 310 / 5,5 = 56 pessoa-ms 2. Multiplicar MP pelo valor de produtividade ajustado, que se baseia no nvel de complexidade percebido da funo. Para as funes de complexidade mdia, usa-se a mtrica de produtividade mdia. As de complexidade baixa, tm a mtrica reduzida e as de complexidade alta, tm a mtrica aumentada (um tanto subjetivamente). Aps todo este trabalho, vem a pergunta: As estimativas esto corretas? A nica resposta razovel : no podemos ter certeza.
V2.1
31/43
Estimativa de Esforo Tcnica mais comum para se levantar os custos de qualquer projeto de desenvolvimento de engenharia. Um nmero de pessoas-dia, ms ou ano aplicado soluo de cada tarefa do projeto. Um custo em dlares associado a cada unidade de esforo e um custo estimado, derivado. Exemplo:
Tarefas Funes Funo 1 Funo 2 Funo 3 Funo 4 Funo 5 Funo 6 Funo 7 1,0 2,0 2,5 2,0 1,5 1,5 4,0 2,0 10,0 12,0 6,0 11,0 6,0 14,0 0,5 4,5 6,0 3,0 4,0 3,5 5,0 26.5 4.250 112.625 3,5 9,5 11,0 4,0 10,5 5,0 7,0 50.5 4.500 227.250 7 26 31,5 15 27 16 30 152,5 708.075
Custo estimado para todas as tarefas Esforo estimado para todas as tarefas
Projeto
Cdigo
Teste
Total
Total* 14,5 61 Taxa ($) 5.200 4.800 Custo ($) 75.400 292.800 * Todas as estimativas em pessoas-ms
Modelos empricos de estimativa COCOMO Constructive Cost Model Modelo de Custo Construtivo Em seu livro sobre engenharia econmica de software, Barry Boehm apresenta uma hierarquia de modelos de estimativa de software que traz o nome de COCOMO, de COnstructive Cost MOdel (Modelo de Custo Construtivo). O modelo COCOMO evoluiu para um modelo de estimativa mais abrangente, chamado COCOMO II, que se baseia em modelos matemticos obtidos a partir da experincia com diversos projetos. uma hierarquia de modelos de estimativa: Modelo de composio da aplicao (usado nos primeiros estgios da engenharia de software); Modelo do primeiro estgio do projeto (usado aps a definio dos requisitos e arquitetura bsica do software); Modelo para o estgio aps a arquitetura (usado na construo). Pode ser usado para definir um prazo timo para a execuo do Projeto atravs da utilizao de frmulas matemticas, requerendo informao de tamanho: Pontos de Funo; Pontos por Objeto; LOCs. Seguindo a mtrica de Pontos por Objeto, uma taxa de produtividade proposta de acordo com a tabela a seguir: PROD = NOP/pessoa-ms
V2.1
32/43
Experincia/capacidade do Muito desenvolvedor baixa Maturidade / capacidade do ambiente PROD Muito baixa 4
Baixa Baixa 7
Normal Normal 13
Alta Alta 25
Determinada a taxa de produtividade, a estimativa do esforo em pessoams pode ser obtida da seguinte forma: Esforo estimado = NOP/PROD Podem ser aplicados modelos mais avanados do COCOMO II com a utilizao de Pontos de Funo e Linhas de Cdigo (LOC). O Modelo de Estimativa de Putnam um modelo dinmico de mltiplas variveis que pressupe uma distribuio de esforo especfica ao longo da existncia de um projeto de desenvolvimento de software. O modelo foi construdo a partir de dados de produtividade coletados em mais de 4.000 projetos de software contemporneos: E = [LOC x B0,333 /P]3 x (1/t4) onde E = esforo em pessoas-ms ou pessoas-ano; t = durao do projeto em meses ou anos; B = fator de aptides especiais, que aumenta lentamente medida que cresce a necessidade de integrao, teste, garantia de qualidade, documentao e aptides gerenciais, sendo que para projetos menores (KLOC = 5 a 15), B = 0,16 e para projetos maiores que 70 KLOC, B = 0,39; parmetro de produtividade, que reflete a maturidade do processo e gerncia, uso de boas prticas de engenharia de software, nvel das linguagens de programao usadas, estado do ambiente de software, aptides e experincia da equipe e complexidade da aplicao. Exemplos de P: 2.000, para software embutido de tempo real; 10.000, para software de telecomunicaes; 12.000 para software cientfico, como CAD; 28.000 para aplicaes comerciais; tambm pode ser obtido com dados histricos coletados de desenvolvimentos anteriores da prpria empresa. Ferramentas de Estimativa Automatizadas As tcnicas de decomposio e os modelos de estimativa empricos descritos nas sees precedentes podem ser implementados em software. Essas ferramentas de estimativa automatizadas permitem que o planejador estime os custos e o esforo e realize anlises "o que se..." de importantes variveis de projeto, tais como a data de entrega e a composio do pessoal. No obstante existam muitas ferramentas de estimativa automatizadas, todas elas exibem as mesmas caractersticas gerais e exigem uma ou mais das seguintes categorias de dados:
Prof. Moacir Sanglard V2.1 33/43
l. Uma estimativa quantitativa do tamanho do projeto (por exemplo, LOC) ou da funcionalidade (dados de pontos-por-funo). 2. Caractersticas de projeto qualitativas, tais como complexidade, confiabilidade exigida ou carter crtico com relao ao negcio. 3. Alguma descrio do pessoal responsvel pelo desenvolvimento e/ou ambiente de desenvolvimento. A partir desses dados, o modelo implementado pela ferramenta de estimativa automatizada oferece estimativas do esforo exigido para se concluir o projeto, custos, composio do pessoal e, em certos casos, cronograma de desenvolvimento e riscos associados. Caractersticas gerais funes genricas das ferramentas: Dimensionamento dos produtos do projeto sujeitos a entrega; Seleo das atividades do projeto; Previso dos nveis de pessoal; Previso do esforo; Previso do custo; Previso dos cronogramas. As ferramentas de estimativa automatizadas realizam um dilogo com o planejador, obtendo no s informaes apropriadas de apoio e sobre o projeto mas tambm produzindo uma sada tanto tabular como (em certos casos) grfica. Quando ferramentas diferentes so aplicadas ao mesmo projeto, encontrada uma variao relativamente grande nos resultados estimados. Mais importante, os valores previstos s vezes so significativamente diferentes dos valores reais. Isso refora a noo de que a sada das ferramentas de estimativa deve ser usada como uma das fontes, e no como a nica fonte de estimativa.
V2.1
34/43
Insatisfao do cliente quando solicitaes aparentemente legtimas de reparo ou modificao no podem ser encaminhadas oportunamente quanto ao tempo. Reduo da qualidade global do software como resultado de mudanas que introduzem erros latentes no software mantido.
V2.1
35/43
Sublevaes causadas durante os esforos de desenvolvimento quando o pessoal precisa ser "empurrado" para trabalhar numa tarefa de manuteno. O custo final da manuteno de software uma drstica diminuio de produtividade (medida em LOC por pessoa-ms ou pontos-por-funo por pessoa-ms) que encontrada quando a manuteno de programas antigos iniciada. Redues de produtividade de 40:1 foram relatadas. Ou seja, um esforo de desenvolvimento que custe 25 dlares por linha de cdigo para ser levado a efeito poderia custar mil dlares para cada linha de cdigo que mantida. O esforo despendido em manuteno pode ser dividido em atividades produtivas (por exemplo, anlise e avaliao, modificao de projeto, codificao) e atividades "quebra-cabea" (por exemplo, tentar entender o que o cdigo faz, tentar interpretar a estrutura de dados, as caractersticas de interface e os limites de desempenho). A seguinte expresso oferece um modelo de esforo de manuteno: M = p + Ke(c-d) Onde: M = esforo total despendido em manuteno; p = esforo produtivo (conforme acima descrito); K = uma constante emprica; c = uma medida da complexidade que pode ser atribuda falta de um bom projeto e documentao; d = uma medida do grau de familiaridade com o software. O modelo acima descrito indica que o esforo (e o custo) pode elevar-se exponencialmente se for usada uma abordagem de desenvolvimento de software ruim (isto , falta de engenharia de software), e se a pessoa ou grupo que usou a abordagem no estiver disponvel para realizar a manuteno.
V2.1
36/43
Arquitetura de software estrutura hierrquica de componentes (mdulos) procedimentais e estrutura de dados. Hierarquia de controle estrutura de programa, na qual um mdulo controla outros ou controlado por outro. Estrutura de dados representao elementos de dados individuais Procedimento de software Ocultao de informaes Projeto orientado ao fluxo de dados Projeto orientado a objeto Mtodos de projeto orientado a dados Projeto de interface com o usurio Projeto de tempo real do relacionamento lgico entre
V2.1
37/43
X:= A + B; sendo A, B e X nmeros em ponto flutuante e o compilador somente suporta aritmtica de ponto flutuante via rotina externa, o cdigo substitudo por: CALL MPY_FP (1AB5, 1AB9, 1ABF) --------------endereo de memria dos dados A, B e X ndice para a biblioteca
Linkedio
Software Linkeditor
Loader tipo de linkeditor que no cria o executvel. Processo de debug identificao e correo de erros. Interpretao Compilao, linkedio e execuo de comando a comando do programa fonte No h produtos intermedirios (*.obj ou *.exe) Compilao versus interpretao Linguagens de programao compiladas Ex.: Cobol, Fortran, C e Pascal. Interpretadas Ex.: Basic (no passado), Dbase, APL e Java. Principal vantagem da interpretao: identificao e indicao de erros. Principal desvantagem: consumo de memria; possibilidade de certas partes do programa serem interpretadas tantas vezes quantas definidas no loop (interpretadores mais eficientes j evitam isto, apesar de ainda assim serem menos eficientes que os compiladores), o que pode tornar a execuo lenta.
V2.1
39/43
A Escolha de Uma Linguagem Levar em considerao os seguintes critrios: A rea de aplicao geral; A complexidade computacional e algortmica; O ambiente em que o software ser executado; Consideraes de desempenho; A complexidade da estrutura de dados; O conhecimento da equipe de desenvolvimento; A disponibilidade de um bom compilador. Estilo de Codificao Documentao do Cdigo No incio de cada sub-rotina, incluindo o corpo do programa. Sempre que se fizer algo diferente do trivial. Na declarao de variveis e tipos de dados que no forem totalmente bvios. Declarao de Dados A ordem da declarao de dados e tipos deve ser padronizada e as estruturas de dados criadas pelo projeto devem ser documentadas. Construo de Instrues Evite o uso de testes condicionais complicados; elimine os testes em condies negativas; evite um intenso aninhamento de laos ou condies; use parnteses para esclarecer expresses lgicas ou aritmticas; use smbolos de espaamento ou legibilidade para esclarecer o contedo da instruo; use somente caractersticas com padro ANSI; pense: ser que eu poderia entender isto se no tivesse sido eu a pessoa que o codificou? Estrada e Sada valide todas as entradas de dados; cheque a viabilidade de combinaes importantes de itens de entrada; mantenha o formato de entrada simples; use indicadores de final de dados, ao invs de exigir que o usurio especifique o nmero de itens; rotule os pedidos de entrada interativa, especificando as opes disponveis ou os valores limites; mantenha o formato da entrada uniforme quando uma linguagem de programao tiver requisitos de formatao rigorosos; rotule todos os relatrios de sada e de projeto.
Interfaces Integrao de Sistemas Tipos de Testes: Funcionalidade, volume, concorrncia, performance e stress.
V2.1
41/43
Unidade V Laboratrio
V.1 - Estudo de Caso Utilizando Ferramenta em Computador
ER Win: Logic Works; no Brasil Logic Way
Prova 2
V2.1
42/43
Bibliografia Utilizada para a Elaborao desta Apostila COSTA, Wilson Dias (1994). JAD Joint Application Design. Editora: IBPI Press. FIORINI, Soeli T., VON STAA, Arndt., BAPTISTA, Renan Martins (1998). Engenharia de Software com CMM. Editora: Brasport. MAXIMIANO, Antonio Cesar Amaru (1997). Administrao de Projetos Editora: Atlas. MOTTA, Rosa. Apostila de Engenharia de Software. http://www.winponta.com.br. Extrao realizada em 14 de outubro de 2001. PAGE-JONES, Meilir (1990). Gerenciamento de Projetos. Editora: Makron. PRESSMAN, Roger S. (2002). Engenharia de Software. Editora: McGraw-Hill. REZENDE, Denis Alcides (2002). Engenharia de Software e Sistemas De Informao. Editora: Brasport. On-line via
V2.1
43/43