Projeto Integrado Multidisciplinar 2 Semestre

38
UNIVERSIDADE PAULISTA BRUNO APARECIDO DA SILVA RA: B103GE-8 EWERTON DE GODOI MOREIRA RA: B28846-9 HENRIQUE TAVARES DE SOUZA RA: B573516 GUSTAVO ALBINO DE BRITO RA: B21118-0 SAMUEL ZAMBON RA: B44EFJ-0 PIM II DESENVOLVIMENTO DE UM SISTEMA DE CAIXA ELTRÔNICO BANCÁRIO JUNDIAÍ 2012

Transcript of Projeto Integrado Multidisciplinar 2 Semestre

Page 1: Projeto Integrado Multidisciplinar 2 Semestre

UNIVERSIDADE PAULISTA

BRUNO APARECIDO DA SILVA – RA: B103GE-8

EWERTON DE GODOI MOREIRA – RA: B28846-9

HENRIQUE TAVARES DE SOUZA – RA: B573516

GUSTAVO ALBINO DE BRITO – RA: B21118-0

SAMUEL ZAMBON – RA: B44EFJ-0

PIM II

DESENVOLVIMENTO DE UM SISTEMA DE CAIXA ELTRÔNICO BANCÁRIO

JUNDIAÍ

2012

Page 2: Projeto Integrado Multidisciplinar 2 Semestre

BRUNO APARECIDO DA SILVA – RA: B103GE-8

EWERTON DE GODOI MOREIRA – RA: B28846-9

HENRIQUE TAVARES DE SOUZA – RA: B573516

GUSTAVO ALBINO DE BRITO – RA: B21118-0

SAMUEL ZAMBON – RA: B44EFJ-0

PIM II

DESENVOLVIMENTO DE UM SISTEMA DE CAIXA ELTRÔNICO BANCÁRIO

Projeto integrado multidisciplinar PIM II– para

obtenção do título de graduação em Tecnologia em

Análise e Desenvolvimento de Sistemas,

apresentado à Universidade Paulista – UNIP.

Orientador:(Profº Espª Cesar Tegani Tofanini)

JUNDIAÍ

2012

Page 3: Projeto Integrado Multidisciplinar 2 Semestre

BRUNO APARECIDO DA SILVA – RA: B103GE-8

EWERTON DE GODOI MOREIRA – RA: B28846-9

HENRIQUE TAVARES DE SOUZA – RA: B573516

GUSTAVO ALBINO DE BRITO – RA: B21118-0

SAMUEL ZAMBON – RA: B44EFJ-0

PIM II

DESENVOLVIMENTO DE UM SISTEMA DE CAIXA ELTRÔNICO BANCÁRIO

Trabalho integrado multidisciplinar PIM II- para

obtenção do título de graduação em Tecnologia em

Análise e Desenvolvimento de Sistemas,

apresentado à Universidade Paulista – UNIP

Aprovado em:

BANCA EXAMINADORA

________________________/___/_______

Prof.

Universidade Paulista – UNIP

________________________/___/_______

Prof.

Universidade Paulista – UNIP

________________________/___/_______

Prof.

Universidade Paulista – UNIP

Page 4: Projeto Integrado Multidisciplinar 2 Semestre

RESUMO

O presente trabalho tem como intuito a elaboração de um sistema que simule as

atividades mais comuns de um caixa eletrônico, cadastro de cliente, sendo elas manutenção de

conta, exclusão de conta, depósito, saldo, saque e transferência de valores entre contas.

A linguagem utilizada para elaboração do programa escolhida foi a linguagem C, pelo

fato de ser a linguagem abordada no curso. Foram empregados conceitos e comandos

utilizados em linguagem C, bem como o uso de funções, structs, ponteiros, para

implementação da linguagem, conhecimentos estes adquiridos com a disciplina técnicas de

linguagem de programação.

Foram utilizados conceitos de rede de computadores para realização do programa pois

este deve ser instalado em hosts distintos pertencentes a uma mesma rede. O conceito de

compartilhamento de arquivos e de protocolo TCP/IP, foi empregado para a criação da rede

onde as duas partes do programa desenvolvido, cadastro de conta e caixa eletrônico irão se

comunicar.

Conceitos de engenharia de software como análise de requisitos, processos de

produção, processos de qualidade e gestão de equipe também foram empregados na realização

presente projeto. A princípio foram definidas diretrizes de elaboração e formação de equipe,

tendo como base do projeto a elaboração do sistema de caixa eletrônico, a definição da equipe

de trabalho foi baseada na em variáveis como disponibilidade, grau de conhecimento e

comprometimento com projeto.

Para realização do programa e efetuar as transações realizadas sendo efetuados os

débitos, acréscimos e demais operações matemáticas realizadas foram utilizadas

conhecimentos adquiridos junto a matemática computacional.

Para normatização deste foram adotadas normas estabelecidas para realização de

trabalhos científicos instituídos pela Associação Brasileira de Normas Técnicas, ABNT.

.

Palavras-chave: Software / Desenvolvimento.

Page 5: Projeto Integrado Multidisciplinar 2 Semestre

ABSTRACT

The present work is aimed at developing a system that simulates the most common

activities of an ATM, customer registration, and they account maintenance, account deletion,

deposit, balance, withdrawal and transfer of funds between accounts.

The language used to program design was chosen the C language, because it is the

language covered in the course. Were employed concepts and commands used in C language

and the use of functions, structs, pointers, for language implementation, these knowledge

acquired with discipline techniques programming language.

We used concepts of computer network to carry out the program because it must be

installed on different hosts belonging to the same network. The concept of sharing files and

TCP / IP protocol was used to create the network where the two parts of the developed

software, register an account and ATM will communicate.

Concepts of software engineering such as requirements analysis, production processes,

quality processes and management staff were also employed in conducting this project. The

principle was established guidelines for the preparation and training of staff, based on the

development project of the ATM, the definition of team work was based on variables such as

availability, level of knowledge and commitment to the project being taken into account still

possible contingencies exist that would lead to change in team work and project.

To implement the program and make the transactions being carried debts, accruals and

other mathematical operations performed were used knowledge acquired from computational

mathematics. The establishment of communication network created, the definition of PIs were

carried through calculations which were converted into binary and hexadecimal to establish

proper communication between hosts. ..

For this regulation were adopted standards established for conducting scientific studies

instituted by the Brazilian Association of Technical Standards, ABNT. .

Keywords: Software / Development

Page 6: Projeto Integrado Multidisciplinar 2 Semestre

SUMÁRIO

1 INTRODUÇÃO ............................................................................................................. 8

2 DESENVOLVIMENTO ................................................................................................ 9

2.1 Da linguagem utilizada ........................................................................................... 9

2.2 Diretivas de Compilação da Linguagem C ........................................................... 10

2.3 Declaração das variáveis ....................................................................................... 10

2.4 Entrada e saída de dados ....................................................................................... 11

2.5 Estruturas de controle ........................................................................................... 11

2.6 Constantes ............................................................................................................. 12

3 Da aplicação da engenharia de software ................................................................. 13

3.1 Fatores determinantes para se produzir um bom software .................................... 14

3.2 Das formas de produção de software .................................................................... 17

3.2.1 Modelo queda d´água ......................................................................................... 17

3.2.2 Modelo por prototipação .................................................................................... 18

3.2.3 Desenvolvimento iterativo ................................................................................. 20

3.2.4 Modelo em espiral .............................................................................................. 21

4 O Modelo CMM ..................................................................................................... 22

5 Da análise de requisitos ........................................................................................... 23

5.1 Princípios da análise ............................................................................................. 24

6 Da utilização da rede de computadores .................................................................. 27

6.1 Redes de Computadores ....................................................................................... 27

6.2 O endereço IP ........................................................................................................ 28

6.2.1 Protocolo TCP/IP .............................................................................................. 29

