@ -1,129 +0,0 @@ |
|||
#Linear Regression |
|||
|
|||
#Import Library |
|||
#Import other necessary libraries like pandas, numpy... |
|||
from sklearn import linear_model |
|||
#Load Train and Test datasets |
|||
#Identify feature and response variable(s) and values must be numeric and numpy arrays |
|||
x_train=input_variables_values_training_datasets |
|||
y_train=target_variables_values_training_datasets |
|||
x_test=input_variables_values_test_datasets |
|||
# Create linear regression object |
|||
linear = linear_model.LinearRegression() |
|||
# Train the model using the training sets and check score |
|||
linear.fit(x_train, y_train) |
|||
linear.score(x_train, y_train) |
|||
#Equation coefficient and Intercept |
|||
print('Coefficient: \n', linear.coef_) |
|||
print('Intercept: \n', linear.intercept_) |
|||
#Predict Output |
|||
predicted= linear.predict(x_test) |
|||
|
|||
|
|||
|
|||
#Logistic Regression |
|||
|
|||
|
|||
#Import Library |
|||
from sklearn.linear_model import LogisticRegression |
|||
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset |
|||
# Create logistic regression object |
|||
model = LogisticRegression() |
|||
# Train the model using the training sets and check score |
|||
model.fit(X, y) |
|||
model.score(X, y) |
|||
#Equation coefficient and Intercept |
|||
print('Coefficient: \n', model.coef_) |
|||
print('Intercept: \n', model.intercept_) |
|||
#Predict Output |
|||
predicted= model.predict(x_test) |
|||
|
|||
|
|||
|
|||
|
|||
#Decision Tree |
|||
#Import Library |
|||
#Import other necessary libraries like pandas, numpy... |
|||
from sklearn import tree |
|||
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset |
|||
# Create tree object |
|||
model = tree.DecisionTreeClassifier(criterion='gini') # for classification, here you can change the algorithm as gini or entropy (information gain) by default it is gini |
|||
# model = tree.DecisionTreeRegressor() for regression |
|||
# Train the model using the training sets and check score |
|||
model.fit(X, y) |
|||
model.score(X, y) |
|||
#Predict Output |
|||
predicted= model.predict(x_test) |
|||
|
|||
|
|||
#SVM |
|||
|
|||
#Import Library |
|||
from sklearn import svm |
|||
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset |
|||
# Create SVM classification object |
|||
model = svm.svc() # there is various option associated with it, this is simple for classification. You can refer link, for mo# re detail. |
|||
# Train the model using the training sets and check score |
|||
model.fit(X, y) |
|||
model.score(X, y) |
|||
#Predict Output |
|||
predicted= model.predict(x_test) |
|||
|
|||
# Naive Bayes |
|||
|
|||
#Import Library |
|||
from sklearn.naive_bayes import GaussianNB |
|||
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset |
|||
# Create SVM classification object model = GaussianNB() # there is other distribution for multinomial classes like Bernoulli Naive Bayes, Refer link |
|||
# Train the model using the training sets and check score |
|||
model.fit(X, y) |
|||
#Predict Output |
|||
predicted= model.predict(x_test) |
|||
|
|||
#kNN (k- Nearest Neighbors) |
|||
|
|||
#Import Library |
|||
from sklearn.neighbors import KNeighborsClassifier |
|||
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset |
|||
# Create KNeighbors classifier object model |
|||
KNeighborsClassifier(n_neighbors=6) # default value for n_neighbors is 5 |
|||
# Train the model using the training sets and check score |
|||
model.fit(X, y) |
|||
#Predict Output |
|||
predicted= model.predict(x_test) |
|||
|
|||
#K-Means |
|||
#Import Library |
|||
from sklearn.cluster import KMeans |
|||
#Assumed you have, X (attributes) for training data set and x_test(attributes) of test_dataset |
|||
# Create KNeighbors classifier object model |
|||
k_means = KMeans(n_clusters=3, random_state=0) |
|||
# Train the model using the training sets and check score |
|||
model.fit(X) |
|||
#Predict Output |
|||
predicted= model.predict(x_test) |
|||
|
|||
#Random Forest |
|||
|
|||
#Import Library |
|||
from sklearn.ensemble import RandomForestClassifier |
|||
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset |
|||
# Create Random Forest object |
|||
model= RandomForestClassifier() |
|||
# Train the model using the training sets and check score |
|||
model.fit(X, y) |
|||
#Predict Output |
|||
predicted= model.predict(x_test) |
|||
|
|||
#Dimensionality Reduction Algorithms |
|||
|
|||
#Import Library |
|||
from sklearn import decomposition |
|||
#Assumed you have training and test data set as train and test |
|||
# Create PCA obeject pca= decomposition.PCA(n_components=k) #default value of k =min(n_sample, n_features) |
|||
# For Factor analysis |
|||
#fa= decomposition.FactorAnalysis() |
|||
# Reduced the dimension of training dataset using PCA |
|||
train_reduced = pca.fit_transform(train) |
|||
#Reduced the dimension of test dataset |
|||
test_reduced = pca.transform(test) |
@ -1,85 +0,0 @@ |
|||
#Linear Regression |
|||
|
|||
#Load Train and Test datasets |
|||
#Identify feature and response variable(s) and values must be numeric and numpy arrays |
|||
x_train <- input_variables_values_training_datasets |
|||
y_train <- target_variables_values_training_datasets |
|||
x_test <- input_variables_values_test_datasets |
|||
x <- cbind(x_train,y_train) |
|||
# Train the model using the training sets and check score |
|||
linear <- lm(y_train ~ ., data = x) |
|||
summary(linear) |
|||
#Predict Output |
|||
predicted= predict(linear,x_test) |
|||
|
|||
#Logistic Regression |
|||
|
|||
x <- cbind(x_train,y_train) |
|||
# Train the model using the training sets and check score |
|||
logistic <- glm(y_train ~ ., data = x,family='binomial') |
|||
summary(logistic) |
|||
#Predict Output |
|||
predicted= predict(logistic,x_test) |
|||
|
|||
#Decision tree |
|||
|
|||
library(rpart) |
|||
x <- cbind(x_train,y_train) |
|||
# grow tree |
|||
fit <- rpart(y_train ~ ., data = x,method="class") |
|||
summary(fit) |
|||
#Predict Output |
|||
predicted= predict(fit,x_test) |
|||
|
|||
|
|||
#SVM |
|||
|
|||
library(e1071) |
|||
x <- cbind(x_train,y_train) |
|||
# Fitting model |
|||
fit <-svm(y_train ~ ., data = x) |
|||
summary(fit) |
|||
#Predict Output |
|||
predicted= predict(fit,x_test) |
|||
|
|||
# Naive Bayes |
|||
|
|||
library(e1071) |
|||
x <- cbind(x_train,y_train) |
|||
# Fitting model |
|||
fit <-naiveBayes(y_train ~ ., data = x) |
|||
summary(fit) |
|||
#Predict Output |
|||
predicted= predict(fit,x_test) |
|||
|
|||
#kNN (k- Nearest Neighbors) |
|||
|
|||
library(knn) |
|||
x <- cbind(x_train,y_train) |
|||
# Fitting model |
|||
fit <-knn(y_train ~ ., data = x,k=5) |
|||
summary(fit) |
|||
#Predict Output |
|||
predicted= predict(fit,x_test) |
|||
|
|||
#K-Means |
|||
|
|||
library(cluster) |
|||
fit <- kmeans(X, 3) # 5 cluster solution |
|||
|
|||
#Random Forest |
|||
|
|||
library(randomForest) |
|||
x <- cbind(x_train,y_train) |
|||
# Fitting model |
|||
fit <- randomForest(Species ~ ., x,ntree=500) |
|||
summary(fit) |
|||
#Predict Output |
|||
predicted= predict(fit,x_test) |
|||
|
|||
#Dimensionality Reduction Algorithms |
|||
|
|||
library(stats) |
|||
pca <- princomp(train, cor = TRUE) |
|||
train_reduced <- predict(pca,train) |
|||
test_reduced <- predict(pca,test) |
@ -1,108 +0,0 @@ |
|||
''' |
|||
Created on Apr 25, 2016 |
|||
test code |
|||
@author: Wenqiang Feng |
|||
''' |
|||
import pandas as pd |
|||
#import numpy as np |
|||
import matplotlib.pyplot as plt |
|||
from pandas.tools.plotting import scatter_matrix |
|||
from docutils.parsers.rst.directives import path |
|||
|
|||
if __name__ == '__main__': |
|||
path ='~/Dropbox/MachineLearningAlgorithms/python_code/data/Heart.csv' |
|||
rawdata = pd.read_csv(path) |
|||
|
|||
print "data summary" |
|||
print rawdata.describe() |
|||
|
|||
# summary plot of the data |
|||
scatter_matrix(rawdata,figsize=[15,15]) |
|||
plt.show() |
|||
|
|||
# Histogram |
|||
rawdata.hist() |
|||
plt.show() |
|||
|
|||
# boxplot |
|||
pd.DataFrame.boxplot(rawdata) |
|||
plt.show() |
|||
|
|||
|
|||
print "Raw data size" |
|||
nrow, ncol = rawdata.shape |
|||
print nrow, ncol |
|||
|
|||
path = ('/home/feng/Dropbox/MachineLearningAlgorithms/python_code/data/' |
|||
'energy_efficiency.xlsx') |
|||
path |
|||
|
|||
rawdataEnergy= pd.read_excel(path,sheetname=0) |
|||
|
|||
nrow=rawdata.shape[0] #gives number of row count |
|||
ncol=rawdata.shape[1] #gives number of col count |
|||
print nrow, ncol |
|||
col_names = rawdata.columns.tolist() |
|||
print "Column names:" |
|||
print col_names |
|||
print "Data Format:" |
|||
print rawdata.dtypes |
|||
|
|||
print "\nSample data:" |
|||
print(rawdata.head(6)) |
|||
|
|||
|
|||
print "\n correlation Matrix" |
|||
print rawdata.corr() |
|||
|
|||
# cocorrelation Matrix plot |
|||
pd.DataFrame.corr(rawdata) |
|||
plt.show() |
|||
|
|||
print "\n covariance Matrix" |
|||
print rawdata.cov() |
|||
|
|||
print rawdata[['Age','Ca']].corr() |
|||
pd.DataFrame.corr(rawdata) |
|||
plt.show() |
|||
|
|||
|
|||
|
|||
# define colors list, to be used to plot survived either red (=0) or green (=1) |
|||
colors=['red','green'] |
|||
|
|||
# make a scatter plot |
|||
|
|||
# rawdata.info() |
|||
|
|||
from scipy import stats |
|||
import seaborn as sns # just a conventional alias, don't know why |
|||
sns.corrplot(rawdata) # compute and plot the pair-wise correlations |
|||
# save to file, remove the big white borders |
|||
#plt.savefig('attribute_correlations.png', tight_layout=True) |
|||
plt.show() |
|||
|
|||
|
|||
attr = rawdata['Age'] |
|||
sns.distplot(attr) |
|||
plt.show() |
|||
|
|||
sns.distplot(attr, kde=False, fit=stats.gamma); |
|||
plt.show() |
|||
|
|||
# Two subplots, the axes array is 1-d |
|||
plt.figure(1) |
|||
plt.title('Histogram of Age') |
|||
plt.subplot(211) # 21,1 means first one of 2 rows, 1 col |
|||
sns.distplot(attr) |
|||
|
|||
plt.subplot(212) # 21,2 means second one of 2 rows, 1 col |
|||
sns.distplot(attr, kde=False, fit=stats.gamma); |
|||
|
|||
plt.show() |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
@ -1,83 +0,0 @@ |
|||
rm(list = ls()) |
|||
# set the enverionment |
|||
path ='~/Dropbox/MachineLearningAlgorithms/python_code/data/Heart.csv' |
|||
rawdata = read.csv(path) |
|||
|
|||
# summary of the data |
|||
summary(rawdata) |
|||
# plot of the summary |
|||
plot(rawdata) |
|||
|
|||
dim(rawdata) |
|||
head(rawdata) |
|||
tail(rawdata) |
|||
|
|||
colnames(rawdata) |
|||
attach(rawdata) |
|||
|
|||
# get numerical data and remove NAN |
|||
numdata=na.omit(rawdata[,c(1:2,4:12)]) |
|||
|
|||
cor(numdata) |
|||
cov(numdata) |
|||
|
|||
dev.off() |
|||
# laod cocorrelation Matrix plot lib |
|||
library(corrplot) |
|||
M <- cor(numdata) |
|||
#par(mfrow =c (1,2)) |
|||
#corrplot(M, method = "square") |
|||
corrplot.mixed(M) |
|||
|
|||
|
|||
nrow=nrow(rawdata) |
|||
ncol=ncol(rawdata) |
|||
c(nrow, ncol) |
|||
|
|||
|
|||
|
|||
Nvars=ncol(numdata) |
|||
# checking data format |
|||
typeof(rawdata) |
|||
install.packages("mlbench") |
|||
library(mlbench) |
|||
sapply(rawdata, class) |
|||
|
|||
dev.off() |
|||
name=colnames(numdata) |
|||
Nvars=ncol(numdata) |
|||
# boxplot |
|||
par(mfrow =c (4,3)) |
|||
for (i in 1:Nvars) |
|||
{ |
|||
#boxplot(numdata[,i]~numdata[,Nvars],data=data,main=name[i]) |
|||
boxplot(numdata[,i],data=numdata,main=name[i]) |
|||
} |
|||
|
|||
# Histogram with normal curve plot |
|||
dev.off() |
|||
Nvars=ncol(numdata) |
|||
name=colnames(numdata) |
|||
par(mfrow =c (3,5)) |
|||
for (i in 1:Nvars) |
|||
{ |
|||
x<- numdata[,i] |
|||
h<-hist(x, breaks=10, freq=TRUE, col="blue", xlab=name[i],main=" ", |
|||
font.lab=1) |
|||
axis(1, tck=1, col.ticks="light gray") |
|||
axis(1, tck=-0.015, col.ticks="black") |
|||
axis(2, tck=1, col.ticks="light gray", lwd.ticks="1") |
|||
axis(2, tck=-0.015) |
|||
xfit<-seq(min(x),max(x),length=40) |
|||
yfit<-dnorm(xfit,mean=mean(x),sd=sd(x)) |
|||
yfit <- yfit*diff(h$mids[1:2])*length(x) |
|||
lines(xfit, yfit, col="blue", lwd=2) |
|||
} |
|||
|
|||
|
|||
library(reshape2) |
|||
library(ggplot2) |
|||
d <- melt(diamonds[,-c(2:4)]) |
|||
ggplot(d,aes(x = value)) + |
|||
facet_wrap(~variable,scales = "free_x") + |
|||
geom_histogram() |
@ -1,20 +0,0 @@ |
|||
#LinearRegression] |
|||
|
|||
#Import Library |
|||
#Import other necessary libraries like pandas, numpy... |
|||
from sklearn import linear_model |
|||
#Load Train and Test datasets |
|||
#Identify feature and response variable(s) and values must be numeric and numpy arrays |
|||
x_train=input_variables_values_training_datasets |
|||
y_train=target_variables_values_training_datasets |
|||
x_test=input_variables_values_test_datasets |
|||
# Create linear regression object |
|||
linear = linear_model.LinearRegression() |
|||
# Train the model using the training sets and check score |
|||
linear.fit(x_train, y_train) |
|||
linear.score(x_train, y_train) |
|||
#Equation coefficient and Intercept |
|||
print('Coefficient: \n', linear.coef_) |
|||
print('Intercept: \n', linear.intercept_) |
|||
#Predict Output |
|||
predicted= linear.predict(x_test) |
Before Width: | Height: | Size: 26 KiB |
@ -1,25 +0,0 @@ |
|||
\begin{thebibliography}{1} |
|||
|
|||
\bibitem{robust} |
|||
|
|||
|
|||
\bibitem{mirex} |
|||
|
|||
|
|||
\bibitem{hybrid} |
|||
|
|||
|
|||
\bibitem{cuckoo} |
|||
Wenlei Shi and Xinhai Fan. |
|||
\newblock Speech classification based on cuckoo algorithm and support vector |
|||
machines. |
|||
\newblock {\em 2nd IEEE International Conference on Computational Intelligence |
|||
and Applications}, 2017. |
|||
|
|||
\bibitem{radio} |
|||
Błażej~Chwiećko Stanisław~Kacprzak and Bartosz Ziółko. |
|||
\newblock Speech/music discrimination for analysis of radio stations. |
|||
\newblock {\em 2017 International Conference on Systems, Signals and Image |
|||
Processing (IWSSIP)}, 2017. |
|||
|
|||
\end{thebibliography} |
@ -1,82 +0,0 @@ |
|||
This is BibTeX, Version 0.99d (TeX Live 2017/Debian) |
|||
Capacity: max_strings=100000, hash_size=100000, hash_prime=85009 |
|||
The top-level auxiliary file: main.aux |
|||
The style file: plain.bst |
|||
Database file #1: cites.bib |
|||
I was expecting a `,' or a `}'---line 22 of file cites.bib |
|||
: |
|||
: ) |
|||
(Error may have been on previous line) |
|||
I'm skipping whatever remains of this entry |
|||
I was expecting a `,' or a `}'---line 25 of file cites.bib |
|||
: |
|||
: title = "ROBUST SPEECH / MUSIC CLASSIFICATION IN AUDIO DOCUMENTS" |
|||
(Error may have been on previous line) |
|||
I'm skipping whatever remains of this entry |
|||
I was expecting a `,' or a `}'---line 32 of file cites.bib |
|||
: |
|||
: title = "METHODS FOR SPEECH / MUSIC DETECTION AND CLASSIFICATION" |
|||
(Error may have been on previous line) |
|||
I'm skipping whatever remains of this entry |
|||
I was expecting a `,' or a `}'---line 39 of file cites.bib |
|||
: |
|||
: title = "Speech/Music Discrimination using Hybrid-Based Feature Extraction for Audio Data Indexing" |
|||
(Error may have been on previous line) |
|||
I'm skipping whatever remains of this entry |
|||
Warning--to sort, need author or key in robust |
|||
Warning--to sort, need author or key in mirex |
|||
Warning--to sort, need author or key in hybrid |
|||
Warning--empty author in robust |
|||
Warning--empty title in robust |
|||
Warning--empty journal in robust |
|||
Warning--empty year in robust |
|||
Warning--empty author in mirex |
|||
Warning--empty title in mirex |
|||
Warning--empty journal in mirex |
|||
Warning--empty year in mirex |
|||
Warning--empty author in hybrid |
|||
Warning--empty title in hybrid |
|||
Warning--empty journal in hybrid |
|||
Warning--empty year in hybrid |
|||
You've used 5 entries, |
|||
2118 wiz_defined-function locations, |
|||
509 strings with 4398 characters, |
|||
and the built_in function-call counts, 965 in all, are: |
|||
= -- 76 |
|||
> -- 29 |
|||
< -- 0 |
|||
+ -- 13 |
|||
- -- 8 |
|||
* -- 77 |
|||
:= -- 144 |
|||
add.period$ -- 9 |
|||
call.type$ -- 5 |
|||
change.case$ -- 16 |
|||
chr.to.int$ -- 0 |
|||
cite$ -- 20 |
|||
duplicate$ -- 50 |
|||
empty$ -- 89 |
|||
format.name$ -- 8 |
|||
if$ -- 187 |
|||
int.to.chr$ -- 0 |
|||
int.to.str$ -- 5 |
|||
missing$ -- 5 |
|||
newline$ -- 22 |
|||
num.names$ -- 4 |
|||
pop$ -- 40 |
|||
preamble$ -- 1 |
|||
purify$ -- 14 |
|||
quote$ -- 0 |
|||
skip$ -- 37 |
|||
stack$ -- 0 |
|||
substring$ -- 25 |
|||
swap$ -- 2 |
|||
text.length$ -- 0 |
|||
text.prefix$ -- 0 |
|||
top$ -- 0 |
|||
type$ -- 20 |
|||
warning$ -- 15 |
|||
while$ -- 4 |
|||
width$ -- 6 |
|||
write$ -- 34 |
|||
(There were 4 error messages) |
@ -1,60 +0,0 @@ |
|||
% !TeX spellcheck = el_GR-en_US |
|||
\documentclass[11pt]{article} |
|||
\usepackage{geometry} |
|||
\geometry{a4paper, top=2.5cm, bottom=2.5cm, left=2.2cm, |
|||
right=2.2cm} |
|||
\usepackage{fontspec} |
|||
\usepackage{titlesec} |
|||
\usepackage{titling} |
|||
\usepackage{float} |
|||
\usepackage{subcaption} |
|||
\usepackage[nonumeralsign]{xgreek} |
|||
\usepackage{fancyhdr} |
|||
\usepackage{hyperref} |
|||
\usepackage{enumitem} |
|||
\usepackage{cite} |
|||
\usepackage{multirow} |
|||
\usepackage{graphicx} |
|||
\usepackage[normalem]{ulem} |
|||
\usepackage{float} |
|||
\restylefloat{table} |
|||
\useunder{\uline}{\ul}{} |
|||
\usepackage{amsmath} |
|||
|
|||
\setmainfont{Lato} |
|||
\setmonofont{Consolas} |
|||
|
|||
\title{Τεχνολογία Ήχου και Εικόνας 2018\\ |
|||
Εργασία 2018-2019} |
|||
\author{Χριστίνα Θεοδωρίδου - 8055\\ |
|||
Φρανκ Μπλάννινγκ - 6698\\ |
|||
Αποστόλης Φανάκης - 8261} |
|||
\date{\today} |
|||
|
|||
\pagestyle{fancy} |
|||
\lhead{Τεχνολογία Ήχου και Εικόνας 2018} |
|||
\rhead{~σ} |
|||
\renewcommand{\headrulewidth}{0.4pt} |
|||
\renewcommand{\footrulewidth}{0.4pt} |
|||
\setlength{\headheight}{14pt} |
|||
|
|||
\hypersetup{colorlinks=true, linkcolor=black, urlcolor=blue, citecolor=blue} |
|||
\urlstyle{same} |
|||
|
|||
\begin{document} |
|||
|
|||
\maketitle |
|||
\tableofcontents |
|||
|
|||
\newpage |
|||
|
|||
\input{intro.tex} |
|||
\input{2.past_implementations.tex} |
|||
% \input{3.our_implementation.tex} |
|||
\input{features_and_preprocessing.tex} |
|||
\input{models.tex} |
|||
|
|||
\bibliographystyle{ieeetr} |
|||
\bibliography{cites}{} |
|||
|
|||
\end{document} |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 326 KiB |
Before Width: | Height: | Size: 423 KiB |
Before Width: | Height: | Size: 356 KiB |
Before Width: | Height: | Size: 380 KiB |
Before Width: | Height: | Size: 352 KiB |
Before Width: | Height: | Size: 348 KiB |
Before Width: | Height: | Size: 487 KiB |
Before Width: | Height: | Size: 320 KiB |
Before Width: | Height: | Size: 339 KiB |
Before Width: | Height: | Size: 314 KiB |
Before Width: | Height: | Size: 334 KiB |
Before Width: | Height: | Size: 296 KiB |
Before Width: | Height: | Size: 434 KiB |
Before Width: | Height: | Size: 462 KiB |
Before Width: | Height: | Size: 430 KiB |
@ -1,154 +0,0 @@ |
|||
\subsection{Στόχος του εγγράφου} |
|||
|
|||
Ακολουθώντας τα στάδια ανάπτυξης λογισμικού, στα προηγούμενα έγγραφα, |
|||
το “Έγγραφο Απαιτήσεων Χρηστών” και το “Έγγραφο Απαιτήσεων |
|||
Λογισμικού”, καθορίστηκαν όσο το δυνατόν πιο εύστοχα οι απαιτήσεις |
|||
χρηστών και λογισμικού, αντίστοιχα. Στο παρόν έγγραφο σειρά έχει ο |
|||
αρχιτεκτονικός σχεδιασμός του συστήματος. |
|||
|
|||
Αρχικά σημαντική προϋπόθεση για την σχεδίαση του συστήματος είναι η |
|||
δυναμική μοντελοποίηση του συστήματος Robobar με τον πλέον λεπτομερή |
|||
τρόπο. Αυτός είναι η παρουσίαση των ροών που περιγράφουν το πώς οι |
|||
κλάσεις που αναπτυχτήκαν κατά τη στατική μοντελοποίηση των κλάσεων |
|||
ικανοποιούν τα σενάρια χρήσης που δημιουργήθηκαν στο έγγραφο |
|||
απαιτήσεων χρηστών. Η δημιουργία δηλαδή των διαγραμμάτων ροών για την |
|||
εκτενή περιγραφή της συμπεριφοράς του συστήματος κατά την εκτέλεση των |
|||
λειτουργιών του αλλά και κατά την αλληλεπίδραση με τους χρήστες και τα |
|||
εξωτερικά συστήματα. |
|||
|
|||
Επιπλέον η αποδόμηση του συστήματος σε υποσυστήματα αποτελεί πάγια |
|||
τακτική για την ανάπτυξη ενός λογισμικού και επιτυγχάνεται με την εξής |
|||
διαδικασία: το υπάρχον σύστημα διαιρείται σε υποσυστήματα, τα οποία |
|||
αλληλεπιδρούν. Στη συνέχεια επιλέγεται η κατάλληλη αρχιτεκτονική ώστε |
|||
να έχουμε το καλύτερο δυνατό αποτέλεσμα ως προς την επικοινωνία μεταξύ |
|||
των υποσυστημάτων αλλά και τη λειτουργικότητα συστήματος. |
|||
|
|||
Τέλος στο παρόν έγγραφο γίνεται μία λεπτομερής ανάλυση της |
|||
αρχιτεκτονικής του συστήματος Robobar, με γνώμονα τις απαιτήσεις |
|||
χρηστών και λογισμικού που περιγράφτηκαν στα δύο προηγούμενα |
|||
έγγραφα. Τα δομικά στοιχεία του συστήματος, ο τρόπος που επικοινωνούν |
|||
μεταξύ τους και τυχόν περιορισμοί που πρέπει να ληφθούν υπόψιν, |
|||
αποτελούν μέρη της ανάλυσης αυτής. |
|||
|
|||
|
|||
\subsection{Αντικείμενο του Λογισμικού} |
|||
|
|||
Το λογισμικό Robobar έχει ως αντικείμενο το σύνολο των δραστηριοτήτων |
|||
που χρειάζονται ώστε να λειτουργήσει ένα μπαρ. Αναλυτικότερα, το |
|||
λογισμικό RoboBar έχει ως στόχο την γρήγορη και εύκολη εξυπηρέτηση των |
|||
πελατών ενός μπαρ. |
|||
|
|||
Το σύστημα αλληλεπιδρά με δυο είδη χρηστών τους απλούς |
|||
χρήστες-εργαζόμενους του μπαρ και των διαχειριστών. Ο χρήστης μπορεί |
|||
να δεχτεί μια παραγγελία από τους πελάτες του μπαρ από το υπάρχον |
|||
μενού ,όπως επίσης έχει την δυνατότητα να ενημερωθεί ή να επιλέξει την |
|||
ακύρωση μιας εκκρεμής παραγγελίας ανάλογα με το τι θα ζητηθεί από τους |
|||
πελάτες. Ο διαχειριστής του συστήματος έχει όλες τις παραπάνω |
|||
δυνατότητες και επιπλέον μπορεί να επεξεργαστεί το μενού του |
|||
καταστήματος δηλαδή να προσθέσει η να αναιρέσει συνταγές και υλικά. |
|||
|
|||
Οι παραπάνω λειτουργίες του συστήματος RoboBar εξυπηρετούνται με χρήση |
|||
μια βάσης δεδομένων που περιέχει όλα τα απαραίτητα δεδομένα, καθώς και |
|||
ενός ρομπότ ΝΑΟ το οποίο εκτελεί τις παραγγελίες των πελατών. |
|||
|
|||
|
|||
|
|||
\subsection{Ορισμοί, Ακρωνύμια, Συντομεύσεις} |
|||
|
|||
\begin{itemize}[noitemsep,nolistsep] |
|||
\item ΟΑ: Ομάδα Ανάπτυξης |
|||
\item GUI: Graphical User Interface (Γραφική Διεπαφή Χρήστη) |
|||
\item SQL: Structured Query Language |
|||
\item MySQL: Σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων |
|||
\item Client: Πελάτης |
|||
\item Server: Εξυπηρετητής |
|||
\item Client-‐Server: Πελάτης-‐Εξυπηρετητής |
|||
\item DB: Βάση Δεδομένων |
|||
\item UI: User Interface |
|||
\item UML: Unified Modeling Language |
|||
\item API: Application Programming Interface |
|||
\end{itemize} |
|||
|
|||
|
|||
\subsection{Τυπογραφικές παραδοχές του εγγράφου} |
|||
|
|||
|
|||
Το κείμενο του παρόντος εγγράφου είναι γραμμένο με γραμματοσειρά |
|||
Baskerville, μεγέθους 11pt και διάστιχο 1.15. Οι επικεφαλίδες του |
|||
εγγράφου έχουν μέγεθος 14pt και o τίτλος κάθε κεφαλαίο 13pt σε |
|||
γραμματοσειρά Naxos. Οι απαιτήσεις στο κεφάλαιο 2 ονομάζονται και |
|||
αριθμούνται κατάλληλα και, επίσης, συντάσσονται με την αρμόζουσα |
|||
μορφή. |
|||
|
|||
|
|||
\subsection{Στόχοι Σχεδίασης} |
|||
|
|||
Στόχος της σχεδίασης του συστήματος είναι η ικανοποίηση των τριών |
|||
διαφορετικών ομάδων φυσικών προσώπων που σχετίζονται με αυτό: του |
|||
πελάτη, του τελικού χρήστη και του προγραμματιστή |
|||
|
|||
Πελάτης του συστήματος μπορεί να θεωρηθεί ο ιδιοκτήτης μιας εταιρείας |
|||
ανάπτυξης, διαχείρισης και πώλησης εφαρμογών ή και κάποιο γραφείο |
|||
ευρέσεως εργασίας. Όπως είναι λογικό, ο πελάτης, επιθυμεί το προϊόν να |
|||
έχει χαμηλό κόστος, συμβατότητα, , να παρακολουθεί τις λειτουργικές |
|||
και μη απαιτήσεις που έχουν τεθεί και η ανάπτυξη του να είναι όσο το |
|||
δυνατόν πιο γρήγορη. |
|||
|
|||
Ο τελικός χρήστης επιθυμεί το σύστημα να είναι χρηστικό, φιλικό προς |
|||
αυτόν και η διαδικασία εκμάθησής του να είναι απλή, εύκολη και |
|||
γρήγορη. Ακόμα, θέλει η λειτουργία του συστήματος να είναι ευσταθής, |
|||
να ανέχεται σφάλματα και συνεπώς να είναι αποδοτική. |
|||
|
|||
Επίσης, ο προγραμματιστής του συστήματος, (ή ο συντηρητής) έχει την |
|||
απαίτηση, να μην παρουσιάζονται σφάλματα στο σύστημα, να προσαρμόζεται |
|||
εύκολα και γρήγορα σε μεταβολές, τροποποιήσεις και αναβαθμίσεις |
|||
λογισμικού και ακόμα ο διαχωρισμός των υποσυστημάτων να είναι σωστός |
|||
και ορισμένος με σαφήνεια. |
|||
|
|||
|
|||
\subsection{Αναγνωστικό κοινό και τρόπος ανάγνωσης} |
|||
|
|||
Το έγγραφο αυτό γράφτηκε για συγκεκριμένες ομάδες ανθρώπων προκειμένου |
|||
να μελετηθούν και να σχεδιαστούν τα χαρακτηριστικά του συστήματος και |
|||
στη συνέχεια να γίνει ο προγραμματισμός και η υλοποίηση της |
|||
εφαρμογής. Οι βασικοί αναγνώστες του συγκεκριμένου εγγράφου θα είναι: |
|||
\begin{itemize} |
|||
\item Προϊστάμενοι καθώς και ορισμένοι αρμόδιοι μηχανικοί |
|||
λογισμικού των εταιριών ανάπτυξης ανάλογων εφαρμογών |
|||
\item Προγραμματιστές που θα αναλάβουν τη συγγραφή του κώδικα |
|||
ο οποίος θα υλοποιεί το σύστημα |
|||
\item Μηχανικοί λογισμικού που θα αναλάβουν τη συντήρηση του |
|||
συστήματος. |
|||
\item Μηχανικοί υλικού που θα αναλάβουν το σχεδιασμό και την |
|||
εγκατάσταση των συστημάτων που ικανοποιούν τις τεχνολογικές απαιτήσεις |
|||
του έργου |
|||
\end{itemize} |
|||
|
|||
Αρχικά, είναι σημαντικό να αναφερθεί ότι για την ευκολότερη κατανόηση |
|||
και αποτελεσματική ανάγνωση του έγγραφου αποτελεί σημαντική προϋπόθεση |
|||
να έχει προηγηθεί η ανάγνωση των δύο προηγουμένων εγγράφων, αυτού των |
|||
απαιτήσεων χρηστών και αυτού των απαιτήσεων λογισμικού. |
|||
|
|||
Επιπροσθέτως, η ανάγνωση των κεφαλαίων θα πρέπει να γίνει με τη σειρά |
|||
που υπάρχουν στο έγγραφο για να μη δημιουργηθούν προβλήματα στην |
|||
κατανόηση του. |
|||
|
|||
\subsection{Επισκόπηση Εγγράφου} |
|||
|
|||
\begin{itemize}[noitemsep,nolistsep] |
|||
\item \textbf{ΚΕΦΑΛΑΙΟ 1}: Το κεφάλαιο αυτό αποτελεί μια |
|||
εισαγωγή που περιλαμβάνει γενικές πληροφορίες για το περιεχόμενο του |
|||
εγγράφου καθώς και για τα κεφάλαια που ακολουθούν. |
|||
\item \textbf{ΚΕΦΑΛΑΙΟ 2}:Στο κεφάλαιο αυτό παρουσιάζεται η |
|||
δυναμική μοντελοποίηση του συστήματος Robobar |
|||
\item \textbf{ΚΕΦΑΛΑΙΟ 3}: Στο κεφάλαιο αυτό γίνεται αναλυτική |
|||
περιγραφή και παρουσίαση της αρχιτεκτονικής του συστήματος . |
|||
\item \textbf{ΚΕΦΑΛΑΙΟ 4}:Στο τέταρτο κεφάλαιο γίνεται η |
|||
αποδόμηση του συστήματος σε υποσυστήματα, σύμφωνα με την αρχιτεκτονική |
|||
που επιλέχθηκε και περιγράφηκε στο τρίτο κεφάλαιο. Επιπλέον |
|||
περιλαμβάνει λεπτομερή διαγράμματα της διασύνδεσης μεταξύ των |
|||
υποσυστημάτων, ώστε να δοθεί στον αναγνώστη μια πλήρη και παραστατική |
|||
εικόνα για την αρχιτεκτονική του συστήματος. Τέλος αναλύονται θέματα |
|||
γενικού ελέγχου, ασφάλειας, πρόσβασης και οριακών συνθηκών στα οποία |
|||
πρέπει να δοθεί ιδιαίτερη προσοχή. |
|||
\end{itemize} |
@ -1,12 +0,0 @@ |
|||
.PHONY: main.pdf all clean |
|||
|
|||
all: main.pdf |
|||
|
|||
FLAGS = -pdf -pdflatex="xelatex" -use-make \
|
|||
-quiet -synctex=1 |
|||
|
|||
main.pdf: main.tex |
|||
latexmk $(FLAGS) main.tex #; skimview $@ |
|||
|
|||
clean: |
|||
latexmk -CA |
@ -1,105 +0,0 @@ |
|||
{% !TeX spellcheck = el_GR-en_US |
|||
\documentclass[11pt]{article} |
|||
\usepackage{geometry} |
|||
\geometry{a4paper, top=2.5cm, bottom=2.5cm, left=2.2cm, |
|||
right=2.2cm} |
|||
\usepackage{fontspec} |
|||
\usepackage{graphicx} |
|||
\usepackage{titlesec} |
|||
\usepackage{titling} |
|||
\usepackage{float} |
|||
\usepackage{caption} |
|||
\usepackage{subcaption} |
|||
\usepackage[nonumeralsign]{xgreek} |
|||
\usepackage{siunitx} |
|||
\usepackage{fancyhdr} |
|||
\usepackage{hhline} |
|||
\usepackage{hyperref} |
|||
\usepackage[export]{adjustbox} |
|||
\usepackage{enumitem} |
|||
\usepackage{amsmath} |
|||
\usepackage{amsfonts} |
|||
\usepackage{amssymb} |
|||
\usepackage{array} |
|||
|
|||
\setmainfont{Baskerville} |
|||
\setmonofont{Consolas} |
|||
\newfontfamily\titlefont{Helvetica} |
|||
\newfontfamily\headingfont{Helvetica Bold} |
|||
|
|||
\titleformat*{\section}{\large\headingfont} |
|||
\titleformat*{\subsection}{\small\headingfont} |
|||
|
|||
\graphicspath{ {./Images/} } |
|||
|
|||
\date{\today} |
|||
|
|||
\pagestyle{fancy} |
|||
\lhead{Robobar} |
|||
\rhead{Team 13} |
|||
\renewcommand{\headrulewidth}{0.4pt} |
|||
\renewcommand{\footrulewidth}{0.4pt} |
|||
\setlength{\headheight}{14pt} |
|||
|
|||
\fancypagestyle{firstpage}{% |
|||
\lhead{ |
|||
\titlefont \scriptsize |
|||
% \includegraphics[width=.14\linewidth, valign=c ]{LogoAUTH.ai} |
|||
\begin{tabular}{l} |
|||
\textbf{Τεχνολογία Λογισμικού}\\Τομέας Ηλεκτρονικής και |
|||
Υπολογιστών\\Τμήμα Ηλεκτρολόγων Μηχανικών και\\Μηχανικών |
|||
Υπολογιστών Α.Π.Θ |
|||
\end{tabular} |
|||
} |
|||
\rhead{\titlefont \scriptsize 8ο Εξάμηνο - Άνοιξη 2018} |
|||
\setlength{\headheight}{100pt} |
|||
} |
|||
|
|||
\hypersetup{colorlinks=true, linkcolor=black ,urlcolor=blue} |
|||
\urlstyle{same} |
|||
|
|||
\begin{document} |
|||
\thispagestyle{firstpage} |
|||
|
|||
% \begin{figure}[H] |
|||
% \centering |
|||
% \includegraphics[]{logo.png} |
|||
% \end{figure} |
|||
|
|||
\begin{center} |
|||
\Large Robot Bartender for the human customer |
|||
\vspace{1cm} |
|||
|
|||
{\titlefont \Huge Σχεδίαση Συστήματος} |
|||
\end{center} |
|||
|
|||
\vspace{5cm} |
|||
\vfill |
|||
|
|||
\begin{flushright} |
|||
\titlefont \footnotesize |
|||
\begin{tabular}{r l} |
|||
Θεοδωρίδου Χριστίνα&christtk@auth.gr\\ |
|||
Μπλάννινγκ Φρανκ&frankgou@ece.auth.gr\\ |
|||
Παρασκευαΐδης Κωνσταντίνος&konstapf@ece.auth.gr\\ |
|||
Πάρναλης-Παλαντζίδης Γιώργος&parnalis@ece.auth.gr\\ |
|||
\end{tabular} |
|||
|
|||
\large |
|||
\vspace{1.5cm} |
|||
\textbf{\today} |
|||
\vspace{.5cm} |
|||
\end{flushright} |
|||
\hrulefill |
|||
\vspace{2.5cm} |
|||
|
|||
\newpage |
|||
|
|||
\tableofcontents |
|||
% \listoffigures |
|||
|
|||
\newpage |
|||
\section{Εισαγωγή} |
|||
\input{1_Intro} |
|||
|
|||
\end{document} |
@ -0,0 +1,56 @@ |
|||
% !TeX spellcheck = el_GR-en_US |
|||
\documentclass[11pt]{article} |
|||
\usepackage{geometry} |
|||
\geometry{a4paper, top=2cm, bottom=2cm, left=2cm, right=2cm} |
|||
\usepackage{fontspec} |
|||
\usepackage{titlesec} |
|||
\usepackage{titling} |
|||
\usepackage{float} |
|||
\usepackage{subcaption} |
|||
\usepackage[nonumeralsign]{xgreek} |
|||
\usepackage{fancyhdr} |
|||
\usepackage{hyperref} |
|||
\usepackage{enumitem} |
|||
\usepackage{cite} |
|||
\usepackage{multirow} |
|||
\usepackage{graphicx} |
|||
\usepackage[normalem]{ulem} |
|||
\usepackage{float} |
|||
\restylefloat{table} |
|||
\useunder{\uline}{\ul}{} |
|||
\usepackage{amsmath} |
|||
|
|||
\setmainfont{Lato} |
|||
\setmonofont{Consolas} |
|||
|
|||
\title{Τεχνολογία Ήχου και Εικόνας 2018\\ |
|||
Εργασία 2018-2019} |
|||
\author{Χριστίνα Θεοδωρίδου - 8055\\ |
|||
Φρανκ Μπλάννινγκ - 6698\\ |
|||
Αποστόλης Φανάκης - 8261} |
|||
\date{\today} |
|||
|
|||
\pagestyle{fancy} |
|||
\lhead{Τεχνολογία Ήχου και Εικόνας 2018} |
|||
\rhead{~σ} |
|||
\renewcommand{\headrulewidth}{0.4pt} |
|||
\renewcommand{\footrulewidth}{0.4pt} |
|||
\setlength{\headheight}{14pt} |
|||
|
|||
\hypersetup{colorlinks=true, linkcolor=black, urlcolor=blue, citecolor=blue} |
|||
\urlstyle{same} |
|||
|
|||
\begin{document} |
|||
\maketitle |
|||
\tableofcontents |
|||
\newpage |
|||
|
|||
\input{1.intro.tex} |
|||
\input{2.past_implementations.tex} |
|||
% \input{3.our_implementation.tex} |
|||
\input{3.features_and_preprocessing.tex} |
|||
\input{4.models.tex} |
|||
|
|||
\bibliographystyle{ieeetr} |
|||
\bibliography{cites}{} |
|||
\end{document} |
Before Width: | Height: | Size: 326 KiB After Width: | Height: | Size: 326 KiB |
Before Width: | Height: | Size: 320 KiB After Width: | Height: | Size: 320 KiB |