Engenharia de software Origem: Wikipedia, a enciclopedia livre. https://pt.wikipedia.org/wiki/Engenharia_de_software A engenharia de software e a arearesponsavel pelo estabelecimento de tecnicas e praticas para odesenvolvimentode software cobrindo uma ampla area de aplicacoes e diferentestiposde dispositivos.[1]Engenharia de Software e uma areada computacao voltada a especificacao, desenvolvimento,manutencao e criacao de sistemas de software,com aplicacao de tecnologias e praticas de gerenciade projetos e outras disciplinas, visando organizacao,produtividade e qualidade.[2]Atualmente, essas tecnologiase praticas englobam linguagensde programacao, bancode dados, ferramentas,plataformas,bibliotecas,padroes, processos e a questao da qualidadede software.Os fundamentos cientificospara a engenharia de software envolvem o uso de modelosabstratos e precisos que permitem ao engenheiro especificar,projetar, implementar e manter sistemas de software, avaliando egarantindo suas qualidades. Alem disso, a engenharia de softwaredeve oferecer mecanismos para se planejar e gerenciar o processo dedesenvolvimento de um sistemacomputacional. Indice 1 Definicao 2 Areas de conhecimento 3 Processo de software 3.1 Modelos de processo de software 3.2 Modelos de maturidade 4 Metodologias e metodos 4.1 Modelagem 5 Ferramentas, tecnologias e praticas 5.1 Ferramenta 6 Gerencia de projetos 6.1 Planejamento 6.2 Analise de requisitos 6.3 Gestao 7 Historico 8 ES no presente e tendencias 9 Bibliografia 10 Referencias 11 Ver tambem 12 Ligacoes externas DefinicaoFriedrichLudwig Bauer foi o primeiro dizendo: "Engenharia de Softwaree a criacao e a utilizacao de solidos principios de engenhariaa fim de obter softwarede maneira economica, que seja confiavel e que trabalhe em maquinasreais". MargaretHamilton e creditada por ter criado o termo "engenharia desoftware".[3][4].O proprio significado de engenhariaja traz os conceitos de criacao, construcao, analise,desenvolvimento e manutencao.A Engenharia de Softwarese concentra nos aspectos praticos da producao de um sistema desoftware,enquanto a cienciada computacao estuda os fundamentosteoricos dos aspectos computacionais.O termo foi criado na decada de 1960 e utilizado oficialmente em1968 na NATO Science Committee. Sua criacao surgiu numatentativa de contornar a crisedo software e dar um tratamento de engenharia (mais sistematicoe controlado) ao desenvolvimentode sistemas de software complexos. Um sistema de softwarecomplexo se caracteriza por um conjunto de componentes abstratos desoftware (estruturas de dados e algoritmos) encapsulados naforma de procedimentos, funcoes, modulos, objetos ou agentes einterconectados entre si, compondo a arquiteturado software, que deverao ser executados em sistemascomputacionais.Os fundamentos cientificos envolvem o uso de modelos abstratose precisos que permitem ao engenheiro especificar, projetar,implementar e manter sistemas de software, avaliando egarantindo suas qualidades. Alem disto, deve oferecer mecanismospara se planejar e gerenciar o processo de desenvolvimento. Empresasdesenvolvedoras de software passaram a empregar essesconceitos sobretudo para orientar suas areas de desenvolvimento,muitas delas organizadas sob a forma de Fabricade Software.A engenhariade sistemas e uma area mais ampla por tratar de todos osaspectos de sistemas baseados em computadores,incluindo hardware e engenharia de processos alem dosoftware.A Universidade Federal de Goias foi a primeira instituicao nopais a criar o curso de graduacao em Engenharia de Software, tendoem constante evolucao de sua grade curricular.Areasde conhecimentoSegundo o SWEBOK(Corpo de Conhecimento da Engenharia de Software), versao 2004, asareas de conhecimento da Engenharia de Software sao:Requisitos de software Projeto de software Construcao de software Teste de software Manutencao de software Gerencia de configuracao de software Gerencia de engenharia de software Processos de Engenharia de Software Ferramentas e Metodos de Engenharia de