7 Da Documentação do Software ............................................................................... 32

7.1 Do software de cadastro, manutenção e exclusão de conta ................................. 32

7.2 Das operações do software, saldo, saque, depósito transferência e empréstimo. 34

Page 7: Projeto Integrado Multidisciplinar 2 Semestre

8 CONCLUSÃO ............................................................................................................. 37

BIBLIOGRAFIA ............................................................................................................ 38

Page 8: Projeto Integrado Multidisciplinar 2 Semestre

8

1 INTRODUÇÃO

As instituições bancárias existem há muito tempo na sociedade, desde que o homem

teve necessidade de guardar suas reservas financeiras em algum local até os dias de hoje.

Com o passar do tempo e com o aumento no número de clientes e contas nos bancos

houve a necessidade de se abandonar a escrituração financeira feita em livros e à mão,

adotando-se nova forma de se obter o real controle das transações.

O surgimento da informática veio a afetar inúmeras instituições econômicas e sociais,

assim sendo os bancos não poderiam ficar de fora desta informatização das transações e

demais relações existentes em a instituição denominada banco e seus clientes.

Os sistemas informatizados facilitaram e muito a relação entre banco e cliente, pois

agilizam as rotinas mais corriqueiras existentes nesta relação, atos como criação de contas,

saques, depósitos, transferências, ocorrem em maior volume e velocidade com a utilização da

tecnologia.

Essa busca por tecnologia, por implementação de sistemas que agilizassem as

transações bancárias levou a criação de caixas eletrônicos bancários, ou seja, agencias

bancárias em formato de uma máquina, onde, através de um programa de computador,

consegue-se realizar as tarefas ante realizadas apenas dentro das agências.

Atualmente existem vários sistemas para caixa eletrônico bancário escritos em várias

linguagens diferentes, o presente projeto tem como escopo o desenvolvimento de um

programa de computador escrito em linguagem C, destinado ao controle de um caixa

eletrônico bancário.

Foram utilizados conhecimentos de engenharia de software, linguagem de

programação, matemática computacional, redes de computadores e ética, para o

desenvolvimento do sistema de caixa eletrônico bancário.

Page 9: Projeto Integrado Multidisciplinar 2 Semestre

9

2 DESENVOLVIMENTO

2.1 Da linguagem utilizada

A linguagem utilizada para produção do programa é uma linguagem de alto nível

denominada como linguagem C, esta é uma linguagem compilada, estruturada, criada em

1972 por Dennis Ritchie, nos laboratórios da AT&T Bell Labs, sendo uma das mais

populares. Inicialmente desenvolvida para implementação do sistema Unix, a linguagem C

tornou-se poderosa o bastante, a adição do tipo struct, de funções e ponteiros, possibilito o

acesso a maioria das partes do núcleo Unix, podendo ser escritos a partir de então em C.

Estima-se que a linguagem C tenha este nome pois deriva ou é um aperfeiçoamento de

características da linguagem B, mas não passa apenas de uma estimativa.

Esta linguagem fornece acesso de baixo nível à memória e não exigindo hardwares de

altíssimo desempenho, foi desenvolvida para ser uma linguagem de alto nível para

reaproveitamento do código, sendo a princípio de importante uso como linguagem assembly.

Como anteriormente dito a linguagem C é uma linguagem compilada, ou seja,

necessita de um compilador para ser convertida ao nível de entendimento do hardware.

O algoritmo escrito deve ser convertido por este programa compilador para o formato

pronto para ser executado sempre que necessário. Programas compilados são mais rápidos

mas não são multiplataforma, são desenvolvidos para plataformas específicas, e cada

alteração em seu algoritmo depende de nova compilação para funcionamento.

A linguagem C possui características que a tornam tão popular, uma delas é de ser

mais simples que as demais, trabalha com vários tipos, sendo os cinco tipos de variáveis

básicos definidos como char, int, float, double e void, possui ainda alta portabilidade pois é

estruturalmente simples, os códigos em c são enxutos e velozes.

A linguagem C compartilha recursos de baixo e alto nível o que permite acesso e

programação direta do microprocessador, com isto, rotinas cuja dependência do

tempo é crítica, podem ser facilmente implementadas usando instruções em

assembly, sendo esta a razão do C ser a linguagem preferida de muitos

programadores. (DornellesI, 1997,p.06)

O programa em C é constituído de uma estrutura simples, onde temos um cabeçalho,

onde são declaradas as diretivas do compilador, constantes, variáveis, inclusão de bibliotecas

Page 10: Projeto Integrado Multidisciplinar 2 Semestre

10

e outros blocos de rotina. Possui também um bloco de instruções principal e outros de rotinas,

e toda documentação pode ser feita através de comentários no próprio corpo do programa. São

utilizados caracteres ASCII como padrão utilizado pela linguagem.

2.2 Diretivas de Compilação da Linguagem C

Na linguagem C, existem comandos que são processados durante a compilação do

programa,são genericamente chamados de diretivas de compilação, tais comandos informam

ao compilador C basicamente quais são as constantes simbólicas e quais as bibliotecas

utilizadas pelo arquivo executável gerado, um exemplo é a diretiva #include, que diz ao

compilador para incluir na compilação do programa outros arquivos. Funções como a

“printf”, que é carregada junto com a biblioteca “stdio.h”, a função “main”, utilizada no

início de cada programa escrito, entre outras.

2.3 Declaração das variáveis

Segundo Vitorine Viviane Mizhari, em seu livro, Treinamento em Linguagem C, 2ª

edição, variáveis são tipos presentes em todos os programas de computador, são definidas

como um valor que se altera e ocupa um espaço na memória, em sua obra temos a seguinte

definição:

Variáveis são o aspecto fundamental de qualquer linguagem de computador. Uma

variável em C é um espaço reservado para armazenar um certo tipo de dado e tendo

um nome para referenciar o seu conteúdo.

O espaço de memória ocupado por uma variável pode ser compartilhado por

diferentes valores segundo certas circunstâncias. Em outras palavras, uma variável é

um espaço de memória que pode conter, a cada tempo, valores diferentes.

(Mizrahi, 2008, pag.13)

As variáveis podem ser de vários tipos como, int (inteiro), char (caractere), float (real

simples precisão), entre outras. Sua declaração se faz geralmente no início do programa sendo

estabelecido o nome da variável e seu tipo, ex: float número, int número, char nome.

Ex: int main( )

{

Int numero;

Page 11: Projeto Integrado Multidisciplinar 2 Semestre

11

Float numero;

Char nome;

}

2.4 Entrada e saída de dados

Em C como na maioria dos programas, existem várias maneira de se inserir e ler

informações, ou em terminologia técnica fazer “Imput” e “Output” ou entrada e saída.

Funções como printf, scanf, gets, put, são funções de entrada e leitura de dados via tela e

teclado, existindo ainda funções de manipulação de mouse, entrada e saída via porta serial e

paralela, entre outras.

Para se exibir um tipo de dado na tela do computador utilizamos, geralmente, a função

printf, seguida do tipo de variável que faz parte o elemento a ser exibido, exemplo: printf

(“digite um número”, numero). Já para ser gravado o valor da variável em memória utiliza-se

a função scanf, ex: scanf(“float”,&numero).

2.5 Estruturas de controle

A linguagem C permite uma ampla variedade de estruturas de controle de

processamento. Podemos dividi-las em estrutura de decisão e de repetição.

As estruturas de decisão permitem direcionar o fluxo de desenvolvimento dos blocos

para os blocos distintos de instruções conforme uma condição de controle. Com IF e Else, If-

Else, Switch, podemos fazer isso, pois temo duas condições que devem ocorrer no programa.

Uma das tarefas de qualquer programa é decidir o que deve ser executado a seguir.

Os comandos de decisão permitem determinar qual é a ação a ser tomada com base no

