Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Development of a Campus Routing SystemPraxis der Software-EntwicklungIntroduction · April 24, 2013Thomas Blasius, Tamara Mchedlidze
www.kit.eduKIT – University of the State of Baden-Wuerttemberg andNational Laboratory of the Helmholtz Association
INSTITUTE OF THEORETICAL INFORMATICS · PROF. DR. DOROTHEA WAGNER
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
1. Organisation
2. Your Task
3. Tools
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Introduction of the Participants
Who are you?
Name
Previous knowledge/experience
We are . . .
Thomas Blasius Tamara Mchedlidze
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Registration
Two Modules:Praxis der Software-Entwicklung – PSE
Teamarbeit in der Software-Entwicklung – TSE
Registration via QISPOS
Registration phase: 22.4 – 20.5It is not possible to register or deregister afterwards!
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Aims
Programmingassignments ≈ 200 LOC
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Aims
Programmingassignments ≈ 200 LOC
Windows Vista ≈ 50.000.000 LOC
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Aims
Programmingassignments ≈ 200 LOC
Windows Vista ≈ 50.000.000 LOC
KDE core ≈ 4.200.000 LOC
Paint.NET ≈ 36.000 LOC
Linux kernel 3.2 ≈ 15.000.000 LOC
Mozilla Firefox ≈ 100.000 LOC
Mozilla Thunderbird ≈ 500.000 LOC
mySQL ≈ 1.000.000 LOC
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Aims
Programmingassignments ≈ 200 LOC
Windows Vista ≈ 50.000.000 LOC
KDE core ≈ 4.200.000 LOC
Paint.NET ≈ 36.000 LOC
PSE – Campus Routing System ≈ 10.000 LOC
Linux kernel 3.2 ≈ 15.000.000 LOC
Mozilla Firefox ≈ 100.000 LOC
Mozilla Thunderbird ≈ 500.000 LOC
mySQL ≈ 1.000.000 LOC
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Educational Objective
Realization of a complete software project according to softwareengineering techniques.
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Educational Objective
Realization of a complete software project according to softwareengineering techniques.
Five phases:Functional specifications document
Software design
Implementation
Validation
System acceptance
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Educational Objective
Realization of a complete software project according to softwareengineering techniques.
Practical experience in planning software and in assuring itsquality.
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Educational Objective
Realization of a complete software project according to softwareengineering techniques.
Practical experience in planning software and in assuring itsquality.
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Educational Objective
Implementation competence
Realization of a complete software project according to softwareengineering techniques.
Practical experience in planning software and in assuring itsquality.
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Educational Objective
Implementation competence
Realization of a complete software project according to softwareengineering techniques.
Practical experience in planning software and in assuring itsquality.
Stage 1: In school10 PRINT "HELLO WORLD"
20 END
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Educational Objective
Implementation competence
Realization of a complete software project according to softwareengineering techniques.
Practical experience in planning software and in assuring itsquality.
Stage 2: First semesterprogram Hello(input, output)
begin
writeln(’Hello World’)
end.
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Educational Objective
Implementation competence
Realization of a complete software project according to softwareengineering techniques.
Practical experience in planning software and in assuring itsquality.
Stage 4: The first Job#include <stdio.h>
void main(void)
{char *message[] = {"Hello ", "World"};int i;
for(i = 0; i < 2; ++i)
printf("%s", message[i]);
printf("\n");}
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Educational Objective
Implementation competence
Realization of a complete software project according to softwareengineering techniques.
Practical experience in planning software and in assuring itsquality.
Stage 5: Experienced software developer#include <iostream.h>
#include <string.h>
class string
{private:
int size;
char *ptr;
public:
string() : size(0), ptr(new char(’\0’)) {};string(const string &s) : size(s.size)
{ptr = new char[size + 1];
strcpy(ptr, s.ptr);
};string()
{delete [] ptr;
};friend ostream& operator <<(ostream &, const string &);
string& operator=(const char *);
ostream &operator<<(ostream &stream, const string &s)
{return(stream << s.ptr);
};};
string& string::operator=(const char *chrs)
{if (this != &chrs)
{delete[] ptr;
size = strlen(chrs);
ptr = new char[size + 1];
strcpy(ptr, chrs);
}return *this;
}int main(void)
{string str;
str = "Hello World";
cout << str << endl;
return 0;
}
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Educational Objective
Implementation competence
Realization of a complete software project according to softwareengineering techniques.
Practical experience in planning software and in assuring itsquality.
Stage 12: Managementmail -s "Hello, world." bob@b12
Bob, could you please write me a program that
prints "Hello world." on the screen?
I need it by tomorrow.
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Educational Objective
Implementation competence
Realization of a complete software project according to softwareengineering techniques.
Practical experience in planning software and in assuring itsquality.
Teamwork
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Educational Objective
Implementation competence
Realization of a complete software project according to softwareengineering techniques.
Practical experience in planning software and in assuring itsquality.
Presentation
Teamwork
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Requirements
Active contribution to each phase
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Requirements
Active contribution to each phase
Participation in weekly meetings
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Requirements
Active contribution to each phase
Participation in weekly meetings
All documents have to be submitted as pdf-files on time.
One day before each (weekly) meeting: hand in the current draft.
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Requirements
Active contribution to each phase
Participation in weekly meetings
All documents have to be submitted as pdf-files on time.
One day before each (weekly) meeting: hand in the current draft.
Colloquium after each phase
Presentation (results of the phase) + examination talk
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Requirements
Active contribution to each phase
Participation in weekly meetings
All documents have to be submitted as pdf-files on time.
One day before each (weekly) meeting: hand in the current draft.
Colloquium after each phase
Presentation (results of the phase) + examination talk
Grade is composed of
Quality of the submitted documentsColloquiumQuality of your project
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
1. Organisation
2. Your Task
3. Tools
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Campus Routing System
Get directionsFrom: To:
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Campus Routing System
Get directionsFrom: To:AUDIMAX
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Campus Routing System
Get directionsFrom: To:AUDIMAX 50.34
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Campus Routing System
Get directionsFrom: To:AUDIMAX 50.34
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Campus Routing System
Get directionsFrom: To:AUDIMAX 50.34
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Campus Routing System
Get directionsFrom: To:AUDIMAX 50.34
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Campus Routing System
Get directionsFrom: To:AUDIMAX 50.34, office 307
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Campus Routing System
Get directionsFrom: To:AUDIMAX 50.34, office 307
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Campus Routing System
Get directionsFrom: To:AUDIMAX 50.34, office 307
Library
307 308306
Entrance
Stairs
Stairs
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Campus Routing System
Design and implementation of a routing system for the KIT campusTask
Display a shortest path
Route from and to Buildings
Search for a destination
Adminitsration tool
Load a mapDelete/Add buildings and attach information to themRoute edges and information necessary for routingGraph on top of the map, with properties for vertices and edges
Dijkstra’s Algorithm for routing
Easy specification of the start and destination
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Campus Routing System
Design and implementation of a routing system for the KIT campusTask
Display a shortest path
Route from and to Buildings
Search for a destination
Adminitsration tool
Load a mapDelete/Add buildings and attach information to themRoute edges and information necessary for routingGraph on top of the map, with properties for vertices and edges
Dijkstra’s Algorithm for routing
Easy specification of the start and destination
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Campus Routing System
Different routes
Features
Close roads under construction
Display nicely a route passing under a building
Shorter routes: Going through a building, Using tram
Routing to the nearest entrence
Java applet for the Routing System. . .
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
Until the Next Meeting . . .
Learn to use Git & Latex
Look into other tools like: Argouml, Eclipse, Junit, CodeCover
Read the Assignment!!!
Team leader for first phase (Functional Specifications)
Discuss about features/structure of your system + write up
Log into pool computer
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
1. Organisation
2. Your Task
3. Tools
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
ToolsGit (or any other system for version control)
It is mandatory to use it!
Get a repository: https://algohub.iti.kit.edu/
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
ToolsGit (or any other system for version control)
It is mandatory to use it!
Get a repository: https://algohub.iti.kit.edu/
LATEXWe highly recommend to use LATEX for all documents
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
ToolsGit (or any other system for version control)
It is mandatory to use it!
Get a repository: https://algohub.iti.kit.edu/
LATEXWe highly recommend to use LATEX for all documents
Figures & PresentationsWe like to use Ipe (http://ipe7.sourceforge.net/)
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
ToolsGit (or any other system for version control)
It is mandatory to use it!
Get a repository: https://algohub.iti.kit.edu/
LATEXWe highly recommend to use LATEX for all documents
Figures & PresentationsWe like to use Ipe (http://ipe7.sourceforge.net/)
ULMArgoUML (http://argouml.tigris.org/) . . .
Thomas Blasius, Tamara Mchedlidze – Praxis der Software-EntwicklungInstitute of Theoretical InformaticsProf. Dr. Dorothea Wagner
ToolsGit (or any other system for version control)
It is mandatory to use it!
Get a repository: https://algohub.iti.kit.edu/
LATEXWe highly recommend to use LATEX for all documents
Figures & PresentationsWe like to use Ipe (http://ipe7.sourceforge.net/)
ULMArgoUML (http://argouml.tigris.org/) . . .
ProgrammingEclipse
JUnit
CodeCover