Linguagem de Programação I



Documentos relacionados
Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Análise e Projeto de Sistemas

Desenvolvimento estruturado versus orientado a objetos.

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

A Linguagem de Modelagem Unificada (UML)

Wilson Moraes Góes. Novatec

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Modelagem OO com UML. Vítor E. Silva Souza ~ vitorsouza

Organização e Arquitetura de Computadores I. de Computadores

Introdução à Engenharia de Software

Modelagemde Software Orientadaa Objetos com UML

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UML - Unified Modeling Language

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

UML: Unified Modeling Language. Graduação em Informática 2008 Profa. Itana Gimenes

Um modelo é uma simplificação da realidade. Construímos modelos para compreender melhor o sistema que estamos desenvolvendo.

Introdução à Engenharia de. Software. Introdução à Engenharia de. Software. O que é a Engenharia de Software? Software

MODELAGEM DE PROCESSOS

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Introduçãoa Engenhariade. Prof. Anderson Cavalcanti UFRN-CT-DCA

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

Análise e Projeto de Sistemas. O que é modelagem. O que é modelagem. Tripé de apoio ao desenvolvimento. Notação: UML. Ferramenta: Rational Rose.

Programação Orientada a Objetos

Processos de Desenvolvimento de Software

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Engenharia de Requisitos Estudo de Caso

ENGENHARIA DE SOFTWARE I

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

O modelo unificado de processo. O Rational Unified Process, RUP.

Unified Modeling Language UML - Notações

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar

EMENTAS DAS DISCIPLINAS

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

MODELAGEM DE CASOS DE USO PARA UM SISTEMA DE CLÍNICA VETERINÁRIA

Algumas propriedades dos objetos:

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Fase 1: Engenharia de Produto

Aula 02 Modelagem de Dados. Banco de Dados. Aula 02 Modelagem de Dados. Superior /2011 Redes Computadores - Disciplina: Banco de Dados -

Engenharia de Software

Modelagem de Sistemas

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Segurança de Aplicações Aula 6

SAV Sistema de Aluguel de Veículos I - DOCUMENTO DE REQUISITOS Versão 1.00

Engenharia de Software. Artigo revista Engenharia de Software, edição 30 (novembro 2010)

Orientação à Objetos. Aécio Costa

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

Documento de Arquitetura

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Lógica e Programação Java

Qualidade de Software

Engenharia de Software

Desempenho e Segurança em Sistemas de Informação. Profa.: Me. Christiane Zim Zapelini christianezapelini@nwk.edu.br

Tarciane Andrade.

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

Programa do Módulo 2. Fundações do Modelo Objeto

Professor: Curso: Disciplina:

Categorias de Padrões

REQUISITOS DE SISTEMAS

Processo de Desenvolvimento Unificado

UML e a Ferramenta Astah. Profa. Reane Franco Goulart

PROJETO DE FÁBRICA DE SOFTWARE

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem

Casos de Uso O que é. Casos de Uso. Objetivos de um Caso de Uso. Atores. Atores e Casos de Uso. Diagramas de Caso de Uso

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Engenharia de Sistemas Computacionais

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

UFG - Instituto de Informática

DESENVOLVENDO O SISTEMA

Hardware. Computador. Hardware parte do computador em que você normalmente mete o pé quando seu computador não executa uma tarefa solicitada por você.

Análise e Projeto Orientados por Objetos

Levantamento, Análise e Gestão Requisitos. Aula 04

Notas de Aula 04: Casos de uso de um sistema

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

UM FRAMEWORK PARA DESENVOLVIMENTO DE

Prof. Marcelo Machado Cunha

Engenharia de Software I

UML Linguagem de Modelagem Unificada

Sistemas web e comércio eletrônico. Aula 01 Visão Geral

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Curso Técnico em Redes

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Tecnologia em Redes de Computadores. Gestão de Redes de Computadores. Introdução. Edivaldo de Araújo Pereira

Planejamento da disciplina: Modelagem de processos de negócio

Concepção e Elaboração

Transcrição:

Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br

Complexidade dos sistemas de software Estrutura Decomposição Abstração Hierarquia Projeto de sistemas complexos Gerenciando a Complexidade: Sistemas de Software 2

Software Simples x Software Complexo Simples: scripts de configuração, algumas aplicações móveis etc. Propósito limitado Ciclo de vida geralmente curto Criados por uma ou poucas pessoas Complexos: reserva de passagens aéreas, sistemas de venda online etc. Escopo de funcionalidades grande Desenvolvimento envolve muitas pessoas Ciclo de vida longo Software - Complexidade 3

