Matheussn (discussão | contribs)
Etiqueta: visualeditor
Matheussn (discussão | contribs)
Linha 13: Linha 13:
Como a engenharia é a arte das construções, a engenharia de software é a arte da construção de um software. Mais do que isso, ela é uma tecnologia que
Como a engenharia é a arte das construções, a engenharia de software é a arte da construção de um software. Mais do que isso, ela é uma tecnologia que
visa construir um software de maneira coerente e precisa.
visa construir um software de maneira coerente e precisa.
[[Arquivo:CamadaENGSOFT.png|thumb|Imagem 1]]
 
Engenharia de software é uma tecnologia de camadas, onde cada camada, representa uma etapa que deve ser executado da melhor forma possível, ela tem
Engenharia de software é uma tecnologia de camadas, onde cada camada, representa uma etapa que deve ser executado da melhor forma possível, ela tem
como base a camada de processos. Ilustrado na imagem 1.
como base a camada de processos. Ilustrado na imagem 1.
 
[[Arquivo:CamadaENGSOFT.png|thumb|Imagem 1]]
O processo de engenharia de software, é quem mantém as camadas de tecnologia consistente, e possibilita o desenvolvimento racional de um software que 
O processo de engenharia de software, é quem mantém as camadas de tecnologia consistente, e possibilita o desenvolvimento racional de um software que 
esteja dentro do prazo. Nessa camada há a definição de uma metodologia que deve ser estabelecida para que haja a entrega efetiva do software. O processo 
esteja dentro do prazo. Nessa camada há a definição de uma metodologia que deve ser estabelecida para que haja a entrega efetiva do software. O processo 
Linha 25: Linha 25:
analise de requisitos, a comunicação, a modelagem de projeto, construção de programa, teste e suporte. Essa camada se baseia em um conjunto de princípios básicos que governam cada área da tecnologia, que inclui atividades de modelagem e algumas outras técnicas descritivas.
analise de requisitos, a comunicação, a modelagem de projeto, construção de programa, teste e suporte. Essa camada se baseia em um conjunto de princípios básicos que governam cada área da tecnologia, que inclui atividades de modelagem e algumas outras técnicas descritivas.


As ferramentas, proporcionam um apoio automatizado (ou semiautomatizado), para as camadas de métodos e de processos. Quando há a integração das ferramentas, de tal forma que, as informações geradas por uma seja capaz de ser utilizada por outra, é formado um sistema para o suporte ao desenvolvimento de software, isso se denomina Engenharia de software com o auxilio do computador (CASE - ''Comput er-Aided Software Engineering'').
As ferramentas, proporcionam um apoio automatizado (ou semiautomatizado), para as camadas de métodos e de processos. Quando há a integração das ferramentas, 
de tal forma que, as informações geradas por uma seja capaz de ser utilizada por outra, é formado um sistema para o suporte ao desenvolvimento de software, 
isso se denomina Engenharia de software com o auxilio do computador (CASE - ''Comput er-Aided Software Engineering'').


=== '''Aplicações praticas''' ===
=== '''Aplicações praticas''' ===
Linha 37: Linha 39:
da primeira fase, inicia se a segunda, e assim sucessivamente, porém há um detalhe, como em uma cascata, quando a água passa por ela, é impossível fazer com 
da primeira fase, inicia se a segunda, e assim sucessivamente, porém há um detalhe, como em uma cascata, quando a água passa por ela, é impossível fazer com 
que ela volte, correto!?
que ela volte, correto!?
Por isso, nesse modelo, a declaração das fases devem ser perfeitas, para que não haja erros no futuro.Por exemplo, ao desenvolver um produto web, você precisa 
especificar absolutamente todas as funcionalidades, pelo fato de que o desenvolvimento de software nesse modelo é visto com começo, meio e fim que acontece em 
uma sequencia: definição de requisitos, detalhamento e especificação do software, codificação, teste e produção.
[[Arquivo:Waterfall(1).jpg|thumb|270x270px]]
[[Arquivo:Waterfall(1).jpg|thumb|270x270px]]
Por isso, nesse modelo, a declaração das fases devem ser perfeitas, para que não haja erros no futuro.Por exemplo, ao desenvolver um produto web, você precisa 
Desenvolvimento iterativo de software
especificar absolutamente todas as funcionalidades, pelo fato de que o desenvolvimento de software nesse modelo é visto com começo, meio e fim que acontece em uma sequencia: definição de requisitos, detalhamento e especificação do software, codificação, teste e produção.


Desenvolvimento iterativo de software
Tal desenvolvimento se opõe ao modelo de cascata, pois o ciclo de desenvolvimento é menor e ele se repete varias  vezes, usando um relatório da fase anterior para melhorar a próxima. Como mostra a imagem a seguir.
[[Arquivo:Iterativo.jpg|thumb]]
[[Arquivo:Iterativo.jpg|thumb]]
Tal desenvolvimento se opõe ao modelo de cascata, pois o ciclo de desenvolvimento é menor e ele se repete varias  vezes, usando um relatório da fase anterior para melhorar a próxima. Como mostra a imagem a seguir.
Nesse modelo as fases são definidas com menos detalhes do que no modelo cascata, porém o mesmo permite alterações no projeto, por exemplo, ao desenvolver um produto web, você especifica tudo o que quer, se o desenvolvedor fizer o visual, e você querer muda-lo,por um motivo ou outro, essa mudança pode ocorrer.
Nesse modelo as fases são definidas com menos detalhes do que no modelo cascata, porém o mesmo permite alterações no projeto, por exemplo, ao desenvolver um produto web, você especifica tudo o que quer, se o desenvolvedor fizer o visual, e você querer muda-lo,por um motivo ou outro, essa mudança pode ocorrer.



