Projeto Integrado Multidisciplinar 2 Semestre
-
Upload
samuel-zambon -
Category
Documents
-
view
71 -
download
0
Transcript of 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
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
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
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.
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
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
8 CONCLUSÃO ............................................................................................................. 37
BIBLIOGRAFIA ............................................................................................................ 38
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.
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
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;
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;}
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.
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
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.
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.
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)
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
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.
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)
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
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.
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.
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.
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.
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.
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
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.
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
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
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:
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.
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).
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.
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.
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.
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.
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.
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.