To jest stara wersja strony!


1. Projekt konceptualny

1.1 Sformułowanie zadania projektowego

Tematem projektu jest aplikacja działająca na systemie mobilnym Android, która pozwoli użytkownikowi na odnalezienie najbliżej znajdujących się przystanków komunikacji miejskiej, zlokalizowanie siebie oraz przystanku na mapie oraz sprawdzenie rozkładu jazdy komunikacji miejskiej. W odróżnieniu od jakdojade.pl czy aplikacji Transportoid nie chcemy wyznaczać połączeń, które umożliwiają dostanie się do zamierzonej lokacji, a pomoc zagubionym mieszkańcom i turystom w znalezieniu najbliższego węzła komunikacji miejskiej.

Naszym celem jest zapoznanie się przy tworzeniu projektu z nowoczesnymi technologami związanymi z platformą Android oraz posiadanie pierwszej aplikacji w Android Market.

1.2 Analiza stanu wyjściowego

Przy implementacji aplikacji zostanie użyty język Java oraz Android SDK, a kluczowymi elementami będzie wykorzystanie GPS oraz Google API. Natomiast implementacja samej bazy danych zostanie wykonana w SQLite. Dystrybucja oraz aktualizowanie rozkładów jazdy w bazie będzie dokonywane za pomocą Android Market.

1.3 Analiza wymagań użytkownika

  1. Must
    1. Lokalizacja położenia posiadacza aplikacji i naniesienie jego pozycji na mapę
    2. Odnalezienie najbliżej znajdujących się przystanków względem położenia posiadacza aplikacji i naniesienie ich pozycji na mapę
    3. Posiadanie bazy linii, przystanków oraz połączeń komunikacji miejskiej oraz umożliwienie przeglądania ich za równo z poziomu przystanka jak i linii
  1. Could
    1. Wyznaczenie trasy przejścia od miejsca znajdowania się posiadacza aplikacji do wybranego przystanku
    2. Lokalizacja dowolnego przystanka za pomocą wyszukiwarki
  1. Won’t
    1. Wyznaczenie dogodnych połączeń z punktu startowego do punktu końcowego podróży

1.4 Określenie scenariuszy użycia

  1. Geolokalizacja
    1. Włączenie aplikacji
    2. Wybranie opcji geolokalizacji
    3. Odnalezienie pozycji użytkownika
    4. Odnalezienie najbliższych przystanków
    5. Wyświetlenie znaczników na mapie
  1. Sprawdzenie kursów danej linii MPK
    1. Włączenie aplikacji
    2. Wybranie opcji wyszukiwania połączeń po linach
    3. Wybranie linii
    4. Wybranie przystanku
    5. Wyświetlenie podziału godzinowego
  1. Sprawdzenie kursów z danego przystanka MPK
    1. Włączenie aplikacji
    2. Wybranie opcji wyszukiwania połączeń po przystankach
    3. Wybranie przystanka
    4. Wybranie linii
    5. Wyświetlenie podziału godzinowego

1.5 Identyfikacja funkcji

Istnieją trzy możliwości użycia aplikacji:

  1. Geolokalizacja – urządzenie za pomocą GPS sprawdza nasze położenie i względem znanej lokalizacji przystanków znajduje dla nas te najbliższe
  2. Sprawdzenie kursów danej linii MPK – po wybraniu odpowiedniej linii komunikacyjnej dowiadujemy się o której godzinie pojawia się na konkretnych przystankach
  3. Sprawdzenie kursów z danego przystanka MPK – po wybraniu odpowiedniego przystanka dowiadujemy się o jakich godzinach odjeżdżają z niego konkretne linie

1.6 Data Flow Diagram

Data Flow Diagram - poziom zerowy

Data Flow Diagram - poziom pierwszy

Data Flow Diagram - poziom drugi

1.7 Wybór encji (obiektów) i ich atrybutów

  1. Stops
    1. stop_id (int) PK
    2. localisationX (real)
    3. localisationY (real)
    4. name (text)
  1. Lines
    1. line_id (int) PK
    2. number (int)
    3. from_id (int) FK (references Przystanki(stop _id))
    4. destination_id (int) FK (references Przystanki(stop _id))

Connections

  1. stop_id (int) FK (references Stops(stop _id))
  2. line_id (int) FK (references Lines(line _id))
  3. day (text)
  4. hour (int)
  5. minute (int)
  6. legend (text)
  7. order (int)

1.8 Entity-Relationship Diagram

1.9 State Transition Diagram

2. Projekt logiczny

2.1 Projektowanie tabel, kluczy, kluczy obcych, powiązań między tabelami, indeksów, etc. w oparciu o zdefiniowany diagram ERD

