APLICAÇÃO DA TÉCNICA DE MODELAGEM DE NEGÓCIO COM UML A PROCESSOS ITERATIVOS DE DESENVOLVIMENTO DE SOFTWARE DELMIR PEIXOTO DE AZEVEDO JÚNIOR

Tamanho: px
Começar a partir da página:

Download "APLICAÇÃO DA TÉCNICA DE MODELAGEM DE NEGÓCIO COM UML A PROCESSOS ITERATIVOS DE DESENVOLVIMENTO DE SOFTWARE DELMIR PEIXOTO DE AZEVEDO JÚNIOR"

Transcrição

1 APLICAÇÃO DA TÉCNICA DE MODELAGEM DE NEGÓCIO COM UML A PROCESSOS ITERATIVOS DE DESENVOLVIMENTO DE SOFTWARE DELMIR PEIXOTO DE AZEVEDO JÚNIOR UNIVERSIDADE ESTADUAL DO NORTE FLUMINENSE UENF CAMPOS DOS GOYTACAZES RJ ABRIL DE 2003

2 APLICAÇÃO DA TÉCNICA DE MODELAGEM DE NEGÓCIO COM UML A PROCESSOS ITERATIVOS DE DESENVOLVIMENTO DE SOFTWARE DELMIR PEIXOTO DE AZEVEDO JÚNIOR Dissertação submetida ao corpo docente do Centro de Ciência e Tecnologia da Universidade Estadual do Norte Fluminense, como parte das exigências necessárias para obtenção do grau de mestre em Ciências de Engenharia, na área de concentração de Engenharia de Produção. Orientador: Prof. Renato de Campos, D.Sc. CAMPOS DOS GOYTACAZES RJ ABRIL DE 2003 II

3 APLICAÇÃO DA TÉCNICA DE MODELAGEM DE NEGÓCIO COM UML A PROCESSOS ITERATIVOS DE DESENVOLVIMENTO DE SOFTWARE DELMIR PEIXOTO DE AZEVEDO JÚNIOR Dissertação submetida ao corpo docente do Centro de Ciência e Tecnologia da Universidade Estadual do Norte Fluminense, como parte das exigências necessárias para obtenção do grau de mestre em Ciências de Engenharia, na área de concentração de Engenharia de Produção. Aprovada em: Comissão Examinadora: Prof. Renato de Campos. D. Sc. UENF Prof. Clevi Rapkiewicz. D. Sc. UENF. Prof. Rogério Atem de Carvalho. D. Sc. UCAM. Prof. Geraldo Galdino de Paula Júnior. D. Sc. UENF. III

4 AGRADECIMENTOS Agradeço a todos que de alguma forma me ajudaram durante o período dedicado a este trabalho. Especialmente a Deus; a minha amada esposa, Marília; aos meus pais, Maria da Penha e Delmir; e ao meu orientador, Renato de Campos. IV

5 SUMÁRIO CAPÍTULO 1 - Introdução Contexto Motivação Objetivo Hipótese Estratégia Estrutura do trabalho...4 CAPÍTULO 2 - Engenharia de Software Introdução O Modelo Iterativo e Incremental Arquitetura de Software A Engenharia de Requisitos UML O Processo Unificado (UP)...28 CAPÍTULO 3 - Modelagem de Negócio Introdução Modelagem por Processos de Negócio Modelagem de Negócio com Orientação a Objeto Considerações sobre a Modelagem de Processos de negócio com UML...56 CAPÍTULO 4 Propostas de atividades para a sistematização do levantamento de requisitos no UP Introdução Atividades Propostas Aplicação das Atividades Propostas à MDS-OO Dataprev...69 V

6 CAPÍTULO 5 Conclusão Referências Bibliográficas Anexo I Artefatos da MDS Dataprev OO Anexo II Exemplos de Artefatos VI

7 LISTA DE FIGURAS Figura 1- Riscos de projeto no modelo Cascata (Adaptado de RUP 2002)...8 Figura 2 - Riscos de projeto no modelo Iterativo (Adaptado de RUP 2002)...9 Figura 3 - Vistas de uma arquitetura de software...12 Figura 4 Limites da análise de requisitos...14 Figura 5 O Gráfico das Baleias (Adaptado de RUP, 2002)...30 Figura 6 - As fases e os marcos de um projeto no UP.(Adaptado do RUP 2002)...31 Figura 7 Ícones e Estereótipos estabelecidos por Marshall...43 Figura 8 Um exemplo de Modelo Organizacional...43 Figura 9 Meta Modelo proposto por Eriksson e Penker (2000)...45 Figura 10 Um exemplo de Diagrama de Modelo Conceitual...47 Figura 11 Exemplo de Diagrama de Objetivos...48 Figura 12 Exemplo de Modelo de Informação...49 Figura 13- Ícone associado à atividade estereotipada como processo de negócio...51 Figura 14 - Representação de um processo de negócio e sua interação com recursos 52 Figura 15 Exemplo de Diagrama de Linha de Montagem...53 Figura 16 Exemplo de identificação de casos de Uso no Diagrama de Linha de Montagem...55 Figura 17 - Workflow para a Modelagem de Negócio...62 VII

8 Resumo da dissertação apresentada ao CCT/UENF como parte das exigências para a obtenção do grau de Mestre em Ciências (M. Sc.) em Engenharia de Produção. APLICAÇÃO DA TÉCNICA DE MODELAGEM DE NEGÓCIO COM UML A PROCESSOS ITERATIVOS DE DESENVOLVIMENTO DE SOFTWARE Delmir Peixoto de Azevedo Júnior Abril Orientador: Prof. Renato de Campos Curso de Mestrado em Ciências de Engenharia Área de Engenharia de Produção A atual dinâmica do mercado tem exigido das organizações uma constante reformulação de seus processos de negócio a fim de se manterem competitivas. Esta dinâmica provoca também uma necessidade de adaptações nos softwares que dão suporte a tais processos, ou seja, o surgimento de novos requisitos de software. Entretanto, a atividade de levantamento de requisitos em processos de desenvolvimento de software é realizada muitas vezes de forma pontual, sem uma visão mais abrangente e estratégica do negócio. Evidencia-se neste cenário, portanto, a necessidade de alinhamento entre o levantamento de requisitos e os processos de negócio de uma organização. E neste sentido, este trabalho busca inserir no Processo Unificado (processo de desenvolvimento de software que tem sido usado como base para a definição de várias metodologias encontradas no mercado) atividades para a sistematização do levantamento de requisitos a partir da análise de arquiteturas de negócio. Uma vez definidas de forma genérica para o Processo Unificado, estas atividades serão exemplificadas através de sua aplicação à metodologia de desenvolvimento de sistemas da Dataprev, a MDS-OO Dataprev. VIII

9 Abstract of Dissertation Submitted to the CCT/UENF as partial fulfillment of the requirements for the degree of Master of Sciences. THE BUSINESS MODELING TECHNIQUE WITH UML APPLICATION TO SOFTWARE DEVELOPMENT ITERATIVE PROCESS Delmir Peixoto de Azevedo Júnior April Advisor: Renato de Campos Course of Master's Degree in Engineering Science - Area of Production Engineering The current market dynamics has been demanding a constant rebuilding of the organizations business processes in order to maintain their competitiveness. This dynamics also provokes needs for adaptations in the software that give support to such processes, in other words, the sprouting of new software requirements. However, the activity of requirements analysis in software development processes is accomplished a lot of times without a general and strategic vision of the business. It is evidenced in this scenery, therefore, the need of alignment between the requirements analysis and the business processes of an organization. In this sense, this work looks forward to insert in the Unified Process (process of software development that has been used as base for the definition of several methodologies found in the market) activities for the requirements analysis systematization through the analysis of business architectures. Once defined in a generic way for the Unified Process, these activities will be exemplified through its application to the systems development methodology of Dataprev, the MDS-OO Dataprev. IX

10 CAPÍTULO 1 Introdução 1.1. Contexto O avanço tecnológico tem permitido o surgimento de novas formas de negócios. As organizações empresariais modernas precisam estar em constante evolução para se manterem competitivas. São necessárias freqüentes reformulações e inovações nos processos de negócio e conseqüentemente nos sistemas de informação que os dão suporte. Muitas vezes a complexidade atinge proporções que dificultam o gerenciamento e mesmo o conhecimento do negócio pelos que o gerenciam. Muitos gerentes não conhecem os recursos que possuem e entre estes os sistemas de informações que existem por toda a organização. É muito comum observar gerentes de departamentos vizinhos replicando dados em sistemas de informações. A integração entre os objetivos do negócio, os processos de negócio, e sistemas de informação é um fator determinante da dinâmica necessária à organização e também um desafio aos gerentes. Nesse cenário dinâmico, os sistemas de informações são os habilitadores do negócio e portanto precisam estar alinhados com os reais objetivos do negócio (AZEVEDO; CAMPOS, 2002). Existem vários métodos, técnicas e ferramentas de modelagem para facilitar o entendimento e análise da complexidade das organizações modernas. Essas facilidades são utilizadas na tentativa de tornar a realidade organizacional mais tangível. Também existem várias metodologias para o desenvolvimento de sistemas de informação. Entretanto, Santander e Castro (2002) observam que há uma falta de integração entre as análises no domínio do negócio e no domínio dos sistemas de informação. Dentre as metodologias de desenvolvimento de sistemas de software o Processo Unificado (UP) é uma das que vêm obtendo destaque entre as demais. Várias

