62
Instituto Federal de Educação, Ciência e Tecnologia – IFAL Bacharelado em Sistemas de Informação Análise e Projeto de Sistemas Prof. MSc. Ricardo R Nunes Ricardo (arroba) ifal.edu.br

Apsi 001 Visao Geral

Embed Size (px)

DESCRIPTION

Analise e projetos de sistemas de informação.

Citation preview

  • Instituto Federal de Educao, Cincia e Tecnologia IFALBacharelado em Sistemas de Informao

    Anlise e Projeto de Sistemas

    Prof. MSc. Ricardo R NunesRicardo (arroba) ifal.edu.br

  • Agenda Desenvolvimento de Sistemas OO UML Processo de desenvolvimento Processo Unificado (UP) e suas atividades Anlise e Projeto de Sistemas Design Patterns

    2

  • Objetivo Apresentar um conjunto de informaes

    prticas que possibilite a compreenso e utilizao da orientao a objetos de forma consciente e eficaz em processos de anlise e projeto de sistemas

    Compreenso dos conceitos de anlise e projeto de sistemas, processo de desenvolvimento e UML

    3

  • Desenvolvimento de Sistemas Orientados a Objetos

    Como desenvolver OO?

    Utilizar linguagem OO? Utilizar parte de um processo OO? Utilizar classes. Como foram desenvolvidos os

    mtodos? Utilizar ferramentas CASE para criar diagramas

    UML?

    4

  • Desenvolvimento de Sistemas Orientados a Objetos (2)

    Comprar um martelo no transforma voc em um

    arquiteto; pode ser necessrio, mas no

    suficiente

    5

  • Desenvolvimento de Sistemas Orientados a Objetos (3)

    O uso de diagramas no vai melhorar necessariamente a

    qualidade do software produzido

    6

  • Desenvolvimento de Sistemas Orientados a Objetos (4)

    O que preciso para desenvolver OO? Conhecer as tcnicas de delegao e

    distribuio de responsabilidades e desenvolver cdigo reusvel e baixo acoplamento, de acordo com padres de projeto

    7

  • Desenvolvimento de Sistemas Orientados a Objetos (5)

    Componentes do desenvolvimento de software Anlise e projeto OO Linguagem de modelagem (UML?) Processo de desenvolvimento Padres de projeto (Design patterns) Linguagem de programao (Java, Python?)

    8

  • UML O que UML?

    Metodologia?

    Unified Modeling Language (Linguagem de Modelagem Unificada)

    9

  • UML (2) Conhecer a linguagem X Criar bons artefatos

    Escrever bons projetos como escrever poesia. No basta conhecer a linguagem. preciso

    dominar certas tcnicas de escrita.

    10

  • UML (3) Breve histrico da UML

    1994 James Rumbaugh e Grady Booch criaram a Rational

    1995 Unificaram suas linguagens de diagramas

    1996 Ivar Jacobson adicionou casos de uso e outras notaes ao sistema de

    diagramas

    11

  • UML (4) Famlias de diagramas

    Diagramas estruturais diagramas de pacotes, classes, objetos, estrutura

    composta, componentes e distribuio. Diagramas comportamentais

    diagramas de casos de uso, atividades e mquina de estados.

    Diagramas de interao diagramas de comunicao, sequncia, tempo e viso

    geral de integrao. Quais diagramas utilizar?

    12

  • Processo de Desenvolvimento

    Um processo um conjunto de passos que define quem est fazendo o que, quando e como para alcanar determinado objetivo

    13

  • Exemplo 01

    14

  • Exemplo 02

    15

  • Processo de Desenvolvimento de Software (1)

    Uma linguagem de modelagem no suficiente

    Precisamos tambm de um processo de desenvolvimento Linguagem de modelagem + processo de

    desenvolvimento = mtodo (ou metodologia) de desenvolvimento

    No objetivo da disciplina estudar processos de desenvolvimento

    16

  • Processo de Desenvolvimento de Software (2)

    Fases

    Anlise

    Projeto

    Implementao

    Teste

    17

  • Anlise (1) Enfatiza a investigao do problema

    Objetivo de levar o analista a investigar e a descobrir

    Para que esta etapa seja realizada em menos tempo e de forma mais precisa, deve-se ter um bom mtodo de trabalho

    18

  • Anlise (2) A qualidade do processo de anlise

    importante porque um erro de concepo resolvido na fase de anlise tem um custo menor do que se resolvido em qualquer outra fase

    19

  • Anlise (3)

    20

  • Projeto Enfatiza a proposta de uma soluo que

    atenda os requisitos da anlise

    Ento, se a analise uma investigao para tentar descobrir o que o cliente quer, o projeto consiste em propor uma soluo com base no conhecimento adquirido na anlise

    21

  • Implementao A utilizao de tcnicas sistemticas nas

    fases de anlise e projeto faz com que o processo de gerao de cdigo possa ser automatizado

    Neste caso, cabe ao programador dominar as caractersticas especficas das linguagens, ferramentas, frameworks e estruturas de dados para adaptar o cdigo gerado aos requisitos indicados quando necessrio

    22

  • Testes (1) Envolve

    Testes de unidade, feitos pelo programador, para verificar se os componentes gerados atendem especificao do projetista

    Testes de caso de uso, normalmente efetuados por um analista experiente, que visam verificar a adequao do sistema aos requisitos inicialmente levantados

    23

  • Testes (2)

    24

  • Processo de Desenvolvimento de Software (3)

    25

  • Processo Unificado - UP Proposto por Grady Booch, James Rumbaugh e Ivar

    Jacobson (1999) Valores

    dirigido por casos de uso planejamento feito em funo dos casos de uso identificados,

    tratando-se prioritariamente os mais complexos centrado na arquitetura

    desenvolvimento prioriza a construo de uma arquitetura de sistema que permita a realizao dos requisitos

    Baseia-se na identificao de uma estrutura de classes, produzida a partir de um modelo conceitual

    iterativo e incremental a cada ciclo de trabalho realizado, novas caractersticas so

    adicionadas arquitetura do sistema, deixando-a mais completa e mais prxima do sistema final

    26

  • Dirigido por casos de uso

    27

  • UP Centrado na Arquitetura (1)

    28

  • UP Centrado na Arquitetura (1)

    29

  • Iterativo X Incremental

    30

  • Processo Unificado UP (2) Fases

    Concepo, elaborao, construo e transio

    31

  • Processo Unificado UP (2) Concepo, elaborao, construo e

    transio

    32

  • Processo Unificado UP (3) Fases

    Concepo: incorpora o estudo de viabilidade, o levantamento dos requisitos e uma parte da sua anlise

    Elaborao: incorpora o detalhamento da anlise de requisitos, a modelagem de domnio e o projeto

    Construo: corresponde programao e testes Transio: consiste na instalao do sistema e

    migrao de dados

    33

  • Processo Unificado UP (4) Concepo:

    Inception, em ingls Realiza-se o levantamento dos requisitos e

    compreende-se o sistema de forma abrangente Resultados

    Documento de requisitos e riscos Listagem de casos de uso de alto nvel Cronograma de desenvolvimento baseado nesses

    casos de uso

    34

  • Processo Unificado UP (5) Elaborao e construo

    Ocorrem em ciclos iterativos Elaborao incorpora a maior parte da anlise e

    projeto Construo incorpora a maior parte da

    implementao e testes Durante os ciclos iterativos propriamente ditos

    que acontece a anlise detalhada do sistema, a modelagem de domnio e o projeto do sistema usando os padres de projeto

    35

  • Processo Unificado UP (6) Transio

    depois de pronto, o sistema ser implantado substituindo o sistema atual

    36

  • Processo Unificado UP (6) O UP como um processo gil

    poucos artefatos e burocracia, permitindo o desenvolvimento de software de forma eficiente

    o cliente deseja o software pronto e no uma pilha de documentos

    documentao deve ser dirigida produo do software

    Atividade realizadas com objetivo claro e utilizao precisa, visando produo de cdigo que atenda aos requisitos da melhor forma possvel no menor tempo

    37

  • As Atividades de APno Contexto do UP

    As diferentes nfases das atividades de desenvolvimento ao longo das quatro fases do Processo Unificado (fonte: IBM).

    38

  • Retomando a discusso sobre Anlise e Projeto...

    ...para se chegar em Anlise e Projeto OO

  • O que so Anlise e Projeto? Primeira alternativa:

    A anlise modela o problema e consiste das atividades necessrias para entender o domnio do problema (o que deve ser feito). uma atividade de investigao.

    O projeto modela a soluo e consiste das atividades de criao (como pode ser feito)

    40

  • O que so Anlise e Projeto?

    41

  • O que so Anlise e Projeto? Segunda alternativa:

    A anlise consiste de todas as atividades feitas com ou para o conhecimento do cliente. A informao produzida aquela que o cliente deve discutir e aprovar

    O projeto inclui as atividades que resultam em informao que interessa apenas ao programador

    Com essa definio, a anlise invade um pouco o "lado da soluo", pois o cliente deve discutir alguns tipos de interaes que ocorrero na interface do usurio, etc.

    42

  • O que so Anlise e Projeto?

    43

  • O que so Anlise e Projeto? Observe, portanto, que no h definio binria que

    isole "anlise" de "projeto" Nesta disciplina, adotaremos a segunda alternativa,

    pois queremos associar as palavras "anlise" e "projeto" aos artefatos entregues no final de cada fase Um modelo de anlise deve ser aprovado pelo cliente e

    pode incluir alguma (pequena) discusso da soluo, principalmente no que diz respeito interface com usurio, etc.

    44

  • O que Anlise e Projeto Orientados a Objeto (APOO)?

    A perspectiva empregada de objetos (coisas, conceitos ou entidades)

    Durante a Anlise OO, a nfase est em achar e descrever objetos (ou conceitos) no domnio do problema Por exemplo, num sistema de informao para

    uma biblioteca, alguns dos conceitos so Livro, Biblioteca, Usurio.

    Tais objetos podem ter atributos e responsabilidades

    45

  • O que Anlise e Projeto Orientados a Objeto (APOO)?

    Durante o projeto orientado a objeto, a nfase est em achar objetos lgicos de software que podero ser eventualmente implementados usando uma linguagem de programao OO Tais objetos podem ter atributos e mtodos

    46

  • O que Anlise e Projeto Orientados a Objeto (APOO)?

    Cuidado! No verdade que haja correspondncia 1-para-

    1 entre entidades no modelo de anlise e entidades no modelo de projeto

    Pode haver entidade do modelo de anlise que no ser representado no Projeto ( raro)

    Pode haver entidade adicional no projeto ( frequente)

    Exemplo: Conexo de banco de dados, objeto controlador, cache de objetos, etc.

    47

  • O que Anlise e Projeto Orientados a Objeto (APOO)?

    Durante a construo (programao OO), os objetos do projeto so implementados e testados

    48

  • Acabou? Posso comear a construir software?

    Quase...

    49

  • Software Deselegante O software deselegante aquele software

    feito sem uma estrutura clara O software deselegante aquele do qual no

    se consegue reusar partes e que no se consegue entender como funciona sem uma boa carga de documentao (e muitas vezes nem assim).

    tambm aquele no qual uma pequena modificao em uma de suas caractersticas pode causar um no funcionamento generalizado

    50

  • Software Elegante O software elegante o software cuja

    estrutura intrinsecamente mais fcil de compreender, que autodocumentado e pode ser compreendido em nvel macro ou em detalhes.

    Ele mais fcil de modificar: quando alguma de suas caractersticas mudada, ele continua funcionando.

    51

  • Solues para prover elegncia (1) Padres de Projeto (Design Patterns)

    52

  • Solues para prover elegncia (2) Padres de Projeto (Design Patterns)

    lies aprendidas ao longo dos anos em diferentes projetos

    Cada pattern descreve um problema que ocorre vrias vezes ao nosso redor e com isso, descrevem a soluo para o problema de uma maneira que voc pode usar essa soluo diversas vezes sem ter que fazer a mesma coisa duas ou mais vezes.

    53

  • Exemplo Padro de Projeto (1) Em interfaces grficas um elemento grfico pode

    ser constitudo pela composio de vrios outros elementos grficos.

    Uma janela pode conter um ou mais cones, uma caixa de texto e vrios outros elementos grficos -at mesmo outra janela

    54

  • Exemplo Padro de Projeto Considerando que uma determinada hierarquia de

    classes indicasse ElementoGrfico como a super-classe comum a todas classes que representassem os elementos grficos atmicos, a classe Janela seria representada como uma classe que contm zero (0) ou mais elementos grficos

    55

  • Exemplo Padro de Projeto

    56

  • Referncias / Leituras Obrigatrias

    Captulo 1 Raul Sidnei Wazlawick. Anlise e projeto de

    sistemas de informao orientados a objetos. 2 Ed. Rio de Janeiro: Elsevier, 2011. (Srie SBC, Sociedade Brasileira de Computao)

    Captulo 1 Larman, Craig. Utilizando UML e Padres: Uma

    introduo anlise e ao projeto orientado a objetos. Porto Alegre: Bookman, 2000.

    57

  • Leituras Fortemente Recomendadas

    Captulo 2 Larman, Craig. Utilizando UML e Padres: Uma

    introduo anlise e ao projeto orientado a objetos. Porto Alegre: Bookman, 2000.

    58

  • Outras Referncias1. JACOBSON, Ivar; BOOCH, Grady;

    RUMBAUGH; James; The Unified Software Developmente Process. Massachusetts: Addison-Wesley, 199. 463p

    2. http://www.princiweb.com.br/blog/programacao/design-patterns/o-que-sao-design-patterns.html

    3. http://pt.wikipedia.org/wiki/Composite

    59

  • Exerccios (1)1. Discuta o papel da UML para anlise e projeto de sistemas

    de informao?2. O que um artefato?3. O que um processo de desenvolvimento de software?4. Explique os valores do Processo Unificado?5. Descreva cada uma das fases do processo unificado.6. Discuta sobre como as atividades so organizadas e

    realizadas dentro de cada fase no processo unificado.7. Qual a diferena entre anlise e projeto de sistemas?8. O que so Padres de Projeto (design patterns)?

    60

  • Exerccios (2)1. Pesquise sobre 3 processos de

    desenvolvimento de software e faa um breve comentrio sobre cada um deles.

    2. Pesquise sobre exemplos de artefatos da UML para resolver um problema especfico. Apresente esse exemplo em sala de aula. Certifique-se que compreende o exemplo para explic-lo.

    61

  • Exerccios (3)1. Escreva um texto discutindo a diferena

    entre o processo de desenvolvimento em cascata e um processo de desenvolvimento iterativo e incremental.

    1. Descreva como funciona cada um desses processos

    2. Discuta as diferenas entre eles, bem como suas vantagens

    62