resultado de uma expressão condicional. (In. Mizhari, Victorine Viviane, Treinamento em

Linguagem C, 2ªed. São Paulo-2008, pag.84.)

Ex:

Se condição 1; IF(condição)

Então bloco1; { bloco1;}

Page 12: Projeto Integrado Multidisciplinar 2 Semestre

12

Senão bloco2; else{ bloco2 };

Fim se

Já a estrutura de repetição permite executar um bloco de instrução ate que uma

condição de controle seja satisfeita ou realizada. Com “Do” “While”, “While”, “For”,

podemos realizar a repetição ou laço , condicionando seu final a um evento determinado e

expresso.

Laços ao comandos usados sempre que uma ou mais instruções tiverem de ser

repetidas enquanto uma certa condição estiver satisfeita (Mizhari,2008, pag.62)

Exemplos:

Do{ for(condiçao inicial; cond teste; incremento)

Bloco; for (i=0;i<=10;i++)

} While (condição);

2.6 Constantes

O C possui quatro tipos básicos de constantes, inteiras, de ponto flutuante, caracteres e

strings, As inteiras e de ponto flutuante representam números de uma forma geral, as de

caracteres e strings representam letras e agrupamentos de letras.

Números constantes em C podem ser escritos de forma inteira, decimal, octal e

hexadecimal.

Os caracteres podem ser expressos sozinhos ou em cadeia, sendo que a numeração

caractere só esta definida para números entre 0 e 255. Isso significa que a forma caractere é

definida para números que caibam em um único byte. (Mizhari,2008, pag.10)

No software em estudo foram utilizados os conceitos acima apresentados, além de

outros como funções, ponteiros, structs, arrays e vetores, sendo quês estes últimos englobam

os demais comandos.

As estruturas de decisão e repetição são amplamente usadas pois a cada momento o

usuário necessita fazer uma escolha para avançar ou retroceder as telas do programa.

Page 13: Projeto Integrado Multidisciplinar 2 Semestre

13

3 Da aplicação da engenharia de software

A engenharia de software aplica as técnicas de engenharia nos processos de produção

de software, estabelece normas que visam a melhoria no processo de produção bem como a

diminuição dos erros que resultam no mau funcionamento ou no não funcionamento de um

programa de computador, visa ainda que o programa desenvolvido seja economicamente

viável e eficiente.

Uma das preocupações da engenharia de software é a produção de um software de

qualidade, ou seja, aquele que atenda as necessidades do cliente, que apresente ao final do

processo produtivo características econômicas, técnicas e usabilidade boas, agradando aos

usuários finais e ao cliente.

Temos várias definições para engenharia de software, adotamos a exarada pelo Prof.

Vitório Bruno Mazzola, que em sua apostila denominada Engenharia de Software, assim

estabelece às folhas 10, “O estabelecimento e uso de sólidos princípios de engenharia para

que se possa obter economicamente um software que seja confiável e que funcione

eficientemente em maquinas reais”(Mazzola, pag. 10)

Há ainda outros enfoques sofre engenharia de software citados no livro Engenharia de

Software, pelo Prof. Vitorio Bruno Mazzola, que abaixo transcreve-se:

“A aplicação prática do conhecimento científico para o projeto e a construção de

programas computacionais e a documentação necessária à sua operação e

manutenção.” [Boehm, 76]

“Abordagem sistemática para o desenvolvimento, a operação e a manutenção de

software” [Afnor, 83]

“Conjunto de métodos, técnicas e ferramentas necessárias à produção de software

de qualidade para todas as etapas do ciclo de vida do produto.” [Krakowiak, 85

](Mazzola, 2008, pag.23)

A Engenharia de software também estabelece um conceito de software bem peculiar,

pode-se definir software como sendo um conjunto de instruções realizadas em uma

determinada linguagem, que quando executadas produzem o resultado desejados. O Software

ainda pode ser encarado sob duas visões diferentes, uma como sendo um conjunto de

instruções destinadas a serem produzidas e utilizadas pelo próprio criador, e outra forma é

encará-lo como um produto a ser vendido, que deve atender as necessidades do cliente, ser de

Page 14: Projeto Integrado Multidisciplinar 2 Semestre

14

fácil uso, entendimento, eficiente, bem documentado facilitando uma correção eventual,

sendo assim confiável.

A busca pela produção de um software de qualidade é sempre importante, e

resumidamente o software de qualidade é aquele que satisfaz as necessidades de seus

usuários, aquele que possua os requisitos exigidos pelo cliente e que atenda as necessidades

dos usuários finais.

Existem vários fatores que determinam a qualidade de um software e que devem estar

presentes em qualquer software produzido, para que o mesmo seja usual e considerado como

um bom software, a seguir descreve-se alguns destes requisitos.

3.1 Fatores determinantes para se produzir um bom software

Existem vários fatores que influenciam e determinam a qualidade de um software, tais

fatores englobam desde a sua forma de produção até o uso pelo usuário final, dentre eles

temos usabilidade, eficiência, confiança e facilidade.

Correção

Pode-se dizer que a correção seria a capacidade de um produto de software funcionar da

forma específica para a qual foi projetado, totalmente adequado ao exigido na análise de

requisitos e especificação, atendendo as expectativas do cliente. O produto de software tem

que atender as especificações requisitadas e suas funções devem funcionar precisamente.

A correção é atingida durante todo processo de criação de software, com o cumprimento

de todas suas fazes, analisando o produto, corrigindo-se os eventuais erros, testando,

corrigindo-se novamente, até o atendimento quase que total das especificações do cliente.

Robustez

É a capacidade do sistema produzido, ou software produzido, funcionar em condições

de stress, quando é exigido o máximo do produto. Nestes casos o produto deve funcionar da

mesma forma quando não em situações anormais, sendo assim também dito como software

confiável.

Page 15: Projeto Integrado Multidisciplinar 2 Semestre

15

Extensibilidade

Consiste na facilidade de se adicionar modificações ao software original. Sistemas

exigem customizações para se adequar perfeitamente as necessidades do cliente. A

simplicidade do projeto facilita com que sejam adicionadas customizações ou modificações

nele. A relação de dependência entre os módulos do programa produzido também influência a

adição de módulos.

Reusabilidade

Este fator gera economia na produção de novos produtos de software, sendo reutilizados

partes de softwares já produzidos.

Compatibilidade

É a capacidade de um produto de software ser combinado com outro. É fator importante

na escolha do produto, determinando sua escolha ou não.

Eficiência

Esta característica esta relacionada com a utilização do software e seus recursos, a

forma com que o sistema com um todo funciona deve ser eficiente. O software não deve

atrapalhar ou causar qualquer interferência danosa no sistema como um todo, incluído

Hardware, Software e Peopleware.

Portabilidade

Consiste na capacidade do software produzido ser utilizado em vários ambientes de

software e hardware diferentes.

Facilidade de Uso

O software produzido deve ser de fácil manipulação pelo usuário final, este deve

conseguir utilizar o produto sem muita dificuldade.

Outros fatores influenciam na produção de um software de boa qualidade, mas estes

estão ligados ao Software de forma extrínseca, são fatores ligados a forma como são

produzidos, os equipamentos utilizados e a metodologia a ser implantada.

Page 16: Projeto Integrado Multidisciplinar 2 Semestre

16

Alguns princípios devem ser observados pela equipe de desenvolvimento, devendo ser

discutidos e analisados para garantir que o produto seja bem aceito.

O princípio do uso, implica em que o Software não deve ser produzido apenas para o

usuário imediato do, mas também para o usuário mediato, ou outros programadores ou

profissionais que irão trabalhar no código fonte, seja para customizar ou implementar

alterações diversas.

A documentação do processo de produção faz com seja possível o fácil acesso a

estrutura e lógica empregada pelo programador, facilitando futuras modificações. A

explicação das funcionalidades, de suas entradas e saídas facilitam a interpretação dos

