quinta-feira, 12 de fevereiro de 2009

1ª aula de Eng. de Software

Engenharia de software

* Introdução

- O que é ?
- Fatos
- Mitos
- Objetivos

* Modelos de ciclo de vida

* Metodologias

* Gerenciamento de projetos

* Engenharia de software - uma abordagem prática Roger S. Pressnan
* Engenharia de Software - Ian Sommerville
* Engenharia de Software - Wilson de Pádua Filho

Banco de Dados - 12/02/2008

Usuário do SBD

Final = Utiliza por intermedio de uma aplicação.
Analista = Desenvolve as aplicações que o usuario funal utiliza.
Avançado = Utiliza o SGBD diretamente por meio de comandos SQL.
DBA = O administrador do BD. É o responsavel por todas as operações realizadas no SGDB.

Etapas de um Projeto de BD.



Modelo Entidade Relacionamento

Este modelo é composto de tres elementos: entidades, atributos e relacionamentos.

Entidade:
Conjunto de Informações de caracteristica semelhantes que podem ser identificadas. Em um ambiente empresarial podemos reconhecer entidades concretas e abstratas. Ex: Empregados, departamentos etc.

Atributos:

São caracteristicas que temos interesse em armazenar. No caso da entidade empregados podemos identificar como atributos a matricula e o nome do empregado representação grafica.
Atributos identificadores: são aqueles que identificam de fomra unica os elementos das entidades. Diferenciando um dos outros.
Atributos multiusuarios: são aqueles onde temos mais de um valor para a caracteristica.
Ex: Telefone
Atributos Monovalorado: É aquele onde temos a concorrencia de um unico valor. Ex: nome, Salário etc...

Representação Grafica (Entidade e seus Atributos)




Relacionamentos

É uma ligação (associação) entre elementos de outra entidade ou entre elementos da mesma entidade.

Representação Gráfica




Podemos citar como exemplo o relacionamento existente entre as entidades empregados e departamento. Temos que representar a informação de qual departamento cada empregado esta lotado.

empregados <-> lotar <-> departamentos

Cardinalidade
Representa o numero de elementos da entidade que estão presentes no relacionamento.







(min, max) – denota uma obrigatoriedade


Exercicio
Montar o DER para uma empresa com as seguintes caracteristicas:
-Os empregados estão distribuidos (lotados) por departamentos
-Cada departamento é gerenciado por um empregado
-Os empregados podem trabalhar em projetos desenvolvidos pela empresa
-Os projetos podem ser patrocinados por um dos departamentos da empresa



1ª Aula de Banco de Dados

Banco de Dados
Tio Arbex

- COnceitos básicos de BD
- ARquitetura de B.D
- Modelos de dados
- Modelagem de dados
- Banco de dados relacionais
- Derivação do modelo conceitual
para o modelo lágico
_ Normalização
_ Álgebra Relacional
_ Linguagen de acesso ao SGBD
_ Restrições
_ Controle de acesso a dados
_ Transações
_ Controle de concorrência
_ Recuperação do SGBD


Conceitos básicos

Diferença entre Banco de Dados e Sistema Gerenciador de Banco de Dados (SGBD)

Banco de Dados => conjunto de dados que tem uma relação entre si. Por exemplo dados de uma universidade.

SGBD => Sistema Gerenciador de banco de dados, Sistema para criação e gerenciamento das informações.
Sistema, conjunto de programas formado por vários elementos com uma determinada função.

SGBD COMERCIAIS

Oracle
SQL Server
Informix
DB2

Paradox|=> desse para baixo só usa quem não precisa de tanta segurança

MySQL | |
PostGree |=> Free |
Firebird | |



Sistema de Banco de Dados
X
Sistema Baseado em Banco de dados


Dep. Vendas

Aplicação 1
___________

^
|
|
v
___ ____ ____
| | | | | |
Vendedores Produtos Vendas
======>>>> nesse caso a aplicação tem acesso direto as informações dentro do arquivo



Dep. Marketing

Aplicação 2
___________

^
|
|
v
____
| |
Produtos


O diagrama acima foi dado como exemplo se duas aplicações fossem utilizadas para acessar uma mesma informação em
ARQUIVOS diferentes, dando assim uma incosistencia nas informações;