11 2 metodologias, como a apresentada em Paula (2001), têm sido concebidas utilizando-se os princípios estabelecidos no UP. Entretanto mesmo no UP a atividade de levantamento de requisitos ainda é um processo empírico, não considerando de forma sistemática a importância do foco nos objetivos do negócio. Neste contexto, evidencia-se a necessidade de maior aproximação entre o levantamento de requisitos de sistemas de softwares, nos processos ou metodologias de desenvolvimento de software, às reais necessidades do negócio. Esta dissertação propõe contribuições para uma melhor aproximação entre estes dois domínios, mostrando como um processo de desenvolvimento de software pode utilizar modelos de negócio para sistematizar a identificação de requisitos em função dos reais objetivos do negócio Motivação Segundo Santander e Castro (2002) a identificação dos requisitos funcionais dos sistemas de informação tem sido feita de forma bastante empírica, sem o apoio de métodos mais sistemáticos, o que resulta freqüentemente no desenvolvimento de sistemas não alinhados aos objetivos do negócio. Embora existam algumas heurísticas propostas para identificação de requisitos funcionais, como as apresentadas por Schneider e Winters (1998), Jacobson et al (1999), e em Lilly (1999), não existem métodos estabelecidos que tornem esta atividade mais sistemática. A principal motivação para este trabalho é, portanto, a carência de métodos que alinhem, de forma sistemática, o levantamento de requisitos de software às reais necessidades de um negócio.

12 Objetivo Este trabalho busca definir atividades a serem inseridas no UP, ou em qualquer outro processo de desenvolvimento baseado neste, de forma a sistematizar o levantamento de requisitos com base em análise de modelos de negócio. Um segundo objetivo deste trabalho é a aplicação das atividades propostas à MDS-OO Dataprev, a metodologia de desenvolvimento de sistemas da Dataprev, fundamentada nos mesmos princípios estabelecidos no UP Hipótese O presente trabalho utiliza a hipótese de que o alinhamento entre requisitos de software e as reais necessidades de informatização da empresa pode ser melhorado através de técnicas de modelagem de empresa, e que a tecnologia da orientação a objeto, através da Unified Modeling Language (UML) permite a integração da representação de modelos nos dois domínios, negócio e software. Uma empresa pode ser modelada como um conjunto de objetos e seus relacionamentos. A análise do relacionamento entre objetos da empresa e objetos de sistemas de software permitirá o alinhamento entre os domínios da modelagem de empresa e de modelagem de requisitos de software e a conseqüente identificação de requisitos de software alinhados ao negócio. A atividade de identificação dos requisitos deve ser ajustada à estrutura do processo de desenvolvimento de software utilizado Estratégia De maneira a testar a hipótese citada esta dissertação inicialmente avalia através de uma pesquisa bibliográfica técnicas de modelagem de negócio e de identificação de requisitos de software.

13 4 Em seguida são definidas atividades para identificação sistemática de requisitos, a partir de modelos de negócio, e aplicadas ao Processo Unificado de desenvolvimento de software. As atividades propostas são então aplicadas à MDS-OO Dataprev Estrutura do trabalho A dissertação está organizada de acordo com a estrutura de capítulos a seguir: Capítulo 2: Apresenta os conceitos da engenharia de software e de requisitos. Apresenta a Linguagem UML e o Processo Unificado de Desenvolvimento de Software. Capítulo 3 : Apresenta os conceitos e métodos da modelagem de negócio e as propostas de extensão da linguagem UML para a modelagem de negócio. Capítulo 4. Apresenta as atividades propostas nesta dissertação, a serem inseridas no UP ou qualquer outra metodologia de desenvolvimento de sistemas baseada na estrutura deste. Apresenta também a aplicação destas atividades na metodologia de desenvolvimento de sistemas da Dataprev. Capítulo 5: Apresenta as conclusões do trabalho.

14 CAPÍTULO 2 Engenharia de Software 2.1. Introdução Uma primeira definição de engenharia de software foi proposta por Fritz Bauer na primeira grande conferência (NAUR; RANDELL; BUXTON, 1969) dedicada ao assunto: O estabelecimento e uso de sólidos princípios de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais. Segundo Pressman (1995) a engenharia de software abrange um conjunto de três elementos fundamentais: métodos, ferramentas e procedimentos, que possibilita ao gerente o controle do processo de desenvolvimento do software e oferece ao profissional uma base para a construção de software de alta qualidade com produtividade. A seguir o autor analisa cada um desses elementos: Os métodos - proporcionam os detalhes de como fazer para construir o software. Os métodos envolvem um amplo conjunto de tarefas que incluem: planejamento e estimativa de projeto, análise de requisitos de software e de sistemas, projeto da estrutura de dados, arquitetura de programa e algoritmo de processamento, codificação, teste e manutenção. Os métodos da engenharia de software muitas vezes introduzem uma notação gráfica ou orientada a uma linguagem específica, e introduzem um conjunto de critérios para a qualidade do software. As ferramentas proporcionam apoio automatizado ou semi-automatizado aos métodos. Atualmente existem ferramentas para dar suporte a vários métodos. Quando as ferramentas são integradas de forma que a informação criada por uma ferramenta possa ser usada por outra, é estabelecido um sistema de

15 6 suporte ao desenvolvimento de software chamado engenharia de software auxiliada por computador (CASE Computer-Aided Software Engineering). Os procedimentos (também citados como metodologia ou processos) constituem o elo de ligação que mantém juntos os métodos e as ferramentas e possibilitam o desenvolvimento racional e oportuno do software de computador. Os procedimentos definem a seqüência em que os métodos serão aplicados, os produtos que se exige que sejam entregues (documentos, relatórios, formulários, etc.), os controles que ajudam a assegurar a qualidade e a coordenar as mudanças, e os marcos de referência que possibilitam aos gerentes de software avaliar o progresso. A engenharia de software se dá através de um conjunto de fases. Cada uma das fases pode envolver métodos, ferramentas e procedimentos. A forma de estruturação destas são citadas como modelo de engenharia de software (PRESSMAN, 1995). Um modelo de engenharia de software é escolhido tendo-se como base a natureza do projeto e da aplicação, os métodos e as ferramentas a serem usados, os controles e os produtos que precisam ser entregues. Pressman também analisa que independentemente do modelo de desenvolvimento de software, o processo de desenvolvimento contém três fases genéricas: definição, desenvolvimento e manutenção. Na fase de definição, o desenvolvedor de software tenta identificar que informações necessitam ser processadas, quais funções e desempenho são desejados, quais interfaces devem ser estabelecidas, quais restrições de projeto existem e quais critérios de validação são exigidos para se definir um sistema bem sucedido. Pressman(1995) também observa que embora os métodos aplicados durante a fase de definição variem em função do modelo, três etapas específicas ocorrerão de alguma forma: Análise do sistema que define o papel de cada elemento num sistema baseado em computador determinando o papel que o sistema desempenhará;

16 7 Planejamento do projeto de software que aborda a análise de riscos, alocação de recursos, estimativas de custos e a definição de tarefas e programação de trabalho. Análise de requisitos que detalha o escopo através de uma análise do domínio da informação e das funções do software. A fase de desenvolvimento tenta definir como a estrutura de dados e a arquitetura de software têm de ser projetadas, como os detalhes procedimentais têm de ser implementados, como o projeto será traduzido numa linguagem de programação e como os testes têm de ser realizados. Assim como na fase de definição, os métodos da fase de desenvolvimento também variam em função do modelo de engenharia de software a ser usado no projeto. Mas três etapas genéricas ocorrerão de alguma forma: projeto de software, codificação e realização de testes do software. A fase de manutenção concentra-se nas mudanças que estão associadas a correção de erros, adaptações e melhoramento funcional do software. Quatro modelos de engenharia de software têm sido amplamente discutidos: o ciclo de vida clássico (ou cascata), a prototipação, o modelo espiral, e as técnicas de Quarta geração (PRESSMAN, 1995). Atualmente um novo modelo tem sido amplamente usado, o modelo iterativo e incremental. Este modelo é apresentado em (JACOBSON; BOOCH; RUMBAUGH, 1999) e em (PAULA, 2001). Este modelo será apresentado a seguir e utilizado como base para o método proposto neste trabalho O Modelo Iterativo e Incremental Um projeto de desenvolvimento de software transforma uma quantidade de requisitos e usuários em uma quantidade de produto de software. Num processo iterativo e

