E MTODOS SIGLAS 3GL 3 Generativo Linguagem BNF Backups -Naur Form Driven Development Feature- FDD IDE de desenvolvimento integrado Ambiente PBI produtos Backlog item Desenvolvimento Rpido de Aplicaes RAD UML Unified Modeling Linguagem Programao XP extreme INTRODUO Modelos de engenharia de software e mtodos Impor estrutura em engenharia de software com O objetivo de fazer que a atividade sistemtica, Repetvel, e, finalmente, mais sucesso orientada. Usando modelos oferece uma abordagem para o problema Resoluo de problemas, uma notao e procedimentos para o modelo Construo e anlise. Os mtodos proporcionam uma Aproximar a especificao sistemtica, design, Construo, teste e verificao do produto final - Software e produtos de trabalho associados. Modelos de engenharia de software e mtodos Alcance muito variado, de abordar um nico Software fase do ciclo de vida para cobrir o completo Ciclo de vida do software. A nfase desta rea de conhecimento (KA) em engenharia de software Os modelos e mtodos que englobam mltiplos Fases do ciclo de vida de software, uma vez que mtodos especficos Para as fases do ciclo de vida simples so abrangidos por outra kas. REPARTIO DE TEMAS PARA MODELOS DE ENGENHARIA DE SOFTWARE E MTODOS Este captulo sobre modelos de engenharia de software e Mtodos dividida em quatro principais reas temticas: Modelagem: discute a prtica geral De modelagem e apresenta tpicos de modelagem Princpios; Propriedades e expresso de Modelos; sintaxe de modelagem, semntica e Pragmtica; e pr-condies, ps-condies, E invariantes. Tipos de Modelos: discute brevemente modelos E agregao de submodelos e fornece Algumas caractersticas gerais de tipos de modelo Comumente encontrados na engenharia de software Prtica. Anlise de Modelos: apresenta algumas das Tcnicas de anlise comuns utilizados na modelagem Para verificar a integridade, consistncia, exatido, Rastreabilidade e interao. Software Mtodos de engenharia: apresenta uma Breve resumo do software utilizada Mtodos de engenharia. Os guias de discusso O leitor atravs de um resumo da heurstica Mtodos, mtodos formais, prototipagem, e Mtodos geis. A composio de temas para o Software Engenharia Modelos e Mtodos KA mostrado Na Figura 9.1. 1. Modelagem Modelagem de software est se tornando um penetrante Tcnica para ajudar engenheiros de software entender, 9-2 SWEBOK Guia V3.0 Engenheiro, e comunicar aspectos do software s partes interessadas apropriadas. Stakeholders So as pessoas ou partidos que tm uns declarados Ou juros implcitos no software (por exemplo, Usurio, comprador, fornecedor, arquiteto, autoridade de certificao, Avaliador, desenvolvedor, engenheiro de software, e Talvez outros). Embora existam muitas linguagens de modelagem, Notaes, tcnicas e ferramentas na literatura E, na prtica, existem conceitos gerais unificadores Que se aplicam de alguma forma a todos eles. O Seguintes sees fornecem fundo sobre estes Conceitos gerais. 1.1 . Princpios de Modelagem [ 1 *, c2s2, c5s1, c5s2 ] [ 2 *, c2s2 ] [ 3 *, c5s0 ] Modelagem fornece o engenheiro de software com Uma abordagem organizada e sistemtica para representar Aspectos significativos do software sob Estudar, facilitando sobre o software de tomada de deciso Ou elementos dele, e comunicar os Decises significativas para os outros na parte interessada Comunidades. Existem trs princpios gerais Orientar essas atividades de modelagem: Modelo do Essentials: Gostei modelos no Geralmente representam cada aspecto ou recurso do O software sob todas as condies possveis. Modelagem tipicamente envolve o desenvolvimento s Esses aspectos ou caractersticas do software que Preciso de respostas especficas, abstraindo qualquer Informaes no essenciais. Esta abordagem Mantm os modelos gerencivel e til. Fornece Perspectiva: modelagem fornece Pontos de vista do software em estudo utilizando Um conjunto definido de regras para a expresso da Modelar dentro de cada exibio. Esta perspectiva orientada Abordagem fornece a dimensionalidade Do modelo (por exemplo, uma vista estrutural, Vista comportamental, viso temporal, organizacional Visualizar, e outros pontos de vista como relevante). Organizar informaes em visualizaes focos Os esforos de modelagem de software em especfico Figura 9.1. Composio dos Tpicos para os modelos de Engenharia de Software e Mtodos KA Modelos e Mtodos de Engenharia de Software 9-3 Preocupaes relevantes para essa viso usando o Notao apropriada, vocabulrio, mtodos, E ferramentas. Habilitar Comunicao Eficaz: modelagem Emprega o vocabulrio domnio de aplicao Do software, uma linguagem de modelagem e Expresso semntica (em outras palavras, significa Dentro do contexto). Quando utilizada com rigor E sistematicamente, esta resulta em modelagem Uma abordagem que facilita a comunicao eficaz Comunicao de informaes de software para Partes interessadas no projeto. Um modelo uma abstrao ou simplificao de Um componente de software. A consequncia do uso de Abstrao que nenhuma abstrao completamente Descreve um componente de software. Em vez disso, O modelo de software representado como um Agregao de abstraes, que, quando tomado Juntos, descrevem aspectos apenas selecionados, perspectivas, Ou vistas somente aqueles que so necessrios Para tomar decises informadas e responder ao Razes para a criao do modelo, em primeiro lugar. Esta simplificao leva a um conjunto de pressupostos Sobre o contexto em que o modelo Colocado de maneira que tambm devem ser capturados no modelo. Ento, quando a reutilizao do modelo, estes pressupostos Podem ser validadas primeiro a estabelecer a relevncia do A modelo reutilizada dentro de seu novo uso e contexto. 1.2 . Propriedades e Expresso de Modelos [ 1 *, c5s2, c5s3 ] [ 3 *, c4s1.1p7, c4s6p3, C5s0p3 ] Propriedades de modelos so aquelas caractersticas que distinguem De um modelo particular utilizado para caracterizar Sua completude, consistncia e correo Dentro da notao de modelagem escolhida e ferramental Utilizado. Propriedades de modelos incluem o seguinte: Integridade: o grau em que todos Requisitos foram implementados e Verificada no modelo. Consistncia: o grau em que o modelo No contm requisitos conflitantes, afirmaes, Restries, funes ou componente Descries. Correo: o grau em que o modelo Satisfaa as suas exigncias e especificaes de projeto E livre de defeitos. Os modelos so construdos para representar no mundo real Objetos e seus comportamentos para responder especfico Questes sobre como o software esperado Para operar. Interrogando os modelos ou Atravs da explorao, simulao, ou reviso de maio Expor reas de incerteza dentro do modelo e O software para que o modelo se refere. Estes Incertezas ou perguntas no respondidas a respeito Os requisitos, projeto e / ou implementao Podem ser tratados de forma adequada. O elemento de expresso primria de um modelo est Uma entidade. Uma entidade pode representar artefatos de concreto (Por exemplo, processadores, sensores, ou robs) Ou artefatos abstratos (por exemplo, mdulos de software Ou protocolos de comunicao). Entidades modelo Esto ligadas a outras entidades usando relaes (Em outras palavras, as linhas ou operadores textuais Sobre as entidades alvo). Expresso das entidades do modelo Pode ser realizada utilizando textual ou grfica Modelagem de lnguas; tanta linguagem de modelagem Tipos conectar entidades do modelo atravs da linguagem especfica Construtos. O significado de uma entidade pode Ser representado por seu formato, atributos textuais, ou Ambos. Geralmente, a informao textual adere Estrutura sinttica especfica da linguagem. A preciso Significados relacionados modelagem de contexto, Estrutura ou comportamento usando essas entidades e Relaes dependente da linguagem de modelao Usado, o rigor desenho aplicado na modelagem Esforo, a viso especfica que est sendo construdo, e A entidade qual o elemento notao especfica Pode ser ligado. Vrios pontos de vista do modelo Pode ser necessria para capturar a semntica necessrios do software. Ao usar os modelos suportados com a automao , modelos podem ser verificados para a integralidade e consistncia. A utilidade destas verificaes depende muito do nvel de semntico e sinttico rigor aplicado ao esforo de modelagem , alm a ferramenta de suporte explcito. Correto tipicamente verificado atravs de simulao e / ou reviso . 1.3 . Sintaxe , semntica e pragmtica [ 2 * c2s2.2.2p6 ] [ 3 * , c5s0 ] Os modelos podem ser surpreendentemente enganosa. o facto que um modelo uma abstrao com informao em falta pode levar um em uma falsa sensao de completamente compreenso do software a partir de um nico modelo . Um modelo completo ( " completo " ser 9-4 SWEBOK Guia V3.0 em relao ao esforo de modelagem ) pode ser uma unio de vrios submodelos e qualquer funo especial modelos . Exame e de tomada de deciso em relao a um nico modelo dentro desta coleo de submodelos pode ser problemtico. Compreender os significados precisos de modelagem construes tambm pode ser difcil . modelagem idiomas so definidos por sinttica e semntica regras . Para linguagens textuais , a sintaxe definida usando uma gramtica notao que define idioma vlido construes ( por exemplo, Backus -Naur Form ( BNF ) ) . Para linguagens grficas , a sintaxe definido utilizando modelos grficos chamado metamodelos . Tal como acontece com BNF , metamodelos definir a validade construes sintticas de uma modelagem grfica linguagem; metamodelo define como essas construes pode ser composta para produzir modelos vlidos . Semntica para linguagens de modelagem especificar o significados ligados s entidades e relaes capturado dentro do modelo . Por exemplo , um simples diagrama de duas caixas ligadas por uma linha est aberta para uma variedade de interpretaes . Sabendo que o diagrama em que as caixas so colocados e ligados um diagrama de objeto ou um diagrama de atividades pode auxiliar na interpretao deste modelo. Como uma questo prtica , geralmente h uma boa compreenso da semntica de um especfico modelo de software devido linguagem de modelagem selecionado, como linguagem de modelagem que utilizada para expressar entidades e relaes dentro desse modelo , a base de experincia do modelador ( s ) , e o contexto no qual a modelao tem sido realizado e representado. Significado comunicada por meio do modelo , mesmo na presena de informaes incompletas por meio da abstrao ; pragmtica explica como o significado incorporada no modelo e de seu contexto e comunicada eficazmente aos outros engenheiros de software. H ainda casos, no entanto , onde o cuidado necessria a respeito de modelagem e semntica. Por exemplo, todas as partes do modelo importado da outro modelo ou biblioteca deve ser examinado para suposies semnticas que o conflito na nova ambiente de modelagem ; isso pode no ser bvia. O modelo deve ser verificado para documentado suposies . Embora a sintaxe modelao pode ser idnticas , o modelo pode significar algo muito diferente no novo ambiente , que um diferente contexto . Alm disso, consideram que, como software amadurece e as mudanas so feitas , a discrdia semntica pode ser introduzido , conduzindo a erros . com muitos engenheiros de software que trabalham em uma parte do modelo mais tempo juntamente com as atualizaes de ferramentas e, talvez, novo requisitos , h oportunidades para pores do modelo para representar algo diferente da inteno do autor original e modelo inicial contexto . 1.4 . Pr-condies , ps-condies , e invariantes [ 2 * , c4s4 ] [ 4 * , c10s4p2 , c10s5p2p4 ] Ao modelar funes ou mtodos, o software engenheiro normalmente comea com um conjunto de suposies sobre o estado do software antes de , durante , e depois a funo ou o mtodo executado . Essas premissas so essenciais para a correta operao da funo ou mtodo e so agrupadas , para discusso, como um conjunto de pr-condies , posteriores e constantes . Pr-condies : um conjunto de condies que devem ser satisfeitas antes da execuo da funo ou mtodo . Se estas condies no possuem antes da execuo da funo ou mtodo, a funo ou mtodo pode produzir errnea resultados . Ps-condies : um conjunto de condies que a garantia de ser verdade aps a funo ou mtodo foi executado com sucesso. tipicamente , as ps-condies representam a forma como o Estado do software foi alterado, como os parmetros passado para a funo ou mtodo tm alterados, como valores de dados tiverem sido alteradas ou como o valor de retorno foi afetada. Constantes : um conjunto de condies dentro do ambiente operacional que persistem (em outras palavras , no se alteram) antes e depois execuo da funo ou mtodo. estes invariantes so pertinentes e necessrios para a software eo correcto funcionamento do funo ou mtodo . 2 . Tipos de modelos Um modelo tpico consiste de um agregado de submodelos . Cada sub-modelo uma descrio parcial e criado para uma finalidade especfica ; ele pode ser constitudo por um ou mais diagramas . o coleo de submodelos podem empregar mltipla Modelos e Mtodos de Engenharia de Software 9-5 modelagem de idiomas ou uma nica linguagem de modelagem . A Unified Modeling Language (UML) reconhece uma rica coleo de diagramas de modelagem . A utilizao destes diagramas , juntamente com o construes de linguagem de modelagem, traz cerca de trs grandes tipos modelo comumente utilizados : Informao modelos , os modelos de comportamento , e modelos de estrutura (ver seco 1.1). 2.1 . Modelagem de informaes [ 1 * , c7s2.2 ] [ 3 * , c8s1 ] Modelos de informao fornecem um foco central na de dados e informaes. Um modelo de informao um representao abstrata que identifica e define um conjunto de conceitos , propriedades, relaes e restries em entidades de dados . A semntica ou conceitual modelo de informao muitas vezes usado para fornecer algum formalismo e de contexto para o software que est sendo modelado como visto da perspectiva problema, sem a preocupao de como este modelo realmente mapeado para a implementao do software. O modelo de informao semntica ou conceitual uma abstrao e , como tal, inclui apenas o conceitos , propriedades, relaes e restries necessrio conceituar a viso do mundo real a informao . Transformaes subsequentes de o modelo de informao semntica ou conceitual conduzir elaborao de lgica e fsica , em seguida, modelos de dados como implementadas no software . 2.2 . Modelagem Comportamental [1 * , c7s2.1 , c7s2.3 , c7s2.4 ] [2 * , c9s2 ] [ 3 * , c5s4 ] Modelos comportamentais identificar e definir as funes do software que est sendo modelado . Behavioral modelos geralmente tomam trs formas bsicas : mquinas de estado , modelos de fluxo de controle e fluxo de dados modelos . As mquinas de estado fornecer um modelo do software como uma coleo de estados definidos , eventos e transies. As transies de software de um estado para o outro por meio de um vigiado ou evento subterrneo disparo que ocorre no ambiente modelado. Modelos de controle de fluxo descrever como uma seqncia de eventos faz com que os processos para ser ativado ou desativado . O comportamento do fluxo de dados tipificado como uma seqncia de etapas , onde os dados se move atravs de processos em relao a armazenamentos de dados ou dissipadores de dados . 2.3 . estrutura de Modelagem [ 1 * , c7s2.5 , c7s3.1 , c7s3.2 ] [ 3 * , c5s3 ] [ 4 * , c4 ] Modelos de estrutura ilustrar o fsico ou lgico composio de software a partir do seu componente de vrias peas. Modelagem Estrutura estabelece a delimitada entre o software sendo executado ou modelado e do ambiente em que para operar . Alguns estrutural comum construes utilizadas na modelagem de estrutura so composio , decomposio, generalizao e especializao das entidades; identificao da causa relaes e cardinalidade entre entidades; ea definio de processo ou de interfaces funcionais . Diagramas de estrutura fornecidas pelo UML para a modelagem de estrutura incluem classe , componente, objeto , implantao e embalagens diagramas. 3 . Anlise de Modelos O desenvolvimento de modelos de recursos para o software engenharia a oportunidade de estudar , raciocinar sobre , e compreender a estrutura, funo operacional de uso e de montagem consideraes associadas com o software . Anlise de construdo modelos necessrio para garantir que esses modelos so completo , consistente e correto o suficiente para servir a sua finalidade pretendida para os stakeholders. As sees que seguem descrevem brevemente o tcnicas de anlise geralmente usado com software modelos para garantir que o engenheiro de software e outras partes interessadas ganhar apropriado valor a partir do desenvolvimento e utilizao de modelos . 3.1 . Analisando por Integralidade [ 3 * , c4s1.1p7 , c4s6 ] [ 5 * , p8 - 11 ] A fim de ter um software que atende plenamente as necessidades das partes interessadas , a integralidade fundamental - de o processo de elicitao de requisitos para implementao de cdigo . Integralidade o grau em que todos os requisitos especificados foram implementadas e verificados. Os modelos podem ser verificados para integralidade por uma ferramenta de modelagem que utiliza tcnicas tais como anlise estrutural e de espao de estados anlise acessibilidade (que garantir que todos os caminhos em os modelos de estado so atingidos por algum conjunto de correta insumos ); modelos tambm podem ser verificados para a integralidade manualmente usando inspees ou outra reviso tcnicas ( veja a Qualidade de Software KA ) . erros 9-6 SWEBOK Guia V3.0 e avisos gerados por essas ferramentas de anlise e encontrado por inspeo ou reviso indicam provvel aes corretivas necessrias para garantir a integridade dos modelos . 3.2 . Analisando a consistncia [ 3 * , c4s1.1p7 , c4s6 ] [ 5 * , p8 - 11 ] A consistncia o grau em que os modelos contm h exigncias conflitantes , afirmaes , restries descries de funes , ou componente. Normalmente , a verificao de consistncia realizada com a ferramenta de modelagem atravs de uma anlise automatizada funo; modelos tambm pode ser verificada a consistncia manualmente usando inspees ou outra reviso tcnicas ( veja a Qualidade de Software KA ) . como com integridade, erros e avisos gerados por estas ferramentas de anlise e encontrado por inspeo ou , indicar a necessidade de uma ao corretiva. 3.3 . Analisando quanto correo [ 5 * , p8 - 11 ] A exatido o grau em que um modelo satisfaz seus requisitos de software e software especificaes de projeto , livre de defeitos , e, finalmente, atende s necessidades dos stakeholders. analisando para correo inclui a verificao correo sinttica do modelo ( isto , o uso correto da gramtica da linguagem de modelagem e construes ) e verificao de correo semntica do modelo ( que , o uso da linguagem de modelagem constri a representar corretamente o significado do que que est sendo modelado ) . Para analisar um modelo para sinttica e correo semntica, se analisa -lo - quer automaticamente ( por exemplo , usando a modelagem ferramenta para verificar se h modelo correo sinttica ) ou manualmente (usando inspees ou outra reviso tcnicas ) , procura de possveis defeitos e em seguida, remover ou reparar os defeitos confirmados antes que o software liberado para o uso. 3.4 . Rastreabilidade [ 3 * , c4s7.1 , c4s7.2 ] Desenvolver software tipicamente envolve o uso , criao e modificao de muitos produtos de trabalho tais como documentos de planejamento , especificaes de processo, requisitos de software , diagramas, desenhos e pseudo- cdigo , escrito mo e uma ferramenta gerado Cdigo , manual e casos de teste automatizadas e relatrios , e arquivos e dados. Estes produtos de trabalho pode ser relacionados atravs de vrias relaes de dependncia ( por exemplo, usa , implementos , e testes ) . como o software est sendo desenvolvido, gerenciado, mantido, ou alargado , existe uma necessidade para mapear e controlar estes relacionamentos de rastreabilidade para demonstrar software requisitos coerncia com o software modelo ( consulte Requisitos de rastreamento no Software Requisitos KA ) e os muitos produtos de trabalho. Utilizao de rastreabilidade tipicamente melhora a gesto de produtos de trabalho de software e processo de software qualidade ; ele tambm fornece garantias para as partes interessadas que todos os requisitos foram atendidos. A rastreabilidade permite a anlise de mudana uma vez que o software desenvolvido e liberado, j que as relaes para produtos de trabalho de software pode ser facilmente percorrido para avaliar o impacto da mudana. Modelagem de ferramentas tipicamente fornecer alguns meios automatizados ou manuais para especificar e gerenciar links de rastreabilidade entre os requisitos , design, cdigo, e / ou entidades de teste que possa ser representados nos modelos e outros trabalhos de software produtos . ( Para mais informaes sobre a rastreabilidade, ver o Gerenciamento de Configurao de Software KA ) . 3.5 . Anlise de Interao [ 2 * , c10 , c11 ] [ 3 * , c29s1.1 , c29s5 ] [ 4 * , c5 ] Interao anlise centra-se nas comunicaes ou relaes de controle de fluxo entre entidades usado para realizar uma tarefa ou funo especfica dentro do modelo de software . Esta anlise examina o comportamento dinmico das interaes entre as diferentes partes do modelo de software , incluindo outras camadas de software (por exemplo, a operao sistema , middleware e aplicaes). ele tambm pode ser importante para algumas aplicaes de software para examinar as interaces entre o computador aplicao de software e da interface de usurio software . Alguns ambientes de modelagem de software proporcionar facilidades de simulao para estudar aspectos da o comportamento dinmico de software modelado. pisando atravs da simulao fornece uma anlise opo para o engenheiro de software para analisar o design de interao e verificar que os diferentes partes do software trabalham juntos para fornecer o funes pretendidas . Modelos e Mtodos de Engenharia de Software 9-7 4 . Mtodos de Engenharia de Software Mtodos de engenharia de software fornecem uma organizada e uma abordagem sistemtica para o desenvolvimento de software para um computador de destino . Existem inmeros mtodos de que para escolher , e importante para o engenheiro de software para escolher um apropriado mtodo ou mtodos para o desenvolvimento de software tarefa em mos ; esta escolha pode ter um efeito dramtico sobre o sucesso do projeto de software. A utilizao de estes mtodos de engenharia de software , juntamente com as pessoas de as capacidades corretas e ferramentas permitem que o software engenheiros para visualizar os detalhes do software e, finalmente, transformar a representao em um conjunto de trabalho de cdigo e dados. Mtodos de engenharia de software selecionadas so discutidas abaixo . As reas temticas so organizadas em discusses de mtodos heursticos , Mtodos Formais , Prototipagem Mtodos e Mtodos geis . 4.1 . Mtodos heursticos [ 1 * , C13 , C15 , C16 ] [ 3 * , c2s2.2 , c5s4.1 , c7s1 , ] Os mtodos heursticos so baseados na experincia daqueles mtodos de engenharia de software que foram e so bastante amplamente praticada na indstria de software. Esta rea tpico contm trs ampla discusso categorias: anlise e projeto estruturado mtodos, mtodos de modelagem de dados e a objetos anlise e mtodos de projeto . Anlise Estruturada e mtodos de design : O modelo de software desenvolvido principalmente do ponto de vista funcional ou comportamental , a partir de uma vista de alto nvel do software (incluindo elementos de dados e controle ) e , em seguida, a decomposio ou a refinao progressivamente os componentes do modelo atravs de cada vez projetos detalhados . O projeto detalhado eventualmente converge para detalhes muito especficos ou especificaes do software que deve ser codificado ( com a mo, gerado automaticamente , ou ambos) , construdo , testado e verificado. Mtodos de Modelagem de Dados: O modelo de dados construdo a partir do ponto de vista dos dados ou informaes usadas . Tabelas e relacionamentos de dados definir os modelos de dados . Esta modelagem de dados mtodo usado principalmente para definir e anlise de requisitos de dados de suporte projetos de banco de dados ou repositrios de dados tipicamente encontrado em software de negcios, onde os dados est ativamente gerenciados como um sistema de negcios recurso ou ativo . Anlise e Mtodos de projeto orientado a objetos : O modelo orientado a objeto representado como uma coleo de objetos que encapsulam dados e relacionamentos e interagir com outros objetos atravs de mtodos . Os objetos podem ser itens do mundo real ou itens virtuais. o software modelo construdo usando diagramas para constituir vistas seleccionadas do software . Refinamento progressivo dos modelos de software leva a um projeto detalhado . o detalhado projeto ento evoluiu atravs de sucessivos iterao ou transformada ( usando algum mecanismo ) para a viso de implementao do modelo , em que o cdigo e embalagens abordagem para a eventual produto de software liberao e implantao expressa . 4.2 . Mtodos Formais [ 1 * , c18 ] [ 3 * , c27 ] [ 5 * , p8 - 24 ] Os mtodos formais so mtodos de engenharia de software usado para especificar , desenvolver e verificar se o software atravs da aplicao de um matematicamente rigorosa notao base e da linguagem. atravs da utilizao de uma linguagem de especificao , o modelo de software Pode ser verificada a consistncia (por outras palavras , falta de ambigidade ) , integridade e exatido de forma sistemtica e automtico ou semi- automtico moda. Este tpico est relacionado com a Anlise Formal seo no Requisitos de Software KA . Esta seo aborda linguagens de especificao , refinamento programa e derivao , verificao formal, e inferncia lgica . Especificaes Idiomas: Especificao linguagens fornecem a base matemtica para um mtodo formal ; linguagens de especificao so formais , computador de nvel superior lnguas (em outras palavras, no um clssico 3 Gerao Linguagem de programao ( 3GL ) idioma ) utilizado durante o software especificaes, requisitos de anlise e / ou fases de concepo para descrever entrada especfica / comportamento de sada. Linguagens de especificao so lnguas no diretamente executveis ; eles so 9-8 SWEBOK Guia V3.0 tipicamente composta por uma notao e sintaxe, semntica para uso da notao, e um conjunto de permitiu relaes de objetos. Refinamento Programa e Derivao: Programa refinamento o processo de criao de um nvel mais baixo (ou mais detalhada) especificao usando uma srie de transformaes . atravs da transformaes sucessivas que o software engenheiro deriva uma representao executvel de um programa . As especificaes podem ser refinados , adicionando detalhes at que o modelo pode ser formulado em uma linguagem de programao 3GL ou em uma parte executvel da especificao escolhido lngua . Esta especificao refinamento tornada possvel atravs da definio de especificaes com propriedades semnticas precisas; as especificaes deve definir no s as relaes entre entidades , mas tambm os significados exatos de tempo de execuo essas relaes e operaes. Verificao Formal : verificao de modelo um mtodo de verificao formal; tipicamente envolve a realizao de uma explorao de espao de estados ou anlise de acessibilidade para demonstrar que o projeto de software tem representado ou preserva certas propriedades modelo de interesse . Um exemplo de verificao de modelos uma anlise que verifica o comportamento correto programa sob todos os possveis intercalao de evento ou chegadas de mensagens. O uso de verificao formal exige um modelo de rigor especificado do software e seu ambiente operacional ; este modelo muitas vezes toma a forma de um mquina de estados finitos ou outro formalmente definida autmato . Inferncia lgica: inferncia lgica uma Mtodo de criao de software que envolve pr-condies e ps-condies especificando em torno de cada bloco significativo do design, e usando matemtica lgica de desenvolvimento a prova de que essas pr-condies e ps-condies deve manter em todas as entradas. este fornece uma maneira para que o engenheiro de software prever o comportamento do software sem ter para executar o software . alguns Integrado Ambientes de Desenvolvimento (IDEs) incluem formas de representar essas provas , juntamente com o design ou cdigo. 4.3 . Mtodos de prototipagem [ 1 * , c12s2 ] [ 3 * , c2s3.1 ] [ 6 * , c7s3p5 ] Prototipagem de software uma atividade que geralmente cria verses incompletas ou minimamente funcional de uma aplicao de software , geralmente para tentar novas funcionalidades especficas para fora , feedback solicitando sobre os requisitos de software ou interfaces de usurio, mais requisitos de software que exploram , software design, ou opes de implementao e / ou ganhar outra viso til para o software. o engenheiro de software seleciona um mtodo de prototipagem para compreender os aspectos ou componentes menos compreendidos do software de primeira ; esta abordagem contraste com outros mtodos de engenharia de software que geralmente comeam com o desenvolvimento mais entendido pores primeiro . Normalmente, o prottipo produto no se tornar o software final produto sem extenso retrabalho desenvolvimento ou refatorao. Esta seo aborda estilos de prototipagem , metas , e tcnicas de avaliao em breve . Estilo de Prototipagem : Este aborda os vrios abordagens para o desenvolvimento de prottipos . Prottipos pode ser desenvolvido como cdigo descartvel ou produtos de papel , como uma evoluo de um grupo de trabalho design, ou como uma especificao executvel. Diferentes processos de ciclo de vida de prototipagem so normalmente usado para cada estilo. O estilo escolhido baseia-se no tipo de resultados do projecto necessidades , a qualidade dos resultados necessrios , e a urgncia dos resultados. Prototipagem Alvo : O alvo do prottipo atividade o produto especfico que est sendo servido pelo esforo prototipagem. Exemplos alvos de prototipagem incluem um requisitos especificao , um elemento de design de arquitetura ou componente , um algoritmo , ou um humanmachine interface do usurio. tcnicas de prototipagem de avaliao: Um prottipo pode ser utilizado ou avaliado numa srie maneiras de o engenheiro de software ou outros participantes do projeto , impulsionado principalmente pelas razes subjacentes que levaram prottipo desenvolvimento em primeiro lugar . Prottipos pode ser avaliada ou testada contra o software implementado real ou contra Modelos e Mtodos de Engenharia de Software 9-9 um conjunto de requisitos de alvo ( por exemplo, um requisitos prottipo ) ; o prottipo pode tambm servem como um modelo para um futuro software esforo de desenvolvimento ( por exemplo , como em um utilizador especificao de interface ) . 4.4 . Mtodos geis [ 3 * , c3 ] [ 6 * , c7s3p7 ] [ 7 * , c6 , App . A] Mtodos geis nasceram na dcada de 1990 a partir da necessrio reduzir a grande sobrecarga aparente associada com pesos pesados , os mtodos baseados em plano utilizados em projetos de desenvolvimento de software em larga escala. Os mtodos geis so considerados mtodos leves em que eles so caracterizados por curto , iterativo ciclos de desenvolvimento , equipes auto-organizadas , projetos mais simples , refatorao de cdigo , teste -driven desenvolvimento , o envolvimento do cliente freqente, e uma nfase na criao de um ambiente de trabalho demonstrvel produto com cada ciclo de desenvolvimento . Muitos mtodos geis esto disponveis na literatura ; algumas das abordagens mais populares , que so discutidas aqui em breve , incluem rpida Desenvolvimento de Aplicaes (RAD) , eXtreme Programming (XP), Scrum e apresentam -Driven Desenvolvimento ( FDD) . RAD : mtodos de desenvolvimento de software rpidas so usados principalmente em uso intensivo de dados , businesssystems desenvolvimento de aplicaes. a RAD mtodo ativado com base de dados para fins especiais ferramentas de desenvolvimento usadas por software engenheiros para desenvolver rapidamente , testar e implantar aplicaes de negcios novos ou modificados . XP: Esta abordagem utiliza histrias ou cenrios para os requisitos , desenvolve os testes primeiro , tem envolvimento direto do cliente na equipe (normalmente definir os testes de aceitao ) , usa programao em pares , e prev a contnua refatorao de cdigo e integrao. histrias so decompostas em tarefas , priorizados , estima , desenvolvido e testado . cada incremento de software foi testado com automatizada e testes manuais ; um incremento pode ser lanado com freqncia, como a cada dois semanas ou mais . Scrum : Essa abordagem mais gil do projeto do que os outros -friendly gesto. o scrum master gerencia as atividades dentro o incremento do projeto; cada incremento chamado de sprint e no dura mais do que 30 dias. A Product Backlog item da lista ( PBI) desenvolvida a partir da qual as tarefas so identificadas , definidos , priorizados e estimado. Um trabalho verso do software testado e lanado em cada incremento . scrum dirio reunies assegurar o trabalho gerenciado com o plano. FDD : Este um model-driven , short, iterativo abordagem de desenvolvimento de software utilizando um processo de cinco fases : (1) desenvolver um produto modelo para alcance a amplitude do domnio, (2) criar a lista de necessidades ou caractersticas , (3) construir o plano de desenvolvimento caracterstica , (4) desenvolver projetos para recursos especficos de iterao e (5 ), cdigo , teste e , em seguida, integrar os recursos. FDD semelhante a um software peridica abordagem de desenvolvimento ; tambm semelhante ao XP, exceto que a propriedade do cdigo atribudo a indivduos e no a equipe. FDD enfatiza uma abordagem arquitetnica global para o software , o qual promove a construo apresentam corretamente na primeira vez , em vez de enfatizando refatorao contnua. H muitas mais variaes de mtodos geis na literatura e na prtica. Note-se que sempre haver um lugar para o peso-pesado, mtodos de engenharia de software baseada em plano bem como locais onde os mtodos geis brilhar. tem novos mtodos resultantes de combinaes de gil mtodos baseados em planejar e onde os praticantes so