SBD
Aplicação1 "Nesse caso a aplicação não tem conhecimento nenhum da estrutura dentro do BD"
|
|
|_____________

v

SGDB

______
( )
| | | |
--------
Um sistema de banco de com um unico arquivo "pode ter um ou vários arquivos"


Tabela funcionários

Mat Nome Endereço Tel. Salário




Tabela Produto

Cod. Produ. Desc Peso Unidade Preço Custo Preço venda Quant. Estoque





Nesse exemplo abaixo não haveria problemas de redundância, pois usando técnicas de controle de concorrência resolveria
o problema de várias aplicações acessando o mesmo SGBD




Aplicação1 Aplicação2 Aplicação3
| | |
| | | SQL => qualquer SGBD relacional utiliza lingugem SQL para comunicação com a aplicação
|_____________ _______________

v

|SGDB| <=======> esse cara aqui controla o acesso resolvendo o problema de redundância, inclusão e alteração na base de dados

_____
( _ )
| | | |
-------
Um sistema de banco de com um unico arquivo "pode ter um ou vários arquivos"



Vantagens do SGBD

Evita inconsistencia de dados
Evita redundância
Fácil controle
Fortalece a padronização "todas aplicações acessando o mesmo tipo de dados"



Dependencia dos dados ==> É uma relação entre a aplicação e os dados

Aplicação 2
___________

^
|
|
v
____
| |
Banco de dados dependente da aplicação

Toda vez que eu tiver que mudar a estrutura do meu BD e ao mesmo tempo ter que mudar minha aplicação.
Esse caso ocorre quando a aplicação comunica diretamente com o BD.




Independência de dados.

Ao contrário do que acontece no exemplo anterior, nesse caso a aplicação não tem contato direto com o BD e sim comunica com o
SGBD que acessa o BD, a aplicação não tem contato direto com o BD não necessitando buscar informações direta.


Aplicação1 Aplicação2 Aplicação3
| | |
| | |
|_____________ _______________

v

|SGDB|

_____
( _ )
| | | |
-------
Banco de dados independente da aplicação



Arquitetura do SGBD (Três níveis)
________________________________



SGDB
___________________________________
| |

VIsÃO 1 VisÃO 2 VISÃO N <= Externo <= Controla o acesso restringindo somente o que é necessário ao banco de dados para que o usuário possa acessar o BD | | | | | | Mapeamento externo/conceitual | v |Conceitual| <= Conceitual < = Todas as informações lógicas estão aqui dentro | Mapeamento conceitual / interno | v |FISICO| <= Interno < = Estrutura física dos dados, de que forma estas informações estão armazenadas |_________________________________|

quarta-feira, 11 de fevereiro de 2009

Ementa - Sistemas Orientados a Objetos (SOO)

Prof: Luis Henrique Campos Braune

EMENTA:
Conceitos Básicos sobre Orientação a Objetos; Linguagens de Programação Orientadas a Objetos; Projetos de Interface Orientada a Objetos; Análise e Projetos de Sistemas Orientados a Objetos; Tendências de Pesquisa e Desenvolvimento.

I. OBJETIVOS DA DISCIPLINA:

Analisar e projetar software industrial e comercial baseado em objetos.
Implementar pequenas aplicações com interface gráfica utilizando objetos já definidos no ambiente de desenvolvimento.

II. HABILIDADES E COMPETÊNCIAS

- Criação de aplicações em computação
- Capacidade de trabalhar com computação de cálculos matemáticos complexos em tempo extremamente curto.
- Capacidade de desenvolver processamento de imagens de diferentes origens.
- Capacidade de desenvolver jogos e ferramentas para apoio ao ensino.
- Capacidade de lidar com automação, controle e monitoração de sistemas complexos.

III. CONTEÚDO PROGRAMÁTICO:

1. Teoria de Programação por Objetos
- Classes
- Objetos
- Herança (simples e múltipla)
- Métodos
- Sobrecarga
- Polimorfismo

2. Construção de Programas
- Tipos de dados;
- Sintaxe;
- Classes;
- Heranças principais;

3. Construção de Aplicações Gráficas
- Estrutura de uma aplicação
- Orientação a eventos
- APIs
- Classes definidas

4. Estudo de Caso
- Diagramas de Classe
- Casos de Uso
- Estrutura básica de uma aplicação
- Pacotes e classes
- APIs
- Classes definidas
- Desenvolvimento de uma aplicação


