Download presentation
Presentation is loading. Please wait.
1
Arendusprotsess ja arhitektuur
Tanel Käär
2
Tänases loengus Aja hindamine Tööde jagamine Koodi struktureerimine
3
Aja hindamine
4
Aja hindamine Varasem kogemus (kõhutunne) Süstemaatiline
Work Breakdown Structure SMART (Specific, Measured, Approved, Realistic, Time boxed) Välised sõltuvused Muud riskid Kogu protsess?
5
Aja hindamine Planeerimine Analüüs Arendus Testimine
Vigade parandamine Juurutamine …
6
Work Breakdown Structure
100% reegel Kattuvuseta alamosad Tulemid, mitte tegevused Detailsus alamtöö kestus vs iteratsiooni pikkus
7
Three point estimation
Ajahinnang (E) Optimistlik (a) Tõenäoline (m) Halvim (b)
8
Three point estimation
Kaalutud keskmisega jaotus (Double-Triangular Distribution) E = (a + 4m + b) / 6
9
Three point estimation
Standardhälve SD = (b − a)/6 E +/- SD 68% E +/ ×SD 90% E +/- 2×SD 95% E +/- 2×SD 97.7% Annab ajahinnangu soovitud tõenäosusega Pilt: wikipedia
10
Three point estimation
Näide: a = 3, m = 5, b = 10 E = (3 + (4 x 5) + 10) / 6 = 5.5 SD = (10 – 3) / 6 = % => 5.5 +/ = 3.8 … % => 5.5 +/- 1.67*1.645 = 2.8 … % => 5.5 +/- 1.67*2 = 2.1 … 8.8 Pilt: wikipedia
11
Three point estimation
Kaalumata keskmine E = (a + m + b) / 3 Näide: a = 3, m = 5, b = 10 E = ( ) / 3 = 6
12
Ebatäpsed ajahinnangud
Uued tehnoloogiad Vähene kogemus Liigne enesekindlus Optimism Ei arvestatud testimist, silumist Realiseerunud riskid
13
Tambovi konstant Erineb meeskonnaliikmeti Muutub ajas
„Kõrgkoolide füüsika ja teiste kursuste praktikumides kasutatav universaalne suurus, mis tuleb mõõtetulemusega liita, lahutada, korrutada või jagada, et saada vajalik tulemus„ Toomas Vabamäe Erineb meeskonnaliikmeti Muutub ajas
14
Ajahinnagute tagasivaade
Mis põhjustas hinnagu erinevuse Kuidas mõjutab edasist projektiplaani
15
Tööde jagamine
16
Tööde jagamine Sõltuvuste järgi Prioriteetide järgi 1 task korraga
Gantti diagramm Prioriteetide järgi Backlog 1 task korraga Erinevate inimeste tööd ei tohi ristuda Projektijuhtimine on ka töö!
17
Tööhaldur Vahendab suhtlust arendusmeeskonna liikmete vahel ja ka kliendiga Tekitab töövoo planeerimisest järelkontrollini Võimaldab töid ja ressursse planeerida Annab ülevaate progressist (ajahinnangud) Integreeritud koodihaldusvahenditega
18
Töövoog Arendusettepanek Analüüs Arendus Ülevaatus Testimine
Järelkontroll
19
Töövoo näide Atlassian Jira workflow
25
Vahendid
26
Vahendid Apache bloodhound Bugzilla Redmine Atlassian Jira
Microsoft TFS Teamwork Arenduskeskkonnad (GitHub, GoogleCode)
27
Koodi struktureerimine
28
Harundamine (branching)
29
Eesmärgid Stabiilsete ja ebastabiilsete muudatuste isoleerimine
Alammeeskondade isoleerimine Versioonide paralleelne arendus Vanade versioonide toetamine …
30
Harude strateegiad Mida suurem ja ajamahukam projekt, seda keerulisem strateegia Põhiharu Tarneharud Hooldusharu Funktsionaalsuse haru Arendustsüklite harud Põhiharu (Trunk) Tarneharud (Release branch) - toodangu toetuseks, mergetakse tagasi põhiharru Hooldusharu - vana tarne toetuseks, ei pruugita tagasi mergeda * Funktsionaalsuse haru - eraldatakse uue funktsionaalsuse arendus, mergetakse peale stabiliseerimist põhiharru. Kasutatakse ka alammeeskondade isoleerimiseks. * Arendustsüklite harud - paralleelselt mitme tsükli arenduseks. Vanemate tsüklite muudatused mergetakse uuematesse. Sisaldab sageli alamharusid eelmistest mudelitest.
31
Arendusprotsessi lepped
Koodi struktuur, standardid, formattimine Tehtu kommenteerimine (wiki, kood, issue tracker) Tööhaldurisse kirja, mida tuleb testida Changesetide tagimine, kommenteerimine
32
Koodi struktureerimine
Eesmärgid Hallatav Loetav Arendustööd ei sega üksteist Atomaarselt testitav Taaskasutatav
33
Koodi struktureerimine praktikas
… echo '<h1>New Users</h1>'; $sql = "SELECT * FROM users ORDER BY date_registered"; $result = mysql_query($sql) or die(mysql_error()); echo '<table class="my-table-class">'; while($row = mysql_fetch_assoc($result)){ echo '<tr><td>' . $row['username'] . '</td><td>' . $row['date_registered'] . '</td></tr>'; } echo '</table>'; function random_custom_function($var){ $var = $var + 1; return '<span style="font-weight:bold;">' . $var . '</span>';
34
Koodi struktureerimine
Eraldatud vertikaalsed kihid Andmed Teenused Esitlus Kujundus … Iga kiht peab olema eraldi arendatav Liidesed paika!
35
Koodi struktureerimine
MVC, MVP, MVVM, MVW - erista mudel, vaade ja loogika Defineeri liidesed suhtluseks
36
OO parimad praktikad Klassid ja meetodid on lühikesed
Iga klass ja meetod tegeleb AINULT oma ülesandega. Klasside ja meetodite nimed dokumenteerivad koodi
37
Esitluskihis HTML, JS, CSS eraldatud JS järgib OO reegleid!
Kasuta JS nimeruume, defineeri moodulid, liidesed Globaalsete muutujate asemel Closured JSLint / JSHint staatiline analüüs
39
Koodi ülevaatused Kokkulepete järgimine Koodi kvaliteedi tagamine
Kogemuste ja info jagamine Pre-commit / post-commit
40
Vahendid Changesetid githubis, viewVC-s Phabricator, Apache v2
Atlassian crucible, tasuline Upsource (10 user free plan) Gerrit (Git), Apache v2 Reviewboard, MIT Kalithea, GPL v3 Rietveld, Apache v2 Phabricator, Apache v2 Atlassian crucible, tasuline Upsource (10 user free plan) Gerrit (Git), Apache v2 Reviewboard, MIT Kalithea, GPL v3 Rietveld, Apache v2
41
Review demo
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.