You are on page 1of 13

Objetivos

Prof. Dr. Adriana Soares Pereira apereira@smail.ufsm.br

Fornecer subsdios terico-prticos necessrios ao levantamento, anlise e projeto de um sistema computacional. Apresentar os diversos mtodos e as tcnicas relacionados anlise e ao projeto de sistemas. Realizar a modelagem de um sistema orientado a objetos.

10/08/2011

Plano de Ensino
UNIDADE 1 - ANLISE E PROJETO ORIENTADO A OBJETO 1.1 Viso Geral da Modelagem de Sistemas. 1.2 - Fundamentos da Orientao a Objetos. 1.3 Processo de Desenvolvimento de Software. 1.4 - Linguagem de Modelagem Unificada UML (Uified Modeling Language). 1.5 - Diagramas estruturais (diagrama de classes e diagrama de objetos). 1.6 - Diagramas comportamentais (diagrama de casos de uso, diagrama de sequncia, diagrama de atividades e diagrama de estados). 1.7 - Uso de ferramentas para modelagem. 1.8 - Modelagem de um Sistema Orientado a Objetos.
10/08/2011 3

Cronograma das Aulas


Cronograma de desenvolvimento Data Contedo/atividade docente e discente 10/08 Apresentao da disciplina. Fundamentos da Engenharia de Software. Viso geral da modelagem de sistemas. Fundamentos da Orientao a Objetos. 17/08 24/08 31/08 14/09 21/09 28/09 05/10 19/10 26/10 09/11 16/11 23/11 30/11 07/12 14/12 Atividade online. Processo de Desenvolvimento de Software. Trabalho 1. Atividade online. Atividade online. Atividade online. Introduo a UML. Seminrio de Apresentao de Trabalhos (Trabalho 2). Seminrio de Apresentao de Trabalhos (Trabalho 2). Prova Bimestral. Diagramas Estruturais e Diagramas Comportamentais. Trabalho 3. Utilizao de Ferramentas para Modelagem. Aula no laboratrio. Utilizao de Ferramentas para Modelagem. Aula no laboratrio. Modelagem de um sistema orientado a objetos. Aula no laboratrio. Prova Bimestral e Apresentao do Trabalho Final. Exame Final

10/08/2011

O material de apoio, enunciados de trabalhos e resultados das avaliaes sero disponibilizados no site:
http://www.cafw.ufsm.br/~adriana/analise.html.

Avaliao 1 Bimestre:
Trabalho 1 (peso 1) + Trabalho 2 (peso 3) + Prova (peso 6)

Avaliao 2 Bimestre:
Trabalho 3 (peso 1) + Trabalho 4 (peso 6) + Prova (peso 3)

10/08/2011

10/08/2011

BIBLIOGRAFIA BSICA
BEZERRA, E. Princpios de Anlise e Projeto de Sistemas com UML. 2. Ed. Rio de Janeiro: Campus, 2006. BOOCH, G.; JACOBSON, I.; RUMBAUGH, J. UML Guia do Usurio. 2. Ed. Rio de Janeiro: Campus, 2006. DENNIS, A.; WIXOM, B. H. Anlise e Projeto de Sistemas. 2. Ed. Rio de Janeiro: LTC, 2005.

BIBLIOGRAFIA COMPLEMENTAR
LARMAN, C. Utilizando UML e Padres. 3. Ed. Porto Alegre: Bookman, 2007. MCLAUGHLIN, B.; POLLICE, G.; WEST, D. Use a Cabea! Anlise e Projeto Orientado ao Objeto. 1. Ed. Rio de Janeiro: Alta Books, 2007. RUMBAUGH, J.; BRAHA, M. Modelagem e Projetos Baseados em Objetos com UML 2. 2. Ed. Rio de Janeiro: Campus, 2006.

Introduo aos Fundamentos de Engenharia de Software Viso Geral da Modelagem de Sistemas Fundamentos da Orientao a Objetos

10/08/2011

10/08/2011

Crescente importncia do software na sociedade