17 8 incremental a quantidade de mudança é feita por partes. Em outras palavras, divide-se o projeto em um número de mini-projetos, cada um correspondendo a uma iteração. Cada iteração abrange todas as etapas do desenvolvimento: planejamento, levantamento de requisitos, análise, projeto, implementação, teste, e preparação para a implantação. Cada uma destas iterações assemelha-se ao tradicional modelo Cascata da engenharia de software porque se procedem através de atividades seqüenciais e subsequentes. Pode-se considerar cada iteração como um processo minicascata. Geralmente, uma abordagem iterativa é superior a uma abordagem linear ou em cascata. O RUP (2002) apresentada vários motivos para isto, entre eles: Os riscos são reduzidos mais cedo, pois os elementos são integrados progressivamente: Todos os projetos têm um conjunto de riscos envolvidos. Quanto mais cedo puder ser verificado que se evitou um risco no ciclo de vida, mais precisos serão os planos. Muitos riscos nem são descobertos até que se tente integrar o sistema. É impossível prever todos eles, por mais experiente que seja a equipe de desenvolvimento. Em um ciclo de vida em cascata, não se pode verificar se o projeto está livre de um risco até o final do ciclo.(figura 1) Figura 1- Riscos de projeto no modelo Cascata (Adaptado de RUP 2002)

18 9 Em um ciclo de vida iterativo, a seleção do incremento a ser desenvolvido em uma iteração é feita com base em uma lista dos principais riscos. Como a iteração produz um conjunto de artefatos testados, pode-se verificar a diminuição dos riscos em cada iteração. (Figura 2) Figura 2 - Riscos de projeto no modelo Iterativo (Adaptado de RUP 2002) As táticas e os requisitos variáveis são acomodados: A abordagem iterativa permite que sejam considerados os requisitos variáveis, já que eles normalmente serão alterados durante o processo. As mudanças efetuadas nos requisitos e a forma lenta como eles são levantados têm sido sempre as principais fontes de problemas para um projeto, levando a liberação depois do prazo, programações atrasadas, clientes insatisfeitos e desenvolvedores frustrados. Os usuários mudarão de idéia durante o processo. Essa é a natureza humana. Forçar os usuários a aceitarem o sistema como o imaginaram originalmente está errado. Eles mudam de idéia porque o contexto está sendo alterado; eles aprendem mais sobre o ambiente e a tecnologia e enxergam uma demonstração intermediária do produto durante o seu desenvolvimento. Um ciclo de vida iterativo fornece o gerenciamento com um modo de fazer mudanças táticas no produto. Por exemplo, para competir com os

19 10 produtos existentes, pode-se decidir lançar um produto com funcionalidade reduzida mais cedo como reação a uma movimentação de um concorrente ou poderá adotar um outro fornecedor de uma determinada tecnologia. A iteração também permite mudanças tecnológicas durante o processo. Se alguma tecnologia é alterada ou se torna um padrão conforme aparece uma nova, o projeto poderá aproveitá-la. Particularmente, esse é o caso de mudanças de plataforma e de infra-estrutura de nível inferior. A melhoria e o refinamento do produto são facilitados, resultando em um produto mais robusto. Uma abordagem iterativa resulta em uma arquitetura mais robusta, pois os erros são corrigidos após várias iterações. As falhas iniciais são detectadas conforme o produto amadurece, durante as iterações iniciais. Os gargalos de desempenho são descobertos e podem ser reduzidos, em vez de aparecerem na véspera da liberação. Desenvolver iterativamente, ao contrário de executar testes uma vez ao final do projeto, resulta em um produto totalmente testado. Houve muitas oportunidades para testar as funções críticas após várias iterações, e os próprios testes, além dos softwares de teste, tiveram tempo para amadurecer. Aumento de Reutilização Um ciclo de vida iterativo facilita a reutilização. Identificar as partes comuns quando estão parcialmente projetadas ou implementadas é mais fácil que identificar todas as semelhanças no início.

20 11 É difícil identificar e desenvolver partes reutilizáveis. As revisões de design nas iterações iniciais possibilitam que os arquitetos de software identifiquem reutilizações inesperadas e potenciais, e as iterações subseqüentes permitem que eles desenvolvam e amadureçam posteriormente esse código comum. O uso de uma abordagem iterativa facilita o aproveitamento dos produtos desenvolvidos internamente e adquiridos prontos para serem usados. Haverá várias iterações para selecioná-los, integrá-los e confirmar que eles são adequados à arquitetura Arquitetura de Software O tamanho e a complexidade dos softwares têm aumentado tanto que as técnicas de abstração utilizadas até o final da década de 1980 (como, por exemplo, tipos de dados abstratos, linguagens de programação de alto nível e técnicas de decomposição modular) já não são mais suficientes para lidar com esses novos problemas envolvendo o projeto de software no nível de sistema. (MENDES, 2002) O desenvolvimento de software baseado em arquitetura de software vem atender a esta maior necessidade de abstração, permitindo que o sistema possa ser analisado através de várias vistas integradas. Cada vista evidenciando informações de determinado aspecto e suprimindo de outros a fim de facilitar a análise de cada um dos aspectos. A arquitetura de software é a estrutura do sistema, que compreende os componentes do software, as propriedades externamente visíveis desses componentes, e os relacionamentos entre eles. (BASS; CLEMENTS; KAZMAN, 1998). O conceito de arquitetura engloba os aspectos mais relevantes, tanto estáticos como dinâmicos, do sistema a fim de garantir um todo consistente que represente bem as

21 12 necessidades dos interessados. Uma arquitetura é composta por vistas que evidenciam as informações de determinados aspectos do sistema. A arquitetura de software não se preocupa apenas com a estrutura e o comportamento mas também com restrições e concessões quanto ao uso, funcionalidade, performance, elasticidade, reuso, compreensibilidade, economia e tecnologia. (KRUCHTEN, 1998). Uma arquitetura de software deve abordar características funcionais, não funcionais e de desenvolvimento. As características funcionais Refere-se à capacidade do sistema em realizar as funções requeridas pelos usuários. As características não funcionais correspondem às demais características que afetam o sistema como um todo, tais como: performance, segurança, e viabilidade. As características não funcionais também podem ser em parte derivadas do modelo do negócio. Elas se apresentam em forma de Restrições (ex: restrições de hardware) e Qualitativos (ex: segurança). As características de desenvolvimento referem-se ao processo de desenvolvimento e à qualidade do software. Um software é um sistema complexo que pode ser abordado sob mais de um aspecto. Cada aspecto pode ser observado a partir de uma vista. Cada vista pode ser modelada por um ou mais tipos de diagramas. A Figura 3 apresenta as cinco vistas estabelecidas por Kruchten (1995). Segundo Kruchten o uso de múltiplas vistas permite endereçar os requisitos de vários interessados no sistema: usuários finais, desenvolvedores, engenheiros de sistemas, e gerentes de projetos entre outros. Figura 3 - Vistas de uma arquitetura de software

22 A Engenharia de Requisitos Como foi apresentada na seção anterior, a análise de requisitos é uma etapa sempre presente na fase de definição do software, independentemente do modelo de engenharia de software adotado. Paula (2001) diz que a engenharia de requisitos é formada por um conjunto de técnicas empregadas para levantar, detalhar, documentar, e validar os requisitos de um produto de software. Sommerville (2000) apresenta as seguintes definições para requisito: (1) Uma condição ou capacidade necessitada por um usuário para resolver um problema ou atingir um objetivo. (2) Uma condição ou capacidade que deve ser atingida ou possuída por um sistema ou componente de sistema para satisfazer um contato, padrão, especificação, ou outro documento de formalidade. (3) Uma representação documentada de uma condição ou capacidade como em (1) ou (2). Segundo Pressman (1995) a tarefa de análise de requisitos é um processo de descoberta, refinamento, modelagem e especificação, e embora possa parecer uma tarefa relativamente simples, o conteúdo de comunicação é muito elevado, o que abundam as chances de interpretações errôneas e informações falsas. Portanto, pode-se definir a engenharia de requisitos como um campo da engenharia de software que visa a aplicação de técnicas de engenharia em métodos de análise de requisitos. A análise de requisitos efetua a ligação entre a necessidade de informatização de processos ao projeto do software que atenderá tais necessidades (ver Figura 4).