Edição das 00h56min de 9 de setembro de 2016

Conceito

Engenharia 

Engenharia em seu contesto geral, é a arte das construções, tendo como base o conhecimento científico e empírico. Onde temos o conhecimento cientifico, como o estudo, onde determina-se constante e métodos de trabalho, e o conhecimento empírico que está relacionado à prática.

Software 

Software é uma sequência de comandos/instruções a serem interpretadas, com o objetivo de executar determinadas tarefas. São os programas de computadores.

Engenharia de Software

Engenharia de software é uma abordagem sistemática e disciplinada para o desenvolvimento de software (PRESSMAN, 2006).

Como a engenharia é a arte das construções, a engenharia de software é a arte da construção de um software. Mais do que isso, ela é uma tecnologia que visa construir um software de maneira coerente e precisa.

Engenharia de software é uma tecnologia de camadas, onde cada camada, representa uma etapa que deve ser executado da melhor forma possível, ela tem como base a camada de processos. Ilustrado na imagem 1.

Imagem 1

O processo de engenharia de software, é quem mantém as camadas de tecnologia consistente, e possibilita o desenvolvimento racional de um software que  esteja dentro do prazo. Nessa camada há a definição de uma metodologia que deve ser estabelecida para que haja a entrega efetiva do software. O processo  constitui a base para se ter o controle e o gerenciamento de projetos, nisso há o estabelecimento do ambiente que são aplicados os métodos técnicos, é feita  a documentação, para definir marcos, para que a qualidade seja garantida, e as mudanças futuras ocorram de forma correta.

Os Métodos, fornecem informações técnicas para o desenvolvimento do software. Está envolvido nesses métodos, uma grande variedade de tarefas, como: a  analise de requisitos, a comunicação, a modelagem de projeto, construção de programa, teste e suporte. Essa camada se baseia em um conjunto de princípios básicos que governam cada área da tecnologia, que inclui atividades de modelagem e algumas outras técnicas descritivas.

As ferramentas, proporcionam um apoio automatizado (ou semiautomatizado), para as camadas de métodos e de processos. Quando há a integração das ferramentas,  de tal forma que, as informações geradas por uma seja capaz de ser utilizada por outra, é formado um sistema para o suporte ao desenvolvimento de software,  isso se denomina Engenharia de software com o auxilio do computador (CASE - Comput er-Aided Software Engineering).

Aplicações praticas

De modo geral, essas três bases da engenharia de software visam construir um software de maneira coerente e precisa, por isso é crucial que cada camada, seja realizada da melhor forma possível, para que se obtenha o resultado esperado. 

Na pratica, existem várias metodologias, que visam uma boa pratica da engenharia de software. Como por exemplo:

Modelo cascata (Ou Waterfall)

No modelo cascata, as fases de desenvolvimento são definidas claramente, quando todas as fases são definidas, inicia se o desenvolvimento, quando há o termino  da primeira fase, inicia se a segunda, e assim sucessivamente, porém há um detalhe, como em uma cascata, quando a água passa por ela, é impossível fazer com  que ela volte, correto!?

Por isso, nesse modelo, a declaração das fases devem ser perfeitas, para que não haja erros no futuro.Por exemplo, ao desenvolver um produto web, você precisa  especificar absolutamente todas as funcionalidades, pelo fato de que o desenvolvimento de software nesse modelo é visto com começo, meio e fim que acontece em  uma sequencia: definição de requisitos, detalhamento e especificação do software, codificação, teste e produção.

Desenvolvimento iterativo de software

Tal desenvolvimento se opõe ao modelo de cascata, pois o ciclo de desenvolvimento é menor e ele se repete varias  vezes, usando um relatório da fase anterior para melhorar a próxima. Como mostra a imagem a seguir.

Erro ao criar miniatura: Arquivo não encontrado

Nesse modelo as fases são definidas com menos detalhes do que no modelo cascata, porém o mesmo permite alterações no projeto, por exemplo, ao desenvolver um produto web, você especifica tudo o que quer, se o desenvolvedor fizer o visual, e você querer muda-lo,por um motivo ou outro, essa mudança pode ocorrer.

Considerações finais

A base da engenharia de software são os processos, as pessoas e a tecnologia. Por isso, de nada adianta termos os melhores profissionais do mundo se não possuímos boas tecnologias para uso, ou se não possuímos um processo que guie o desenvolvimento de software.

Da mesma maneira, de nada adianta possuir as tecnologias mais avançadas se as pessoas não conseguem manusea-las. 

Além disso, mesmo que pareça inacreditável, de nada adianta termos a melhor tecnologia e as melhores pessoas se não existe um processo que guie as atividades dessas pessoas utilizando tais tecnologias. 

Referencias

http://www.guiadastartup.com.br/boas-praticas-de-engenharia-de-software/

https://books.google.com.br/books?hl=pt-BR&lr=&id=rtBvl_L-1mcC&oi=fnd&pg=PT23&dq=Tecnologia+de+Engenharia+de+Software&ots=9zhl-O4w_v&sig=aQiqF_lBhoPFawTQ_0n9UxQzM28#v=onepage&q&f=false

https://books.google.com.br/books?hl=pt-BR&lr=&id=wexzCwAAQBAJ&oi=fnd&pg=PR1&dq=Tecnologia+de+Engenharia+de+Software&ots=0M0HlLQA20&sig=CuSs4qknbXCebsmH0NGIkslxads#v=onepage&q=Tecnologia%20de%20Engenharia%20de%20Software&f=false