domingo, 13 de junho de 2010

Engenharia de Software - Introdução

O que é Engenharia de Software?

Voltada para a especificação, desenvolvimento e manutenção de sistemas de software, aplicando tecnologias e práticas.
Objetivo: construir sistema organizado, visando produtividade e qualidade.

Porque Engenharia de Software?



Áreas de conhecimento de Engenharia de Software


-Requisitos de Software
-Projeto (Design) de Software
-Implementação de Software
-Teste de Software
-Manutenção de Software
-Gerência de Configuração de Software
-Gerência de Engenharia de Software
-Processos de Engenharia de Software
-Ferramentas e Métodos de Engenharia de Software
-Qualidade de Software

Crise do Software – anos 70




-Projetos estourando o orçamento
-Projetos estourando o prazo
-Software de baixa qualidade
-Software muitas vezes não atingiam os requisitos
-Projetos não gerenciáveis e o código difícil de manter.

Solução da Crise do Software

-O uso de melhores técnicas, métodos e ferramentas
-Mais treinamento e educação
-A mudança de paradigma sobre o que é desenvolver software e como deveria ser feito.

Processo de Software



Conjunto de atividades cujo objetivo é o desenvolvimento ou evolução do software.
Atividades genéricas:

Especificação – definição da funcionalidade do software e as restrições em sua operação
Desenvolvimento - produção do software de modo que atenda as especificações.
Validação – garantir os interesses do cliente.
Evolução - atender às necessidades mutáveis do cliente.

Modelo de Processo

Uma representação, ou abstração dos objetos e atividades envolvidas no processo de software.

-Modelos genéricos = Paradigmas
-Modelo em Cascata
-Espiral
-Prototipação
-Desenvolvimento iterativo e evolutivo
-Ágil

Métodos

Um processo com uma série de passos, para construir um software.
Um método de Engenharia de Software pode ser considerado como parte da metodologia

Por exemplo:

Metodologias de Desenvolvimento Ágil
Métodos: XP, Desenvolvimento Ágil
Metodologia Orientada a Objetos
Métodos: RUP

Sistemas CASE

Sistemas CASE são freqüentemente utilizados para apoiar a aplicação dos métodos.
Upper-CASE : ferramentas de apoio às fases iniciais do processo de software
Lower-CASE : ferramentas de apoio às fases finais processo de software (implementação e testes)

Responsabilidade Profissional




-Confidencialidade
-Competência
-Direitos de propriedade
-Má utilização de computadores

Código de ética

Engenheiros de software se comprometerão a fazer da análise, da especificação, do projeto, do desenvolvimento, dos testes e da manutenção de software uma profissão benéfica respeitada. De acordo com seu compromisso com a saúde, a segurança e o bem estar do público, os engenheiros de software deverão assegurar que seus produtos e as alterações a eles relacionadas cumpram o mais alto padrão profissional possível.

PÚBLICO
Os engenheiros de software agirão consistentemente com o interesse público.

CLIENTE E EMPREGADOR
Os engenheiros de software agirão de acordo com os melhores interesses de seus clientes e empregadores de modo consistente com o interesse público.

PRODUTO
Engenheiros de software deverão assegurar que seus produtos e as alterações a eles relacionadas cumpram o mais alto padrão profissional possível.

JULGAMENTO
Os engenheiros de software manterão integridade e independência em seu julgamento profissional.

GERENCIAMENTO
Os gerentes e líderes de engenharia de software adotarão e promoverão uma abordagem ética para o gerenciamento do desenvolvimento e da manutenção do software.

PROFISSÃO
Os engenheiros de software seguirão a integridade e reputação da profissão, de modo consistente com o interesse público.

COLEGAS
Os engenheiros de software serão justos e darão apoio aos seus colegas.

PESSOAL
Os engenheiros de software participarão de aprendizado constante com relação à prática de sua profissão e promoverão uma abordagem ética dessa prática.

Resumindo

A engenharia de software é uma disciplina da engenharia que se ocupa de todos os aspectos da produção de software

Produtos de software consistem de programas desenvolvidos e da documentação associada. Os atributos essenciais dos produtos são a facilidade de manutenção, a confiança e a evolução do software.

O processo de software consiste em atividades envolvidas no desenvolvimento de produtos de software. As atividades básicas são a especificação, o desenvolvimento, a validação e a evolução do software.

Métodos são os meios organizados de produzir software. Eles incluem sugestões sobre o processo a ser seguido, as notações a serem utilizadas, as regras que regem as descrições de sistema produzidas e as diretrizes do projeto.

Ferramentas CASE são sistemas de software projetados para dar apoio às atividades de rotina no processo de software, tais como editar diagramas de projeto, verificar a consistência de diagramas e manter o controle dos testes de programas.

Os engenheiros de software tem responsabilidades para com a engenharia como profissão e a sociedade. Eles não devem se preocupar exclusivamente com questões técnicas.


DUVIDAS e SUGESTÕES - ettorefrancobr@gmail.com

6 comentários:

  1. Ótima iniciativa Éttore, parabéns! Blogar é uma ótima maneira de aprender. Siga em frente. Um abraço!

    ResponderExcluir
  2. Muito obrigado Dirlei pela visita, estarei tirando quaisquer duvidas que precisar. Se quiser seguir o blog, sempre estarei postando novos artigos sobre analise e desenvolvimento de sistemas.

    ResponderExcluir
  3. HAHA, mt bom...
    Ainda bem que eu to fazendo Eng. de Softwares aqui na UnB ;D

    ResponderExcluir
  4. Otima iniciativa Ettore, Blogar é compartilhar, aprender e crescer.

    VALEU, ABRAÇOS.

    ResponderExcluir
  5. Que bom que estão gostando de minha iniciativa, farei o melhor para poder compartilhar todas as minhas informações. ABRAÇOS

    ResponderExcluir