23 14 Figura 4 Limites da análise de requisitos A análise de requisitos possibilita que o analista de sistemas especifique a função e o desempenho do software, indique a interface do software com outros elementos do sistema e estabeleça quais são as restrições de projeto que o software deve enfrentar Atividades da Análise de Requisitos Segundo Pressman (1995) a análise de requisitos de software pode ser dividida em cinco áreas de esforço: reconhecimento do problema, avaliação e síntese, modelagem, especificação e revisão. Reconhecimento do problema : No reconhecimento do problema é importante entender o software num contexto de sistema e revisar o escopo do software que foi usado para gerar as estimativas de planejamento. Avaliação e síntese: Durante a avaliação a meta do analista é o reconhecimento dos elementos problemáticos básicos e as informações desejadas de entrada e saída no sistema. No decorrer da síntese de avaliação e solução, o principal foco do analista recai sobre o que, não sobre como. Quais dados o sistema produz e consome, quais funções o sistema deve executar, quais interfaces são definidas e quais restrições se aplicam.

24 15 Modelagem: Durante a atividade de síntese e avaliação, o analista cria modelos do sistema num esforço para compreender melhor o fluxo de dados e de controle, o processamento funcional e a operação comportamental. Especificação: A atividade de especificação esforça-se para oferecer uma representação de software que possa ser revisada e aprovada pelo cliente. Revisão: Após especificados os requisitos devem ser revisados pelo cliente e pelo desenvolvedor. De forma similar, Sommerville (2000) afirma que o processo de engenharia de requisitos pode ser descrito como um processo sistemático de cinco passos distintos: elicitação, análise e negociação, especificação e modelagem, validação, e gerenciamento de requisitos: Elicitação: A elicitação de requisitos corresponde a identificar junto aos clientes, usuários e outros envolvidos, quais são os objetivos do sistema ou produto, o que deve ser acompanhado, como o sistema ou produto se encaixa no contexto das necessidades do negócio e, finalmente, como será a utilização do sistema ou produto no dia-a-dia. Análise e Negociação: A análise categoriza e organiza os requisitos em subconjuntos relacionados, explora o relacionamento de cada requisito com todos os demais, examina consistência, omissão e ambigüidade dos requisitos e prioriza requisitos com base nas necessidades dos clientes/usuários. Especificação e Modelagem: A especificação do sistema é o produto final produzido pelos engenheiros de requisitos. Ela é usada como base para as engenharias de hardware, software e banco de dados, pois descreve funções e performance requeridas de um sistema baseado em computação e as regras que irão guiar seu desenvolvimento. A especificação limita cada elemento alocado ao sistema. A especificação do sistema também descreve a informação (dados e

25 16 controle) que é entrada e saída do sistema. A modelagem dos requisitos especificados pode facilitar o entendimento das relações existentes entre os mesmos. Validação: A validação examina a especificação para garantir que todos os requisitos do sistema foram estruturados de maneira não ambígua, que as inconsistências, omissões e erros foram apagados e corrigidos, e que os produtos de trabalho estão em conformidade com os padrões estabelecidos para o processo, para o projeto e para o produto. Gerenciamento de Requisitos: É necessário persistir as alterações de requisitos através de toda a vida do software; neste sentido, o gerenciamento de requisitos corresponde ao conjunto de atividades que auxilia a equipe do projeto a identificar, controlar e rastrear os requisitos, bem como as alterações nos requisitos em muitos momentos do projeto Métodos de análise de requisitos No decorrer das duas últimas décadas, uma série de métodos de análise e especificação de requisitos foi desenvolvida, entretanto, poucas são as propostas que visam uma sistematização da elicitação de requisitos de forma a tornar esta atividade menos subjetiva (SANTANDER; CASTRO, 2002). No paradigma da orientação a objeto a análise de requisitos tem sido feita com base num elemento de modelagem da UML chamado de Caso de Uso. Embora existam algumas heurísticas propostas para identificação de casos de uso, como as apresentadas em Schneider e Winters (1998), Jacobson et al (1999), e em Lilly (1999), não existem métodos estabelecidos que tornem esta atividade mais sistemática. Os casos de uso são geralmente identificados em entrevistas com futuros usuários do sistema e responsáveis pelo negócio, realizadas por analistas de sistemas.

26 17 Segundo PRESSMAN (1995) cada método de análise tem uma notação e um ponto de vista únicos porém todos eles relacionam-se com um conjunto de princípios fundamentais: 1. O domínio de informação de um problema deve ser representado e compreendido para que a função possa ser entendida mais completamente. 2. Modelos que descrevam a informação, função e comportamento do sistema devem ser desenvolvidos para que a informação possa ser comunicada completamente. 3. Os modelos (e o problema) devem ser divididos em partições, de maneira que revele os detalhes em forma de camadas (ou hierarquicamente), e assim reduzir a complexidade. 4. O processo de análise deve mover-se da informação essencial para os detalhes de implementação para acomodar as restrições lógicas impostas por requisitos de processamento e as restrições físicas impostas por outros elementos do sistema UML A UML foi adotada pela OMG (Object Management Group) em 1997 como linguagem padrão para a modelagem de sistemas orientados a objeto. Ela é uma linguagem para especificação, visualização, construção, e documentação de artefatos de sistemas de software, tão bem como para a modelagem de negócios e outros sistemas que não de software. Ela representa uma coleção das melhores práticas de engenharia que provaram sucesso na modelagem de sistemas grandes e complexos. (OMG, 2002) Os principais objetivos na definição da UML (OMG, 2002) são: 1. Prover aos usuários uma linguagem de modelagem visual de forma que eles pudessam desenvolver e trocar modelos; 2. Prover mecanismos de extensão e especialização para estender o centro dos conceitos;

27 18 3. Ser independente de uma linguagem de programação específica e de processos de desenvolvimento; 4. Prover uma base formal para o entendimento da linguagem de modelagem; 5. Incentivar o crescimento de ferramentas de orientação a objeto no mercado; 6. Suportar desenvolvimento de conceitos de alto nível como colaboração, arquiteturas de referência, padrões, e componentes; 7. Integrar as melhores práticas. Muitos usuários de outros métodos (BOOCH, OMT, FUSION, entre outros) adotaram a UML. A maioria das ferramentas de modelagem de sistemas têm implementado o suporte à linguagem, entre elas o Rose da Rational e o Together da Together Soft. A UML padroniza notação para descrever modelos, mas não padroniza um processo para produzir aquelas descrições (uma ordem de atividades bem definidas, um conjunto de artefatos produzidos, e meios de controlar e monitorar o trabalho). A UML pode ser usada por diversos processos de desenvolvimento distintos, mais ou menos formalmente especificados. Com relação a estrutura da UML, conforme apresentado em (BOOCH; JACOBSON; RUMBAUGH, 2000), o vocabulário da UML abrange três tipos básicos de blocos de construção: 1- Itens 2- Relacionamentos 3- Diagramas Os itens são as abstrações identificadas em um modelo; os relacionamentos reúnem esses itens; os diagramas agrupam coleções interessantes de itens Itens da UML Existem quatro tipos de itens na UML:

28 19 1- Itens estruturais 2- Itens comportamentais 3- Itens de agrupamentos 4- Itens de anotação Estes itens constituem os blocos de construção básicos orientados a objetos da UML e são utilizados para escrever modelos bem-formados Itens estruturais São os substantivos utilizados em modelos da UML. São as partes mais estáticas do modelo, representando elementos conceituais ou físicos. Ao todo existem sete tipos de itens estruturais: Classes - são descrições de conjuntos de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica. Interface - é uma coleção de operações que especificam serviços de uma classe ou componente. Portanto, uma interface descreve o comportamento externamente visível desse elemento. Uma interface poderá representar todo o comportamento de uma classe ou componente, como também apenas parte desse comportamento. A interface define um conjunto de especificações de operações (suas assinaturas), mas nunca um conjunto de implementações de operações. Colaborações - definem interações e são sociedades de papéis e outros elementos que funcionam em conjunto para proporcionar um comportamento cooperativo superior à soma de todos os elementos. Portanto, as colaborações contêm dimensões estruturais, assim como comportamentais. Uma determinada classe poderá participar em várias colaborações. Assim, essas colaborações representam a implementação de padrões que formam um sistema.