resultados e solução de possíveis erros.

Produzir o código com a estrutura mais simples possível, dentro das especificações,

facilita a correção de erros ou correção, implicando em menor tempo na finalização do

projeto. O software deve ser projetado para que seja de fácil uso, mesmo para leigos.

O princípio da evolução estabelece o aspecto de importância do desenvolvimento de

Software ligado capacidade de manutenção do mesmo. Todo software deve ser produzido de

forma que seja fácil sua manutenção e modificações. A previsão de modificações deve estar

implícita na realização do projeto, pois o Software deve se capaz de se adequar a realidade de

uso do cliente.

O princípio da migração deve ser levado em conta também, este prega que o software

deve ultrapassar a vida da própria máquina em que esta sendo executado, deve ser produzido

para adequar-se a diversas arquiteturas de computador existentes. A portabilidade é que define

bem este principio.

Softwares devem ser criados com o intuito de resolver problemas e não para apenas

instruir determinado processador.

Nas palavras do Professor Vitório Bruno Mazzola

Assim, podemos sintetizar as ações a serem preparadas com relação a este princípio:

• pensar os programas como meio para solucionar problemas e não para instruir

determinado processador;

• utilizar as construções padronizadas das linguagens de programação ou sistemas

operacionais;

• isolar e comentar todos os aspectos do programa que envolvam a dependência do

hardware. ( Mazzola, 2008, Pag.24)

Page 17: Projeto Integrado Multidisciplinar 2 Semestre

17

Softwares bem estruturados e documentados que atendem aos requisitos anteriormente

elencados, são considerados com sendo de boa qualidade.

3.2 Das formas de produção de software

A engenharia de software estabelece algumas formas diferentes de produção de

software, são métodos e metodologias desenvolvidas que visam agilizar o processo de

produção de um software, visando sempre sua qualidade, são os modelos de produção.

A seguir descreve-se alguns destes modelos criados pela engenharia de software e

aponta-se o modelo utilizado na produção do software objeto deste trabalho.

São modelos de produção de software, o modelo queda d´água, modelo por

prototipação, por desenvolvimento iterativo, em espiral.

3.2.1 Modelo queda d´água

É o modelo mais simples de desenvolvimento de software, estabelece uma ordenação

linear na realização das etapas, ou seja, uma etapa e realizada após a outra.

Visa-se com este método de produção a obtenção de uma visão geral do sistema,

incluindo-se hardware, pessoas, enfim, todos envolvidos, tendo início na etapa de Engenharia

de Sistemas.

A etapa seguinte é a Analise de requisitos, onde serão definidos os requisitos do

software, esta etapa é uma das mais importantes pois é nela estão as necessidades e requisitos

estabelecidos pelo adquirente do programa a ser desenvolvido.

Esta etapa engloba um conjunto de atividades de suma importância para o

desenvolvimento de um produto de software, e deve ser realizada no início do processo de

produção.

Pode-se realizar a analise de requisitos com a aplicação de suas técnicas de diversas

formas, pode-se derivar uma representação em papel, ou em arquivo com a utilização de um

Page 18: Projeto Integrado Multidisciplinar 2 Semestre

18

Case que sirva de referência para o projeto. Pode-se também criar um protótipo, a partir de

um modelo pronto colhendo informações deste, e submetendo esse modelo a avaliações do

cliente, buscando implementar melhorias e adequações às necessidades reais de uso.

O projeto é a etapa subsequente, sendo posteriores as etapas de codificação, teste e

integração e operação e manutenção.

Duas diretivas importantes norteiam o desenvolvimento segundo o modelo queda

d´água, segundo o Professor Vitorio Bruno Mazzola , são as seguintes:

· todas as etapas definidas no modelo devem ser realizadas, isto porque, em

projetos de grande complexidade, a realização formal destas vai determinar o

sucesso ou não do desenvolvimento; a realização informal e implícita de

algumas destas etapas poderia ser feita apenas no caso de projetos de

pequeno porte;

· a ordenação das etapas na forma como foi apresentada deve ser

rigorosamente respeitada; apesar de que esta diretiva poderia ser

questionada, a ordenação proposta pelo modelo, por ser a forma mais

simples de desenvolver, tem sido também a mais adotada a nível de projetos

de software.(Mazzola, 2008, pag. 43)

Tal procedimento facilita na detecção de fim de cada etapa, e consequente detecção de

erros existentes em cada uma delas, sendo também mais fácil a reparação. A documentação

do programa também torna-se obrigatória e neste processo mais fácil de ser desenvolvida pois

deve ser feita com o andamento de cada etapa do projeto.

Este pode ser o processo mais interessante de modelo de desenvolvimento de um

sistema, sendo melhor a utilização deste do que não utilizar nenhum outro.

3.2.2 Modelo por prototipação

.

O ponto de partida para a criação do protótipo de Software a partir dos requisitos

fornecidos durante o procedimento de análise conjugam-se em uma proposta feita ao cliente,

um contrato de solicitação de criação de software, que deve ser encaminhado ao cliente,

contendo toda informação coletada durante o procedimento de analise, descrevendo-se

minuciosamente as funcionalidades, características, usabilidades e resultados a serem obtidos

com o software.

Page 19: Projeto Integrado Multidisciplinar 2 Semestre

19

Na realização do protótipo deve-se atentar a existência ou não de software que possa ser

reaproveitado, proporcionando, em caso positivo, uma economia de tempos e investimento.

Deve-se também atentar a linguagem que será utilizada para o desenvolvimento, decidir se

será mantida a do software reutilizado ou se seja utilizada nova linguagem. Os métodos de

produção devem ser definidos também, se será realizado o processo em cascata ou outro

qualquer.

Coma finalização do protótipo, com sua interface gráfica e funcionalidades testadas,

deve-se submetê-lo à análise do cliente, para possíveis correções e ajustes.

Com as devidas correções e ajustes definidos encerra-se o processo de prototipação e,

pode-se ter início o processo de fabricação.

Nas palavras do professor Vitório Bruno Mazzola, em seu livro, Engenharia de

Software Conceitos Básicos, tem-se:

O paradigma da prototipação tem como ponto de partida uma Solicitação de Proposta

encaminhada pelo cliente. A partir desta solicitação, os seguintes passos são realizados:

• análise da solicitação para identificar a necessidade da prototipação; normalmente,

softwares interativos e/ou gráficos ou softwares que exijam a utilização de

algoritmos combinatórios podem ser objeto de prototipação; no entanto, o fator

complexidade deve permitir determinar realização ou não do protótipo; outro ponto

que deve ser pesado nesta decisão é se a equipe de desenvolvimento tem experiência

e ferramentas adequadas à prototipação;

• especificação resumida dos requisitos, realizada pelo analista, de modo a

representar o domínio da informação e os domínios funcionais e comportamentais

do software, de modo que a atividade de particionamento do problema possa ser

efetuada;

• revisada a especificação resumida dos requisitos, é realizado um projeto do

protótipo, concentrando-se principalmente nos aspectos arquitetônicos e de dados e

deixando de lado os aspectos procedimentais;

• desenvolvimento do protótipo, se possível a partir da utilização de blocos de

construção de software preexistentes (o que na maioria dos casos são de difícil

obtenção); por outro lado, a construção de um protótipo pode ser facilitada graças à

existência de diversas ferramentas orientadas a esta atividade;

• apresentação do protótipo (testado) ao cliente, para que este possa efetuar sua

avaliação; a partir desta avaliação, o cliente pode sugerir extensões ou reformular

alguns requisitos de modo a que o software possa melhor corresponder às reais

necessidades;

• repetição iterativa dos dois passos anteriores, até que todos os requisitos tenham

sido formalizados ou até que o protótipo tenha evoluído na direção de um sistema de

produção. (Mazzola, 2008, pag. 68)

Page 20: Projeto Integrado Multidisciplinar 2 Semestre

