Sem resumo de edição
Linha 16: Linha 16:


* Mundo indisciplinado
* Mundo indisciplinado


<br>
<br>
Linha 30: Linha 29:


* Existe uma demora na conclusão:
* Existe uma demora na conclusão:
** Porque se usam métodos e ferramentas?
** Porque se usam métodos e ferramentas?
** Por que surgem tantos erros?
** Por que surgem tantos erros?
** Por que é difícil medir os erros?
** Por que é difícil medir os erros?


Linha 42: Linha 38:


* Modismo inconsciente.
* Modismo inconsciente.
<br>
<br>


Linha 62: Linha 57:


* Existem basicamente duas classificações:
* Existem basicamente duas classificações:
** Produtos genéricos
** Produtos genéricos
** Produtos sob encomenda
** Produtos sob encomenda
 
<br><br>
 
<br>
 
<br>




== O que é Engenharia de Software? ==
== O que é Engenharia de Software? ==
<br>
<br>


* Disciplina da engenharia relacionada a todos os aspectos de produção de software
* Disciplina da engenharia relacionada a todos os aspectos de produção de software
** Abordagem sistemática e organizada
** Abordagem sistemática e organizada
** Atendendo a todos os ambiente. Ex: Web, móvel, dispositivos, etc.
** Atendendo a todos os ambiente. Ex: Web, móvel, dispositivos, etc.
<br><br>
<br><br>




== Qual a diferença entre Engenharia de Software e Engenharia da Computação? ==
== Qual a diferença entre Engenharia de Software e Engenharia da Computação? ==
<br>
<br>


Linha 101: Linha 83:


* Métodos ad hoc são necessários.
* Métodos ad hoc são necessários.
<br><br>
<br><br>




== Qual a diferença entre Engenharia de Software e Engenharia de Sistemas? ==
== Qual a diferença entre Engenharia de Software e Engenharia de Sistemas? ==
<br>
<br>


Linha 114: Linha 92:


* Relacionada com todos os aspectos de desenvolvimento de sistemas baseados em hardware, software e engenharia de processo
* Relacionada com todos os aspectos de desenvolvimento de sistemas baseados em hardware, software e engenharia de processo
<br>
<br>


Linha 120: Linha 97:


* Faz parte deste processo.
* Faz parte deste processo.
<br>
<br>


Linha 128: Linha 104:


* Construção de um foguete.
* Construção de um foguete.
<br><br>
<br><br>




== O que é processo de software? ==
== O que é processo de software? ==
<br>
<br>


Conjunto de atividades cujo objetivo é o desenvolvimento ou evolução de software
Conjunto de atividades cujo objetivo é o desenvolvimento ou evolução de software
<br><br>
<br><br>


Linha 148: Linha 120:


4. Evolução <br>
4. Evolução <br>
<br>
<br>




== Como é a distribuição dos custos na criação de um software? ==
== Como é a distribuição dos custos na criação de um software? ==
<br>
<br>


Linha 160: Linha 129:


* 40% => Testes e aceitação
* 40% => Testes e aceitação
<br>
<br>


Linha 172: Linha 140:


* Reutilização
* Reutilização
<br><br>
<br><br>




== Quais são as principais categorias de software? ==
== Quais são as principais categorias de software? ==
<br>
<br>


Linha 194: Linha 159:


* Software de IA => Programas que aprendem <br>
* Software de IA => Programas que aprendem <br>
 
<br><br>
<br>
 
<br>




== O que é CASE? ==
== O que é CASE? ==
<br>
<br>


Acrônimo de ''Computer-Aided Software Engineering''
Acrônimo de ''Computer-Aided Software Engineering''
<br><br>
<br><br>


Sistemas de software que fornecem apoio automatizado para atividades de processo de software.
Sistemas de software que fornecem apoio automatizado para atividades de processo de software.
<br>
<br>


Linha 235: Linha 194:


* Depuração
* Depuração
<br><br>
<br><br>




== Quais são os atributos de um bom software? ==
== Quais são os atributos de um bom software? ==
<br>
<br>


* Facilidade de manutenção: Deve permitir evolução simplificada
* Facilidade de manutenção: Deve permitir evolução simplificada
<br>
<br>


* Confiança: Confiabilidade, proteção e segurança
* Confiança: Confiabilidade, proteção e segurança
<br>
<br>


* Eficiência: Não deve desperdiçar recursos do sistema
* Eficiência: Não deve desperdiçar recursos do sistema
<br>
<br>


