380 likes | 579 Views
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.
E N D
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. • 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.
Zakaj orodja? • Orodje je sredstvo, ki nudi mehansko ali mentalno pomoč pri doseganju nekega cilja • S primernimi orodji lažje opravimo delo
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
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!
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
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
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
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
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)
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
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
Merjenja • Kriteriji • Merjenje kompleksnosti kode (McCabe, Halstead), LOC • Pokrivanje kode • Merjenje hitrosti • Uveljavljanje standardov
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
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
Varnostno shranjevanje • Komercialna orodja (~20): • HP: Data protector • IBM: Tivoli Storage Manager • Veritas: Backup • EMC: Legato • Prosta orodja: • Amanda • BURT • Afbackup • taper
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
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)
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
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
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)
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
Časovni tok zahtevkov Izdaja Izdaja
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
Hvala za pozornost! HERMES SoftLab Litijska 51 1000 Ljubljana, Slovenia www.hermes-softlab.com