20

Análise de Figura 1 – Esquema de evolução da prototipação

Requisitos Fonte: Mazzola, 2008, pag. 13

Com a realização da analise de requisitos terminada passasse a etapa de elaboração de

um documento de Especificação dos Requisitos do Software, em forma de contrato que será

avaliado e assinado pelo cliente, passando-se assim a produção do produto em questão.

3.2.3 Desenvolvimento iterativo

Este modelo foi criado baseando-se no processo em queda d´água, e com as vantagens

do processo de prototipação tendo como ideia central de que um sistema deve ser elaborado

de forma incremental, onde cada incremento vai adicionando funcionalidade ao sistema até

sua finalização.

A grande vantagem deste sistema é que ele é testado a todo o tempo, cada incremento

realizado implica em teste do sistema para o bom funcionamento. Outra vantagem é que

durante o desenvolvimento pode-se apresentar ao cliente parte do software e esta dar seu aval,

aceitando ou alterando as implementações realizadas até então, limitando assim a

possibilidade do software produzido não satisfazer as necessidades do cliente.

.........

Fonte: Mazzola, 2008, pag.14

Projeto

Implementação

análise

Projeto

Implementação

análise

Projeto

Implementação

análise

Figura 2 – Modelo Desenvolvimento Iterativo

Analise de

requisitos

Projeto

Codificação

Teste

Projeto Codificação Teste

Page 21: Projeto Integrado Multidisciplinar 2 Semestre

21

Um aspecto importante deste método de produção é a criação de uma lista de controle

do projeto, onde todos os passos do projeto são descritos e previstos. Esta lista contem dados

do projeto que permitem a prospecção de duração e andamento do mesmo. Através dela é que

se estima o bom andamento do projeto, estuda-se dilação de prazos para entrega e substituição

de elementos da equipe.

3.2.4 Modelo em espiral

O nome proposto à forma de produção do software já descreve a como é o processo de

criação do mesmo, a organização das atividades são feitas em forma de espiral sendo

divididas em vários ciclos.

Define-se os ciclos como sendo etapas na produção do software, sendo estabelecidos, a

determinação de objetivos, determinação de alternativas e restrições, análise de riscos e

prototipação.

Cada ciclo é iniciado com a determinação dos objetivos a serem atingidos, são

determinadas as alternativas para possíveis a obtenção do objetivo fixado e vistas e avaliadas

as restrições existentes ou riscos do projeto, e por fim realiza-se a produção do protótipo.

Pode-se dizer que no final de cada ciclo é marcado pelo desenvolvimento do protótipo

do software e a fixação de novos objetivos para a etapa seguinte até a produção final do

produto de software acabado. Cada ciclo tem como característica final a revisão do que fora

realizado e o que será planejado para o próximo ciclo, sendo tal procedimento utilizado

quando o software a ser desenvolvido seja de alto risco de investimento ao cliente.

A figura a seguir demonstra superficialmente como funcionaria um modelo em espiral.

Page 22: Projeto Integrado Multidisciplinar 2 Semestre

22

CUSTO ACUMULADO

AVANÇO

Determina objetivos

alternativas e restrições

Análise

Análise

de Riscos

Avalia alternativas, identifica e resolve riscos

Análise de Riscos

Análise

de Riscos Protó-

Protó- tipo

Revisão

de Riscos

Protótipo 1

Protó- tipo 2

tipo 3 Opera- cional

Plano de Requisitos

Plano de Ciclo Conceito de

Simulações, modelos, ...

de Vida

Plano de

Operação Requisitos

de Software Projeto do pro-

duto de

Projeto

Detalha-

Próximas etapas

Desenvolvimento

Plano de

Integração e Testes

Validação dos Requisitos

Validação e Veri- ficação do Pro- jeto

software

Teste

de uni-

do Código

do plano Inte-

Teste gração Imple- de acei- e teste menta- tação ção

dade Desenvolve e verifica Produto do Próximo

Nível

Figure 3- O modelo espiral.

Fonte: Mazzola, 2008, pag.15

Com este processo de produção pode-se dizer que os custos são maiores mais os

resultados obtidos são melhores.

4 O Modelo CMM

O modelo CMM ou Capability Maturity Model, ou Modelo de capacidade e

maturidade que foi definido pelo órgão SEI, teve como objetivo criar regras relacionadas ao

vários níveis de maturidade ou evolução no processo de produção de software que as

empresas que produziam software se encontravam. Tal modelo definia cinco graus de

desenvolvimento, sendo o quinto grau o mais elevado.

O nível de maturidade pode ser considerado como um grau de evolução no processo

de desenvolvimento de software, qualificando cada vez mais a empresa no processo de

produção de software.

Page 23: Projeto Integrado Multidisciplinar 2 Semestre

23

A capacidade esta relacionada aos resultados que poder ser obtidos pela utilização de

normas de produção, permitindo estabelecer melhor os resultados em futuros projetos.

O desempenho de um processo de software representa os resultados que são

corretamente obtidos pela sua utilização. A diferença básica entre os dois conceitos esta no

fato de que a capacidade ampara-se nos resultados que serão obtidos, já o desempenho refere-

se aos resultados obtidos de pronto.

Nas palavras do prof Vitório Bruno Mazzola, “a maturidade de um processo de

software estabelece os meios pelos quais ele é definido, gerenciado, medido, controlado e

efetivo, implicando num potencial de evolução da capacidade. ( Mazzola, 2008, Pag.68).

5 Da análise de requisitos

Umas das principais ações a serem tomadas no processo de elaboração de software é a

análise de requisitos, nesta etapa da produção é são estabelecidas as necessidades e desejos

relativos ao software que deverá ser desenvolvido.

No processo de analisar requisitos serão levados em conta os anseios e desejos do

cliente bem como a capacidade interpretativa do analista, é nesta fase que se interpreta o que o

cliente quer e espera do programa a ser desenvolvido.

Roger Pressman, destina capitulo próprio ao tema, que intitula como Princípios

fundamentais da análise de requisitos, onde ressalta a importância de tal procedimento no

desenvolvimento de software, assim escreve:

Uma compreensão completa dos requisitos de software é fundamental para um bem

–sucedido desenvolvimento de software. Não importa quão bem projetado ou quão

bem codificado seja, um programa mal analisado e especificado desapontará o

usuário e trará aborrecimentos ao desenvolvedor.(Pressman, 1997, pag. 12)

A análise dos requisitos do sistema pode ser dividida em cinco áreas de esforço, sendo

reconhecimento do problema, avaliação e síntese, modelagem, especificação e revisão.

Inicialmente o analista estuda o sistema, caso este exista, elabora um plano de software,

busca entender o sistema ou as funções existentes naquele objeto que virá a se tornar um

software.

Page 24: Projeto Integrado Multidisciplinar 2 Semestre

24

O analista tem que ter contato com todos os setores da empresa, deste a administração

até o mais baixo cargo, para ter conhecimento do alcance que terá o software a ser criado bem

como suas restrições e organização usuário/cliente.

Através do contato com os diversos usuários e setores onde este será utilizado o a

analista realizará uma analise profunda e detalhada sobre as rotinas, sobre as funcionalidades

que o software deverá possuir, bem como estabelecer pontos que orientarão futuramente a

instrução e estabelecimento de direitos e delegações a certos usuários ou grupos.

Deverá ainda, de forma sintética, atentando para sintaxe correta, descrever o

funcionamento do programa, suas funcionalidades, suas limitações e seu funcionamento geral.

A medida em que se desenvolve o software problemas vão surgindo e estes dependem

da capacidade do analista para serem resolvidos.

Um bom software é aquele que atende as necessidades do cliente, que seja de fácil uso e

fácil manutenção, bem como o grau de estabilidade do mesmo deve se grande.

Após terem sidos sanados problemas existentes, e estar parcialmente adequado as

