270 likes | 430 Views
App Development. Door: Rob Vermeulen Spring Morning Software http://www.springmorning.nl/. Agenda. Inleiding Mijn processtructuur PACT analyse Use Cases Functie Punt Analyse Iteratief en evolutionair Ontwikkelen Richtlijnen , principes en tips voor Apps
E N D
App Development Door: Rob Vermeulen Spring Morning Software http://www.springmorning.nl/
Agenda • Inleiding • Mijnprocesstructuur • PACT analyse • Use Cases • Functie Punt Analyse • Iteratief en evolutionairOntwikkelen • Richtlijnen, principes en tips voor Apps • Algemene User Interfaces, vuistregels • App Specifieke user interfaces • Tip en frameworks • Vragenuurtje
Processtructuur Spring Morning PACT Analyse Oplevering Requirements Use Cases Ontwikkeling in iteraties (agile) Detail Indicatief Globaal Functie Punt Analyse (FPA)
PACT Analyse • Persons, Activities, Contexts, Technologies • Eenraamwerkombetrekkelijksnel de onderwerpen te benoemen die in de ontwerpfase van toepassingzijn. • Globaalbeeld van het gebruik van het systeem • Nuttige input voor Use Cases en requirements specificaties
PACT Analyse PeopleAutohandelaars, -importeurs en -merkdealers zijn de doelgroep.Deze mensen zijn gewend te werken met een computer, dus er is een basiskennis aanwezig. Werken met een smart phone of tablet wordt minder vaak gedaan, dus is een eenvoudige en duidelijke gebruikersinterface noodzakelijk. De gebruikers zijn gemotiveerd en hebben een drukke agenda.De gebruikers hebben verstand van auto’s, autorestwaardes en het daarin gebruikte vakjargon.Het is mogelijk dat er mensen gebruik maken van het product die een andere taal spreken.Toegankelijkheid van het systeem moet toestaan dat mensen met kleurenblindheid de app ook kunnen gebruiken.ActivitiesDeze taken zullen de gebruikers uitvoeren met onze applicatie: • Autogegevens van eigen fleet bekijken (foto’s, prijzen, technische specificaties ) • Een auto toevoegen aan de fleet • Foto’s toevoegen • Auto’s verwijderen • Autogegevens wijzigen • Restwaarde automatisch laten bepalen • Eenvoudig publiceren op de beschikbare online verkoopkanalen (Marktplaats, Autotrack, Autotrader, Autoweek, Autoscout24, NederlandMobiel.nl etc.) • Auto’s aan- en afmelden bij het RDW ContextsDe activiteiten vinden plaats als de gebruiker: • Een tweedehands auto heeft binnengekregen en de gegevens wil invoeren • Bestaande informatie wil inzien en/of wijzigen • Een of meerdere auto’s wil publiceren op online verkoopkanalen • Een auto heeft verkocht Een individu of een grote groep mensen kunnen gebruik maken van de applicatie.Gebruikers hoeven geen hulpmiddelen mee te brengen om de applicatie te bedienen.TechnologiesDe deelnemers moeten de applicatie opstarten, dit zal met een simpele druk op een knop gebeuren.De gebruikersapplicatie zal op een tablet moeten draaien. Zowel Apple (iOS) als Android (versie 4.0+) zal ondersteund moeten worden. Voor RDW meldingen, restwaardebepalingen en publicaties op verkoopkanalen zal gebruik worden gemaakt van reeds bestaande web services.
Use Cases • Een Use Case is een beschrijving van een gedrag van een systeem, dat reageert op een verzoek dat stamt van buiten het systeem. {wikipedia} • beschrijft "wie" met het betreffende systeem "wat" kan doen. • Onderdeel van het proces om requirements van een informatiesysteem te bepalen • Alle use cases samendefiniëren de scope van eennieuwsysteem
Mogelijkestructuur Use Case • Use case naam:Een eenunieke identificatie voor de use case. • Versie: Een nummer of tekst dat het stadium van de use case beschrijft • Doel:Wat wenst de gebruiker met de use case te bereiken • Samenvatting: De essentie van de usecase; een overzicht van de te bereiken interactie. • Actoren:Een actor is iemand of iets buiten het systeem, dat een interactie aangaat met het systeem. • Precondities: Definitie van alle voorwaarden waaraan moet worden voldaan voordat deze use case van toepassing is. • Triggers: De gebeurtenissen (events), waardoor de use case geïnitieerd wordt • Basis verloop van de events:een primair scenario, of verloop van de gebeurtenissen • Alternatieve wegen:Secundaire wegen of alternatieve scenario's • Post condities:Beschrijving van de eindtoestand van het systeem na het verloop van de use case. • Business rules:Geschreven of ongeschreven regels of beleid, die bepalen hoe een organisatie dient te reageren op een bepaalde use case. • Opmerkingen:Belangrijke aantekeningen, die niet in de vooropgezette format passen. • Auteur en datum
Functie Punt Analyse (FPA) • een methode om de functionele omvang van een informatiesysteem te meten door te kijken naar voor gebruikers relevante functies en (logische) gegevensverzamelingen. • De meeteenheid is de “functiepunt” (fp) • Gebruikt voor o.a. het begroten van een systeemontwikkeling • Een “break-down” in kleine functiepakketjes
Functie Punt Analyse (FPA) (2) • schatten op basis van ruwe gebruikerseisen en -wensen (requirements) • schatten op basis van analogie • schatten op basis van een eventueel aanwezig globaal gegevensmodel en/ of procesmodel, al dan niet compleet.
FPA functie types • Interne Logische GegevensVerzameling(ILGV) • Koppelings-GegevensVerzameling (KGV) • InvoerFunctie (IF) • UitvoerFunctie (UF) • OpvraagFunctie (OF)
FPA Voorbeeldanalyse • de gebruiker wil gegevens van Klanten kunnen toevoegen, wijzigen en verwijderen, wil klantgegevens kunnen raadplegen en wil vier verschillende overzichten met betrekking tot Klanten; deze overzichten bevatten berekende gegevens • de gebruiker wil gegevens van Producten kunnen toevoegen, wijzigen en verwijderen, wil productgegevens kunnen raadplegen en wil een overzicht met betrekking tot Producten; dit overzicht bevat berekende gegevens • de gebruiker wil gegevens van een Leverancier kunnen raadplegen via het uniek identificerende leveranciersnummer, en wil ook een overzicht met betrekking tot Leveranciers met totaliserende resultaten
FPA valkuilen Houd rekening met “groei” in het project. We onderscheiden 2 soorten groei: • "autonome groei“ • ontstaat doordat functionaliteiten bij detailleren van de specificaties zichtbaar worden en daarvóór dus ten onrechte niet als functiepunten waren geteld. • "scope creep“ • treedt op doordat de klant in de loop van het ontwikkeltraject nieuwe wensen formuleert. Scope creep leidt dus tot nieuwe functionaliteit die ook bij detailleren niet zichtbaar zou zijn geworden. Ook wel “voortschrijdend inzicht” genoemd. Meer info op http://www.nesma.nl/ (Nederlandse Software MetriekenAssociatie)
Iteratief & EvolutionairOntwikkelen • Ontwerp, ontwikkeling en oplevering in delen (iteraties) • Eindresultaat niet in detail bekend. Nieuwe inzichten evolueren erin mee. Voordelen • Betrokkenheid van opdrachtgever en gebruiker(s) • Sneller “tastbaar resultaat” • Beter risicobeheersing door in kleinere stukken te ontwikkelen • Gemakkelijker om complexe systemen te “behappen” • Aan het eind van elke iteratie is een bruikbaar product opgeleverd, ook al wordt verdere ontwikkeling gestopt.
Iteratief & EvolutionairOntwikkelen Nadelen • Kans op vervaging en wegdrijven van oorspronkelijk doel (“scope creep”) • Omgeving is er niet klaar voor. Project managers die niet kunnen omgaan met de dynamiek en een vager einddoel. • Vraagt ervaren sturing • Kan grote impact hebben op de resources binnen organisaties
User Interfaces – Vuistregels • Zgn. WesterseAspecten • Van Links NaarRechts • Van BovenNaarBeneden • Gebruiksignaalkleuren (In orde, nietgoed)
User Interfaces - Doel • Bedenkwat je wilt bereiken • Wil je informeren? • Zorgvoorneutralekleuren die nietafleiden van de inhoud • Kieseenleesbaarlettertype • Entertainen? • Zeteensfeer die past bij de inhoud. • Kiespassende audio en afbeeldingen • Val op. • Functioneren? • Zet de belangrijkste en/of meestgebruiktefunctiescentraal
User Interfaces - Doelgroep • Wie of wat is je doelgroep? • Zakelijk of privé • Toonsetting, tekstneutraliteit • Leeftijdscategorie • Jargon, complexiteit, hoeveelheidtekst, functionaliteit(!) • Opleidingsniveau • Zieleeftijdscategorie • Geslacht • Kleurkeuze, volgorde van acties • Mensen met eenvisuele of gehoorbeperking • Ondersteunendeaudiosignalen, of juistniet • Grotereknoppen, beteronderscheidbarekleuren, hoger contrast
User Interfaces – Hoe bepaalik de inhoud • Elke Use Case zijneigenscherm / schermen • Elk onderdeel van een workflow zijneigenscherm
User Interfaces voor Apps • Scherm is doorgaans compacter daneencomputerscherm • Informatiewordtpaginagewijs of groepsgewijsgetoond • Doorgaansgegroepeerd op: • Functionaliteit: • Bijvoorbeeld “instellingenscherm” • Relevantie: • Alles data en functionaliteit die over hetzelfdeonderwerpgaat • Fase in de workflow: • Bijvoorbeeldeen “wizard” scherm
User Interfaces voor Apps • Waar let je op? • Gebruikernietmeertekstlateninvoerendannoodzakelijk. Maakdaaromgebruik van: • Opzoekmechanismen • Keuzelijsten • Auto-aanvullen • Zet de meestgebruiktefunctionaliteitcentraal • Gebruikknoppenvooracties • Toonvoorelkestap in een workflow eennieuwscherm. • Zorgdat je kuntnavigerentussen de schermen door middel van navigatieknoppenénswipegebaren. • Zorgdat het ookduidelijk is wanneer je nietkuntnavigeren.
User Interfaces voor Apps • Onderscheidtussen smart phones en tablets
Een App bouwen? Waarmoet je aandenken? • Voorwelk platform wilikeen App? (iOS, Android, Blackberry, Windows Phone/RT) • Zoekeenontwikkelomgevingwaarmee je voor de gewensteplatformenkuntontwikkelen. • Steekmoeite in het vinden van een tool of framework waarmee je met 1x ontwikkelen, meerdereplatformenkuntbedienen • Ondersteunnietmeerplatformendannoodzakelijk • Ontwikkel op één platform, porteer het naar de andere(n) • Voor tablet, smart phone of beide? • Wiegaat het gebruiken? Is de doelgroepeenbuitendienstmedewerker, een accountant, eenbouwvakker of een student? • Hoe wil je het tonen? • Heb je eenkoppelingnodig met de bel-functie? • Overweegomaparte apps te makenvoor tablet en smart phone.
Een App bouwen? Waarmoet je aandenken? • Is een App afdoende, of is erookeenbackendnoodzakelijk? • Haalt de app informatie op van het internet? • Heb je zelfergenseen database on-line waar je informatieuithaalt, of juist in wilt plaatsen? • Maak je gebruik van web services ommeerinformatie te verkrijgen? • Zijnerkostenverbondenaaneenexterne service? • Waarmeegaik het ontwikkelen? • Kieseentechnologie die het bestekent (HTML & Javascript, of juist C++) • Kieseentechnologie de het beste past (web technologie is eenvoudiger over meerdereplatformen te verspreiden) • Zoekeen “RAD” omgeving. Ontwikkelen in een high-level taalals Python, Ruby of Lualevertvelemalensnellerresultaatdan “native” omgevingen. • 95% van de apps zijn met web-technologieën prima te realiseren. • Bied je het aan via een app store? Of is het slechtsvooreenselectegroep? • Met Android is het vrijeenvoudigombuiten de app store om apps te kunneninstalleren. • iOS is watlastiger en vraagtomeen Enterprise licentie (€400,- per jaar) als je binneneenselectegroep wilt blijven.
Een App bouwen? Mogelijke cross-platform frameworks. • Marmalade SDK. • C++, Visual Studio • Ondersteuningvooralleplatformen. • Voor games en applicaties die veel performance vragen. • Goede community • Nadelen: Low level ontwikkelen in C++, time to market is traag, prijziglicentiemodel • PhoneGap (heet nu Cordova) • Web technologieën (HTML5, Javascript, CSS) • Ondersteuningvooralleplatformen • Goede community • Gratis • Nadelen: teveel platform specifiekeaanpassingen in CSS. Je hebtveelkennisnodig van CSS om de gebruikereengoedeindruk te geven. • Corona Labs • High-level script taalLua • Ondersteuningvoor Android en iOS • Geschiktvoor games, e-books, business apps en web apps • Veelkant-en-klarevoorbeelden en widgets • Nadelen: Overwegendonbekendetaal, duseenleercurve. Eigen ontwikkelomgeving die nietzogoedwerkt op Windows. Op een Apple werktalleswelvlekkeloos.Niet gratis