-
Notifications
You must be signed in to change notification settings - Fork 1
/
TécnicaDeProgramação1.tex
224 lines (181 loc) · 11.5 KB
/
TécnicaDeProgramação1.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
\documentclass[a4paper,10pt]{article}
\usepackage[brazil]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{url}
\usepackage{graphicx}
\usepackage{subfigure}
\title{Relatório Final de Técnica de Programação 1}
\author{
Felipe Luís Pinheiro\footnote{\href{mailto:[email protected]}{[email protected]}} - 18/0052667 \and
Gabriel Teixeira da Silva\footnote{\href{mailto:[email protected]}{[email protected]}} - 170079538 \and
Paula Vycthória de Araújo Lima\footnote{\href{mailto:[email protected]}{[email protected]}} - 170112446 \and
Rodrigo Belone Ramos\footnote{\href{mailto:[email protected]}{[email protected]}} - 170071804}
\begin{document}
\maketitle
\begin{abstract}
Este relatório faz parte do processo de avaliação da disciplina Técnica de Programação 1 (117889) do Instituto de Ciências Exatas, Departamento de Ciência da Computação da Universidade de Brasília - Brasil, DF, Ministrada pelo professor Cristhian Ivan Riaño Jaimes.
Neste relatório mostramos o desenvolvimento UML de 4 projetos (Locadora de Carro, Sistema de Cinema, Sistema de Hotelaria e Locadora de Video Game) e por fim desenvolvemos o projeto ... até a sua conclusão como software completamente funcional.
\end{abstract}
\section{Introdução}
A UML tem origem na compilação das ``melhores práticas de engenharia'' que provaram ter sucesso na modelagem de sistemas grandes e complexos. Sucedeu aos conceitos de Booch, OMT (Rumbaugh) e OOSE (Jacobson) fundindo-os numa única linguagem de modelagem comum e largamente utilizada. A UML pretende ser a linguagem de modelagem padrão para modelar sistemas concorrentes e distribuídos.
A UML ainda não é um padrão da indústria, mas esse objetivo está a tomar forma sob os auspícios do Object Management Group (OMG). O OMG pediu informação acerca de metodologias orientadas a objetos que pudessem criar uma linguagem rigorosa de modelagem de software. Muitos líderes da indústria responderam na esperança de ajudar a criar o padrão. \cite{WebSite:UML}
\section{Projetos}
A seguir mostramos os 4 projetos proposto pelo professor:
\subsection{Locadora de Carro}
Parte 1: Levar em consideração os seguintes requisitos:
\begin{itemize}
\item A empresa tem muitos automóveis. Cada automóvel tem atributos como numero da placa, cor, ano, tipo de combustível, numero de portas quilometragem, RENAVAM, chassi, valor de locação, etc.
\item Cada carro tem um modelo e uma marca, mas o modelo pode relacionar-se a muitos carros, e uma marca pode referir-se a muitos modelos, embora cada modelo só tenha uma marca especifica.
\item Um carro pode ser alugado por muitos clientes, em momentos diferentes, e um cliente pode alugar muitos carros. É preciso saber quais carros estão locados ou não. Sempre que um carro for locado é preciso armazenar a data e a hora de sua locação e, quando for devolvido, a data e hora de devolução.
\end{itemize}
Parte 2: Uma locadora de carros deseja fazer um sistema para armazenar as informações das
locações que os clientes fazem. A locadora possui varias agencias (código agencia, e localidade).
É necessário registrar tanto a data, hora e agência para cada alocação como para sua devolução e
dados do cliente. A locação pode ser tanto diária (precisa de dias previstos para devolução) como
por período (aplica porcentagem de desconto dado no valor da diária). A locadora armazena
dados dos carros (modelo, placa, cor, ano e data de aquisição) e classifi ca em uma categoria para
definir seu valor de diária de locação
\subsection{Sistema de Cinema}
Requisitos gerais:
\begin{itemize}
\item Um cinema pode ter muitas salas, sendo necessário, por tanto, registrar informações a respeito de cada uma, como sua capacidade, ou seja, o numero de assentos disponíveis.
\item O cinema apresenta muitos filmes. Um filme tem informações, titulo e duração. Assim, sempre que um filme for ser apresentado, deve-se registrá-lo também.
\item Um mesmo filme pode ser apresentado em diferentes salas e em horários diferentes. Cada apresentação em uma determinada sala e horário é chamada sessão. Um filme sendo apresentado em uma sessão tem um conjunto máximo de ingressos, determinado pela capacidade da sala.
\item Os clientes do cinema podem comprar ou não ingressos para assistir a uma sessão. O
funcionário deve intermediar a compra do ingresso. Um ingresso deve conter informação
como o tipo de ingresso (Meio ingresso ou ingresso inteiro). Além disso, um cliente só pode
comprar ingressos para sessões ainda não encerradas.
\end{itemize}
\subsection{Sistema de Controle de Hotelaria}
Requisitos gerais:
\begin{itemize}
\item Os quartos podem ser alugados no momento em o hóspede chega ao hotel (desde que existam vagas) ou serem reservados via internet.
\item Caso seja a primeira vez que aluga quartos, ou seus dados tenham mudado, o hóspede deve ser cadastrado antes de finalizar o aluguel do quarto.
\item Além do aluguel do quarto, o hotel oferece diversos serviços, como restaurante, lavar e/ou passar roupa etc. Obviamente, qualquer desses serviços se solicitados, será cobrado na fatura final.
\item O hóspede pode também consumir os produtos contidos no frigobar, que também são cobrados pelo hotel.
\item As diárias vencem ao médio dia.
\item A politica do hotel exige que as diárias sejam quitadas semanalmente. Qu ando o cliente for quitar a fatura, quitará não somente as diárias do(s) quartos que alugo, mas também qualquer serviço que tenha solicitado e os itens consumidos no frigobar.
\item O hóspede, depois de quitar a fatura, pode permanecer no hotel ou encerrar sua estadia.
\item Quando fora encerrar sua estadia, o hóspede devera pagar quaisquer serviços ou diárias ainda não pagas.
\end{itemize}
\subsection{Sistema de Locadora de Jogos de Vídeo Game}
Cada jogo e consola possui seu preço diário de locação, sendo que um mesmo jogo pode ter preços de locação diferentes para cada plataforma (Xbox, PS3, PS4, PC, etc.). O cliente (nome, identidade, cpf e-mail, telefone) especifica o jogo, plataforma e dias (pode alocar vários jogos de diferentes plataformas por vários dias). A data e hora da locação são armazenadas.
\section{Projeto UML}
A partir desse momento começamos a discutir e detalhar os projetos UML descritos acima
\begin{figure}
\center
\subfigure[fig:carro:class][Diagrama de Classe]{\includegraphics[width=5cm]{SistemaDeControleDeLocadoraDeCarros/UML/Diagrama_de_classe.jpg}}
\qquad
\subfigure[fig:carro:inst][Diagrama de Instância]{\includegraphics[width=5cm]{SistemaDeControleDeLocadoraDeCarros/UML/Diagrama_de_Instancia.jpg}}
\noindent\newline
\subfigure[fig:carro:Sequencia][compra Multa]{\includegraphics[width=5cm]{SistemaDeControleDeLocadoraDeCarros/UML/Sequencia.jpg}}
\qquad
\subfigure[fig:jogo:criaConta][Cria Jogo]{\includegraphics[width=5cm]{SistemaDeControleDeLocadoraDeCarros/UML/UseCase_Diagram0.jpg}}
\caption{Locadora de Carros}
\end{figure}
\begin{figure}
\center
\subfigure[fig:hotel:class][Diagrama de Classe]{\includegraphics[width=5cm]{SistemaDeControleDeHotelaria/UML/Class_Diagram0.jpg}}
\qquad
\subfigure[fig:hotel:inst][Diagrama de Instância]{\includegraphics[width=5cm]{SistemaDeControleDeHotelaria/UML/Instance_Diagram0.jpg}}
\noindent\newline
\subfigure[fig:hotel:Sequencia][compra Multa]{\includegraphics[width=5cm]{SistemaDeControleDeHotelaria/UML/Sequence_Diagram0.jpg}}
\qquad
\subfigure[fig:hotel:criaConta][Cria Jogo]{\includegraphics[width=5cm]{SistemaDeControleDeHotelaria/UML/UseCase_Diagram0.jpg}}
\caption{Sistema de controle de Hotelaria}
\end{figure}
%\textbf{Aluguel de um Jogo}
%
%\textbf{Caso de uso Aluguel de um Jogo}\\
%Cenário principal de sucesso
%
%\begin{enumerate}
%\item Cliente navega pelo catalogo e seleciona o item para alugar
%\item Segue até a o caixa
%\item Cria conta do Cliente \label{enum:novoCliente}
%\item O cadastro do cliente é aceito
%\item Sistema apresenta informação completo do faturamento do empréstimo, incluindo preço e dias de empréstimo. \label{enum:finaliza}
%\item Cliente realiza o pagamento.
%\item Sistema registra o pagamento e autoriza o empréstimo ao cliente, é gerado recibo de empréstimo para o cliente.
%\item Cliente leva o produto por X dias
%\item Após o período de locação o cliente retorna com o jogo para devolução
%\item Sistema verifica que está no prazo \label{enum:atraso}
%\item Sistema verifica integridade dos jogos \label{enum:dano}
%\item Sistema finaliza o empréstimo e emite recibo de devolução para o cliente.
%\end{enumerate}
%
%\textbf{Extensões}
%
%(\ref{enum:novoCliente}) Se o cliente é regular
%\begin{enumerate}
%\item Cliente já possui cadastro
%\item Sistema procura por débitos anteriores.
%\begin{enumerate}
%\item Se identificado débitos anteriores, exige quitação do debito
%\item Senão autoriza a nova Locação.
%\end{enumerate}
%\item pula para item \ref{enum:finaliza}.
%\end{enumerate}
%
%(\ref{enum:atraso}) Sistema identifica que o empréstimo passou do período de locação
%\begin{enumerate}
%\item Sistema cobra multa do Cliente.
%\end{enumerate}
%
%(\ref{enum:dano}) Sistema verifica que os jogos estão danificados
%\begin{enumerate}
%\item Sistema cobra Multa do Cliente por danos ao patrimônio.
%\end{enumerate}
%
%Veja na figura \ref{fig:Jogo:casoDeUso} o diagrama de caso de uso para esse problema
\begin{figure}%
\center
\includegraphics[width=.7\columnwidth]{SistemaDeControleDeLocadoraDeJogos/UML/UseCaseDiagram.jpg}%
\caption{diagrama de uso para o sistema de controle de Jogos}%
\label{fig:Jogo:casoDeUso}%
\end{figure}
\begin{figure}
\center
\subfigure[fig:jogo:adicionaEstoque][Adiciona Estoque]{\includegraphics[width=5cm]{SistemaDeControleDeLocadoraDeJogos/UML/adicionaEstoque.jpg}}
\qquad
\subfigure[fig:jogo:cobraMulta][Cobra Multa]{\includegraphics[width=5cm]{SistemaDeControleDeLocadoraDeJogos/UML/cobraMulta.jpg}}
\noindent\newline
\subfigure[fig:jogo:compraJogo][compra Multa]{\includegraphics[width=5cm]{SistemaDeControleDeLocadoraDeJogos/UML/compraJogo.jpg}}
\qquad
\subfigure[fig:jogo:criaConta][Cria Jogo]{\includegraphics[width=5cm]{SistemaDeControleDeLocadoraDeJogos/UML/criaConta.jpg}}
\caption{Casos de uso Sistema de locadora de Jogos}
\end{figure}
\begin{figure}
\center
\subfigure[fig:jogo:devolve][Devolve Jogo]{\includegraphics[width=5cm]{SistemaDeControleDeLocadoraDeJogos/UML/devolve.jpg}}
\qquad
\subfigure[fig:jogo:escolheJogo][Escolhe Jogo]{\includegraphics[width=5cm]{SistemaDeControleDeLocadoraDeJogos/UML/escolheJogo.jpg}}
\newline\noindent
\subfigure[fig:jogo:pagaMulta][Paga MUlta]{\includegraphics[width=5cm]{SistemaDeControleDeLocadoraDeJogos/UML/pagaMulta.jpg}}
\qquad
\subfigure[fig:jogo:realizaAluguel][Realiza Aluguel]{\includegraphics[width=5cm]{SistemaDeControleDeLocadoraDeJogos/UML/realizaAluguel.jpg}}
\caption{Casos de uso Sistema de locadora de Jogos}
\end{figure}
%\subsubsection{Diagrama de Classes}
\begin{figure}%
\center
\includegraphics[width=.7\columnwidth]{SistemaDeControleDeLocadoraDeJogos/UML/ClassDiagram.jpg}%
\caption{Diagramade classe para o sistema de controle de jogos}%
\label{fig:Jogo:classDeUso}%
\end{figure}
%\subsubsection{Diagrama de Instância}
\begin{figure}%
\center
\includegraphics[width=.7\columnwidth]{SistemaDeControleDeLocadoraDeJogos/UML/InsstaceDiagram.jpg}%
\caption{Diagramade classe para o sistema de controle de jogos}%
\label{fig:Jogo:classDeUso}%
\end{figure}
%\subsubsection{Diagrama de Instâncias}
%\subsubsection{Diagrama de Sequências}
\pagebreak
\bibliographystyle{plain}
\bibliography{MyLib}
\end{document}