necessidades estabelecidas parte-se para a modelagem de software, quando os ciente e

engenheiros de software se relacionam e buscam atingir uma solução que se mais se adeque

aos anseios do cliente, sempre buscando resolver todos os problemas

A criação de modelos é utilizada para melhor compreender o software a ser produzido,

a criação de protótipos facilita a compreensão final do produto.

A apresentação destes protótipos em pontos determinados do desenvolvimento do

software ao cliente é importante pois vem a familiarizar o mesmo com o produto e facilita a

localização de erros e possíveis alterações a serem feitas, minimizando o erro final.

5.1 Princípios da análise

Princípios são características comuns que servem como bases existentes ou que se deva

dar a devida atenção sobre certos assuntos ou temas, não é diferente quando se trata de análise

de requisitos.

Page 25: Projeto Integrado Multidisciplinar 2 Semestre

25

O Domínio da informação é um deles.

Todo software é construído em função da busca de solução de um problema, sendo

alimentado por dados gerando informações de saída.

O domínio da informação em um sistema de software é obtida ou pelo menos

satisfatoriamente atingida, quando temos conhecimento sobre como o sistema trata os dados

nele presentes, como se modificam os eventos e dados ao longo do sistema.

O conteúdo da informação e a estrutura da informação são de igual importância, o

primeiro representa a semântica da informação, o que permite representar os dados

relacionados a uma determinada informação. Já o segundo trataria da forma sintática da

informação, ou seja a linguagem de programação.

O Fluxo da informação, o qual representa a forma pela qual os dados e os eventos se

modificam ao longo do sistema. O que pode ajudar a determinar quais são as

transformações essenciais às quais os itens de informação são submetidos;

o conteúdo da informação, que permite representar os dados e os eventos que

estejam relacionados a um determinado item de informação (semântica da

informação);

a estrutura da informação, a qual permite expressar a forma como itens de dados

e/ou eventos estão organizados (sintaxe da informação); esta informação pode vir a

ser importante para a etapa de projeto e implementação das estruturas de informação

via software (linguagens de programação).(Mazzola, 2008, pag. 65).

Modelagem, também outro aspecto de importância no processo de requisitos de um

software, pois através dela permite-se melhor compreensão das questões estruturais e

comportamentais do software, possibilitando a resolução mais fácil.

O modelo realizado durante o a fase de analise de requisitos deve ser orientada ao que

o software ira realizar e não em como ele o realiza, deve ser dotado de declarações textuais

que informem o funcionamento e a destinação de seus elementos, possibilitando melhor

entendimento dos requisitos do software para o analista, para pessoal técnico e ao projetista.

O particionamento demonstra também outro princípio caracterizando na decomposição

de problemas existentes em partes menores, possibilitando o entendimento o problema de

forma mais fácil, sendo possível estabelecer as interfaces de cada parte do problema. O

particionamento pode ser feito levando-se aspectos funcionais, informacionais ou

comportamentais do software.

Page 26: Projeto Integrado Multidisciplinar 2 Semestre

26

Concepções essenciais e de implementação de um software podem ser especificados

dependendo do grau de conhecimento que se tem do sistema ou dependendo do estagio de

analise no qual se encontra o processo.

A concepção essencial visa observar-se os aspectos essenciais do problema em análise

sem preocupação com detalhes de implementação, preocupa-se mais com os resultados ou os

problemas que impedem a obtenção de um resultado em primeira análise.

Já na faze de implementação preocupa-se com o resultado do funcionamento, ou

funções de processamento nesta fase preocupa-se ou analisa-se questões de estrutura lógica,

de semântica, sintaxe ou erros de programação

Para o desenvolvimento do software em estudo, conforme fora dito anteriormente, fora

escolhida linguagem de programação denominada C, e a metodologia de produção em

Cascata.

Fora feito analise de requisitos do mesmo, sendo estabelecido como requisitos do

software, que o sistema de caixa eletrônico contasse com cadastros de clientes, que contivesse

as operações mínimas para um sistema bancário, como, saques, depósitos, transferências,

consultas, entre outras.

Para início do desenvolvimento do programa fora designado o tema e analisado a

viabilidade de produção do software bem como a elaboração do processo de produção e a

equipe a ser utilizada.

Com o decorrer do prazo fixado para termino do programa foram aplicadas técnicas de

engenharia de software como modelo em espiral e a utilização da prototipação.

6 Identificação do modelo de engenharia de software utilizado e sua justificativa

No decorrer do desenvolvimento do software buscou-se utilizar as normas presentes na

engenharia de software.

O modelo escolhido para produção do software foi o modelo em espiral, fica

evidenciada a utilização do modelo citado, pois durante todo o processo de desenvolvimento

Page 27: Projeto Integrado Multidisciplinar 2 Semestre

27

pois cada ciclo do desenvolvimento teve seus riscos analisados, a parte do software

desenvolvida foi testada e o protótipo do mesmo foi criado e experimentado.

A escolha do modelo em espiral foi feita pela segurança que tal modelo apresenta, pois

só se passa para fase seguinte da produção se a anterior estiver testada e correta.

7 Da utilização da rede de computadores

Há quase mais ou menos 30 anos tivemos o surgimento da rede mundial de

computadores e com passar deste tempo a mesma veio se desenvolvendo e crescendo,

sofrendo grandes alterações com o intuito de acomodar os bilhões de usuários, dispositivos

móveis, desktops e notebooks.

7.1 Redes de Computadores

Uma rede de comunicação pode ser definida como um conjunto de dispositivos

conectados por links de comunicação. A forma mais simples de fazer comunicação entre dois

dispositivos é conectá-los diretamente usando um link de comunicação.

Pode-se ainda tipificar redes de computadores pela conexão e topologia física. Tipos de

conexão classificadas conforme o link utilizado, ou seja, via rádio, cabo de rede, etc. Quanto a

topologia pode-se classificar as redes de computadores podem ser classificadas como sendo,

malha, estrela, barramento, anel, sendo estes os tipos fundamentais. Na estrutura em

malha, cada host possui um link dedicado com os demais dispositivos da rede, utilizam-se

mais destes tipos de rede as redes wifi, como exemplo.

A topologia em estrela caracteriza-se pelo fato de cada dispositivo da rede comunicar-se

dedicadamente com um controlador ou um concentrador no centro da estrutura, tendo como

vantagens a velocidade e a maior segurança em relação as outras topologias, sendo a mais

utilizada.

Page 28: Projeto Integrado Multidisciplinar 2 Semestre

28

A rede em barramento constitui-se de vários hosts interligados entre si por apenas um

cabo, sendo possível pequeno volume de trafego e apenas um computador se comunica com

outro por vez.

A topologia em anel cada dispositivo possui uma conexão dedicada semente com os

dois dispositivos diretamente ligados a ele, tal topologia é pouco utilizada devido a lentidão

que gera e ao baixo trafego de dados suportado.

Classifica-se rede de computadores conforme sua abrangência, sendo utilizadas as

seguintes nomenclaturas, LAN Local Área Network, MAN, Metropolitam Área Network,

WAN, PAN, SAN, entre outras. As mais usuais são as do tipo PAN ou Personal Área

Netword e as Wide Área Network e SAN, Storage Área Network.

Caracteriza-se as WAN pelo fato desta ser capaz de atuar em grandes distancias sendo

que suas conexões podem ser por figra óptica, ondas de rádio, satélites.

As PAN, são caracterizadas por atuarem em redes pequenas, poucos metros, dento do

limite de espaços pequenos.

As SAN, Storage Área Network, exigem maior capacidade, são formadas por

computadores de alta performance interligados entre si, geralmente são usadas em redes de

segurança, armazenamento de dados e serviços.

Para definirmos um host, ou computador na rede, utilizamos o numero ip, este não é o

único numero necessário para estabelecermos uma comunicação de rede, precisamos também

