Engenharia de Software e Engenharia de Requisitos
Pesquisas Acadêmicas: Engenharia de Software e Engenharia de Requisitos. Pesquise 862.000+ trabalhos acadêmicosPor: ngivunda • 11/12/2014 • Pesquisas Acadêmicas • 1.105 Palavras (5 Páginas) • 565 Visualizações
CAPÍTULO II – DESENVOLVIMENTO TÉORICO
2.1 Engenharia de Software e Engenharia de Requisitos.
Antes de avançar no estudo propriamente dito da Engenharia de software e de análise de Requisitos, é interessante esclarecer alguns tópicos essenciais para o entendimento do assunto. Este ponto tem por objectivo introduzir alguns conceitos fundamentais para uma melhor compreensão dos capítulos posteriores.
2.2 Engenharia de Software.
A engenharia é conceitualizada como a “actividade em que os conhecimentos científicos são utilizados para resolver problemas práticos”. (Fernandes, 2005)
Uma sentença escrita em linguagem computável para qual existe uma máquina capaz de interpreta-la. A sentença (o software) é composta por uma sequência de instruções (comandos) e declarações de dados, armazenável em meio digital. Ao interpretar o software, a máquina computável é direccionada a realização de tarefas especificamente planeadas, para as quais o software foi projectado.
Os softwares são construídos de formas diferentes e que podem ser usados, alterados e redistribuídos segundo a permissão do criador e ou do cliente. Desta forma os tipos de software de acordo ao uso e distribuição são:
1. Software livre: é qualquer programa de computador cujo código-fonte deve ser disponibilizado para permitir o uso, a cópia, o estudo e a redistribuição sem restrições;
2. Software proprietário: é um software para computadores que é licenciado com direitos exclusivos para o produtor. É aquele cujas cópias, redistribuição ou modificação, são de certo modo restritos pelo seu criador ou distribuidor, a quem se deve solicitar permissão para a utilização do código fonte. As suas licenças são, geralmente, onerosas.
3. Software comercial: É aquele desenvolvido por uma empresa com o objectivo de lucrar com sua utilização.
Depois de entendermos os tipos de software existente de acordo a distribuição, passaremos agora a estudar os modelos de processo na qual eles são construídos. Neste contexto, segundo Sommorville, Processo de software é “um conjunto de actividades cuja meta é o desenvolvimento ou a evolução do software”(SOMMORVILLE, 2005) Ainda na visão de Sommorville, os modelos de desenvolvimento de software são:
1. Code-and-fix: é um modelo raramente recomendado, porém bastante comum. Esse uso comum deve-se ao facto de ser um modelo muito simples e não por ser eficiente. Quando se usa o modelo code-and-fix, inicia-se com uma ideia geral daquilo que se quer construir. A partir daí, usa-se qualquer combinação informal de projecto e codificação, até que se tenha um produto pronto para ser entregue. De uma forma geral, podemos dizer que a ênfase do modelo code-and-fix é a produção de código. Não exige muita experiência dos desenvolvedores, sendo o objectivo a codificação. Dificuldade de manutenção do produto final gerado.
2. Modelo em cascata, algumas vezes chamado de ciclo de vida clássico, sugere uma abordagem sistemática e sequencial para o desenvolvimento de softwares, que para Pressman, começa com a especificação dos requisitos pelo cliente e progride ao longo do planeamento, modelagem, construção e implementação, culminando na manutenção progressiva do software acabado. O modelo em cascata é o paradigma mais antigo da engenharia de software ( PRESSMAN, 2006)
3. Modelo Espiral: É um modelo evolutivo de processo de software, que combina a natureza interactiva da prototipagem com os aspectos controlados e sistemáticos do modelo em cascata. Ele fornece o potencial para o desenvolvimento rápido de versões de software cada vez mais completas.
Depois de entendermos os conceitos de engenharia e de software, estamos em condições de conceitualizar a engenharia de software. Assim, sendo a “criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira económica, que seja confiável e que trabalhe eficientemente em máquinas reais" (Ramsim; Paige, 2008)
Já no intuito de Pressman, engenharia de software é “ uma tecnologia em três camadas: processos, métodos e ferramentas. E a base de todas essas camadas é o foco na qualidade do software desenvolvido” " (Pressman, 2006)
Podemos ver que os conceitos de engenharia de software referenciados acima, divergem, no sentido em que Pressman, inclui no conceito de Engenharia de software – processo, métodos e ferramentas. Não obstante, convergem no sentido em que, ambas têm como foco principal o produto final. No entanto, tal produto deve satisfazer
...