* Usabilidade: Deve apresentar uma interface amigável com o usuário e documentação adequada <br>
* Usabilidade: Deve apresentar uma interface amigável com o usuário e documentação adequada <br>
<br><br>
<br><br>




== Quais os desafios-chave de ESOF? ==
== Quais os desafios-chave de ESOF? ==
<br>
<br>


* Heterogeneidade: Flexibilidade, adaptação
* Heterogeneidade: Flexibilidade, adaptação
<br>
<br>


* Entrega: Menor tempo de desenvolvimento mantendo a qualidade
* Entrega: Menor tempo de desenvolvimento mantendo a qualidade
<br>
<br>


* Confiança: Técnicas que mantenham a fidelidade do usuário.
* Confiança: Técnicas que mantenham a fidelidade do usuário.
<br><br>
<br><br>

Edição das 09h38min de 22 de abril de 2011

Análise do Software


No início:


  • Programação era uma forma de arte


  • Poucos métodos formais eram aplicados


  • Esquema baseado em tentativa e erro


  • Mundo indisciplinado


Atualmente:


  • Software é o item de maior custo


  • Está presente em 99% dos negócios


  • Existe uma demora na conclusão:
    • Porque se usam métodos e ferramentas?
    • Por que surgem tantos erros?
    • Por que é difícil medir os erros?


  • Alto volume de manutenção nas aplicações


  • Modismo inconsciente.


FAQ (Frequently Asked Questions)


O que é software?


  • Instruções que quando executadas, produzem a função e o desempenho desejados
  • Estruturas de dados que permitem a manipulação das informações
  • Documentos que descrevem a operação e o uso dos programas


  • Existem basicamente duas classificações:
    • Produtos genéricos
    • Produtos sob encomenda




O que é Engenharia de Software?


  • Disciplina da engenharia relacionada a todos os aspectos de produção de software
    • Abordagem sistemática e organizada
    • Atendendo a todos os ambiente. Ex: Web, móvel, dispositivos, etc.




Qual a diferença entre Engenharia de Software e Engenharia da Computação?


  • Engenharia de Computação: Relação com teorias e fundamentos


  • Engenharia de Software: Relação com a prática de desenvolvimento e entrega de software útil e de qualidade.


  • Ideal: Engenheiro se basear na teoria da Ciência da Computação
  • Métodos ad hoc são necessários.




Qual a diferença entre Engenharia de Software e Engenharia de Sistemas?


Engenharia de Sistemas:

  • Relacionada com todos os aspectos de desenvolvimento de sistemas baseados em hardware, software e engenharia de processo


Engenharia de Software:

  • Faz parte deste processo.


Exemplos:

  • Sistemas industriais complexos
  • Construção de um foguete.




O que é processo de software?


Conjunto de atividades cujo objetivo é o desenvolvimento ou evolução de software

1. Especificação

2. Desenvolvimento

3. Validação

4. Evolução


Como é a distribuição dos custos na criação de um software?


  • 60% => Desenvolvimento
  • 40% => Testes e aceitação


Depende de algumas variáveis:

  • Porte do sistema
  • Integração
  • Tempo de vida
  • Reutilização




Quais são as principais categorias de software?


  • Software básico => Linguagens baixo nível

  • Software tempo real => Resposta imediata

  • Software comercial => Aplicações especificas

  • Software científico => Envolvem complexidade

  • Software embutido => Embarcado em dispositivos

  • Software para PC => Aplicações comuns

  • Software de IA => Programas que aprendem




O que é CASE?


Acrônimo de Computer-Aided Software Engineering

Sistemas de software que fornecem apoio automatizado para atividades de processo de software.

  • Controle de Versão
  • Gerência de Projetos
  • Edição
  • Planejamento
  • Prototipagem
  • Teste
  • Documentação
  • Análise de Programa
  • Métricas
  • Programação
  • Reengenharia
  • Depuração




Quais são os atributos de um bom software?


  • Facilidade de manutenção: Deve permitir evolução simplificada


  • Confiança: Confiabilidade, proteção e segurança


  • Eficiência: Não deve desperdiçar recursos do sistema


  • Usabilidade: Deve apresentar uma interface amigável com o usuário e documentação adequada




Quais os desafios-chave de ESOF?


  • Heterogeneidade: Flexibilidade, adaptação


  • Entrega: Menor tempo de desenvolvimento mantendo a qualidade


  • Confiança: Técnicas que mantenham a fidelidade do usuário.