mascara de sub-rede e gateway, para podermos conectarmos a uma rede e acessar a internet.

Mascara de sub rede é formada por quatro conjunto de 3 octetos cada, podendo variar

de 0 a 255 bits, ajuda a identificar a rede, ex. 255.255.255.255.

Gateways são compostos por 4 conjuntos numéricos tomados 3 a 3, podendo variar de 0

a 255, conhecido como portão de entrada do host que te acesso a internet, exe: 192.168.1.1.

7.2 O endereço IP

Page 29: Projeto Integrado Multidisciplinar 2 Semestre

29

O endereço IP é um endereço exclusivo de cada computador conectado à intenret, tal

endereço é distribuído por uma entidade chamada IANA(Internet Assigned Numbers

Authority)/ICANN(Internet Corporation for Assigned Names and Numbers), que distribui

cotas de IP para todas as partes do mundo. Tais cotas são administradas por entidades

regionalizadas e repassam as mesmas para os ISPS ou internet services provriders.

O endereço ip da conexão com a internet faz parte da cota de IPs fornecidos aos ISPS, e

identificam sua conexão dentro da Web, ou seja, o Internet Protocol corresponde ao seu

endereço na Web.

Atualmente ainda encontramos os endereços IP, baseados na tecnologia IPV4, ou seja

formado por um conjunto 12 números, divididos em 4 grupos de 3 números, sendo que cada

grupo pode assumir valores de 0 a 255, por exemplo: 192.168.34.228.

Tal sequência é um formato de 32 bits, ou quatro conjuntos de 8 bits cada, permitindo a

criação de até 4.294.967.296 endereços.

7.2.1 Protocolo TCP/IP

Só há comunicação entre dois entes de uma rede de existir entre eles uma linguagem

comum, e esta linguagem pode-se denominar como protocolo.

O modelo TCP/IP foi criado por pesquisadores do Departamento de Defesa dos EUA,

sendo uma ferramenta usada para ajudar a explicar o conjunto de protocolos TCP/IP, que é o

padrão dominante para transporte de dados nas redes. Este modelo é composto por quatro

camadas, sendo definidas como camada de acesso à rede, camada de internet, camada de

transporte e camada de aplicação, nesta ordem respectivamente.

O modelo TCP/IP fornece uma estrutura comum de referencia para o desenvolvimento

dos protocolos usados na internet. Esse modelo consiste em camadas que executam funções

necessárias para preparar os dados para transmissão em uma rede.

Uma mensagem começa na camada superior, a camada de aplicativo, e despelas pelas

camadas de transporte e internet, ate a camada de acesso à rede. As informações do cabeçalho

são adicionadas a mensagem conforme ela desce pelas camadas e, então, é transmitida, sendo

Page 30: Projeto Integrado Multidisciplinar 2 Semestre

30

enviada ao seu destino. Depois de atingir seu destino a mensagem viaja de volta passando

pelas mesmas camadas, quando as informações do cabeçalho que foram adicionadas a

mensagem são completamente removidas conforme a mensagem passa pelas camadas em

direção ao destino.

Os protocolos da camada de aplicação fornecem serviços de rede aos aplicativos dos

usuários, como navegadores da Web, programas de e-mail. Protocolos da camada de

transporte fornecem o gerenciamento de ponta a ponta dos dados. Uma das funções desses

protocolos é dividir os dados em segmentos gerenciáveis para um transporte mais fácil na

rede, são eles TCP e UDP.

Os protocolos de internet operam na terceira camada TCP/IP, esses protocolos são

usados para fornecer conectividade entre os hosts na rede. São eles, IP, ICPM, RIP, ARP.

Protocolos de acesso a rede descrevem os padrões que os hosts usam para acessar a

parte física da rede, quais sejam , padrões e tecnologias Ethernet IEEE 802.3, CSMA/CD e

10BASE-T.

Para melhor entender a comunicação entre hosts e estabelecer a configuração de uma

rede, deve-se efetuar alguns cálculos, como os cálculos para determinar um endereço IP.

O bom funcionamento e criação de uma rede deve ater-se a algumas características

como a classe que a rede pertence, se há comunicação entre hosts, a segurança da rede entre

outras.

Para exemplificar uma rede corretamente configurada apresenta-se o seguinte cenário.

Uma rede configurada com 4 hosts, sendo esta rede residencial, classe C, de topologia

PAN (Personal Área Network), tipo em estrela. Os IP´s dos hosts têm a seguinte numeração;

host A 192.168.0.1/ 24; host B 192.168.0.2/24; host C 192.168.0.3/24 e host D

192.168.0.4/24;

Temos no final do IP, a referencia /24, esta trata da mascara de subrede, informando

antecipadamente que 3 octetos da mascara de subrede estão fechados, tendo esta a seguinte

numeração: 255.255.255.0

Configurando o cenário com subrede:

Page 31: Projeto Integrado Multidisciplinar 2 Semestre

31

IP 192.168.0. X, onde X varia entre 1 e 254

MS 255.255.255.0, onde pode se variar entre 1 e 255, e manipula-se o ultimo octeto

Para determinar-se o ultimo octeto da MS, realizamos a conversão do maior número

cabível no último octeto, convertendo-o para hexadecimal .

255 = 11111111 hexadecimal

Substitui-se cada numero 1 da estrutura hexadecimal pelo numero 2 elevado a uma

potencia que varia de 7 a 0, obtendo-se a seguinte condição:

128 64 32 16 8 4 2 1

Tem-se 4 hosts, para determinar-se o numero que será utilizado com ultimo octeto

conta-se, iniciando-se da esquerda para direita, o numero de hosts existentes, como neste caso

é 4, toma-se do numero 4 em diante, ou seja, 4+2+1=7, então subtraímos do maior numero

suportado pelo octeto, neste caso 255, desta conta obtêm-se o resultado 248, assim

determinamos a mascara de subrede.

O endereço conhecido com NET ID tem que ser comum entre os elementos da rede para

que haja comunicação, através do exemplo abaixo nota-se com deve ser a configuração:

IP 192.168. 0. 1 Host ID, que define o IP do host na rede.

MS 255.255.255.248

Net ID, que identifica a rede a que pertence o host.

Figura 4

O sistema de caixa eletrônico em estudo, necessita ser instalado em dois hosts, sendo

necessária a configuração da rede entre estes hosts, sendo utilizadas as características de

configuração de uma rede com protocolo TCP/IP, de classe C e topologia PAN, neste caso.

Em cada computador será hospedado um arquivo que irá comunicar-se com o outro

através de uma conexão de rede que tem como protocolo o TCP/IP, quando serão trocados

dados entre ambas as partes do programa.

Page 32: Projeto Integrado Multidisciplinar 2 Semestre

32

8 Da Documentação do Software

A documentação do software é considerada como parte importante no processo de

desenvolvimento de programas de computador.

Através da documentação do software que se obtém de forma fácil e segura

informações sobre seu funcionamento e capacidade de trabalho, nela encontra-se descrito o

funcionamento do programa, descrição detalhada do que cada função, linha ou item realiza.

A seguir demonstra-se uma das formas de se fazer a documentação de um programa de

computador, tal forma de apresentação facilita o entendimento de como o sistema

representado pelo software funciona, o que cada item seu faz.

As informações descritas a seguir virão a auxiliar o uso do software, que esta

distribuído em duas partes, uma de cadastro e outra de movimentação de conta.

8.1 Do software de cadastro, manutenção e exclusão de conta

Tela Principal

Tela inicial do software, permite selecionar as opções "Cadastrar", "Manutenção",

“Excluir” e "Ajuda".

Cadastro

Permite ao usuário fazer um cadastro no sistema.

Em primeiro lugar é informado seu número de conta. O gerador de conta trabalha de

forma sequencial.

A primeira conta se iniciará com o número 5000.

Em seguida deve ser informado o nome. O sistema fará automaticamente uma