// STOPS
	public static final String PK_KEY_STOPID = "stop_id";
	public static final String STOPID_OPTIONS = "INTEGER PRIMARY KEY AUTOINCREMENT";
	public static final String KEY_LOCALISATIONX = "localisationX";
	public static final String LOCALISATIONX_OPTIONS = "REAL NOT NULL";
	public static final String KEY_LOCALISATIONY = "localisationy";
	public static final String LOCALISATIONY_OPTIONS = "REAL NOT NULL";
	public static final String KEY_NAME = "name";
	public static final String NAME_OPTIONS = "TEXT NOT NULL";

	// LINES
	public static final String PK_KEY_LINEID = "line_id";
	public static final String LINEID_OPTIONS = "INTEGER PRIMARY KEY AUTOINCREMENT";
	public static final String KEY_NUMBER = "number";
	public static final String NUMBER_OPTIONS = "INTEGER NOT NULL";
	public static final String FK_KEY_FROMID = "from_id";
	public static final String FROMID_OPTIONS = "INTEGER NOT NULL";
	public static final String FK_KEY_DESTINATIONID = "destination_id";
	public static final String DESTINATIONID_OPTIONS = "INTEGER NOT NULL";

	// CONNECTIONS
	public static final String FK_KEY_STOPID = "stop_id";
	public static final String STOPID_FK_OPTIONS = "INTEGER NOT NULL";
	public static final String FK_KEY_LINEID = "line_id";
	public static final String LINEID_FK_OPTIONS = "INTEGER NOT NULL";
	public static final String KEY_ORDERID = "order_id";
	public static final String ORDERID_OPTIONS = "INTEGER NOT NULL";
	public static final String KEY_DAY = "day";
	public static final String DAY_OPTIONS = "TEXT NOT NULL";
	public static final String KEY_HOUR = "hour";
	public static final String HOUR_OPTIONS = "INTEGER NOT NULL";
	public static final String KEY_MINUTE = "minute";
	public static final String MINUTE_OPTIONS = "INTEGER NOT NULL";
	public static final String KEY_LEGEND = "legend";
	public static final String LEGEND_OPTIONS = "TEXT";

	// CREATE STOPS
	private static final String CREATE_STOPS = "create table " + TABLE_STOPS
			+ " (" + PK_KEY_STOPID + " " + STOPID_OPTIONS + ", "
			+ KEY_LOCALISATIONX + " " + LOCALISATIONX_OPTIONS + ", "
			+ KEY_LOCALISATIONY + " " + LOCALISATIONY_OPTIONS + ", " + KEY_NAME
			+ " " + NAME_OPTIONS + ");";

	// CREATE LINES
	private static final String CREATE_LINES = "create table " + TABLE_LINES
			+ " (" + PK_KEY_LINEID + " " + LINEID_OPTIONS + ", " + KEY_NUMBER
			+ " " + NUMBER_OPTIONS + ", " + FK_KEY_FROMID + " "
			+ FROMID_OPTIONS + ", " + FK_KEY_DESTINATIONID + " "
			+ DESTINATIONID_OPTIONS + ", " + "FOREIGN KEY(" + FK_KEY_FROMID
			+ ") REFERENCES " + TABLE_STOPS + "(" + PK_KEY_STOPID + "), "
			+ "FOREIGN KEY(" + FK_KEY_DESTINATIONID + ") REFERENCES "
			+ TABLE_STOPS + "(" + PK_KEY_STOPID + ")" + ");";

	// CREATE CONNECTIONS
	private static final String CREATE_CONNECTIONS = "create table "
			+ TABLE_CONNECTIONS + " (" + FK_KEY_STOPID + " "
			+ STOPID_FK_OPTIONS + ", " + FK_KEY_LINEID + " "
			+ LINEID_FK_OPTIONS + ", " + KEY_ORDERID + " " + ORDERID_OPTIONS
			+ ", " + KEY_DAY + " " + DAY_OPTIONS + ", " + KEY_HOUR + " "
			+ HOUR_OPTIONS + ", " + KEY_MINUTE + " " + MINUTE_OPTIONS + ", "
			+ KEY_LEGEND + " " + LEGEND_OPTIONS + ", " + "FOREIGN KEY("
			+ FK_KEY_STOPID + ") REFERENCES " + TABLE_STOPS + "("
			+ PK_KEY_STOPID + "), " + "FOREIGN KEY(" + FK_KEY_LINEID
			+ ") REFERENCES " + TABLE_LINES + "(" + PK_KEY_LINEID + ")" + ");";
pl/dydaktyka/ztb/2011/projekty/przystanki/start.1316946164.txt.gz · ostatnio zmienione: 2019/06/27 15:57 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0