Sistemas de software complexos Todas os detalhes de um projeto de software não são dominados por uma só pessoa Complexidade pode ser gerenciada, não eliminada A complexidade de um sistema de software advém do domínio do problema a que este se destina Desenvolvedor interpreta requisitos e implementa não entende do domínio Captura de requisitos é uma atividade difícil Requisitos evoluem Software - Complexidade 4

5

Dificuldade de se gerenciar o desenvolvimento de sistemas de software Sistemas com milhares de linhas de código são comuns Um mesmo problema possui várias soluções qual a melhor? Software - Ilusão da simplicidade Software Complexidade Inerente 6

Sistemas de software podem entrar em colapso se não gerenciados Em diferentes momentos: durante o projeto, durante a utilização etc. Quanto mais complexo o sistema, maior a chance de um colapso Software Complexidade Inerente 7

Negociação de requisitos com usuários/ clientes delimita o escopo de funcionalidades Nem sempre a solicitação por uma funcionalidade possui um embasamento lógico Software Complexidade Inerente 8

9

10

11

12

Projetos de Software, quando não gerenciados adequadamente... Atrasam Estouram orçamento Não atendem os requisitos elencados em conjunto com os usuários/clientes Gerenciar a complexidade Entender o necessário acerca do domínio do problema Traduzir em informação útil para construção de um sistema de software Gerenciando a Complexidade 13

Hierarquia 14

Sistemas Complexos Estrutura hierárquica Diferentes níveis de abstração Decomposição Sistema de Banco de Dados Computador Pessoal (placa mãe -> processador -> registradores...) Sistemas complexos: Estrutura de seres vivos (plantas, animais...) Estrutura da matéria (ligas, moléculas...) Hierarquia 15

Complexidade é gerenciada através da construção de uma representação estrutural hierárquica Sistema complexo = conjunto de subsistemas interrelacionados Projeto definirá quais agrupamentos lógicos compõem o sistema e como estes se relacionam Estrutura lógica hierárquica define como são os relacionamentos Todo-parte Motor Sistema de pistões Estrutura de sistemas complexos Carro 16

http://necsi.edu/projects/mclemens/ 17

Abstrações e mecanismos comuns facilitam Exemplos Joystick de videogame controla diferentes jogos Controle de navegação de veículos como aviões e carros (oferecem o mesmo conjunto de controles em diferentes modelos) Hierarquia todo-parte - composição Hierarquia tipo de - herança Estrutura de sistemas complexos 18

Sistemas de Software DECOMPOSIÇÃO ALGORÍTMICA DECOMPOSIÇÃO ORIENTADA A OBJETOS Programação Estruturada Projeto de Software 19

Sistema = conjunto de subsistemas interrelacionados Sistema possui uma estrutura lógica hierarquizada Abstrações chave: classes e objetos Cada objeto é uma entidade com um comportamento bem definido Sistema = objetos que colaboram entre si Decomposição orientada a objetos 20

Vantagens: Organizar a complexidade através de abstrações e mecanismos comuns Facilita a reutilização de mecanismos comuns Favorece o desenvolvimento incremental do sistema (evolução) Decomposição orientada a objetos 21

Abstração Modelo idealizado que ignora alguns detalhes não essenciais Retirar do domínio do problema os detalhes relevantes e representar na linguagem da solução Decomposição orientada a objetos 22

Especificação funcional (requisitos funcionais) Limitações (hardware e software) Desempenho e utilização de recursos (requisitos não funcionais) Satisfazer orçamento e prazos Disponibilidade de equipe e instrumental Projeto de sistemas complexos 23

Notação para descrição da solução proposta Exemplo: UML (Unified Modeling Language) Processo de desenvolvimento Exemplo: RUP Ferramentas Exemplo: IDE, Sistemas para Controle de versão, Bug tracking etc. Projeto de sistemas complexos 24

Falhas de projeto geram problemas maiores do que os que deveriam originalmente ser tratados por um sistema Manutenção de software é uma tarefa complexa e cara Projeto de sistemas complexos 25

26

Notas de aula do Prof. Renato Maia (Unimontes) Notas de aula do Prof. Renato Mesquita (UFMG) Referências 27

Linguagem C++ Motivação para o uso de C++ para o aprendizado de POO C++ versus C Quando usar C e quando usar C++ C++ versus Java Sintaxe básica de C++ Ambientes de desenvolvimento C++ Próximas aulas 28

Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br