Beruflich Dokumente
Kultur Dokumente
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
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
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!!!
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
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.
10/08/2011
27
10/08/2011
28
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
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
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
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.
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)
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:
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.
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.
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
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