Utilizao dos computadores nos mais diversos ramos do conhecimento humano:
Aplicaes bsicas e comerciais Aplicaes de tempo real Aplicaes cientficas e de engenharia Aplicaes pessoais e de inteligncia artificial.

O funcionamento correto ou incorreto desses sistemas pode ser a diferena entre a vida e a morte
Confiabilidade, anlise dos requisitos, etc.
10/08/2011 9 10/08/2011 10

Evoluo
Dcadas 60 e 70
Hardware com alto custo de processamento e armazenamento de dados Programao estruturada, BD, multiusurio, sistemas distribudos.

Evoluo
Dcada 90
sistemas especialistas, arquiteturas paralelas e orientao objetos

2000 ....
Programao para internet.

Dcada 80
Lei de Moore avanos na microeletrnica resultaram em um aumento de poder computacional a um custo cada vez menor Redes de computadores

10/08/2011

11

10/08/2011

12

Comeou a ser utilizada na dcada de 60 Conjunto de problemas recorrentemente enfrentados no processo de desenvolvimento (construo, implantao e manuteno) de software.

A habilidade em construir software deixa a desejar em relao ao potencial do hardware; A construo de software no rpida o suficiente para atender as necessidades do mercado; Dificuldade em manuteno dos softwares devido a maneira artesanal utilizadas no processo: Impreciso em estimativas de prazos e custos.

10/08/2011

13

10/08/2011

14

Custos elevados; Atrasos; Gerncia de desenvolvimento ineficaz; Baixa produtividade das pessoas e qualidade de software; Software existente difcil de manuteno.

1. nfase na programao:
O software no se desgasta, mas se deteriora!!!

2. Falhas das pessoas responsveis pelo desenvolvimento de Software:

Gerentes sem nenhum background em software. Os desenvolvedores tm recebido pouco treinamento formal em novas tcnicas para o desenvolvimento de software. Alm de resistncia a mudanas.

10/08/2011

15

10/08/2011

16

Aplicao de uma abordagem sistemtica, disciplinada e possvel de ser medida para o desenvolvimento, operao e manuteno do software (IEEE - Institute of Electrical and Eletronic Engineering).

Engenharia: arte das construes, com base no conhecimento cientfico e emprico. (Denis 2006) Sistema: conjunto de partes que interagem entre si visando um objetivo comum. Em informtica o conjunto de software, hardware e recursos humanos. (Denis 2006) Software:Subsistema de um sistema computacional.

10/08/2011

17

10/08/2011

18

Engenharia de software metodologia de desenvolvimento e manuteno de sistemas modulares, com as seguintes caractersticas:
Processo (roteiro) dinmico, integrado e inteligente de solues tecnolgicas; adequao aos requisitos funcionais do negcio do cliente e seus respectivos procedimentos pertinentes; efetivao de padres de qualidade, produtividade e efetividade em suas atividades e produtos; fundamentao na tecnologia da informao disponvel, vivel, oportuna e personalizada;
10/08/2011 19

planejamento e gesto de atividades, recursos, custos e datas.

IEEE: aplicao sistemtica, disciplinada e com abordagem quantitativa para o desenvolvimento, operao e manuteno de software (IEEE, 1990).

10/08/2011

20

MARTIN e McCLURE (1991) a engenharia de software : "o estudo dos princpios e sua aplicao no desenvolvimento e manuteno de sistemas de software ... tanto a engenharia de software como as tcnicas estruturadas so colees de metodologias de software e ferramentas ... ".

SOMMERVILLE (1992) a engenharia de software envolve questes tcnicas e no-tcnicas, tais como a especificao do conhecimento, tcnicas de projeto e implementao, conhecimentos dos fatores humanos pelo engenheiro de software e ainda, gesto de projetos. MaFFEO (1992) a engenharia de software : "a rea interdisciplinar que engloba vertentes tecnolgica e gerencial visando a abordar de modo sistemtico (modular), os processos de construo, implantao e manuteno de produtos de software com qualidade assegurada por construo segundo cronogramas e custos previamente definidos".

10/08/2011

21

10/08/2011

22

Diversos conceitos
Duas vertentes:
Tecnolgica e Gerencial