29 20 Caso de Uso - é a descrição de um conjunto de seqüência de ações realizadas pelo sistema que proporciona resultados observáveis de valor para um determinado ator. Um caso de uso é utilizado para estruturar o comportamento de itens em um modelo. Um caso de uso é realizado por uma colaboração. Os outros três itens restantes classes ativas, componentes e nós são semelhante a classes, ou seja, descrevem conjuntos de objetos que compartilham os mesmos atributos, operações, relacionamentos e semânticas. Porém, esses três são suficientemente diferentes e necessários para a modelagem de certos aspectos de sistemas orientados a objetos e, portanto merecem um tratamento especial: Classes ativas - são classes cujos objetos têm um ou mais processos ou threads e, portanto, podem iniciar a atividade de controle. Uma classe ativa é semelhante a uma classe, exceto pelo fato de que seus objetos representam elementos cujo comportamento é concorrente com o de outros elementos. Componentes - são partes físicas e substituíveis de um sistema, que proporcionam a realização de um conjunto de interfaces. Em um sistema, encontram-se diferentes tipos de componentes próprios da implantação, como os componente COM+ ou Java Beans, assim como componentes que são artefatos do processo de desenvolvimento, como os arquivos de código-fonte. Tipicamente os componentes representam o pacote físico de elementos lógicos diferentes, como classes, interfaces e colaborações. Nó - é um elemento físico existente em tempo de execução que representa um recurso computacional, geralmente com pelo menos alguma memória e, freqüentemente, capacidade de processamento. Um conjunto de componentes poderá estar contido em um nó e também poderá migrar de um nó para outro. Esses sete elementos classes, interfaces, colaborações, casos de uso, classes ativas, componentes e nós são os itens estruturais básicos que se pode incluir em um modelo da UML. Também existem variações desses sete elementos, como atores,

30 21 sinais e utilitários (tipos de classes), processos e threads (tipos de classes ativas), e aplicações, documentos, arquivos, bibliotecas, páginas e tabelas (tipos de componentes) Itens comportamentais Os itens comportamentais são as partes dinâmicas dos modelos de UML. São os verbos de um modelo, representando comportamentos no tempo e no espaço. Ao todo, existem dois tipos principais de itens comportamentais: Interação - é um comportamento que abrange um conjunto de mensagens trocadas entre um conjunto de objetos em determinado contexto para a realização de propósitos específicos. O comportamento de uma sociedade de objetos ou de uma operação individual poderá ser especificado por meio de uma interação. As interações envolvem outros elementos, inclusive mensagens, sequências de ações (os comportamentos chamados pelas mensagens) e ligações (as conexões entre objetos). Máquina de estado - é um comportamento que especifica as sequências de estados pelos quais objetos ou interações passam durante sua existência em reposta a eventos, bem como suas respostas a esses eventos. O comportamento de uma classe individual ou de uma colaboração de classes pode ser especificado por meio de uma máquina de estados. Um máquina de estado abrange outros elementos, incluindo estados, transições (o fluxo de um estado a outro), eventos (itens que disparam uma transição) e atividades (as respostas às transições). Semanticamente, esses itens comportamentais costumam estar conectados a vários elementos estruturais, classes principais, colaborações e objetos.

31 Itens de agrupamento Os itens de agrupamento são as partes organizacionais dos modelos de UML. São os blocos em que os modelos podem ser decompostos. Ao todo, existe apenas um tipo principal de itens de agrupamento, chamado pacote: Pacote - é um mecanismo de propósito geral para a organização de elementos em grupos. Os itens estruturais, os itens comportamentais e até outros itens de grupos podem ser colocados em pacotes. Ao contrário dos componentes (que existem em tempo de execução), um pacote é puramente conceitual (o que significa que existe apenas em tempo de desenvolvimento). Os pacotes são itens de agrupamento básico, servem para organizar modelos de UML. Também existem variações, como frameworks, modelos e subsistemas (tipos de pacotes) Itens de anotação Os itens de anotação são as partes explicativas dos modelos de UML. São comentários, incluídos para descrever, esclarecer e fazer alguma observação sobre qualquer elemento de modelo. Existe um único tipo de item de anotação, chamado nota: Nota - é apenas um símbolo para representar restrições e comentários anexados a um elemento ou a uma coleção de elementos. Esse elemento é o único item de anotação básico que se pode incluir em um modelo de UML. Geralmente são utilizadas para aprimorar os diagramas com restrições ou comentários que possam ser mais bem expressos por um texto formal ou informal. Também existem variações desse elemento, como os requisitos (que especificam determinado comportamento desejado sob uma perspectiva externa ao sistema).

32 Relacionamentos na UML Existem quatro tipos de relacionamentos na UML: 1- Dependência 2- Associação 3- Generalização 4- Realização Esses relacionamentos são os blocos relacionais básicos de construção da UML: Dependência - é um relacionamento semântico entre dois itens, nos quais a alteração de um (o item independente) pode afetar a semântica do outro (o outro dependente). Associação - é um relacionamento estrutural que descreve um conjunto de ligações, em que as ligações são conexões entre objetos. A agregação é um tipo especial de associação, representando um relacionamento estrutural entre o todo e suas partes. Generalização - é um relacionamento de especialização/generalização, nos quais os objetos dos elementos especializados (os filhos) são substituíveis por objetos do elemento generalizado (os pais). Dessa maneira, os filhos compartilham a estrutura e o comportamento dos pais. Realização - é um relacionamento semântico entre classificadores, em que um classificador especifica um contrato que outro classificador garante executar. Os relacionamentos de realizações serão encontrados em dois locais: entre interfaces e as classes ou componentes que as realizam; e entre casos de uso e as colaborações que os realizam.

33 24 Também existem variações desses quatro elementos, como refinamentos, rastros, inclusões e extensões (para dependências) Diagramas da UML Um diagrama é a apresentação gráfica de um conjunto de elementos, geralmente representadas como gráficos de vértices (itens) e arcos (relacionamentos). São desenhados para permitir a visualização de um sistema sob diferentes perspectivas; nesse sentido, um diagrama constitui uma projeção de um determinado sistema. Em todos os sistemas, com exceção dos mais triviais, um diagrama representa uma visão parcial dos elementos que compõem o sistema. O mesmo elemento pode aparecer em todos os diagramas, em apenas alguns (o caso mais comum) ou em nenhum diagrama (um caso muito raro). Na teoria, um diagrama pode conter qualquer combinação de itens e de relacionamentos. Na prática, porém, aparecerá um pequeno número de combinações comuns, que são consistentes com as cinco visões mais úteis da arquitetura de um sistema complexo de software apresentadas no item 2.3. A UML inclui nove diagramas: 1- Diagrama de classes 2- Diagrama de objetos 3- Diagrama de casos de uso 4- Diagrama de seqüência 5- Diagrama de colaborações 6- Diagrama de gráficos de estados 7- Diagrama de atividades 8- Diagrama de componentes 9- Diagrama de implantação Diagrama de classe - exibe um conjunto de classes, interfaces e colaborações, bem como seus relacionamentos. Esses diagramas são encontrados com maior frequência em sistemas de modelagem orientados a objeto e abrangem uma visão estática da estrutura do sistema.

34 25 Diagrama de objetos - exibe um conjunto de objetos e seus relacionamentos. Representa retratos estáticos de instâncias de itens encontrados em diagrama de classes. São diagramas que abrangem a visão estática da estrutura ou do processo de um sistema, como ocorre nos diagramas de classes, mas sob perspectiva de casos reais ou de protótipos. Diagrama de caso de uso - exibe um conjunto de caso de uso e atores (um tipo especial de classe) e seus relacionamentos. Diagramas de caso de uso abrangem a visão estática de casos de uso do sistema. Esses diagramas são importantes principalmente para a organização e a modelagem de comportamentos do sistema. Tanto os diagramas de seqüências como os de colaborações são tipos de diagramas de interações. Um diagrama de interação exibe uma interação, consistindo de um conjunto de objetos e seus relacionamentos, incluindo as mensagens que podem ser trocadas entre eles. Diagramas de interações abrangem a visão dinâmica de um sistema. Diagrama de seqüências - é um diagrama de interações cuja ênfase está na ordenação temporal das mensagens. Diagrama de colaborações - é um diagrama de interação cuja ênfase está na organização estrutural dos objetos que enviam e recebem mensagens. Os diagramas de seqüências e de colaborações são isomórficos, o que significa que você poderá transformar o diagrama de um tipo em um diagrama de outro tipo. Diagramas de gráfico de estados - exibem uma máquina de estados, formada por estados, transições, eventos e atividades. Os diagramas de gráfico de estados abrangem a visão dinâmica de um sistema. São importantes principalmente para a modelagem de comportamentos de uma interface, classe ou colaboração e para dar ênfase a comportamentos de um objeto ordenados por eventos, o que é de grande ajuda para a modelagem de sistemas reativos.

