U ovoj lekciji ćemo obrađivati:

  • Ulogu alata softverskog inženjerstva
  • Oblast znanja alati i metode softverskog inženjerstva prema SWEBOK-u (Software Engineering Body of Knowledge)
  • Pregled osnovnih alata softverskog inženjerstva

 

Uloga alata softverskog inženjerstva

Softverski razvojni alati su računarski zasnovani alati koji se koriste kao podrška životnom ciklusu razvoja softvera. Alati omogućavaju automatizaciju dobro definisanih akcija koje se ponavljaju, smanjujući tako opterećenje softver inženjera koji je slobodan da se koncentriše na kreativnije aspekte procesa.

Alati su najčešće dizajnirani da podrže određeni metod softverskog inženjerstva, smanjujući svako administrativno opterećenje vezano za ručnu primenu metoda. Kao i same metode softverskog inženjerstva i alati su kreirani sa ciljem sistematičnijeg rada softver inženjera i mogu da variraju u opsegu od podrške individualnim zadacima do sveobuhvatnih alata kompletnog životnog ciklusa razvoja softvera.

Metode softverskog inženjerstva nameću strukturu aktivnosti softverskog inženjerstva sa ciljem kreiranja aktivnosti sistematičnim, sa boljim šansama za uspeh. Metode obično pružaju notaciju i rečnik, procedure za izvršavanje zadataka i smernice za proveru procesa i proizvoda.

Dok postoje detaljna uputstva za specifične alate i različita istraživanja inovativnih alata, opšta tehnička uputstva za alate softverskog inženjerstva su jako retka i oskudna. Jedan od velikih problema je veliki stepen promene u softverskim alatima generalno.

Alati i metode softverskog inženjerstva pokrivaju kompletan proces životnog ciklusa i prema tome vezani su za svaku oblast softverskog inženjerstva.

Oblast znanja alati i metode softverskog inženjerstva

Na sledećoj slici prikazana je struktura oblasti znanja SOFTWARE ENGINEERING TOOLS AND METHODS prema SWEBOK-u, IEEE Computer Society.

Slika 1

Alati softverskog inženjerstva

Alati softverskog inženjerstva mogu se podeliti u sledeće grupe:

  1. Alati softverskih zahteva (eng. Software Requirements Tools)
  2. Alati softverskog dizajna (eng. Software Design Tools )
  3. Alati softverske konstrukcije (eng. Software Construction Tools)
  4. Alati softverskog testiranja (eng. Software Testing Tools)
  5. Alati softverskog održavanja (eng. Software Maintenance Tools )
  6. Alati za upravljanje softverskom konfiguracijom (eng. Software Configuration Management Tools)
  7. Alati za menadžment softverskog inženjerstva (eng. Software Engineering Management Tools)
  8. Alati procesa softverskog inženjerstva (eng. Software Engineering Process Tools)
  9. Alati softverskog kvaliteta (eng. Software Quality Tools)
  10. Alati za različitu primenu (Miscellaneous Tool Issues)

Alati softverskih zahteva

Alati za upravljanje softverskim zahtevima su klasifikovani u dve kategorije:

  1. alati za modelovanje 
  2. alati za praćenje zahteva


Alati za modelovanje se koriste za izvlačenje, analiziranje, specifikaciju i validaciju softverskih zahteva. Sa druge strane, alati za praćenje zahteva su postali izuzetno važni kako kompleksnost softvera raste. Svaki softverski zahtev mora biti ispraćen kroz proces dizajna, kodiranja i testiranja, čime važnost njihovog efikasnog praćenja kroz proces razvoja dobija sve više na značaju. Pošto su relevantni i u ostalim procesima životnog ciklusa, alati za praćenje se predstavljaju odvojeno od alata za modelovanje zahteva.

U sledećoj tabeli je dat pregled alata za upravljanje softverskim zahtevima.

