91
Engenharia de Software Engenharia de Software Prof. Inês Ap. Gasparotto Prof. Inês Ap. Gasparotto Boaventura Boaventura 1. Semestre/2001 1. Semestre/2001

Aula Info (1)

Embed Size (px)

Citation preview


  • Engenharia de Software

    Prof. Ins Ap. Gasparotto Boaventura

    1. Semestre/2001

  • Tpicos

    1- Introduo Engenharia de Software

    2 - Fundamentos Organizacionais de Sistemas de Informao

    3- Gerncia de projeto de software

    4- Gerenciamento para a qualidade de software

    5- Acompanhamento do processo de desenvolvimento de software.

  • Software

    1- Instrues

    quando executadas produzem a funo e o desempenho desejados

    2 - Estruturas de Dados

    possibilitam que os programas manipulem adequadamente a informao

    3 - Documentos

    descrevem a operao e o uso dos programas

  • Caractersticas do Software

    1. desenvolvido ou projetado por engenharia, no manufaturado no sentido clssico

    2. no se desgasta mas se deteriora

    3. a maioria feita sob medida em vez de ser montada a partir de componentes existentes

  • Aplicaes do Software

    BSICO

    programas de apoio a outros programas

    DE TEMPO REAL

    monitora, analisa e controla eventos do mundo real

    COMERCIAL

    operaes comerciais e tomadas de decises administrativas

    CIENTFICO E DE ENGENHARIA

    algoritmos de processamento de nmeros

    EMBUTIDO

    controla produtos e sistemas de mercados industriais e de consumo

    DE COMPUTADOR PESSOAL

    processamento de textos, planilhas eletrnicas, diverses, etc.

    DE INTELIGNCIA ARTIFICIAL

    algoritmos no numricos para resolver problemas que no sejam favorveis computao ou anlise direta

  • Evoluo do Software

    (1950 - 1965)

    O hardware sofreu contnuas mudanas O software era uma arte "secundria" para a qual havia poucos mtodos sistemticos O hardware era de propsito geral O software era especfico para cada aplicao No havia documentao
  • Evoluo do Software

    (1965 - 1975)

    Multiprogramao e sistemas multiusurios Tcnicas interativas Sistemas de tempo real 1a gerao de SGBDs Produto de software - software houses Bibliotecas de Software Cresce no de sistemas baseado em computador Manuteno quase impossvel

    ..... CRISE DE SOFTWARE

  • Evoluo do Software

    (1975 - hoje)

    Sistemas distribudosRedes locais e globaisUso generalizado de microprocessadores - produtos inteligentesHardware de baixo custoImpacto de consumo

    ..... CRISE DE SOFTWARE (aflio crnica???)

  • Evoluo do Software

    (Quarta era do software: atualidade)

    Tecnologias orientadas o objetosSistemas especialistas e software de inteligncia artificial usados na prticaSoftware de rede neural artificialComputao ParalelaInternet

    ..... CRISE DE SOFTWARE (aflio crnica???)

  • Crise de Software

    Refere-se a um conjunto de problemas encontrados no desenvolvimento de software:

    (1) As estimativas de prazo e de custo freqentemente so imprecisas

    No dedicamos tempo para coletar dados sobre o processo de desenvolvimento de software

    Sem nenhuma indicao slida de produtividade, no podemos avaliar com preciso a eficcia de novas ferramentas, mtodos ou padres

  • Crise de Software

    (2) A produtividade das pessoas da rea de software no tem acompanhado a demanda por seus servios

    Os projetos de desenvolvimento de software normalmente so efetuados apenas com um vago indcio das exigncias do cliente

  • Crise de Software

    (3) A qualidade de software s vezes menos que adequada

    S recentemente comeam a surgir conceitos quantitativos slidos de garantia de qualidade de software

    (4) O software existente muito difcil de manter

    A tarefa de manuteno devora o oramento destinado ao software

    A facilidade de manuteno no foi enfatizada como um critrio importante

  • Crise de Software

    estimativas de prazo e de custo produtividade das pessoas qualidade de software software difcil de manter
  • Causas dos problemas associados Crise de Software

    1. prprio carter do Software

    O software um elemento de sistema lgico e no fsico (produto intangvel)

    Conseqentemente, o sucesso medido pela qualidade de uma nica entidade e no pela qualidade de muitas entidades manufaturadas

    O software no se desgasta, mas se deteriora!!!

  • 2. falhas das pessoas responsveis pelo desenvolvimento de Software

    Gerentes sem nenhum background em software

    Os profissionais da rea de software tm recebido pouco treinamento formal em novas tcnicas para o desenvolvimento de software

    Resistncia a mudanas.

    Causas dos problemas associados Crise de Software

  • 3. mitos do Software

    propagaram desinformao e confuso

    administrativosclienteprofissional

    Causas dos problemas associados Crise de Software

  • Mitos do Software (administrativos)

    J temos um manual repleto de padres e procedimentos para a construo de software. Isso no oferecer ao meu pessoal tudo o que eles precisam saber?

    Realidade:

    Ser que o manual usado?

    Os profissionais sabem que ele existe?

    Ele reflete a prtica moderna de desenvolvimento de software?

    Ele completo?

  • Meu pessoal tem ferramentas de desenvolvimento de software de ltima gerao; afinal lhes compramos os mais novos computadores.

    Mitos do Software (administrativos)

    Realidade:

    preciso muito mais do que os mais recentes computadores para se fazer um desenvolvimento de software de alta qualidade.

  • Se ns estamos atrasados nos prazos, podemos adicionar mais programadores e tirar o atraso.

    Mitos do Software (administrativos)

    Realidade:

    O desenvolvimento de software no um processo mecnico igual manufatura.

    Acrescentar pessoas em um projeto torna-o ainda mais atrasado. Pessoas podem ser acrescentadas, mas somente de uma forma planejada.

  • Uma declarao geral dos objetivos suficiente para se comear a escrever programas - podemos preencher os detalhes mais tarde.

    Mitos do Software (cliente)

    Realidade:

    Uma definio inicial ruim a principal causa de fracassos dos esforos de desenvolvimento de software.

    fundamental uma descrio formal e detalhada do domnio da informao, funo, desempenho, interfaces, restries de projeto e critrios de validao.

  • Os requisitos de projeto modificam-se continuamente, mas as mudanas podem ser facilmente acomodadas, porque o software flexvel.

    Mitos do Software (cliente)

    Realidade:

    Uma mudana, quando solicitada tardiamente num projeto, pode ser maior do que mais do que uma ordem de magnitude mais dispendiosa do que a mesma mudana solicitada nas fases iniciais.

  • Assim que escrevermos o programa e o colocarmos em funcionamento nosso trabalho estar completo.

    Mitos do Software (profissional)

    Realidade:

    Os dados da indstria indicam que entre 50 e 70% de todo esforo gasto num programa sero despendidos depois que ele for entregue pela primeira vez ao cliente.

  • Enquanto no tiver o programa "funcionando", eu no terei realmente nenhuma maneira de avaliar sua qualidade.

    Mitos do Software (profissional)

    Realidade:

    Um programa funcionando somente uma parte de uma Configurao de Software que inclui todos os itens de informao produzidos durante a construo e manuteno do software.

  • Preocupao: Sistematizar o processo de

    criao e manuteno de software.

  • Boehm: Engenharia de software envolve a aplicao prtica de conhecimento cientfico para o projeto e construo de programas de computador e a documentao associada necessria para desenvolv-los, oper-los e mant-los.

    Engenharia de Software
    Definies

  • IEEE Standard Glossary of Software Engineering terminology: Engenharia de software uma abordagem sistemtica para o desenvolvimento, operao, manuteno de software

    Software: programas de computador, procedimentos, regras, documentao possivelmente associada, e dados sobre sua operao.

    Engenharia de Software
    Definies

  • Fairley: Engenharia de software a disciplina tecnologica e gerencial preocupada com a produo sistemtica e manuteno de produtos de software que so desenvolvidos e modificados no prazo estabelecido e dentro das estimativas de custo.

    Engenharia de Software
    Definies

  • abrange um conjunto de trs elementos fundamentais:

    Mtodos, Ferramentas e Procedimentos

    Principais metas: melhorar a qualidade de produtos de software, aumentar a produtividade do pessoal tcnico e aumentar a satisfao do cliente.

  • mtodos: proporcionam os detalhes de como fazer para construir o software

    Engenharia de Software

  • Planejamento e estimativa de projeto Anlise de requisitos de software e de sistemas Projeto da estrutura de dados Algoritmo de processamento Codificao Teste Manuteno

    Engenharia de Software

  • ferramentas: do suporte automatizado

    aos mtodos.

    existem atualmente ferramentas para sustentar cada um dos mtodosquando as ferramentas so integradas estabelecido um sistema de suporte ao desenvolvimento de software chamado CASE - Computer Aided Software Engineering

    Engenharia de Software

  • procedimentos: constituem o elo entre os mtodos e ferramentas

    seqncia em que os mtodos sero aplicadosprodutos que se exige que sejam entreguescontroles que ajudam assegurar a qualidade e coordenar as alteraesmarcos de referncia que possibilitam administrar o progresso do software.

    Engenharia de Software

  • conjunto de etapas que envolve

    mtodos

    ferramentas

    procedimentos

    Essas etapas so conhecidas como componentes de CICLO DE VIDA DE SOFTWARE

    ou Processo de Software

    Engenharia de Software

  • Alguns ciclos de vida mais conhecidos so:

    Ciclo de Vida ClssicoPrototipao Modelo Espiral Tcnicas de 4a Gerao

    Engenharia de Software

  • para escolha de um Ciclo de Vida de Software:

    natureza do projeto e da aplicaomtodos e ferramentas a serem usadoscontroles e produtos que precisam ser entregues
  • Ciclo de Vida Clssico (Cascata)

    modelo mais antigo e o mais amplamente usado da engenharia de software modelado em funo do ciclo da engenharia convencionalrequer uma abordagem sistemtica, seqencial ao desenvolvimento de software
  • Cascata

    Engenharia de Sistemas

    Anlise de Requisitos

    Projeto

    Codificao

    Testes

    Manuteno

  • Atividades do Ciclo de Vida Clssico

    ANLISE E ENGENHARIA DE SISTEMAS

    envolve a coleta de requisitos em nvel do sistema, pequena quantidade de projeto e anlise de alto nvel

    viso essencial quando o software deve fazer interface com outros elementos (hardware, pessoas e banco de dados)

    Engenharia de Sistemas

    Anlise de Requisitos

    Projeto

    Codificao

    Testes

    Manuteno

  • Atividades do Ciclo de Vida Clssico

    ANLISE DE REQUISITOS DE SOFTWARE

    processo de coleta dos requisitos intensificado e concentrado especificamente no software

    deve-se compreender o domnio da informao, a funo, desempenho e interfaces exigidos

    os requisitos (para o sistema e para o software) so documentados e revistos com o cliente

    Engenharia de Sistemas

    Anlise de Requisitos

    Projeto

    Codificao

    Testes

    Manuteno

  • Atividades do Ciclo de Vida Clssico

    PROJETO

    traduo dos requisitos do software para um conjunto de representaes que podem ser avaliadas quanto qualidade, antes que a codificao se inicie

    se concentra em 4 atributos do programa:

    Estrutura de Dados, Arquitetura de Software, Detalhes Procedimentais e Caracterizao de Interfaces

    Engenharia de Sistemas

    Anlise de Requisitos

    Projeto

    Codificao

    Testes

    Manuteno

  • Atividades do Ciclo de Vida Clssico

    CODIFICAO

    traduo das representaes do projeto para uma linguagem artificial resultando em instrues executveis pelo computador

    Engenharia de Sistemas

    Anlise de Requisitos

    Projeto

    Codificao

    Testes

    Manuteno

  • Atividades do Ciclo de Vida Clssico

    TESTES

    Concentram-se:

    nos aspectos lgicos internos do software, garantindo que todas as instrues tenham sido testadas

    nos aspectos funcionais externos, para descobrir erros e garantir que a entrada definida produza resultados que concordem com os esperados.

    Engenharia de Sistemas

    Anlise de Requisitos

    Projeto

    Codificao

    Testes

    Manuteno

  • Atividades do Ciclo de Vida Clssico

    MANUTENO

    o software dever sofrer mudanas depois que for entregue ao cliente

    causas das mudanas: erros, adaptao do software para acomodar mudanas em seu ambiente externo e exigncia do cliente para acrscimos funcionais e de desempenho

    Engenharia de Sistemas

    Anlise de Requisitos

    Projeto

    Codificao

    Testes

    Manuteno

  • Problemas com o Ciclo de Vida Clssico

    projetos reais raramente seguem o fluxo seqencial que o modelo prope logo no incio difcil estabelecer explicitamente todos os requisitos. No comeo dos projetos sempre existe uma incerteza naturalo cliente deve ter pacincia. Uma verso executvel do software s fica disponvel numa etapa avanada do desenvolvimento
  • Embora o Ciclo de Vida Clssico tenha fragilidades, ele significativamente melhor do que uma abordagem casual ao desenvolvimento de software

    Clssico (comentrios)

  • Prototipao

    processo que possibilita que o desenvolvedor crie um modelo do software que deve ser construdo. idealmente, o modelo (prottipo) serve como um mecanismo para identificar os requisitos de software.apropriado para quando o cliente definiu um conjunto de objetivos gerais para o software, mas no identificou requisitos de entrada, processamento e sada com detalhes.
  • Prototipao

    fim

    incio

    construo produto

    refinamento prottipo

    avaliao prottipo

    construo prottipo

    projeto rpido

    obteno dos requisitos

  • Atividades da Prototipao

    Obteno dos Requisitos: desenvolvedor e cliente definem os objetivos gerais do software, identificam quais requisitos so conhecidos e as reas que necessitam de definies adicionais

    Projeto Rpido: representao dos aspectos do software que so visveis ao usurio (abordagens de entrada e formatos de sada)

    fim

    incio

    construo produto

    refinamento prottipo

    avaliao prottipo

    construo prottipo

    projeto rpido

    obteno dos requisitos

  • Construo Prottipo: implementao do projeto rpido

    Avaliao do Prottipo: cliente e desenvolvedor avaliam o prottipo

    Atividades da Prototipao

    fim

    incio

    construo produto

    refinamento prottipo

    avaliao prottipo

    construo prottipo

    projeto rpido

    obteno dos requisitos

  • Refinamento dos Requisitos: cliente e desenvolvedor refinam os requisitos do software a ser desenvolvido.

    Ocorre neste ponto um processo de iterao que pode conduzir a 1a. atividade at que as necessidades do cliente sejam satisfeitas e o desenvolvedor compreenda o que precisa ser feito.

    Atividades da Prototipao

    fim

    incio

    construo produto

    refinamento prottipo

    avaliao prottipo

    construo prottipo

    projeto rpido

    obteno dos requisitos

  • Construo Produto: identificados os requisitos, o prottipo deve ser descartado e a verso de produo deve ser construda considerando os critrios de qualidade.

    Atividades da Prototipao

    fim

    incio

    construo produto

    refinamento prottipo

    avaliao prottipo

    construo prottipo

    projeto rpido

    obteno dos requisitos

  • Problemas com a Prototipao

    cliente no sabe que o software que ele v no considerou, durante o desenvolvimento, a qualidade global e a manutenibilidade a longo prazo. No aceita bem a idia que a verso final do software vai ser construda e "fora" a utilizao do prottipo como produto final.
  • Problemas com a Prototipao

    desenvolvedor freqentemente faz uma implementao comprometida (utilizando o que est disponvel) com o objetivo de produzir rapidamente um prottipo. Depois de um tempo ele familiariza com essas escolhas, e esquece que elas no so apropriadas para o produto final.
  • Ainda que possam ocorrer problemas, a prototipao um ciclo de vida eficiente

    A chave definir-se as regras do jogo logo no comeo

    O cliente e o desenvolvedor devem ambos concordar que o prottipo seja construdo para servir como um mecanismo a fim de definir os requisitos

    Prototipao (comentrios)

  • Ciclo de Vida em Espiral

    engloba as melhores caractersticas do ciclo de vida Clssico e da Prototipao, adicionando um novo elemento: a Anlise de Risco segue a abordagem de passos sistemticos do Ciclo de Vida Clssico incorporando-os numa estrutura iterativa que reflete mais realisticamente o mundo real usa a Prototipao, em qualquer etapa da evoluo do produto, como mecanismo de reduo de riscos
  • Espiral

    deciso de continuar ou no

    direo de um sistema concludo

    avaliao do cliente

    engenharia

    anlise dos riscos

    planejamento

  • Atividades do Ciclo de Vida em Espiral

    Planejamento: determinao dos objetivos, alternativas e restries

    Anlise de Risco: anlise das alternativas e identificao / resoluo dos riscos

    Construo: desenvolvimento do produto no nvel seguinte

    Avaliao do Cliente: avaliao do produto e planejamento das novas fases

    avaliao do cliente

    engenharia

    anlise dos riscos

    planejamento

  • , atualmente, a abordagem mais realstica para o desenvolvimento de software em grande escala.usa uma abordagem que capacita o desenvolvedor e o cliente a entender e reagir aos riscos em cada etapa evolutiva. pode ser difcil convencer os clientes que uma abordagem "evolutiva" controlvelexige considervel experincia na determinao de riscos e depende dessa experincia para ter sucesso

    Espiral (comentrios)

  • o modelo relativamente novo e no tem sido amplamente usado

    Demorar muitos anos at que a eficcia desse modelo possa ser determinada com certeza absoluta.

    Espiral (comentrios)

  • Tcnicas de 4a Gerao

    Concentra-se na capacidade de se especificar o software a uma mquina em um nvel que esteja prximo linguagem natural.

    Engloba um conjunto de ferramentas de software que possibilitam que:

    o sistema seja especificado em uma linguagem de alto nvel e o cdigo fonte seja gerado automaticamente a partir dessas especificaes
  • Tcnicas de 4a Gerao

    Obteno dos Requisitos

    Estratgia do Projeto

    Implementao usando 4GL

    Testes

  • Ferramentas do ambiente de desenvolvimento de software de 4GL

    O ambiente de desenvolvimento de software que sustenta o ciclo de vida de 4a gerao inclui as ferramentas:

    linguagens no procedimentais para consulta de banco de dadosgerao de relatriosmanipulao de dadosinterao e definio de telasgerao de cdigoscapacidade grfica de alto nvelcapacidade de planilhas eletrnicas
  • Atividades das Tcnicas de 4a Gerao

    1. obteno dos Requisitos: o cliente descreve os requisitos os quais so traduzidos para um prottipo operacional

    o cliente pode estar inseguro quanto aos requisitoso cliente pode ser incapaz de especificar as informaes de um modo que uma ferramenta 4GL possa consumiras 4GLs atuais no so sofisticadas suficientemente para acomodar a verdadeira "linguagem natural"

    Obteno dos Requisitos

    Estratgia do Projeto

    Implementao usando 4GL

    Testes

  • 2. estratgia de "Projeto": para pequenas aplicaes possvel mover-se do passo de Obteno dos Requisitos para o passo de Implementao usando uma Linguagem de 4G

    Atividades das Tcnicas de 4a Gerao

    para grandes projetos necessrio desenvolver uma estratgia de projeto. De outro modo ocorrero os mesmos problemas encontrados quando se usa abordagem convencional (baixa qualidade)

    Obteno dos Requisitos

    Estratgia do Projeto

    Implementao usando 4GL

    Testes

  • 3. implementao usando 4GL: os resultados desejados so representados de modo que haja gerao automtica de cdigo . Deve existir uma estrutura de dados com informaes relevantes e que seja acessvel pela 4GL

    Atividades das Tcnicas de 4a Gerao

    Obteno dos Requisitos

    Estratgia do Projeto

    Implementao usando 4GL

    Testes

  • 4. teste: o desenvolvedor deve efetuar testes e desenvolver uma documentao significativa. O software desenvolvido deve ser construdo de maneira que a manuteno possa ser efetuada prontamente.

    Atividades das Tcnicas de 4a Gerao

    Obteno dos Requisitos

    Estratgia do Projeto

    Implementao usando 4GL

    Testes

  • PROPONENTES: reduo dramtica no tempo de desenvolvimento do software (aumento de produtividade)

    OPONENTES: as 4GL atuais no so mais fceis de usar do que as linguagens de programao

    o cdigo fonte produzido ineficiente a manutenibilidade de sistemas usando tcnicas 4G ainda questionvel

    Tcnicas de 4a Gerao (comentrios)

  • Engenharia de Software uma viso genrica

    O processo de desenvolvimento de software contm 3 fases genricas, independentes do modelo de engenharia de software escolhido:

    1. DEFINIO,

    2. DESENVOLVIMENTO e

    3. MANUTENO.

  • Engenharia de Software uma viso genrica

    _939024041.doc

    Revises

    Documentao

    Controle de Mudanas

    Construo

    Entender

    Modificar

    Revalidar

    Manuteno

    mudanas

    Operao

    Software Produto

    Atividades de Apoio

    Anlise de Sistema

    Planejamento do Projeto

    Anlise de Requisitos

    Definio

    o que

    Desenvolvimento

    como

    Projeto de Software

    Codificao

    Teste

    (

    (

    (

    (

    (

  • DEFINIO : o que ser desenvolvido.

    Anlise do Sistema: define o papel de cada elemento num sistema baseado em computador, atribuindo em ltima anlise, o papel que o software desempenhar.Planejamento do Projeto de Software: assim que o escopo do software estabelecido, os riscos so analisados, os recursos so alocados, os custos so estimados e, tarefas e programao de trabalho definidas.

    Engenharia de Software uma viso genrica

  • Anlise de Requisitos: o escopo definido para o software proporciona uma direo, mas uma definio detalhada do domnio da informao e da funo do software necessria antes que o trabalho inicie.

    Engenharia de Software uma viso genrica

  • DESENVOLVIMENTO: como o software vai ser desenvolvido.

    Projeto de Software: traduz os requisitos do software num conjunto de representaes (algumas grficas, outras tabulares ou baseadas em linguagem) que descrevem a estrutura de dados, a arquitetura do software, os procedimentos algortmicos e as caractersticas de interface.

    Engenharia de Software uma viso genrica

  • Codificao: as representaes do projeto devem ser convertidas numa linguagem artificial (a linguagem pode ser uma linguagem de programao convencional ou uma linguagem no procedimental) que resulte em instrues que possam ser executadas pelo computador. Realizao de Testes do Software: logo que o software implementado numa forma executvel por mquina, ele deve ser testado para que se possa descobrir defeitos de funo, lgica e implementao.

    Engenharia de Software uma viso genrica

  • MANUTENO: concentra-se nas mudanas que ocorrero depois que o software for liberado para uso operacional

    Correo Adaptao Melhoramento Funcional

    Engenharia de Software uma viso genrica

  • Correo: mesmo com as melhores atividades de garantia de qualidade de software, provvel que o cliente descubra defeitos no software. A manuteno corretiva muda o software para corrigir defeitos.

    Adaptao: com o passar do tempo, o ambiente original (por exemplo a CPU, o sistema operacional e perifricos) para o qual o software foi desenvolvido provavelmente mudar. A manuteno adaptativa muda o software para acomodar mudanas em seu ambiente.

    Engenharia de Software uma viso genrica

  • Melhoramento Funcional: a medida que o software usado, o cliente/usurio reconhecer funes adicionais que oferecero benefcios.

    A manuteno perfectiva estende o software para alm de suas exigncias funcionais originais.

    Engenharia de Software uma viso genrica

  • Atividades de Proteo: as fases e etapas correlatas descritas so complementadas por uma srie de atividades de proteo.

    Revises: efetuadas para garantir que a qualidade seja mantida medida que cada etapa concluda.

    Documentao: desenvolvida e controlada para garantir que informaes completas sobre o software estejam disponveis para uso posterior.

    Controle das Mudanas: institudo de forma que as mudanas possam ser aprovadas e acompanhadas.

    Engenharia de Software uma viso genrica

  • A Engenharia de Software tambm se preocupa com questes gerenciais, que encontra-se do lado oposto ao domnio da programao

    Gerenciamento: necessrio para coordenar as atividades tcnicas em projetos de produtos de software.

    Engenharia de Software uma aborgagem gerencial

  • Em geral, um produto de software inclui:

    -> Cdigo fonte, e documentao relacionada:

    documento de requisitos especificao do projetoplanos de testeprincpios de operaoprocedimentos para garantia da qualidade

    Engenharia de Software uma aborgagem gerencial

  • Em geral, um produto de software inclui:

    -> Cogido fonte, e documentao relacionada:

    relatrios de problemas com o software procedimentos de manuteno manuais do usurio instrues para instalao auxlio para treinamento

    Engenharia de Software uma aborgagem gerencial

  • Qualidade de software : preocupao principal dos

    gerentes de software.

    -> Principal atributo de qualidade: utilidade

    -> outros atributos de qualidade:

    - transportabilidade

    - eficincia

    - clareza

    - confiabilidade

    Engenharia de Software uma aborgagem gerencial

  • Fatore de Qualidade e Produtividade :

    Fatores que influenciam a qualidade:

    Habilidade IndividualComunicao da equipeComplexidade do produtoNotaes apropriadasAbordagens sistemticascontrole de mudanas

    Engenharia de Software uma aborgagem gerencial

  • Fatore de Qualidade e Produtividade :

    Fatores que influenciam a qualidade:

    Adequao de treinamentoHabilidades de gerenciamentoMetas apropriadasEntendimento do problemaEstabilidade dos requisitosHabilidades necessrias

    Engenharia de Software uma aborgagem gerencial

  • Questes gerenciais

    Os gerentes de software:

    controlam os recursos e o ambiente no qual as atividades tcnicas ocorrem. responsveis pela entrega do produto no prazo e dentro das estimativas de custo. devem garantir que o produto tenha os atributos funcionais e de qualidade desejados pelo cliente.Treinam empregados. desenvolvem planos e estratgias de marketing.

    Engenharia de Software uma aborgagem gerencial

  • Preocupaes de gerenciamento de projeto:

    mtodos para organizar e monitorar um projeto.tcnicas de estimativa de custo.poltica de alocao de recursos.controle oramentrio. avaliao do progresso.realocao de recursos.ajustes no cronograma.

    Engenharia de Software uma aborgagem gerencial

  • Preocupaes de gerenciamento de projeto:

    estabelecer procedimentos para garantia de qualidade.manter o controle de vrias verses do produto.facilitar a comunicao entre os membros do projeto.comunicao com o cliente.estabelecer contratos com o cliente.garantir que os termos legais e contratuais do projeto sejam cumpridos.

    Engenharia de Software uma aborgagem gerencial

  • Problemas na rea de gerenciamento:

    falta de planejamento para projetos de software.falta de tcnicas e procedimentos para selecionar gerentes de projeto.falta de habilidade em estimar os recursos necessrios para o projeto.falta de um processo de desenvolvimento bem estabelecido.falta de estratgias para o gerente acompanhar o progresso do projeto.falta de padres e tcnicas para medir produtividade.

    Engenharia de Software uma aborgagem gerencial

  • Fatores que melhoram o gerenciamento:

    treinar gerentes, e desenvolvedores de software.estabelecer o uso de padres, procedimentos e documentao.analisar dados de projetos passados para avaliar mtodos efetivos.definir objetivos em termos de qualidade desejada.definir qualidade em termos de produtos a ser entregues.Selecionar gerentes de projetos com habilidades para gerenciamento.Desenvolver uma maneira de avaliar os desenvolvedores de software.

    Engenharia de Software uma aborgagem gerencial

  • Concluso

    ENGENHARIA DE SOFTWARE

    pode ser vista como uma abordagem de desenvolvimento de software elaborada com disciplina e mtodos bem definidos.

    .....a construo por mltiplas pessoas de um software de mltiplas verses [Parnas 1987]

  • Pontos a ponderar

    O software o fator de diferenciao de muitos produtos e sistemas baseados em computador. Apresente exemplos de dois ou trs produtos e de pelo menos um sistema em que o software, no o hardware, o elemento que faz a diferena.Nas dcadas de 1950 e 1960, a programao de computador era uma forma de arte aprendida num ambiente semelhante ao de aprendizes. Como os primrdios afetaram as prticas de desenvolvimento de software atuais?Apresente cinco exemplos de desenvolvimento de software que seriam adequados prototipao. Cite duas ou trs aplicaes que seriam mais difceis de ser representadas em prottipos.

    ,

  • Pontos a ponderar

    Os mitos de software citados em aula so somente alguns entre muitos outros. Liste mitos adicionais para cada uma das categorias apresentadas.Existe algum caso em que as fases genricas do processo de engenharia de software no se aplicam? Se assim for, descreva-o.

    ,

    B

    B

    S

    S

    I

    I

    C

    C

    O

    O

    programas de apoio a outros programas

    D

    D

    E

    E

    T

    T

    E

    E

    M

    M

    P

    P

    O

    O

    R

    R

    E

    E

    A

    A

    L

    L

    monitora, analisa e controla eventos do

    mundo real

    C

    C

    O

    O

    M

    M

    E

    E

    R

    R

    C

    C

    I

    I

    A

    A

    L

    L

    operaes comerciais e tomadas de

    decises administrativas

    C

    C

    I

    I

    E

    E

    N

    N

    T

    T

    F

    F

    I

    I

    C

    C

    O

    O

    E

    E

    D

    D

    E

    E

    E

    E

    N

    N

    G

    G

    E

    E

    N

    N

    H

    H

    A

    A

    R

    R

    I

    I

    A

    A

    algoritmos de processamento de nmeros

    E

    E

    M

    M

    B

    B

    U

    U

    T

    T

    I

    I

    D

    D

    O

    O

    controla produtos e sistemas de mercados

    industriais e de consumo

    D

    D

    E

    E

    C

    C

    O

    O

    M

    M

    P

    P

    U

    U

    T

    T

    A

    A

    D

    D

    O

    O

    R

    R

    P

    P

    E

    E

    S

    S

    S

    S

    O

    O

    A

    A

    L

    L

    processamento de textos, planilhas

    eletrnicas, diverses, etc.

    D

    D

    E

    E

    I

    I

    N

    N

    T

    T

    E

    E

    L

    L

    I

    I

    G

    G

    N

    N

    C

    C

    I

    I

    A

    A

    A

    A

    R

    R

    T

    T

    I

    I

    F

    F

    I

    I

    C

    C

    I

    I

    A

    A

    L

    L

    algoritmos no numricos para resolver

    problemas que no sejam favorveis

    computao ou anlise direta

    1.

    Revises

    2.

    Documentao

    3.

    Controle de

    Mudanas

    C

    C

    C

    o

    o

    o

    n

    n

    n

    s

    s

    s

    t

    t

    t

    r

    r

    r

    u

    u

    u

    o

    o

    o

    1.

    Entender

    2.

    Modificar

    3.

    Revalidar

    Manuteno

    mudanas

    O

    O

    O

    p

    p

    p

    e

    e

    e

    r

    r

    r

    a

    a

    a

    o

    o

    o

    S

    S

    S

    O

    O

    O

    F

    F

    F

    T

    T

    T

    W

    W

    W

    A

    A

    A

    R

    R

    R

    E

    E

    E

    P

    P

    P

    R

    R

    R

    O

    O

    O

    D

    D

    D

    U

    U

    U

    T

    T

    T

    O

    O

    O

    A

    A

    A

    t

    t

    t

    i

    i

    i

    v

    v

    v

    i

    i

    i

    d

    d

    d

    a

    a

    a

    d

    d

    d

    e

    e

    e

    s

    s

    s

    d

    d

    d

    e

    e

    e

    A

    A

    A

    p

    p

    p

    o

    o

    o

    i

    i

    i

    o

    o

    o

    1.

    Anlise de

    Sistema

    2.

    Planejamento

    do Projeto

    3.

    Anlise de

    Requisitos

    Definio

    o que

    Desenvolvimento

    como

    1.

    Projeto de

    Software

    2.

    Codificao

    3.

    Teste