35 26 Diagrama de atividade - é um tipo especial de diagrama de gráfico de estado, exibindo o fluxo de uma atividade para outra no sistema. Abrange a visão dinâmica do sistema e é importante principalmente para a modelagem da função de um sistema. Dá ênfase ao fluxo de controle entre objetos. Diagrama de componente - exibe as organizações e as dependências existentes em um conjunto de componentes. Abrange a visão estática da implementação de um sistema. Está relacionado aos diagramas de classes, pois tipicamente os componentes são mapeados para uma ou mais classes, interface ou colaborações. Diagrama de implantação - mostra a configuração dos nós de processamento em tempo de execução e os componentes neles existentes. Abrange a visão estática do funcionamento de uma arquitetura. Está relacionado aos diagramas de componentes, pois tipicamente um nó inclui um ou mais componentes Adornos Em sua maioria, os elementos da UML têm uma notação gráfica única e direta, que proporciona uma apresentação visual dos aspectos mais importantes do elemento. Por exemplo, a notação para uma classe é intencionalmente projetada para ser desenhada facilmente, pois as classes são os elementos mais comumente encontrados em sistemas de modelagem orientados a objetos. A notação de classe também expõe os aspectos mais importantes da classe, ou seja, seu nome, atributos e operações. A especificação da classe pode incluir outros detalhes, como se a classe é abstrata ou como é a visibilidade de seus atributos e operações. Muitos desses detalhes podem ser representados como adornos gráficos ou textuais para a notação retangular básica da classe. Todos os elementos da notação da UML são iniciados com um símbolo básico, ao qual pode ser acrescentada uma variedade de adornos específicos desse símbolo.

36 Mecanismos de extensibilidade A UML fornece uma linguagem-padrão para a elaboração de estrutura de projetos de software, mas não é possível que uma única linguagem fechada seja suficiente para expressar todas as nuances possíveis de todos os modelos em qualquer domínio o tempo todo. Por isso, a UML permite que a linguagem seja ampliada de uma maneira controlada através de mecanismos de extensão. Estes mecanismos têm a intenção de servirem aos seguintes propósitos: Podem ser usados para adicionar elementos de modelagem na criação de modelos; São usados nas especificações da UML para definir itens padrões não considerados ou complexos demais para serem modelados diretamente pelos elementos do metamodelo UML; São usados para definir processos específicos ou implementação de extensões de linguagens específicas; São usados para unir arbitrariamente informações semânticas e não semânticas a elementos do modelo. Os mecanismos de extensibilidade da UML incluem: Estereótipos - definem novos blocos construtores na UML baseados em blocos existentes. Embora não seja possível adicionar novos tipos de elementos, todos os elementos da UML podem ser customizados, estendidos, ou adaptados através da definição e nomeação de estereótipos. Valores atribuídos - estendem um elemento da UML através de uma etiqueta (tag) e um valor (value). Por exemplo pode ser definida um valor atribuído para expressar a versão de uma determinada classe. Restrições - são regras aplicadas aos modelos UML. Podem ser aplicadas para apenas um ou para vários elementos do modelo. Por exemplo pode-se

37 28 definir através de uma restrição um condicionamento numa associação entre duas classes. A UML possui um grande potencial de expressão e modelagem podendo ser amplamente aplicada sem extensões, portanto empresas e projetos devem definir extensões apenas quando for realmente necessário introduzir novas notações e terminologias. Os conceitos fundamentais não devem ser mudados mais que o estritamente necessário (OMG, 2001). No capítulo 3 será apresentada a disciplina de modelagem de negócio e como a UML tem sido proposta como linguagem para a construção dos modelos neste domínio. A seção a seguir irá apresentar o Processo Unificado, uma metodologia baseada no modelo iterativo e incremental e que será usada como base para o desenvolvimento deste trabalho O Processo Unificado O Processo Unificado (UP) é um processo estabelecido para o desenvolvimento de software que resultou de três décadas de desenvolvimento e uso prático. Jacobson et al(1999) apresenta as origens do UP desde o processo Objectory (com primeira versão em 1987) passando pelas contribuições do Processo Rational Objectory (em 1997) até o Processo Unificado da Rational (RUP) (em 1998). O propósito do UP, como qualquer outro processo de desenvolvimento, é determinar um conjunto de atividades necessárias para transformar requisitos em sistemas de software. Ele utiliza a UML como linguagem para a modelagem dos artefatos de software produzidos ao longo do processo de desenvolvimento. O processo Unificado representa a disponibilização do RUP (que é proprietário da Rational) ao público geral. (JACOBSON; BOOCH; RUMBAUGH, 1999)

38 Caractéristicas do UP O UP é fundamentado em três boas práticas: dirigido por caso de uso, centrado em arquitetura, e iterativo e incremental. Estas práticas são descritas a seguir, conforme apresentadas em RUP(2001): Dirigido por caso de uso: Os casos de uso definidos para um sistema são a base de todo o processo de desenvolvimento. Baseados no modelo de caso de uso, os desenvolvedores criam uma série de modelos de projeto e implementações que realizam no sistema as funcionalidades dos casos de uso. Os testes também são realizados de forma a verificar se os componentes implementados implementam corretamente as funcionalidades dos casos de uso. Centrado em arquitetura: Os casos de uso orientam o UP durante todo o ciclo de vida, mas as atividades de projeto são centralizadas na noção da arquitetura de software. O foco principal das iterações iniciais do processo, principalmente na fase de Elaboração, é produzir e validar uma arquitetura de software, que no ciclo de desenvolvimento inicial toma a forma de um protótipo arquitetural executável que gradualmente evolui até se tornar o sistema final em iterações posteriores. Iterativo e Incremental: O UP utiliza pequenos ciclos de projeto (mini-projetos) que correspondem a uma iteração e que resultam em um incremento no software. Iterações referem-se a passos no processo, e incrementos a evoluções do produto. Esta característica foi apresentada anteriormente no item 2.2. Sua estrutura portanto é composta por Fases (relacionadas às metas ao longo do tempo) e Workflows (relacionadas à natureza das atividades). Cada Workflow é responsável por gerar seus respectivos artefatos através de um

39 30 conjunto de atividades. Cada Artefato corresponde a uma documentação (como um modelo) ou outro objeto de valor a ser criado no desenvolvimento (como um componente de software). Por ser iterativo, cada fase percorre todo o conjunto de fluxos de trabalho (workflows). Por ser incremental, cada iteração atualiza os artefatos gerados nas iterações anteriores. Cada fase possui uma maior ênfase em determinados fluxos de trabalho. A Figura 5, conhecida como Gráfico das Baleias apresenta a ênfase que é cada em cada fase. Figura 5 O Gráfico das Baleias (Adaptado de RUP, 2002) Na figura podem ser observadas duas dimensões: o eixo horizontal representa o tempo e mostra os aspectos do ciclo de vida do processo à medida que se desenvolve o eixo vertical representa os workflows, que agrupam as atividades de maneira lógica, por natureza. A primeira dimensão representa o aspecto dinâmico do processo quando ele é aprovado e é expressa em termos de fases, iterações e marcos. A segunda dimensão representa o aspecto estático do processo, como ele é descrito em termos de componentes, atividades, fluxos de trabalho, artefatos e papéis do processo.

40 31 O gráfico mostra como a ênfase varia através do tempo. Por exemplo, nas iterações iniciais, dedica-se mais tempo aos requisitos. Já nas iterações posteriores, gasta-se mais tempo com implementação Fases A partir de uma perspectiva de gerenciamento, o ciclo de vida de software do UP é dividido em quatro fases seqüenciais. Cada fase refere-se a uma determinada meta a ser atingida ao longo do desenvolvimento. As fases correspondem a períodos determinados por pontos de controle ao longo do tempo. Em cada ponto de controle, ou seja, ao final de cada fase, é esperado um determinado estado de alguns artefatos do desenvolvimento. Em cada final de fase é executada uma avaliação para determinar se os objetivos da fase foram alcançados. Uma avaliação satisfatória permite que o projeto passe para a próxima fase. As fases e seus marcos são apresentados na Figura 6. Figura 6 - As fases e os marcos de um projeto no UP.(Adaptado do RUP 2002) Concepção: O objetivo da fase de Concepção é conseguir a simultaneidade entre o cliente e o desenvolvedor nos objetivos do ciclo de vida do projeto. A Fase de Concepção é de importância primária para novos esforços de desenvolvimento quando há um negócio significativo e riscos requeridos que precisam ser esclarecidos antes do procedimento do projeto. Para projetos focados ou aprimoramento de um sistema já existente, a fase de Concepção é mais breve, mas ainda deve estar focalizado para assegurar que o projeto ainda é válido e possível de ser feito.

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo? O que é a UML? Introdução a UML Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário + regras de combinação