Alati za upravljanje zahtevima sortirani prema imenu
(izvor: INCOSE–International Council on Systems Engineering http://www.incose.org)
 Accept Requirements (Accept 360) Accept Software http://www.acceptsoftware.com
 Aligned Elements Version 1.5 (AE 1.5) Aligned AG http://www.aligned.ch/
 Avenqo PEP Version 1.2 Avenqo http://www.avenqo.com
 CASE Spec Version 8.15 Goda Software http://www.casespec.net/products.htm
 Cognition Cockpit (Cockpit) Version 5.1 Cognition Corporation http://www.cognition.us
 Contour by Jama Software (Contour) Version 2.4 Jama Software http://www.jamasoftware.com
 CORE Version 5.1.5 Vitech Corporation http://www.vitechcorp.com
 Cradle Version 5.7 3SL, Inc. http://www.threesl.com
 Dimensions RM (DimRM) Version 10.1.4 Serena Software http://www.serena.com/products/rm/index.html
 e-LM.com (e-LM) Version 3.00 e-LM.com http://www.e-lm.com
 Enterprise Architect Version 7.1 Sparx Systems http://www.sparxsystems.com
 Envision VIP Version 9 Future Tech Systems, Inc. http://www.future-tech.com/prod01.htm
 IBM Rational RequisitePro Version 7.1 IBM http://www-01.ibm.com/software/awdtools/reqpro/
 IRQA Version 4 Visure Solutions http://www.visuresolutions.com/products/index.php
 Kovair Global Lifecycle (Kovair) Version 5.5 Kovair Software, Inc. http://www.kovair.com
 Lighthouse Requirements Management Artifact Software http://www.artifactsoftware.com/products/Requirements-Management.html
 Polarion Requirements Version 2 Polarion Software http://www.polarion.com/products/requirements/index.php
 Project & Test Engineering System (PTESY) Version 5.4 Andromeda s.r.l. http://www.andromeda-srl.com/PRODUCTS/PTESY/brochure.html
 RTIME Version 5 Qavantage http://www.qavantage.com
 RaQuest Version 3.0 SparxSystems Japan Co., Ltd http://www.raquest.com/
 ReqMan Version 2.0 RequirementOne Inc. http://www.requirementone.com
 Requirements Manager (ReMa) Accord Software and Systems Pvt. Ltd. http://www.rema-soft.com
 SoftREQ Software Requirements, Inc. http://www.softreq.com
 Teamcenter Requirements (Tc RM) Version 8 Siemens http://www.siemens.com/plm
 Telelogic DOORS Version 9 Telelogic, An IBM Company http://www.telelogic.com/doors

 

Alati softverskog dizajna

Ova podoblast pokriva alate za kreiranje i proveru softverskog dizajna. Postoji više takvih alata, sa mnogo raznolikosti koja je posledica raznolikosti notacija i metoda softverskog dizajna. Uprkos ovoj raznolikosti ipak, ne postoji posebna podela alata u ovoj oblasti.

Alati softverske konstrukcije

Ovi alati se koriste da proizvedu i prevedu programsku predstavu, kao što je na primer izvorni kod, koja je dovoljno detaljna i eksplicitna radi omogućavanja mašinskog izvršavanja.

U ovu grupu alata spadaju programski editori, kompajleri, interpreteri i Debugger-i.

Programski editori se koriste za kreiranje i modifikaciju programa i dokumenata povezanih sa njima. To mogu biti editori opšte namene ili specijalizovani za određenu vrstu jezika.

Kompajleri tradicionalno predstavljaju neinteraktivne prevodioce izvornog koda, ali je čest slučaj integracije kompajlera i programskih editora, radi obezbeđivanja integrisanih programerskih okruženja. U ovom delu se takođe obrađuju preprocesori, linkeri i generatori koda.

Interpreteri omogućavaju softversko izvršavanje kroz emulaciju. Oni podržavaju aktivnosti softverske konstrukcije, putem pružanja kontrolisanijeg okruženja za izvršavanje programa.

Debageri podržavaju proces softverske konstrukcije, ali se razlikuju od programskih editora i kompajlera. To su programi koji se koriste za testiranje, identifikovanje izvora greške i njenog otklanjanja u drugim programima.

Alati softverskog testiranja

U ovu grupu alata spadaju test generatori, test okruženja, alati test evaluacije, alati upravljanja testiranjem i alati za analizu performansi.

Test generatori se koriste kao podrška razvoju test slučajeva. Test okruženja omogućavaju izvršavanje test slučajeva u kontrolisanom okruženju, gde se posmatra ponašanje objekata koji se testiraju.

Alati test evaluacije se koriste radi ocene rezultata testiranja, kao pomoć u određivanju da li je ili ne, posmatrano ponašanje u skladu sa očekivanim ponašanjem. Alati za upravljanje testiranjem pružaju podršku za sve aspekte procesa softverskog testiranja. Alati za analizu performansi se koriste za merenje i analizu softverskih performansi što čini specijalizovanu formu testiranja gde je cilj procenjivanje performansi, pre nego funkcionalnosti softvera.

Alati softverskog održavanja

Ova oblast obuhvata alate koji su posebno važni tokom softverskog održavanja, gde se modifikuje postojeći softver. Dve kategorije ovih alata su: sveobuhvatni alati, reinženjering alati.

Sveobuhvatni alati pomažu u čovekovom razumevanju programa što uključuje i alate za vizuelizaciju, kao što su animatori. Reinženjering se definiše kao ispitivanje i prepravka datog softvera radi konstituisanja u novoj formi i uključuje sledeće implementacije u novoj formi. Alati za reinženjering daju podršku ovoj aktivnosti.

Reference

  1. IEEE Computer Society, Software Engineering Coordinating Committee, Guide to the Software Engineering Body of Knowledge, 2004, (www.swebok.org)
  2. INCOSE–International Council on Systems Engineering
    http://www.incose.org/ProductsPubs/products/rmsurvey.aspx, visited, 26.jun 2009.
Dodaj komentar Sviđa mi se - (0) Ne sviđa mi se - (0)    

  • Osnovni alati softverskog inženjerstva 1
  • Osnovni alati softverskog inženjerstva 2
  • Osnovni alati softverskog inženjerstva 3