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
Ótima iniciativa Éttore, parabéns! Blogar é uma ótima maneira de aprender. Siga em frente. Um abraço!
ResponderExcluirMuito 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.
ResponderExcluirHAHA, mt bom...
ResponderExcluirAinda bem que eu to fazendo Eng. de Softwares aqui na UnB ;D
Vlw :D
ResponderExcluirOtima iniciativa Ettore, Blogar é compartilhar, aprender e crescer.
ResponderExcluirVALEU, ABRAÇOS.
Que bom que estão gostando de minha iniciativa, farei o melhor para poder compartilhar todas as minhas informações. ABRAÇOS
ResponderExcluir