Engenharia de Software e Orientação a Objeto
Aspectos Avançados em
Engenharia de Software
Aula 1
Fernanda Campos
DCC/UFJF
Por que Engenharia de Software e Orientação a
Objetos?
SW ESTÁ FICANDO MAIS COMPLEXO
• 1960 - 3 200 linhas• 1970 - 28 000 linhas• 1980 - 3,4 M linhas• 1990 - 3-5 M linhas
CUSTOS
• Custos de desenvolvimento são muito altos.
• Elevam-se os custos de manutenção• década de 70 e 80: 60-65% dos custos totais
• atualmente: 70-80% dos custos totais
CENÁRIO
• Vivendo uma revolução na indústria de software• complexidade
• confiabilidade
• capacidade de projeto
• flexibilidade
• velocidade de desenvolvimento
• facilidade de manutenção
FLEXIBILIDADE FRENTE A MUDANÇAS
• Mudanças nos processos de negócio do usuário• década de 40: 10 anos
• década de 60-70: 5 anos
• década de 90: 2 anos
• século 21: 6 meses
HISTÓRICO
• A primeira abordagem OO para desenvolvimento de software surgiu na década de 60, mas foram necessários 20 anos para que seu uso se tornasse mais popular.
• Na primeira metade dos anos 90 a OO foi a escolha de muitos desenvolvedores.
• Cada vez mais a OO tem substituído outras abordagens clássicas de desenvolvimento.
VANTAGENS
• Benefícios de desenvolvimento e técnicos.• Tecnologias de objetos direcionam para reuso
e reuso de componentes direciona para o desenvolvimento mais rápido e de alta qualidade.
• Sistemas OO são mais fáceis de serem adaptados
• ...
REUTILIZAÇÃO
• Usar novamente algo que foi feito.• Em hardware
• projetar baseado em componentes
• integrar componentes
• desenvolver novos quando necessário
• Em software• todos os artefatos gerados ao longo do processo
• código
OBJETIVOS DA REUTILIZAÇÃO
• Permitir uma ampla utilização de todos os tipos de informação encontradas em situação de desenvolvimento
• Exemplo• requisitos
• especificação
• código
• testes
• todas as atividades
BENEFÍCIOS DA REUTILIZAÇÃO
• Menos produção de software novo:• aumento da produtividade
• ganho de qualidade
• ganho de confiabilidade
• conhecimento adquirido pode ser compartilhado
TÉCNICAS PARA REUTILIZAÇÃO
• Repositórios (meio de armazenamento)• Análise de domínio• Engenharia reversa• Orientação a objetos• Design Patterns (padrões de projetos)• .....
ORIENTAÇÃO A OBJETOS
• Tecnologia que enxerga os sistemas como sendo coleção de objetos interagentes
• Paradigma de desenvolvimento • Envolve todas as atividades de
desenvolvimento
ORIENTAÇÃO A OBJETOS
• Alavancas• Evolução tecnológica
• Distribuição de processamento
• Tecnologia cliente-servidor
• Internet
• Tecnologia JAVA
• Aplicações Web
• Unificação das metodologias OO
ORIENTAÇÃO A OBJETOS
• O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos.
• Dos objetos nos interessa a sua estrutura de dados e um conjunto de operações que manipulam estes dados.
• Os objetos, a sua estrutura de dados e o conjunto de operações são selecionados de acordo com objetivos bem estabelecidos
BENEFÍCIOS DA ANÁLISE E PROJETO OO
• Reduz complexidade através de melhoria do grau de abstração
• Melhora produtividade a longo prazo, permitindo a reutilização pelos desenvolvedores
• Torna mais fácil a comunicação entre clientes e desenvolvedores
MODELO DE PROCESSO OO
• Qualquer modelo de processo pode ser adaptado para OO, porém temos que reconhecer que os sistemas OO tendem a evoluir no tempo.
• Assim sendo um modelo de processo evolutivo, junto com uma abordagem que incentiva o reuso de componentes é o ideal para OO.
• Modelos usados:• Modelo Espiral Evolutivo com Reutilização.
• RUP
• Modelos ágeis ....
CONCEITOS
• Objetos e atributos• Métodos e mensagens• Classes e relacionamentos• Encapsulamento• Herança• Polimorfismo
IDENTIFICANDO OS ELEMENTOS DE UM MODELO OO
• Os elementos a serem identificados são:
• Classes e objetos
• Atributos
• Operações e mensagens
Identificando classes e objetos
• Podemos iniciar a identificação de objetos examinando a definição do problema ou fazendo uma varredura na descrição
• Objetos são determinados identificando cada nome e devem ser colocados numa tabela.
• Sinônimos devem ser anotados
Os objetos se manifestam em uma das seguintes maneiras:
• Entidades externas: (outros sistemas, equipamentos ou pessoas) que produzem ou consomem informações a serem usadas pelo software
• Coisas: (relatórios, cartas, sinais) que são parte do domínio da informação do problema.
• Ocorrência ou evento: (propriedade de transferir ou executar uma serie de movimentos) que ocorrem dentro do contexto da operação do sistema.
• Papéis: (gerentes engenheiros, vendedores) desempenhados por pessoas que interagem com o sistema.
• Unidades organizacionais: (divisões, grupos, equipes) que são relevantes para aplicação.
• Lugares: (andar da manufatura, escrit´rio0 que estabelecem o contato entre o problema e a função principal do sistema.
• Estruturas: (veículos, sensores e computadores) que definem a classe de objetos ou, no extremo, relacionam classes e objetos.
Especificando Atributos
• É o atributo que define o objeto, que esclarece o que o objeto significa no contexto do problema.
• Atributos descrevem um objeto que foi selecionado no modelo de análise
• Devem ser selecionados os atributos que pertencem ao objeto
• Que tipo de dados definem o objeto no contexto do problema?
Definindo Operações
• Operações definem o comportamento do objeto e modificam os atributos.
• Uma operação deve conhecer a natureza dos atributos do objeto e ser implementada de forma que seja permitida a manipulação das estruturas de dados derivadas dos atributos.
Operações podem:
• Manipular dados (adicionar, deletar, reformatar, selecionar)
• Executar uma computação • Monitorar um objeto pela ocorrência de
um evento de controle.
Exercício
Identifique os objetos a partir das sentenças do seguinte problema do B&B.
• Tom e Sue estão implantando uma pousada numa pequena cidade de New England. Eles terão três quartos para hóspedes. Eles querem um sistema para gerenciar as reservas e para monitorar despesas e ganhos. Quando um cliente potencial telefona para a reserva, eles irão verificar a agenda e se existir vaga eles entrarão com o nome do cliente, endereço, numero de telefone, datas, concordância do preço, número do cartão de crédito e número(s) do(s) apartamento(s). Reservas devem ser garantidas pelo pagamento de um dia.
• Reservas poderão ser feitas sem garantias até uma data definida. Se não confirmada até a data a reserva será cancelada.
Exercício
Identifique os objetos a partir das sentenças do seguinte problema do consultório dentário.
• Tom está iniciando a prática de dentista numa cidade pequena. Ele terá uma assistente de dentista, uma higienista e uma recepcionista. Ele quer um sistema para gerenciar as consultas.
• Quando um paciente telefonar para uma consulta, a recepcionista irá verificar o calendário e irá tentar agendar o paciente o mais breve possível para preencher os horários disponíveis. Se o paciente concordar com a consulta proposta, a recepcionista entrará com a consulta, com o nome do paciente e o horário proposto. O sistema irá verificar o nome do paciente e completar detalhes necessários a partir do arquivo do paciente, incluindo o número de identidade do paciente. Após cada exame ou limpeza, o higienista ou assistente irá marcar a consulta como terminada, adicionando comentários e agendando nova visita, se apropriado.
• O sistema irá executar buscas pelo nome do paciente e pela data. Detalhes dos arquivos do paciente são mostrados junto com as informações da consulta. A recepcionista pode cancelar consultas. A recepcionista pode imprimir uma lista de notificação para lembrar de telefonar dois dias antes das consultas. O sistema inclui o número de telefone do paciente a partir do seu arquivo. A recepcionista também pode imprimir
diariamente ou semanalmente calendários de trabalho com todos os pacientes.
Top Related