1 / 38

Uporaba orodij pri razvoju programske opreme v zahtevnejših okoljih

Uporaba orodij pri razvoju programske opreme v zahtevnejših okoljih. mag. Aleš Košir. Povzetek. Predstavljena bodo orodja, ki se uporabljajo pri zahtevnejšem in bolj nadzorovanem razvoju programske opreme.

shada
Télécharger la présentation

Uporaba orodij pri razvoju programske opreme v zahtevnejših okoljih

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Uporaba orodij pri razvoju programske opreme v zahtevnejših okoljih mag. Aleš Košir

  2. Povzetek • Predstavljena bodo orodja, ki se uporabljajo pri zahtevnejšem in bolj nadzorovanem razvoju programske opreme. • Takšna okolja so značilna za finančne ustanove, na primer banke, a niso omejena le nanje. • Ogledali si bomo poglavitne vrste teh orodij in njihove značilne predstavnike: • načrtovanje in spremljanje projektov ter • vodenje virov, • zbiranje projektnih zahtev, • upravljanje verzij, • izdelavo varnostnih kopij, • upravljanje zahtevkov (napak), • vodenje testiranja. • Predstavitev bo podprta s praktičnimi primeri. Zanikanje (Disclaimer): predstavljen je osebni pogled.

  3. Zakaj orodja? • Orodje je sredstvo, ki nudi mehansko ali mentalno pomoč pri doseganju nekega cilja • S primernimi orodji lažje opravimo delo

  4. Značilnosti zahtevnejših projektov • Obseg dela > 10 EY • Število sodelujočih > 25 • Število vhodnih zahtev > 1000 • Uporaba novih tehnologij ali pristopov • LOC > 50,000 • CMM ≥ 3 • Stroge zahteve za kakovost, zanesljivost, varnost… • Strogo nadzorovan proces sprememb • Zahtevana je jasna revizijska sled od zahtev do namestitve in kasnejših sprememb

  5. Zunanje zahteve (shema)

  6. Zahteve pri razvoju programske opreme • Zunanje zahteve ne določajo orodij • Primerna orodja moramo poiskati ali zgraditi sami • Izbirati moramo namenu primerna orodja • Z orodji izvajamo dogovorjene procese! • Dobra orodja vnašajo dobre prakse!

  7. Dobre prakse po CMM / CMMI • 5. raven – izboljševana • Preprečevanje napakVzročna analiza in razreševanje • Vodenje sprememb tehnologijeInoviranje organizacije in izvedba • Vodenje sprememb procesov • 4. raven -- vodena • Vodenje na podlagi meritev procesov Merjenje org. sposobnosti procesov • Upravljanje kakovosti razvoja programske op.Kvantitativno vodenje projektov • 3. raven -- definirana • Osredotočenje na organizacijske procese Osredotočenje na organizacijske procese • Definiranje organizacijskih procesovDefiniranje organizacijskih procesov • Načrtovanje usposabljanjUsposabljanje organizacije • Integrirano upravljanje SW Integrirano upravljanje projektov • Koordinacija skupinUpravljanje tveganj • Inženiring SW izdelkov Uresničitev zahtev (Reqs. Development) • Tehnična rešitev • Integracija izdelka • Kolegialni pregledi (Peer Reviews) Verifikacija • Validacija • 2. raven -- ponovljiva • Upravljanje zahtev Upravljanje zahtev • Načrtovanje projekta Načrtovanje projekta • Spremljanje in nadzorovanje projektov Spremljanje in nadzorovanje projektov • Upravljanje poddobaviteljev Upravljanje poddobaviteljev • Zagotavljanje kakovosti Zagotavljanje kakovosti izdelkov in procesov • Upravljanje konfiguracijUpravljanje konfiguracij • Merjenja in analiza

  8. Orodja po namenu

  9. Projektno vodenje • Kriteriji: • Količina (koliko projektov), obseg (kaj vse vodimo: časovni, finančni podatki, viri) in zahtevnost (kako natančno) vodenja • Stopnja integracije z drugimi sistemi • Kakšne življenjske cikle uporabljamo • Ali samo načrtujemo ali tudi spremljamo načrtovano • Ali se pri vodenju omejimo samo na določena podpodročja (upravjanje tveganj, vodenje zahtev, zahtevkov..., vodenje virov) • Vodenje zahtev (angl. requirements) • Komunikacijsko orodje • Upravljanje znanja • Vodenje zahtevkov (angl. issue) • Upravljanje virov: načrtovanje, spremljanje, beleženje, poročanje, analiza • Upravljanje izdaj • Upravljanje sprememb (angl. change management) • Spremljanje projektov • Poročanje • Merjenje • Zmožnost pokrivanja množice projektov

  10. Projektno vodenje • Komercialna orodja (~ 80): • IBM: PowerPack, Rational Unified Process (zbirka orodij, življenjski cikel) • CollabNet (projektno vodenje, vodenje zahtev, komunikacija, upravljanje znanja) • Serena: PVCS • Focal Point (vodenje zahtev) • DevTrack (vodenje zahtevkov) • RiskID (upravljanje tveganj) • Version One (načrtovanje in upravljanje agilnega procesa) • Microsoft: MS Project (načrtovanje in spremljanje nalog in virov) • Microsoft: Sharepoint Portal Server • Prosta orodja • ASTS • Planner (namizje GNOME) • Trac (vodenje SW projektov, uporabljen Wiki) • XPlanner (eXtreme programming) • Strežnik Sourceforge • Strežnik Savannah

  11. Vodenje zahtev (requirements) • Kriteriji: • Zahtevnost orodja • Spletna aplikacija, debeli odjemalec • Integriranost z drugimi sistemi • Podpora standardom ali metodologijam • Povezava s tehnologijami (java...) • Možnosti hitrega prototipiranja, modeliranja UML

  12. Vodenje zahtev (requirements) • Komercialna orodja (~ 40): • Focal Point (spletna aplikacija) • Accept Planner (upravljanje zahtev za produkt) • AnalystPro (preprosto orodje za upravljanje zahtev) • IBM: PowerPack • Sparx Systems: Enterprise Architect (orodje za načrtovanje po UML) • MS: Excel (zadošča pri majhnih projektih)

  13. Vodenje zahtevkov/napak • Kriteriji: • Vodenje zahtevkov, napak • Povezava z drugimi sistemi (testiranje, viri) • Upravljanje znanja • CRM, portal za stik s stranko • Možnost prilagajanja življenjskega cikla in atributov zahtevkov • Možnost avtomatskega proženja dejanj ob pogojih • Priprava poročil

  14. Vodenje zahtevkov/napak • Komercialna orodja (~ 80) • McCabe: TrueTrack • TechExcel: DevTrack • Mercury: TestDirector • Red Gate SW: Aardvark Bug Racking System • Tiera SW: Defect Manager • IBM: Rational ClearQuest • Serena: Serena Tracker • ProStyle SW: Zero Defect • MS: Excel ali Access (nenamensko preprosto orodje) • Prosta orodja (~ 40): • Bugzilla • Mantis • IssueTracker • OTRS

  15. Merjenja • Kriteriji • Merjenje kompleksnosti kode (McCabe, Halstead), LOC • Pokrivanje kode • Merjenje hitrosti • Uveljavljanje standardov

  16. Merjenja • Komercialna orodja (~ 70): • Quality Checked Software: AdaTEST95 (pokrivanje kode) • 20smackers: 20s Reference Estimator (napovedovanje iz preteklih projektov) • Bullseye Coverage (spremljanje pokritosti kode pri testiranju) • Aivosto Oy: ClearSQL (ureja, formatira in analizira kodo za SQL) • Prosta orodja: • Velika količina specializiranih orodij

  17. Varnostno shranjevanje • Kriteriji: • Podprta strojna oprema (operacijski sistemi, naprave za shranjevanje) • Količina in hitrost shranjevanja ter restavriranja • Metodologija shranjevanja • Način restavriranja • Povezava z okrevanjem po nezgodah

  18. Varnostno shranjevanje • Komercialna orodja (~20): • HP: Data protector • IBM: Tivoli Storage Manager • Veritas: Backup • EMC: Legato • Prosta orodja: • Amanda • BURT • Afbackup • taper

  19. Pregledovanje (review) • Kriteriji: • Namen • Stopnja avtomatiziranosti • Eno orodje za vse ali več specialističnih • Primeri: • Čiščenje kode • Statična, dinamična analiza kode • Iskanje napak v dodeljevanju pomnilnika • Iskanje varnostih lukenj • Pokrivanje kode • Disassembler

  20. Pregledovanje (review) • Komercialna orodja (~ 30): • ClodeDR (poišče redundantno kodo) • Code Surfer (uveljanjvljanje standadrdov za kodiranje C, C++…) • Hindsight (instrumentacija za dinamično analizo kode) • PE Explorer (disassember, analizator binarnih datotek) • SPI Dynamics: WebInspect (išče varnostne luknje v spletnih aplikacijah) • Prosta orodja (~1000)

  21. Upravljanje konfiguracij • Kriteriji • Okolje za gradnje • Začetno stanje (baseline) • Vejenje • Združevanje (samodejno) • Podpora • Zaklepanje datotek • Verzioniranje datotek ali imenikov • Podpora sočasnemu razvoju (multi-site) • Povezava z upravljanjem zahtevkov

  22. Upravljanje konfiguracij • Komercialna orodja (~ 40): • IBM: ClearCase (najzahtevnejši projekti) • SCM Labs: Quartet (SCM z vodenjem napak) • Visible Systems: Razor (SCM) • Serena: Dimensions (zahtevno upravljanje sprememb) • Serena: PVCS, Version Manager, Professional (družina SCM orodij) • True Blue: SnapshotCM (preprosto grafično okolje za SCM) • Microsoft: Source Save (preprosto orodje za nadzor različic) • MKS: Integrity manager (družina orodij za podporo življenjskemu ciklu) • Prosta orodja: • RCS • CVS, CVSNT, grafični odjemalci • Subversion • Sourceforge (celotno prosto razvojno okolje) • Savannah

  23. Testiranje • Kriteriji • Stopnja integracije z razvojnimi orodji • Možnost samodejnega merjenja pokritosti testiranja • Samodejno testiranje: spletne aplikacije • Obremenitveno testiranje • Regresijsko testiranje • Performančno testiranje, merjenje zmogljivosti (perform. profiling) • Priprava testnih primerov na podlagi seznama zahtev (requirements) • Samodejno poročanje pri sesutju (crash reporting) • Testiranje modulov • Integracijsko testiranje • Upravljanje testiranje (priprava testnih primerov, izvedba testiranja, statistika, poročilo) • Testiranje črne škatle • Verifikacijski testi (testiranje skladnosti z zahtevami standardov) • Iskanje okvare pomnilniškega prostora (memory corruption)

  24. Testiranje • Komercialna orodja (~ 300 orodij) • Mercury: QuickTest Professional, TestDirector • AutomatedQA: TestComplete • TechExcel: DevTest • Imagiware: DoctorHTML (avtomatizirano spletno testiranje) • McCabe: družina Coverage Server, Enterprise Quality, QA, Test • Minq: PureTest • IBM: Rational Suite (podprt življenjski cikel Rational) • LogiGear: TestArchitect (distribuirano testiranje, ključne besede) • Web Performance Trainer (samodejno izmeri zmogljivost spletnega mesta – število hkratnih uporabnikov) • Prosta orodja: • Množica orodij za obremenitveno testiranje • Množica orodij za testiranje spletnih aplikacij

  25. Zgledi uporabe in rezultati

  26. Spremljanje in nadzorovanje projektov

  27. Metrike enega projekta

  28. Spremljanje opravljenega dela

  29. Upravljanje konfiguracij

  30. Pregled kode

  31. Življenjski tok zahtevka

  32. Upravljanje zahtevkov

  33. Časovni tok zahtevkov Izdaja Izdaja

  34. Sistem uravnoteženih kazalnikov

  35. Povzetek

  36. Povzetek • Orodja so postala nuja in blago široke potrošnje • Na voljo je velika izbira • Odločamo se lahko med komercialnimi in prosto dostopnimi • Poleg strogih tehnoloških sodimo tudi po kriterijih integracije z drugimi orodji • Orodje mora prinašati dodano vrednost ... ... in olajševati delo

  37. Orodje ni odgovorno!

  38. Hvala za pozornost! HERMES SoftLab Litijska 51 1000 Ljubljana, Slovenia www.hermes-softlab.com

More Related