Arendusprotsess Ja Arhitektuur Tanel Käär

Arendusprotsess Ja Arhitektuur Tanel Käär

3.03.2015 Tänases loengus Aja hindamine Tööde jagamine Koodi struktureerimine Arendusprotsess ja arhitektuur Tanel Käär Aja hindamine 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? Aja hindamine Work Breakdown Structure Planeerimine 100% reegel Analüüs Kattuvuseta alamosad Arendus Tulemid, mitte tegevused Testimine Detailsus Vigade parandamine alamtöö kestus vs iteratsiooni pikkus Juurutamine … 1 3.03.2015 Three point estimation Three point estimation Ajahinnang (E) Kaalutud keskmisega jaotus (Double- Optimistlik (a) Triangular Distribution) Tõenäoline (m) E = (a + 4m + b) / 6 Halvim (b) Three point estimation Three point estimation Standardhälve SD = (b − a)/6 Näide: E +/- SD 68% a = 3, m = 5, b = 10 E +/- 1.645×SD 90% E +/- 2×SD 95% E = (3 + (4 x 5) + 10) / 6 = 5.5 E +/- 2×SD 97.7% SD = (10 – 3) / 6 = 1.67 Annab ajahinnangu soovitud 68% => 5.5 +/- 1.67 = 3.8 … 7.1 tõenäosusega 90% => 5.5 +/- 1.67*1.645 = 2.8 … 8.2 95% => 5.5 +/- 1.67*2 = 2.1 … 8.8 Three point estimation Ebatäpsed ajahinnangud Kaalumata keskmine Uued tehnoloogiad E = (a + m + b) / 3 Vähene kogemus Liigne enesekindlus Näide: Optimism a = 3, m = 5, b = 10 Ei arvestatud testimist, silumist E = (3 + 5 + 10) / 3 = 6 Realiseerunud riskid 2 3.03.2015 Tambovi konstant Ajahinnagute tagasivaade „Kõrgkoolide füüsika ja teiste kursuste praktikumides Mis põhjustas hinnagu erinevuse kasutatav universaalne suurus, mis tuleb mõõtetulemusega liita, lahutada, korrutada või jagada, Kuidas mõjutab edasist projektiplaani et saada vajalik tulemus„ Toomas Vabamäe Erineb meeskonnaliikmeti Muutub ajas Tööde jagamine Tööde jagamine Sõltuvuste järgi Gantti diagramm Prioriteetide järgi Backlog 1 task korraga Erinevate inimeste tööd ei tohi ristuda Projektijuhtimine on ka töö! Tööhaldur Töövoog Vahendab suhtlust arendusmeeskonna Arendusettepanek liikmete vahel ja ka kliendiga Analüüs Tekitab töövoo planeerimisest Arendus järelkontrollini Ülevaatus Võimaldab töid ja ressursse planeerida Testimine Annab ülevaate progressist Järelkontroll (ajahinnangud) Integreeritud koodihaldusvahenditega 3 3.03.2015 Töövoo näide Atlassian Jira workflow 4 3.03.2015 Vahendid Vahendid Apache bloodhound Bugzilla Redmine Atlassian Jira Microsoft TFS Teamwork Arenduskeskkonnad (GitHub, GoogleCode) Koodi struktureerimine Harundamine (branching) Eesmärgid Harude strateegiad Stabiilsete ja ebastabiilsete Mida suurem ja ajamahukam projekt, muudatuste isoleerimine seda keerulisem strateegia Alammeeskondade isoleerimine Põhiharu Versioonide paralleelne arendus Tarneharud Vanade versioonide toetamine Hooldusharu … Funktsionaalsuse haru Arendustsüklite harud 5 3.03.2015 Arendusprotsessi lepped Koodi struktureerimine Koodi struktuur, standardid, Eesmärgid formattimine Hallatav Tehtu kommenteerimine (wiki, kood, Loetav issue tracker) Arendustööd ei sega üksteist Tööhaldurisse kirja, mida tuleb testida Atomaarselt testitav Changesetide tagimine, Taaskasutatav kommenteerimine Koodi struktureerimine praktikas Koodi struktureerimine … echo '<h1>New Users</h1>'; Eraldatud vertikaalsed kihid $sql = "SELECT * FROM users ORDER BY date_registered"; $result = mysql_query($sql) or die(mysql_error()); Andmed Teenused echo '<table class="my-table-class">'; while($row = mysql_fetch_assoc($result)){ Esitlus echo '<tr><td>' . $row['username'] . '</td><td>' . $row['date_registered'] . '</td></tr>'; Kujundus } … echo '</table>'; Iga kiht peab olema eraldi arendatav function random_custom_function($var){ $var = $var + 1; Liidesed paika! return '<span style="font-weight:bold;">' . $var . '</span>'; } … Koodi struktureerimine OO parimad praktikad MVC, MVP, MVVM, MVW - erista Klassid ja meetodid on lühikesed mudel, vaade ja loogika Iga klass ja meetod tegeleb AINULT Defineeri liidesed suhtluseks oma ülesandega. Klasside ja meetodite nimed dokumenteerivad koodi 6 3.03.2015 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 Koodi ülevaatused Vahendid Changesetid githubis, viewVC-s Kokkulepete järgimine Phabricator, Apache v2 Koodi kvaliteedi tagamine Atlassian crucible, tasuline Kogemuste ja info jagamine Upsource (10 user free plan) Pre-commit / post-commit Gerrit (Git), Apache v2 Reviewboard, MIT Kalithea, GPL v3 Rietveld, Apache v2 Review demo 7 .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    7 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us