verificação do nome. Caso já exista,

uma mensagem será exibida na tela informando que o usuário já possui uma conta e a

operação de cadastro será cancelada, voltando para a tela principal(menu).

Page 33: Projeto Integrado Multidisciplinar 2 Semestre

33

Se o nome não existir o sistema seguirá para o próximo passo, informar o valor do

depósito inicial.

A seguir o usuário deve informar a senha de 6 caracteres.

Há 3 tentativas para digitar a senha. Se o limite de tentativas for ultrapassado uma

mensagem será exibida e o programa fechará.

Se todos os passos forem efetuados com sucesso a conta do usuário será

criada(armazenamento binário). O nome do arquivo será o numero da conta (e a extesão.dat)

Ex: conta 5010 - 5010.dat

Obs: quando a primeira conta for criada uma pasta chamada "contas" também será criada.

Dentro da pasta vão ficar todos os arquivos de contas e um arquivo “.txt” que servirá para o

sistema fazer a leitura de qual será a próxima conta a ser criada.

Manutenção

Ao selecionar essa opção é possível trocar a senha de uma conta.

O primeiro passo é informar o número da conta.

Em seguida deve ser informando a senha atual (senha que está no arquivo).

A senha digitada será comparada com a senha do arquivo, se estiverem iguais o sistema

seguirá para o próximo passo.

Caso a senha seja diferente haverá mais duas tentativas para a senha ser digitada, se

mesmo assim não estiver correta, o sistema fechará.

Depois disso a senha nova deve ser informada. Deve conter 6 caracteres e ser diferente

da antiga, também há um limite de 3 tentativas para esta operação,

o sistema também fechará caso não seja efetuada com sucesso.

A ultima tarefa a ser feita é confirmar a senha, ela deve ser igual a última senha

informada pelo usuário, também existe o limite de 3 tentativas.

Se todas as operações dessa opção forem corretamente efetuadas a senha será trocada e

o usuário será direcionado a tela inicial.

Page 34: Projeto Integrado Multidisciplinar 2 Semestre

34

Excluir

Permite excluir uma conta do banco.

Deve ser primeiramente informado o número da conta e depois a senha.

A senha será comparada com a do arquivo e se estiver igual, o usuário deve confirmar

se quer fazer a exclusão. Se for confirmada a conta será excluída do sistema. Se a resposta da

confirmação da exclusão for negativa o usuário será direcionado a tela principal do programa.

Se a senha estiver diferente da senha do arquivo ele poderá digitar a senha novamente.

Se ainda não estiver correta o programa fechará.

Ajuda

Informa o que cada função faz, mostrando ao usuário uma melhor maneira de utilizar o

software.

8.2 Das operações do software, saldo, saque, depósito transferência e empréstimo.

Tela Principal

Essa tela permite selecionar as opções “Saldo”, “Saque”, “Depósito”, “Transferência”,

“Empréstimo” e “Ajuda”.

Saldo

É possível verificar o saldo da conta.

O usuário deve digitar primeiramente a conta e depois a senha.

Se a senha estiver correta o programa mostrará o nome do titular da conta e o valor do

saldo.

Se a senha estiver incorreta o usuário será direcionado a tela principal.

Saque

Selecionando essa opção é possível fazer um saque da conta.

Page 35: Projeto Integrado Multidisciplinar 2 Semestre

35

Deve ser informado pelo usuário o numero da conta e a senha.

Se tudo estiver correto, deverá ser informado o valor do saque, se incorreta o usuário

será direcionado à tela principal

Uma mensagem exibida na tela confirmará se o saque foi efetuado com sucesso

Outra mensagem perguntará se ele quer consultar o saldo. Se confirmar o saldo será

apresentado, se não, será direcionado a tela principal.

Depósito

Permite fazer um depósito na conta.

O usuário deve informar a conta que será feita o depósito e o valor do depósito.

Haverá apenas uma confirmação de depósito nessa operação.

Se a resposta da confirmação for positiva o depósito será feito.

Depois disso mesmo se o usuário não confirmar o depósito ele será direcionado à tela

principal

Transferência

Permite fazer uma transferência de uma conta para a outra.

O primeiro passo é informar qual conta será debitada juntamente da senha.

Se a senha estiver correta o usuário deve informar o valor da transferência e a conta a

ser creditada. Para efetuar essa operação será preciso uma confirmação.

Após isso o usuário será direcionado a tela principal.

Empréstimo

O primeiro passo é informar o numero da conta.

Em seguida informar a senha.

Se a senha estiver correta o programa mostrará o nome e o saldo do usuário.

Será pedido para informar o valor do depósito, que deve estar entre 1 e 20mil.

Page 36: Projeto Integrado Multidisciplinar 2 Semestre

36

Após ser informado o valor do empréstimo o usuário devera informar em quantos meses

ele pretende pagar.

As opções são 12, 24, 36, 48 ou 60, quando selecionado algumas destas opções serão

gerados o montante do empréstimo realizado, seus juros e valor das prestações.

Page 37: Projeto Integrado Multidisciplinar 2 Semestre

37

8 CONCLUSÃO

Pode-se concluir que o software desenvolvido e aqui apresentado será de utilidade para

as instituições financeiras a que se destinam, uma vez que seguiu padrões de produção

amplamente divulgados.

Fora utilizada linguagem de programação denominada como C, pelo fato de ser uma

linguagem amplamente conhecida dentre os que atuam no ramo da informática.

As técnicas de engenharia de software foram aplicadas, sendo utilizadas as normas

estabelecidas, tentando se adequar ao conjunto de normas conhecidas como CMM ou

Capability Maturity Model.

As técnicas utilizadas em rede de computadores também foram objeto do

desenvolvimento. O conhecimento de protocolos de rede, bem como o calculo de endereços

ip, mascaras de sub-rede foram empregados para realizar a ligação ou conexão entre os dois

hosts que armazenarão as partes do software.

Juntamente com as técnicas de redes de computadores foram utilizadas as formulas

matemáticas que possibilitaram os cálculos necessários para o estabelecimento da rede e do

funcionamento do software.

A utilização das formulas matemáticas fizeram-se presentes durante todo

desenvolvimento do software, uma vez que trata-se de um software para controle de um caixa

eletrônico, onde se realizam inúmeras contas.

Os inúmeros testes realizados pela equipe desenvolvedora do software vem comprovar

sua funcionalidade e capacidade de atingir as necessidades do mercado financeiro.

Page 38: Projeto Integrado Multidisciplinar 2 Semestre

38

BIBLIOGRAFIA

Mizrahi, Victorine Viviane

Treinamento em linguagem C /Victorine Viviane Mizrahi, São Paulo: Pearson Prentice

Hall, 2008. 2ª Edição.

Pressman, Roger S.

Engenharia de software / Roger S. Pressman; tradução Jose Carlos Barbosa dos Santos;

revisão técnica José Carlos Maldonado, Paulo Cesar Masiero, Rosely Sanches – São

Paulo: Makron Books, 1995. 3ª Edição.

Vitório Bruno Mazzola

Engenharia de Software: Conceitos Básicos, Profº Vitório Bruno Mazzola,

INE/CTC/UFSC, Santa Catarina – 2008. Acessado via internet, disponível em

HTTP:WWW.inf.ufsc.br/~jbosco.doc. Acesso em 10 de novembro de 2012.

Adalberto A. Dornelles F.,

Senai, Conselho Regional, Fundamentos de Linguagem C, Adalberto A Dornelles F.,

Caxias do Sul, 1997. Acessado via internet, disponível em

http://www.dca.ufrn.br/~xamd/dca0800/apostila_C.pdf. Acesso em 10 de novembro de

2012.

Andrew S. Tanenbaum

Redes de Computadores, Andrew S. Tanenbaum, J.Wetherall, David. São Paulo, 2011,

Pearson Education - Br, 5ª Edição.