Leia mais

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC CURSO: Bacharelado em Ciência da Computação DISCIPLINA: ANPS Análise e Projeto de Sistemas AULA NÚMERO: 3 DATA: PROFESSOR: Murakami Sumário 1 APRESENTAÇÃO...1 2 DESENVOLVIMENTO...1 2.1 Revisão...1 2.1.1

Leia mais

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no 1.1 RATIONAL UNIFIED PROCESS (RUP) O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no processo que atende pelo nome de Processo Unificado (ou UP do inglês Unified

Leia mais

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 UML 2 Guia Prático Gilleanes T.A. Guedes Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 Novatec capítulo 1 Introdução à UML A UML (Unified Modeling Language ou Linguagem de Modelagem

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

Modelagem de Processos. Prof.: Fernando Ascani

Modelagem de Processos. Prof.: Fernando Ascani Modelagem de Processos Prof.: Fernando Ascani Modelagem da arquitetura de negócios Arquitetura Definições Aurélio: Informática: Estrutura e organização lógica de funcionamento de um sistema computacional.

Leia mais

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1. ARCO - Associação Recreativa dos Correios Sistema para Gerenciamento de Associações Recreativas Versão Histórico da Revisão Data Versão Descrição Autor Página

Leia mais

O modelo unificado de processo. O Rational Unified Process, RUP.

O modelo unificado de processo. O Rational Unified Process, RUP. Cursos: Sistemas de Informação Disciplina: Administração ADM Prof. Jarbas Avaliação: Prova B1, 5º/6º semestres Data: 27/09/2010 Nome: Gabarito RA: Assinatura: Turma: 1) Segundo as afirmações a seguir,

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP RUP Rational Unified Process ( Unificado de Desenvolvimento da Rational) Conjunto de passos que tem como objetivo atingir uma meta de software na ES, processo que visa a produzir o software - de modo eficiente

Leia mais

Projeto de Sistemas I

Projeto de Sistemas I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS Elicitação Ciclo de Vida Clássico ou Convencional O Modelo Cascata Análise Ana Paula Terra Bacelo Blois Implementação Material Adaptado do Prof. Marcelo Yamaguti

Leia mais

Engenharia de Software

Engenharia de Software Universidade São Judas Tadeu Profª Dra. Ana Paula Gonçalves Serra Engenharia de O Processo Uma Visão Genérica Capítulo 2 (até item 2.2. inclusive) Engenharia de - Roger Pressman 6ª edição McGrawHill Capítulo

Leia mais

Processo de Desenvolvimento Unificado

Processo de Desenvolvimento Unificado Processo de Desenvolvimento Unificado Processo de Desenvolvimento de Software? Conjunto de atividades bem definidas; com responsáveis; com artefatos de entrada e saída; com dependências entre as mesmas

Leia mais

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de

Leia mais

Governança de TI. ITIL v.2&3. parte 1

Governança de TI. ITIL v.2&3. parte 1 Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços

Leia mais

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2009 Profa. Dra. Itana Gimenes RUP: Artefatos de projeto Modelo de Projeto: Use-Case Realization-projeto

Leia mais

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1. Modelos de Sistema Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1 Objetivos Explicar por que o contexto de um sistema deve ser modelado como parte do processo de RE Descrever

Leia mais

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Engenharia de Software Parte I Introdução Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Mitos do Desenvolvimento de Software A declaração de objetivos é suficiente para se construir um software.

Leia mais

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes Engenharia de Software: Introdução Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes Programa 1. O processo de engenharia de software 2. UML 3. O Processo Unificado 1. Captura de requisitos 2.

Leia mais

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0 O que é BABok? O BABok 2.0, Corpo de Conhecimento de Análise de Negócios, é considerado como um Guia Referência de Práticas de Análise de Negócio. Este guia é publicado e mantido pelo IIBA. O guia BABok

Leia mais

Modelagem de Processos. Prof.: Fernando Ascani

Modelagem de Processos. Prof.: Fernando Ascani Modelagem de Processos Prof.: Fernando Ascani Bibliografia UML Guia de consulta rápida Douglas Marcos da Silva Editora: Novatec UML Guia do usuário Grady Booch James Rumbaugh Ivair Jacobson Editora: Campus

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Dimensões de análise dos SI Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Os sistemas de informação são combinações das formas de trabalho, informações, pessoas

Leia mais

PROFESSOR: CRISTIANO MARIOTTI

PROFESSOR: CRISTIANO MARIOTTI PROFESSOR: CRISTIANO MARIOTTI Conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto de software; Considerado um dos principais mecanismos para se obter software de qualidade

Leia mais

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; 1 ARQUITETURA E DESIGN DE SOFTWARE O que é Arquitetura? do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; do dicionário: Arte de projetar e construir prédios,

Leia mais

2 Engenharia de Software

2 Engenharia de Software 20 2 Engenharia de Software 2.1 Design de Sistemas Orientados a Objetos Os Sistemas Orientados a Objetos não são mais novidade hoje em dia já estando há muitos anos no mercado. A orientação a objetos permite

Leia mais

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

! Introdução.  Motivação para Processos de Software. ! Processo Unificado (USDP)  Definições  RUP x USDP  Características do Processo Unificado Agenda! Introdução " Motivação para Processos de Software! (USDP) " Definições " RUP x USDP " Características do! Descrição detalhada do! Processos Derivados! Templates simplificados! Conclusões 2 Processo

Leia mais

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com Introdução a UML Hélder Antero Amaral Nunes haanunes@gmail.com Introdução a UML UML (Unified Modeling Language Linguagem de Modelagem Unificada) é uma linguagem-padrão para a elaboração da estrutura de

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

A Linguagem de Modelagem Unificada (UML)

A Linguagem de Modelagem Unificada (UML) Aécio Costa A Linguagem de Modelagem Unificada (UML) Percebeu-se a necessidade de um padrão para a modelagem de sistemas, que fosse aceito e utilizado amplamente. Surge a UML (Unified Modeling Language)

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet) UML Felipe Denis M. de Oliveira Fonte: Alice e Carlos Rodrigo (Internet) 1 Programação O que é UML? Por quê UML? Benefícios Diagramas Use Case Class State Interaction Sequence Collaboration Activity Physical

Leia mais

Introdução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004

Introdução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004 Introdução ao RUP Rational Unified Process por Denize Terra Pimenta Outubro/2004 1 Contexto Não é suficiente apenas a presença de desenvolvedores altamente treinados: Precisamos de uma linguagem para a

Leia mais

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Prof. Walter Cunha falecomigo@waltercunha.com http://waltercunha.com PMBoK Organização do Projeto Os projetos e o gerenciamento

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Curso de Desenvolvimento de Software Prof. Alessandro J de Souza ajdsouza@cefetrn.br 1 Rational Unified Process RUP Fase Elaboração 2 VISÃO GERAL Fase Elaboração. Visão Geral 3

Leia mais

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do

Leia mais

Processos de gerenciamento de projetos em um projeto

Processos de gerenciamento de projetos em um projeto Processos de gerenciamento de projetos em um projeto O gerenciamento de projetos é a aplicação de conhecimentos, habilidades, ferramentas e técnicas às atividades do projeto a fim de cumprir seus requisitos.

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Processo de software I Ricardo de Sousa Britto rbritto@ufpi.edu.br + O que é Engenharia de Software n Definição dada pela IEEE [IEE93]: n Aplicação de uma abordagem sistemática,

Leia mais

Processos de Desenvolvimento de Software

Processos de Desenvolvimento de Software Processos de Desenvolvimento de Software Gerenciamento de Projetos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e

Leia mais

Universidade Paulista

Universidade Paulista Universidade Paulista Ciência da Computação Sistemas de Informação Gestão da Qualidade Principais pontos da NBR ISO/IEC 12207 - Tecnologia da Informação Processos de ciclo de vida de software Sergio Petersen

Leia mais

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE Prof. Msc. Hélio Esperidião O QUE É UM ALGORITMO? É qualquer procedimento computacional bem definido que informa algum valor ou conjunto de valores como entrada

Leia mais

Modelagem OO com UML. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza

Modelagem OO com UML. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Modelagem OO com UML Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Modelos Maneira

Leia mais

Concepção e Elaboração

Concepção e Elaboração UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Análise e Projeto Orientado a Objetos Concepção e Elaboração Estudo

Leia mais

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto

Leia mais

Processos de Desenvolvimento de Software. Prof. Hélio Engholm Jr

Processos de Desenvolvimento de Software. Prof. Hélio Engholm Jr Processos de Desenvolvimento de Software Objetivos Descrever o processo de desenvolvimento de software Orientado a Objetos (Object Oriented Software Development - OOSD) Descrever como a modelagem suporta

