Mo#vação Esta disciplina mostra como construir um bom alicerce para desenvolver so9ware orientado pelos objectos Ensina técnicas de análise e desenho para ajudar a produzir so9ware orientado pelos objectos Análise e desenho orientado pelos objectos são o companheiro natural da programação orientada pelos objectos e a persistência feita com bases de dados (também podem ser usados com linguagens procedimentais) Objec#vo Estudar uma abordagem de desenvolvimento de so9ware orientada pelos objectos. Linguagens usadas: UML (Unified Modeling Language) Linguagem gráfica que suporta vários #pos de modelos para especificar o domínio do problema e da solução OCL (Object Constraint Language) Linguagem formal u#lizada para especificar rigorosamente restrições complementares aos modelos UML 1
O que o UML oferece Uma linguagem de modelação expressiva para especificar, construir, visualizar e documentar sistemas de software para construir diferentes tipos de modelos Conceitos fundamentais prontos-a-usar mas com extensão e especialização disponíveis Uma base formal para compreender a linguagem diagrama de classes como metamodelo semântica é parte da documentação OCL (Object Constraint Language) Conceitos de desenvolvimento de alto nível padrões, componentes, frameworks Integração das melhores práticas O que o UML NÃO oferece É intenção explícita dos autores não oferecer um processo uma ferramenta de modelação heurísticas de modelação uma linguagem de programação 2
Diagramas de comportamento Diagramas de implementação Os modelos Diagrama de use cases Diagramas de classes Diagramas de sequência Diagramas de colaboração Diagramas de estados Diagramas de ac#vidades Diagramas de componentes Diagramas de entrega Diagramas de interacção 3
Engenharia de So2ware: Criada para... Objec#vos da Engenharia So2ware [Ross, Goodenough e Irvine, 1975]" A Engenharia de software deve ajudar-nos a desenvolver programas modificáveis, eficientes, fiáveis e compreensíveis. 4
Princípios Engenharia So2ware Para alcançar os objectivos é preciso aplicar os princípios:! [Ross, Goodenough e Irvine, 1975], excepto * Ciclo de vida do so2ware (1) Tudo começou com a programação!! É preciso:! 5
Ciclo de vida do so2ware (2) Para construir software precisamos:" Ciclo de vida do so2ware (3) Desenvolver modelos (Análise) Estabelecer requisitos (Eng. requisitos) Criar uma arquitectura (Desenho) Gerir o Pós-produção (Manutenção) Construir e fazer evoluir (Implementação) 6
Ciclo de vida em espiral Determinar" objectivos," alternativas," restrições" Análise" Análise" Análise" Avaliar alternativas:" identificar, assumir os riscos " Análise" 3" Protótipo 2"Protótipo Protótipo1" Plano de" requisitos, " ciclo de vida" Plano de desenvolvimento" Conceito" Validação" dos requisitos" Requisitos" Desenho" Desenho de" pormenor" Codificação" Compromisso" Integração e teste" Planear as" fases seguintes" Validação e" verificação" Implementação" Integração" Integração" Teste unitário" Desenvolver," verificar" Mo#vação para análise e desenho Os modelos como abstracções da realidade É dixcil compreender um sistema complexo um só modelo não é suficiente; são necessárias perspec#vas diferentes, cada uma com o seu modelo; cada modelo com diferentes níveis de granularidade. Bons modelos são necessários para tornar compreensíveis sistemas complexos para visualizar aspectos essenciais de um sistema para comunicação entre membros da equipa e com o cliente para assegurar uma boa arquitectura 7
Desenvolvimento OO O mais importante na tecnologia dos objectos NÃO é uma nova forma de programar! O mais importante é ser uma orientação para a forma de pensar abstractamente acerca dum problema, usando conceitos do mundo real e não conceitos informá#cos Usando o conceito objecto ao longo de todo o ciclo de desenvolvimento. Métodos e metodologias (1) Método: processo disciplinado para construir produtos de software utilizando um modelo.! Metodologia: colecção organizada de regras, algoritmos, técnicas e ferramentas (integráveis); constituída por um conjunto de métodos que cooperam entre si.! Uma metodologia é indispensável:! para construir software de qualidade;! ajudar a comunicação entre todos os elementos da equipa, incluindo o cliente ou utilizador.! 8
Métodos e metodologias (2) o tempo e o custo da transição e da adaptação é grande; (todos nós oferecemos um pouco de resistência às novidades!)" muitas vezes, falta a metodologia adequada para a organização;" a automatização das actividades nem sempre está disponível;" a falta de formação dos quadros técnicos é muitas vezes desesperante;" utilizar uma metodologia implica gastar mais tempo para aprendê-la, gastar mais tempo em documentação, etc;" a qualidade das ferramentas não cresceu o suficiente." Métodos de desenvolvimento e sua evolução 9
Análise Objec#vos da análise: 1. compreender o problema, determinando a sua essência; 2. modelar o problema independentemente da tecnologia u#lizada na sua implementação. A análise constrói um modelo ideal que sa#sfaz os requisitos do u#lizador. Métodos de análise OO Visão está#ca: representada pelo modelo de objectos suportado por um diagrama de en#dades e associações estendido Visão dinâmica: representada pelo modelo dinâmico suportado por diagramas de transição de estados, diagramas de sequência de mensagens 10
Desenho O desenho transforma o modelo ideal da análise num modelo real. Para isso, precisamos de tomar em consideração as características do ambiente de implementação. O desenho tem por objectivo modelar o sistema determinando como implementar o que foi idealizado durante a análise.! Análise e desenho em perspec#va Mundo real The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again. The image cannot be displayed. Your computer may not have enough memory to The image cannot open the image, or the image may have been corrupted. Objectos be displayed. Your Restart your computer, and then computer may not open the file again. If the red x still appears, have enough you may Semânticos have to delete the image and then memory to open insert it again. the image, or the Domínio do problema The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the The file image again. If the red The x still image appears, you may The have image to delete cannot the be image and then cannot insert be it again. cannot be displayed. Objectos displayed. Objectos displayed. Your Your Your computer Aplicação computer Utilitários computer may not may not may not Objectos Interface Domínio da solução [Tkach e Puttick] 11