Ateno:
Processo de desenvolvimento Administrao de processos Ciclo de vida do software ou metodologia de desenvolvimento de software.

Reunio de metodologias, mtodos, ferramentas, procedimentos e princpios a serem utilizados durante o processo de produo de software (percepo do problema, planejamento, implantao e manuteno) com o intuito de obter produtos de alta qualidade

10/08/2011

23

10/08/2011

24

MTODOS:
Proporcionam os detalhes de como fazer para construir o software:
Planejamento e estimativa de projeto Anlise de requisitos de software Projeto da estrutura de dados e Algoritmo de processamento Codificao, Teste e Manuteno

FERRAMENTAS:
Do suporte automatizado ou semi automatizado aos mtodos; Quando as ferramentas so integradas estabelecido um sistema de suporte ao desenvolvimento de software chamado CASE.

10/08/2011

25

10/08/2011

26

PROCEDIMENTOS:
Constituem o elo de ligao entre os mtodos e as ferramentas; seqncia em que os mtodos sero aplicados.

Formalidade Abstrao Decomposio Generalizao Flexibilidade

10/08/2011

27

10/08/2011

28

Paradigmas so modelos de processos que possibilitam


Ao gerente:
controle do processo de desenvolvimento de sistemas de software.

Possibilitam:
Especificao de atividades que devem ser executadas Ordem de execuo das atividades

Ao desenvolvedor:
obter a base para produzir, de maneira, eficiente, software que satisfao os requisitos pr estabelecidos

Objetivo:
Diminuir problemas encontrados no processo de desenvolvimento.

10/08/2011

29

10/08/2011

30

Vrios paradigmas j foram propostos:


Clssico Evolutivo Espiral 4 Gerao Etc.

Programas (instrues) de computador que executam uma tarefa determinada e sua documentao associada.
Genricos Personalizados

10/08/2011

31

10/08/2011

32

Desenvolvido ou projetado por engenharia, no manufaturado no sentido clssico (no um processo mecnico); No se desgasta mas se deteriora (obsolescncia); Feito sob medida em vez de ser montado a partir de componentes existentes.

Utiliza mtodo sistemtico e seqencial em que o resultado de uma fase constitui a entrada de outra; Modelo mais antigo e o mais amplamente usado da engenharia de software ; Etapas separadas e distintas para especificao e desenvolvimento; Modelado em funo do ciclo da engenharia convencional.

10/08/2011

33

10/08/2011

34

requisitos em nvel de sistema viso geral do sistema. Coleta de informaes para o software..
Traduo dos requisitos de software:estrutura de dados, caracterizaoTraduo das da interface, arquitetura. representaes do projeto para uma linguagem artificial resultando em instrues executveis pelo computador.. Aspectos

lgicos e funcionais internos

Correes, Adaptaes e atualizaes

Projetos reais raramente seguem o fluxo seqencial que o modelo prope; Logo no incio difcil estabelecer explicitamente todos os requisitos. No comeo dos projetos sempre existe uma incerteza natural; O cliente deve ter pacincia. Uma verso executvel do software s fica disponvel numa etapa avanada do desenvolvimento; Dificuldade em acomodar as mudanas quando o processo est em andamento; Dificuldade em aceitar mudanas em requisitos; Indicado somente quando os requisitos so bem definidos (pode ser usado em trabalhos acadmicos).

10/08/2011

35

10/08/2011

36

Embora o Ciclo de Vida Clssico tenha fragilidades, ele significativamente melhor do que uma abordagem casual ao desenvolvimento de software

1. Voc conhece algum software comercial? 2. Esse software passou pelo Ciclo de Vida Clssico?

10/08/2011

37

10/08/2011

38

1950/1960: sistemas de software simples


Fluxogramas

1970: expanso do mercado computacional


Programao estruturada

1990: Paradigma orientao objetos


Anlise orientada a objetos (Yourdon e Coad) Mtodo Booch (Booch) OMT (Rumbaugh et al)

2000:
Maturidade do paradigma de OO Padres de projetos, frameworks, UML.
10/08/2011 40

