movimento para a melhoria e um modelo de qualidade de processovoltada para a realidade do mercado de pequenas e medias empresas dedesenvolvimento de software no Brasil. O MPS.BR contempla 7 niveisde maturidade, de A a G, sendo a primeira o mais maduro. Ateagosto/2012, no Brasil, ha somente 2 empresas neste nivel.[6]Metodologiase metodosO termo metodologiae bastante controverso nas ciencias em geral e na Engenharia deSoftware em particular. Muitos autores parecem tratar metodologiae metodocomo sinonimos, porem seria mais adequado dizer que uma metodologiaenvolve principios filosoficos que guiam uma gama de metodos queutilizam ferramentas e praticas diferenciadas para realizar algo.[7]Assim teriamos, por exemplo, a MetodologiaEstruturada, na qual existem varios metodos, como AnaliseEstruturada e ProjetoEstruturado (muitas vezes denominados SA/SD,e AnaliseEssencial).Dessa forma, tanto a Analise Estruturada quanto a AnaliseEssencial utilizam a ferramenta Diagramade Fluxos de Dados para modelar o funcionamento do sistema.Segue abaixo as principais Metodologias e Metodos correspondentesno desenvolvimento de software:Metodologia Estruturada Analise Estruturada Projeto Estruturado Programacao Estruturada Analise Essencial SADT DFD - Diagrama de Fluxo de Dados MER - Modelo de Entidades e Relacionamentos Metodologia Orientada a Objetos Orientacao a Objetos Rational Unified Process ( RUP ) Desenvolvimento agil de software Feature Driven Development ( FDD ) Enterprise Unified Process (EUP) Scrum (Scrum) Crystal (Crystal Clear, Crystal Orange, Crystal Orange Web) Programacao extrema ( XP ) Outras Metodologias Microsoft Solution Framework ( MSF ) ModelagemA abstracao do sistema de software atraves de modelosque o descrevem e um poderoso instrumento para o entendimento ecomunicacao do produto final que sera desenvolvido.A maior dificuldade nesta atividade esta no equilibrio(tradeoff) entre simplicidade (favorecendo a comunicacao) ea complexidade (favorecendo a precisao) do modelo.Para a modelagem podemos citar 3 metodos:Analise estruturada, criada por Gane & Searson; Analise Essencial, criada por Palmer & McMenamin e Ed. Yourdon; UML, criada por Grady Booch, Ivar Jacobson & Jaimes Rumbaugh. E hoje o metodo mais comum para o paradigma orientado a objetos. Ferramentas, tecnologias e praticasA engenharia de software aborda uma serie de praticas etecnologias, principalmente estudadas pela cienciada computacao, enfocando seu impacto na produtividade equalidade de software.Destacam-se o estudo de linguagemde programacao, bancode dados e paradigmasde programacao, como:Programacao estruturada Programacao funcional Programacao orientada a objetos Componentes de Software Programacao orientada a aspecto FerramentaOutro ponto importante e o uso de ferramentasCASE(do ingles Computer-Aided Software Engineering). Essaclassificacao abrange toda ferramenta baseada em computadores queauxiliam atividades de engenharia de software, desde a analisede requisitos e modelagem ate programacao e testes.Os ambientesde desenvolvimento integrado (IDEs) tem maior destaque esuportam, entre outras coisas:Editor Debug Geracao de codigo Modelagem Deploy Testes nao automatizados Testes automatizados Refatoracao (Refactoring) Gestao de Riscos nos projectos de Software Uso da Prototipagem na Eng. de Requisitos Gerenciade projetosA gerenciade projetos se preocupa em entregar o sistema de softwareno prazo e de acordo com os requisitos estabelecidos, levando emconta sempre as limitacoes de orcamento e tempo.A gerencia de projetos de software se caracteriza por tratarsobre um produto intangivel, muito flexivel e com processo dedesenvolvimento com baixa padronizacao.PlanejamentoO planejamento de um projeto de desenvolvimento de softwareinclui:Analise Economica de Sistemas de Informacoes organizacao do projeto (incluindo equipes e responsabilidades) estruturacao das tarefas (do ingles WBS - work breakdown