Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disciplina: Analise e Projeto de Sistemas Orientado a Objetos Introdução e Conceitos Prof. Izaac Espíndola izaacesp@gmail.com 06/08/2013 2 Referências [1] DENNIS, Alan. ANÁLISE E PROJETO DE SISTEMAS 2ed. LTC 2005 [2] BEZERRA, Eduardo . PRINCIPIOS DE ANÁLISE E PROJETO DE SISTEMAS COM UML 2ed. CAMPUS 2007 [3] MELO, Ana Cristina. DESENVOLVENDO APLICAÇÕES COM UML 2.0: DO CONCEITUAL À IMPLEMENTAÇÃO. 2ed. BRASPORT 2004. [4] KRUCHTEN, Philippe. INTRODUÇÃO AO RUP RATIONAL UNIFIED PROCESS CIÊNCIA MODERNA 2005. 3 Estrutura da Disciplina Analise e Projeto de Sistemas O. a Objetos Unidade I 1. Engenharia de Software 1.1 Ciclo de vida 1.2 Ferramentas CASE 2. Processos de Software 2.1 Modelos de processo 2.2 Interação 2.3 Processo Unificado 3. Engenharia de Requisitos de Software 3.1 Elicitação 3.2 Interfaces 3.3 Validação 4 Estrutura da Disciplina Metodologia de Desen. de Sistemas Unidade II 3. Engenharia de Requisitos de Software 3.4 Gerenciamento 4. Modelos de sistemas 4.1 Paradigmas de desenvolvimento 5. Introdução à Programação Orientada a Objetos 6. Introdução a UML 5 Estrutura da Disciplina Métodos de Avaliação 1. Trabalho Evolutivo para duas unidades 2. Prova Escrita Questões Objetivas e Discursivas com assunto cumulativo. A média da unidade: Será a composição da soma da nota do trabalho e prova dividido por dois para cada unidade. A média final é a soma das unidades dividido por dois. 6 Como Construir? Simplesmente “FAZER” OU Utilizar Metodologias de Desenvolvimento 7 Conceitos O que é engenharia de software? ? O que é engenharia de software? É uma disciplina que se ocupa de todos os aspectos da produção de software, utilizando processos de desenvolvimento desde os estágios iniciais do sistema até a manutenção desse sistema, depois que o mesmo entrou em operação. O que são métodos da engenharia de software? É uma abordagem estruturada para o desenvolvimento de software, cujo o objetivo é facilitar a produção de software de alta qualidade dentro de custos esperados. Técnicas Diferentes • Análise, Projeto e Programação Estruturada – Técnica:Diagrama de Fluxo de Dados (DFD) – Linguagens: Cobol, Fortran, C, Pascal. • Análise, Projeto e Programação Orientada a Objetos – Técnica: Linguagem de Modelagem Unificada (UML) – Linguagens: Java e C++. Orientação a Objetos • É uma maneira de pensar os problemas utilizando modelos organizados a partir de conceitos do mundo real. • E, por isso, facilita o trabalho dos desenvolvedores. • Objeto é um conceito que existe no mundo real. • Exemplo: conta, cliente, banco, agência. 12 Processo de Software É uma série de passos (um ROTEIRO). Para criar EM TEMPO um SOFTWARE de ALTA QUALIDADE, sem estourar o ORÇAMENTO . Motivação 13 Processo de Software Como “escolher“ um processo? As CARACTERÍSTICAS DA APLICAÇÃO (domínio do problema, tamanho, complexidade etc); A TECNOLOGIA a ser adotada na sua construção (linguagem de programação, mecanismo de persistência etc), a organização; ONDE o produto será desenvolvido; O PERFIL DA EQUIPE de desenvolvimento. O que é processo de software? É um conjunto de atividades cuja meta é o desenvolvimento ou evolução de software Atividades dos Processos Possui quatro atividades comuns Especificação de software – o que o sistema deve fazer e suas restrições de desenvolvimento Desenvolvimento de software – produção do sistema de software Validação de software – checagem se o software é o que o cliente deseja Evolução de software – modificação do software em resposta a demanda de mercado e/ou empresa 16 Modelo de Processo Quando se “escolhe“ um processo DEFINE- SE um: Modelo de Ciclo de Vida ou Modelo de Processo. É uma representação abstrata da estrutura (“ESQUELETO“) de processo. Inclui algumas atividades principais. A ordem de precedência entre elas. Opcionalmente, artefatos requeridos e produzidos. O que um modelo de processo software? É uma representação simplificada de um processo de software, que é apresentada a partir de uma perspectiva específica. Modelo: abstração do processo real. 18 Atividades de Processos Em geral, modelos envolvem as seguintes FASES : Planejamento Análise e Especificação de Requisitos Projeto Implementação Testes Entrega e Implantação Operação Manutenção 19 Fases dos Processos Planejamento Fornece uma estrutura que possibilita ao gerente fazer estimativas iniciais de recursos, custos e prazos; O escopo do software é estabelecido; Um plano de projeto deve ser elaborado configurando o processo a ser utilizado; Esta atividade faz parte da gerência de projeto. 20 Análise e Especificação de Requisitos O escopo do software é refinado; Descreve “o que“ o software deve fazer; Devem ser analisados o domínio do problema e o domínio da solução. Projeto Utiliza a fase anterior como insumo; Envolve duas grandes etapas: projeto da arquitetura do software e projeto detalhado. Fases dos Processos 21 Fases Processos Implementação O projeto é traduzido para uma para uma forma passível de execução pela máquina. Testes Testes de unidade e documentação dos resultados; Integração dos componentes e teste do software como um todo; Alguns modelos de processo prevêem a realização de testes já nas primeiras etapas. 22 Fases Processos Entrega e Implantação O software deve ser instalado em ambiente produção. Envolve Treinamento de usuários; Configuração do ambiente de produção; Conversão bases de dados (se necessário). Principal propósito desta fase: Realizase os Testes de Aceitação (estabelecer que o software satisfaz os requisitos dos usuários). 23 Fases Processos Operação Após o teste de aceitãção, o software passa a ser utilizado de fato em ambiente de produção. Manutenção Adaptativas Corretivas Evolutivas Tipos de modelos de Processos Modelos de Workflow – seqüência de atividades Entradas, saídas e dependências Modelo de Fluxo de Dados ou de Atividades Processo como um conjunto de atividades realização de transformações em cima dos dados Modelo de Papel/Ação papéis das pessoas envolvidas (“quem” faz “o que”). Tipos de modelos de Processos Modelo Cascata (Ciclo de Vida Clássico) Modelo Espiral Modelo iterativo/incremental Modelo Desenvolvimento Evolucionário Prototipação – construção de protótipos (avaliação) Engenharia de Software baseado em comp. RUP(Rational Unified Process) Modelo Cascata • Exemplo: O ciclo de Vida Em Cascata (clássico ou linear) possui uma tendência macro para a progressão seqüencial apesar de poder haver retroalimentação; • Problemas: ▫ Projetos reais raramente seguem o fluxo; ▫ Presume possibilidade de declarar previamente todos os requisitos; ▫ A implantação fica distante da fase inicial. Aplicabilidade Modelo apropriado quando se tem requisitos bem definidos 27 ...Construindo o software Entendendo o problema... Análise Projeto Implemen- tação Testes Implantação Levantamento de Requisitos Extraído de BEZERRA, E. Princípio de Análise e Projetos de Sistemas. Modelo de Cascata Problemas no modelo Cascata • Inflexível divisão do projeto em estágios distintos • Isto torna difícil responder a modificações nos requisitos solicitadas pelos clientes • Entretanto, este modelo é somente apropriado quando os requisitos estão bem entendidos Desvantagem do Modelo Cascata • Operação e manutenção (Operationand maintenance) • A desvantagem do modelo Cascata é a dificuldade de acomodar mudanças após o processo estar em andamento Planejar próxima fase Desenvolver e testar Determinar objetivos, alternativas e restrições Avaliar alternativas, e identificar e resolver riscos • Modelo Espiral: – Representação em espiral, não como seqüências de tarefas – Não tem número fixo de fases – Riscos são tratados explicitamente Modelo de Expiral Modelo iterativo incremental (1) Conceber Planejar Construir Entregar Fases • Conhecido como iterativo/incremental • A cada iteração – O software é incrementado em funcionalidades (requisitos do cliente/usuário) – A definição de funcionalidades e suas iterações seguem a necessidade do cliente/usuário • As primeiras DEVEM abordar as funcionalidades de maior importância Modelo iterativo incremental (2) Desenvolvimento Evolucionário • Desenvolvimento Exploratório – O objetivo é trabalhar com clientes e evoluir até um sistema final a partir de uma especificação inicial. O desenvolvimento inicia-se com as partes do sistema que são melhor entendidas • Prototipação Descartável – O objetivo é entender os requisitos do sistema. Inicia-se com um conjunto de requisitos ainda mal compreendidos Desenvolvimento Evolucionário • Problemas – O processo não é visível – Os sistemas freqüentemente são mal-estruturados – Podem ser exigidas ferramentas e técnicas especiais (ex. linguagens para rápida prototipação) Desenvolvimento Evolucionário Processo de Desenvolvimento de SW 36 Processo de Desenvolvimento de SW 37 Como o processo de desenvolvimento de software se distribui/concentra no tempo dentro de um projeto? Análise Projeto Implemen- tação Testes Implantação Levantamento de Requisitos Levantamento de Requisitos 38 Objetivos: trabalhar para construir o sistema correto. Envolve: capturar os vários requisitos (funcionais e não funcionais), negociar prazo, custo e escopo ( o que e não como). Dificuldades: cliente e desenvolvedor falam línguas diferentes, é difícil definir o que o cliente quer e os documentos de requisitos dele são ambíguos. OBJETIVOS DAS ATIVIDADES INDEPENDENTE DO CICLO DE VIDA O que são requisitos? São características/necessidades do cliente que podem ser expressas como: - funcionais: o que o sistema deve fazer - não-funcionais: restrições sobre como o sistema deve desempenhar suas funções Exemplo - Registrar o empréstimo de uma fita é um requisito funcional. - Estabelecer que o tempo de empréstimo da fita não pode ser superior a 48 horas é uma restrição, ou requisito não funcional. Erros comuns na especificação de requisitos: Deve ficar claro ao analista que requisitos são coisas que o cliente ou usuário solicitam, e não coisas que ele, como analista, planejou. Análise Análise Projeto Implemen- tação Testes Implantação Levantamento de Requisitos 39 Objetivos: Estudo dos requisitos levantados na fase anterior para construção de modelos que representem o sistema a ser desenvolvido. Envolve: eliminar falhas da análise de requisitos, abordar questões técnicas do desenvolvimento de software (como e não o que). Dificuldades: as mesmas dificuldades da análise de requisitos OBJETIVOS DAS ATIVIDADES INDEPENDENTE DO CICLO DE VIDA Análise Projeto Implemen- tação Testes Implantação Levantamento de Requisitos 40 Projeto Objetivos: proposta de uma solução que atenda os requisitos da análise e que seja passível de implementação. Envolve: detalhes físicos de implementações, trabalha o comportamento interno do software, plano e implementação das decisões arquitetônicas. OBJETIVOS DAS ATIVIDADES INDEPENDENTE DO CICLO DE VIDA Podemos concluir que... -O resultado da análise é o enunciado do problema, e que o projeto será a sua resolução. -Problemas mal enunciados podem até ser resolvidos, mas a solução não corresponderá às expectativas. - A qualidade do processo de análise é importante porque um erro de concepção resolvido na fase de análise tem um custo; na fase de projeto tem um custo maior; na fase de implementação maior ainda, e na fase de implantação do sistema tem um custo relativamente astronômico. Análise Projeto Implemen- tação Testes Implantação Levantamento de Requisitos 41 Implemen- tação Objetivos: construir uma versão operacional do software que possa ser entregue ao cliente para avaliação. Envolve: implementar código fonte em uma determinada linguagem, implementar código de teste unitário para o código fonte e integrar o sistema. Dificuldade: falta de conhecimento da equipe de desenvolvimento sobre a uma determinada tecnologia. OBJETIVOS DAS ATIVIDADES INDEPENDENTE DO CICLO DE VIDA Análise Projeto Implemen- tação Testes Implantação Levantamento de Requisitos 42 Testes Objetivos: assegurar que o sistema tenha qualidade antes de ser entregue aos clientes; Envolve: definir o que será testado, executar os testes de integração do sistema e avaliar os testes. OBJETIVOS DAS ATIVIDADES INDEPENDENTE DO CICLO DE VIDA Análise Projeto Implemen- tação Testes Implantação Levantamento de Requisitos 43 Implantação O sistema é empacotado, distribuído e instalado no ambiente do usuário. Os manuais são escritos, os dados são importados para o sistema e o pessoal é treinado para operá-lo. OBJETIVOS DAS ATIVIDADES INDEPENDENTE DO CICLO DE VIDA
Compartilhar