Um modelo uma simplificao da realidade que nos ajuda a entender um problema grande e complexo que no pode ser compreendido como um todo.
Phillipe Krutchen, 2000

Em conseqncia do crescimento da importncia da informao, surgiu a necessidade de gerenciar informaes de uma forma adequada e eficiente e, desta necessidade, surgiram os denominados sistemas de informaes.

Um SI uma combinao de pessoas, dados, processos, interfaces, redes de comunicao e tecnologia que interagem com o objetivo de dar suporte e melhorar o processo de negcio de uma organizao com relao s informaes. Vantagens do ponto de vista competitivo.

Compreende os mdulos funcionais computadorizados que interagem entre si para proporcionar a automatizao de diversas tarefas. Caracterstica intrnseca do desenvolvimento de sistemas de software: complexidade.

Objetivo principal e final da construo de um SI: adio de valor.

Definio de Modelagem de Sistemas

A modelagem parte central de todas as atividades que levam implantao de um bom software Construmos modelos para:
Comunicar a estrutura e o comportamento desejado do sistema; Visualizar e controlar a arquitetura do sistema; Compreender melhor o sistema que estamos elaborando (simplificao e reaproveitamento)

Uma analogia...

Casa de canhorro

Casa

Arranha-Ces

Aumento da complexidade

Muitos projetos nascem como uma casa de cachorro simples, mas crescem como um prdio simplesmente devido ao seu Sucesso
Caso no tenha sido considerados questes como arquitetura, processos e ferramentas a casa de cachorro ampliada sucumbir.

Na construo de sistemas de software, assim como na construo de sistemas habitacionais, tambm h uma gradao de complexidade. A construo desses sistemas necessita de um planejamento inicial.

10/08/2011

47

De uma perspectiva mais ampla, um modelo pode ser visto como uma representao idealizada de um sistema a ser construdo. Maquetes de edifcios e de avies e plantas de circuitos eletrnicos so apenas alguns exemplos de modelos.

Gerenciamento da complexidade inerente ao desenvolvimento de software. Comunicao entre as pessoas envolvidas. Reduo dos custos no desenvolvimento. Predio do comportamento futuro do sistema.

Projetos de software mal sucedidos falham em relao a aspectos nicos e especficos de cada projeto Todos os projetos bem sucedidos so semelhantes em diversos aspectos
Modelagem: uma representao idealizada de um sistema a ser construdo
diagramas

A maioria dos softwares comerciais so desenvolvidos sem nenhum tipo de modelagem, isto deve-se produtividade oferecida pela linguagens de programao atuais.
Softwares inadequados

Quanto mais complexo for o sistema, maior ser a probabilidade de ocorrncia de erros ou de construo de itens errados, caso no haja qualquer modelagem.

10/08/2011

51

10/08/2011

52

Visualizar o sistema como ele e como desejamos que seja; Modelos permitem especificar a estrutura e o comportamento de um sistema; Modelos proporcionam um guia para a construo; Modelos documentam decises tomadas; Reduo de tempo e custos de desenvolvimento.

Ou seja:
Limitaes do ser humano em lidar com a complexidade (diversos modelos para um mesmo sistema) O comportamento do sistema pode ser analisado atravs de seus modelos Modelos servem de laboratrios para a construo do sistema. Correo de erros encontrados em modelos mais barata que correes no sistema propriamente dito.

10/08/2011

53

10/08/2011

54

1 - a escolha de um modelo influenciar na definio e soluo do problema; 2 - cada modelo dever ser expresso em diferentes nveis de preciso; 3 - os melhores modelos esto relacionados realidade; 4 - nenhum modelo nico suficiente ( um sistema composto por vrios modelos)

Existem vrias maneiras de definir um modelo.


Paradigma Estruturado
Elementos: dados e processos Desenvolvimento: algoritmos Dificuldade de manuteno medida que os sistemas crescem

Paradigma Orientada Objetos


Elemento: objeto (possuem identidade, estado e comportamento) Forma de solucionar problemas do cotidiano (mais prxima do homem)

10/08/2011

55

10/08/2011

56