Leia mais

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas PIM PROGRAMA DE INTEGRAÇÃO COM O MERCADO GUIA DE CURSO Tecnologia em Sistemas de Informação Tecnologia em Desenvolvimento Web Tecnologia em Análise e Desenvolvimento de Sistemas Tecnologia em Sistemas

Leia mais

GARANTIA DA QUALIDADE DE SOFTWARE

GARANTIA DA QUALIDADE DE SOFTWARE GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características

Leia mais

MASTER IN PROJECT MANAGEMENT

MASTER IN PROJECT MANAGEMENT MASTER IN PROJECT MANAGEMENT PROJETOS E COMUNICAÇÃO PROF. RICARDO SCHWACH MBA, PMP, COBIT, ITIL Atividade 1 Que modelos em gestão de projetos estão sendo adotados como referência nas organizações? Como

Leia mais

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Requisitos de Software. Teresa Maciel DEINFO/UFRPE Requisitos de Software Teresa Maciel DEINFO/UFRPE 1 Requisito de Software Características que o produto de software deverá apresentar para atender às necessidades e expectativas do cliente. 2 Requisito

Leia mais

Programa do Módulo 2. Processo Unificado: Visão Geral

Programa do Módulo 2. Processo Unificado: Visão Geral 9.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) O Processo Unificado (RUP) Processo Unificado: Visão Geral 9.2 Encaixa-se na definição geral de processo:

Leia mais

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 3º PERÍODO - 5º MÓDULO AVALIAÇÃO A4 DATA 23/04/2009 ENGENHARIA DE SOFTWARE Dados de identificação do Acadêmico: Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA

Leia mais

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr Engenharia de Software Apostila I >>> Introdução à ES - HEngholmJr Histórico de Revisões Data Versão Descrição Autor 12/08/2014 1.0 Criação da primeira versão HEngholmJr Agenda Introdução à Engenharia

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Requisitos Cap. 06 e 07 Sommerville 8 ed. REQUISITOS DE SOFTWARE» Requisitos são descrições de serviços fornecidos pelo sistema e suas restrições operacionais. REQUISITOS DE USUÁRIOS: São

Leia mais

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW Baseado nos materiais dos profs: Prof.: Edilberto M. Silva http://www.edilms.eti.br Edna Canedo Marcio de Carvalho Victorino Brasília-DF,

Leia mais

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

Leia mais

Engenharia de Software I: Análise e Projeto de Software Usando UML

Engenharia de Software I: Análise e Projeto de Software Usando UML Engenharia de Software I: Análise e Projeto de Software Usando UML Capítulo 1 Processo de Desenvolvimento de Software Metodologia de Desenvolvimento de Software Uma metodologia é um conjunto de métodos,

Leia mais

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Faculdade INED UML 01 Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Referências BARBIERI, Carlos. Análise e Programação

Leia mais

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com Engenharia de Software: conceitos e aplicações Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com 1 Objetivos da aula Apresentar os conceitos de Engenharia de Software e explicar a sua importância.

Leia mais

Fase 1: Engenharia de Produto

Fase 1: Engenharia de Produto Fase 1: Engenharia de Produto Disciplina: Análise de Requisitos DURAÇÃO: 44 h O objetivo principal da disciplina é realizar uma análise das necessidades e produzir um escopo do produto. Representará os

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO Santa Maria, 10 de Outubro de 2013. Revisão aula anterior Documento de Requisitos Estrutura Padrões Template Descoberta

Leia mais

Unidade II MODELAGEM DE PROCESSOS

Unidade II MODELAGEM DE PROCESSOS Unidade II 3 MODELAGEM DE SISTEMAS 1 20 A fase de desenvolvimento de um novo sistema de informação (Quadro 2) é um momento complexo que exige um significativo esforço no sentido de agregar recursos que

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

Engenharia de Software na Prática Hélio Engholm Jr.

Engenharia de Software na Prática Hélio Engholm Jr. Engenharia de Software na Prática Hélio Engholm Jr. Novatec Sumário Agradecimentos... 17 Sobre o autor... 18 Prefácio... 19 Capítulo 1 Desenvolvimento de software para o valor de negócios... 20 1.1 Qualidade

Leia mais

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES [Observação: O template a seguir é utilizado como roteiro para projeto de sistemas orientado

Leia mais

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com REVISÃO ENGENHARIA DO SOFTWARE Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Software Sequencia de Instruções a serem seguidas ou executadas Dados e rotinas desenvolvidos por computadores Programas

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D.

Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D. UML Diagramas Um diagrama é a apresentação gráfica de um conjunto de elementos, onde os vértices são ITENS e os arcos RELACIONAMENTOS UML 2.0 possui os seguintes diagramas: Diagrama de Classes (Class Diagram)

Leia mais

Gerenciamento da Integração (PMBoK 5ª ed.)

Gerenciamento da Integração (PMBoK 5ª ed.) Gerenciamento da Integração (PMBoK 5ª ed.) O PMBoK diz que: O gerenciamento da integração do projeto inclui os processos e as atividades necessárias para identificar, definir, combinar, unificar e coordenar

Leia mais

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva. juliocesar@tecnocracia.eti.br. Http://e-academy.com.br

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva. juliocesar@tecnocracia.eti.br. Http://e-academy.com.br Faculdade Pitágoras Engenharia de Software Prof.: Julio Cesar da Silva juliocesar@tecnocracia.eti.br Http://e-academy.com.br Evolução do Software (1950 1965) - O hardware sofreu contínuas mudanças - O

Leia mais

Processos de Software

Processos de Software Processos de Software Prof. Márcio Lopes Cornélio Slides originais elaborados por Ian Sommerville O autor permite o uso e a modificação dos slides para fins didáticos O processo de Um conjunto estruturado

Leia mais

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com Análise e Projeto de Sistemas de Informação Andrêza Leite andreza.lba@gmail.com Roteiro Sistemas de Informação Ciclo de Desenvolvimento de SI Projeto Análise Estruturada Análise Orientada a Objetos Como

Leia mais

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas 4.1 Motivação Sistemas de Informação são usados em diversos níveis dentro de uma organização, apoiando a tomada de decisão; Precisam estar

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Processo de Desenvolvimento de Software. Engenharia de Software. nelmarpg@yahoo.com.br

Processo de Desenvolvimento de Software. Engenharia de Software. nelmarpg@yahoo.com.br Processo de Desenvolvimento de Software nelmarpg@yahoo.com.br 1 Objetivos Contextualizar Análise e Projeto de software dentro de uma metodologia de desenvolvimento (um processo de desenvolvimento de software)

Leia mais

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES Implementação MPS.BR 26 de maio de 2008 4 horas de duração e-mail: (DEIXAR EM BRANCO) RESULTADO: Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Nota INSTRUÇÕES Para a maioria das questões você tem mais de uma opção e

Leia mais

Abordagem de Processo: conceitos e diretrizes para sua implementação

Abordagem de Processo: conceitos e diretrizes para sua implementação QP Informe Reservado Nº 70 Maio/2007 Abordagem de Processo: conceitos e diretrizes para sua implementação Tradução para o português especialmente preparada para os Associados ao QP. Este guindance paper

Leia mais

A Disciplina Gerência de Projetos

A Disciplina Gerência de Projetos A Disciplina Gerência de Projetos Atividades, Artefatos e Responsabilidades hermano@cin.ufpe.br Objetivos Apresentar atividades da disciplina Gerência de Projetos Discutir os artefatos e responsáveis envolvidos

Leia mais

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software. Processos de Software Objetivos Apresentar os modelos de processo de software Conjunto coerente de atividades para especificar, projetar, implementar e testar s de software Descrever os diferentes modelos

Leia mais

Introdução à Engenharia de. Software. Introdução à Engenharia de. Software. O que é a Engenharia de Software? Software

Introdução à Engenharia de. Software. Introdução à Engenharia de. Software. O que é a Engenharia de Software? Software Introdução à Engenharia de Gidevaldo Novais (gidevaldo.vic@ftc.br) Introdução à Engenharia de Objetivo Depois desta aula você terá uma noção geral do que é a engenharia de software e dos seus objetivos

Leia mais

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software Análise e Projeto de Sistemas Análise e Projeto de Sistemas Contextualização ENGENHARIA DE SOFTWARE ANÁLISE E PROJETO DE SISTEMAS ENGENHARIA DA INFORMAÇÃO Perspectiva Histórica Engenharia de Software 1940:

Leia mais

Pós Graduação Engenharia de Software

Pós Graduação Engenharia de Software Pós Graduação Engenharia de Software Ana Candida Natali COPPE/UFRJ Programa de Engenharia de Sistemas e Computação FAPEC / FAT Estrutura do Módulo Parte 1 QUALIDADE DE SOFTWARE PROCESSO Introdução: desenvolvimento

Leia mais