IV. PROCEDIMENTOS E RECURSOS DE ENSINO:

Exposição oral de teoria e aplicação de exercícios práticos de fixação no laboratório.
Recursos: quadro branco e caneta para teoria, laboratório de informática para exercícios práticos.

V. AVALIAÇÃO:

Prova escrita, trabalhos em forma de desenvolvimento de programas, desempenho em sala.

VI. BIBLIOGRAFIA BÁSICA:

1. COAD, Peter. Projeto baseado em objetos. Rio de Janeiro: Campus, 1993.
2. MARTIN, James. Análise de projetos orientados a objetos. São Paulo: Makron Books do Brasil, 1996.
3. SHLAER, Sally. Análise de sistemas orientados para objetos. São Paulo: McGraw-Hill do Brasil,1990.

VII. BIBLIOGRAFIA COMPLEMENTAR:

1. SHAMMAS, Namir Clement. Programação orientada para objetos com Turbo Pascal 5.5. São Paulo: Makron Books: McGraw-Hill, 1991.
2. GRANERO, Airton da Fonseca. Programação orientada para objeto em C++ no ambiente. São Paulo: Atlas, 1995.

VIII. PERIÓDICOS:

Revista Dr. Dobbs

IX. SOFTWARE DE APOIO:

DevC++ - ambiente de desenvolvimento freeware.
JSDK – Conjunto de Ferramentas de Desenvolvimento em Java

Ementa - Lab. de Eng. de Software

Prof: Luis Henrique Campos Braune

EMENTA:
Estudo e utilização de ferramentas CASE como forma de apoio ao desenvolvimento de sistemas, no que diz respeito a modelagem de dados e modelagem de sistemas orientados a objetos.


I. OBJETIVOS DA DISCIPLINA:

- Permitir, na prática, o uso de conceitos de modelagem de dados e
modelagem de sistemas orientados a objetos, com o uso de ferramentas
CASE.


II. HABILIDADES E COMPETÊNCIAS

- Fundamentação teórico/prática de modelagem de dados;
- Uso de ferramenta CASE para modelagem de dados;
- Fundamentação teórico/prática de modelagem de sistemas
orientados a objetos;
- Uso de ferramenta CASE para modelagem de sistemas orientados a
objetos.


III. CONTEÚDO PROGRAMÁTICO:

- Instalação e configuração das ferramentas.
- Estudo de caso para modelagem de dados.
- Utilização de ferramenta para a modelagem de dados.
- Estudo de caso para modelagem orientada a objetos.
- Utilização de ferramenta para modelagem orientada a objetos (segundo
a UML).




IV. PROCEDIMENTOS E RECURSOS DE ENSINO:

Aulas expositivas de caráter prático, exercícios de fixação em grupo e individual, trabalhos práticos e de pesquisa.
Os recursos de ensino utilizados são: Quadro branco, retroprojetor, e computadores com programas específicos à disciplina.



V. AVALIAÇÃO:

Exercícios, testes, trabalhos e prova. Podem ser individual ou em grupo, teórico ou prático.



VI. BIBLIOGRAFIA BÁSICA:

PRESMANN, Roger S., Engenharia de Software. São Paulo: Makron Books do Brasil, 1995.

SOMMERVILLE, Ian, Software Engineering. New York: Addison-Weslley Publishing Company, 2000.

RAUMBAUGH, James et al. Modelagem e Projetos Baseados em Objetos. Rio de Janeiro: Campus, 1994.

WASLAWICK, Raul Sidnei. Análise e Projeto de Sistemas de Informação Orientados a Objetos. Rio de Janeiro: Elsevier, 2004.


VII. BIBLIOGRAFIA COMPLEMENTAR:

FIORINI, Soeli T.; VON, STAA Arndt; BATISTA, Renan Martins. Engenharia de Software com CMM. Rio de Janeiro: Brasport, 1998.

PETERS, James F., PEDRYCZ, Witold. Engenharia de Software: Teoria e Prática. Rio de Janeiro: Campus, 2001.

BLAHA, Michael; RUMBAUGH, James. Modelagem e Projetos Baseados em Objetos com UML 2. Rio de Janeiro: Elsevier, 2006.