O mapa rodovirio de uma cidade que mostra as rodovias e prdios e que esconde a cor dos prdios,pode ser considerado um modelo? Por qu? Discuta as caractersticas desse mapa com o princpio da abstrao:

Exemplifique um modelo da realidade:

10/08/2011

57

10/08/2011

58

O paradigma da orientao a objetos visualiza um sistema de software como uma coleo de agentes interconectados chamados objetos. Cada objeto responsvel por realizar tarefas especficas. atravs da interao entre objetos que uma tarefa computacional realizada.

10/08/2011

59

10/08/2011

60

10

1. Qualquer coisa um objeto. 2. Objetos realizam tarefas atravs da requisio de servios a outros objetos. 3. Cada objeto pertence a uma determinada 4. A classe um repositrio para comportamento associado ao objeto. 5. Classes so organizadas em hierarquias.

classe. Uma classe agrupa objetos similares.

10/08/2011

61

10/08/2011

62

O mundo real formado de coisas. Na terminologia de orientao a objetos, estas coisas do mundo real so denominadas objetos. EX: bola. Seres humanos costumam agrupar objetos. Classe uma abstrao das caractersticas relevantes de um grupo de coisas do mundo real. Uma classe um molde para objetos. Diz-se que um objeto uma instncia de uma classe, ou seja, a definio de como um objeto se comportar quando este for criado ou instanciado.

Classe Carro

Classe Cachorro

10/08/2011

63

10/08/2011

64

Para que um objeto realize alguma tarefa, deve haver um estmulo enviado a este objeto; Independentemente da origem do estmulo, quando ele ocorre, diz-se que o objeto em questo est recebendo uma mensagem; Uma mensagem uma requisio enviada de um objeto a outro para que este ltimo realize alguma operao.

Objetos de um sistema trocam mensagens


Objeto Objeto

Objeto

Objeto

Objeto

10/08/2011

65

10/08/2011

66

11

Objetos possuem comportamento. O termo comportamento diz respeito a que operaes so realizadas por um objeto e tambm de que modo estas operaes so executadas; O encapsulamento uma forma de restringir o acesso ao comportamento interno de um objeto. Um objeto (requisitante) que precise da colaborao de outro objeto (requisitado) para realizar alguma tarefa no precisa conhecer a maneira como sero executadas suas solicitaes no objeto requisitado, ele (requisitante) apenas precisa conhecer quais as tarefas que podem ser realizadas por este objeto.
Interface (carto de visitas de um objeto)

Atravs do encapsulamento, a nica coisa que o objeto precisa saber para pedir a colaborao de outro objeto conhecer a sua interface.

10/08/2011

67

10/08/2011

68

A herana pode ser vista como um nvel de abstrao acima da encontrada entre classes e objetos; Na herana, classes semelhantes so agrupadas em hierarquias;
Cada nvel de uma hierarquia pode ser visto como um nvel de abstrao; Cada classe em um nvel da hierarquia herda as caractersticas das classes nos nveis acima.

A herana facilita o compartilhamento de comportamento entre classes semelhantes. As diferenas ou variaes de uma classe em particular podem ser organizadas de forma mais clara.
Maior abstrao

Menor abstrao

10/08/2011

69

10/08/2011

70

a habilidade de objetos de classes diferentes responderem a mesma mensagem de diferentes maneiras.

Herana: Ex: veculo e carro. Geralmente conhecido como relao - uma. Agregao: Ex: carro e motor. Geralmente conhecido como relao parte de. Associao: um objeto de alguma forma est associado ao outro. Ex: relacionamento ente pai e filho

10/08/2011

71

10/08/2011

72

12

1. Desenhe um modelo de objeto que identifique as semelhanas (herana) entre carros e veculos 2. Desenhe um modelo de objetos que identifique as semelhanas no sistema de um biblioteca que manipule livros, revistas, panfletos, vdeos, CDs de msica, fita e jornais.

3. Encontre as funes no problema da biblioteca que possam ser comuns a todos os itens (polimorfismo) e funes que tero que ser especializadas para cada classe derivada.

10/08/2011

73

10/08/2011

74

Atividade online!

10/08/2011

75

13

You might also like