*(SEI: Software Engineering Institute, Yazılım
Mühendisliği Enstitüsü)
*(CMM-Capability Maturity
Level, Yetenek Olgunluk Seviyesi)
Proje yönetimi, gereksinimlerin yönetimi sürecinin
verimliliğini ölçebilir. Bunun için şu ölçütler kullanılabilir:
Her gereksinimin durumu, gereksinimlerin toplam kümülatif değişim sayısı, efor
ve gereksinimlerin yönetiminde harcanan bütçe. Gereksinimlerin yönetimi sürecinin başarısızlığa
uğraması direkt olarak proje yönetimini de etkileyeceği için detaylı bir
“gereksinimlerin yönetimi planı” yapılmasında fayda vardır.
Amaçlar
Yazılıma atanmış olan gereksinimleri, yazılım
mühendisliği ve yönetim için bir temel referans olmaları için kontrol etmek.Yazılıma atanmış sistem gereksinimleri
ile yazılım planları, ürünleri, aktiviteleri tutarlı tutabilmek. Bu amaçlara göre;
1 – Proje, yazılıma atanmış sistem
gereksinimleri için yazılı ve kurumsal bir anlaşmayı takip etmelidir.
Yazılıma atanmış bu sistem gereksinimlerine
“atanmış gereksinimler” denir. Atanmış gereksinimler, yazılım bileşenleri
tarafından gerçekleştirilen sistem gereksinimlerinin bir alt kümesidir. Bu atanmış gereksinimler yazılım geliştirme
planının birincil girdilerini oluşturur.
Yazılım gereksinimleri analizi atanmış gereksinimleri sadeleştirerek yazılım
gereksinimleri belgesi haline getirir. Bu oluşturulan belge şunları belirtir:
-
Atanmış gereksinimler belge haline getirilmiş,
raporlanmıştır.
-
Atanmış gereksinimler, yazılım yöneticileri,
sistem test grubu, yazılım mühendisliği grubu, sistem mühendisliği grubu,
yazılım kalite güvence grubu, yazılım yapılandırma (konfigurasyon) yönetim grubu,
belgeleme/raporlama destek grubu tarafından gözden geçirilmiştir.
-
Yazılım planları, ürünleri, aktiviteleri atanmış
gereksinimlerdeki değişikliklere tutarlı bir şekilde değiştirilmiştir.
Gerekli
Yetenekler
Yetenek –1 Her proje için sistem
gereksinimlerini analiz etme ve bunları yazılım, donanım ve diğer sistem
bileşenlerine dağıtma sorumluluğu tanımlanma
Sistem gereksinilerinin analizi ve atamalarının
yapılması yazılım mühendisliği grubunun sorumluluğu değildir fakat işleri için
bir önkoşuldur. Sorumluluk şunları kapsar:
1. Gereksinimlerin yönetimi ve belgelendirilmesi ve
bunların proje yaşam döngüsü boyunca dağıtımını yapma
2. Sistem gereksinimlerindeki değişiklikleri ve
dağıtımlarını etkilemek, yönlendirmeYetenek – 2 Atanmış gereksinimleri
belgeleme/raporlama, yazıya dönüştürme
Atanmış gereksinimler aşağıdakileri içerir:
1.Yazılım projesinin aktivitesini belirleyen
teknik olmayan gereksinimler (anlaşmalar, koşullar, anlaşma ile ilgili
terimler).
- Anlaşma, koşul, anlaşmadan doğan terim
örnekleri:
-
Hazırlanması gereken ürünler
-
Hazırlanma tarihleri
-
Ara raporlar (milestones)
2.Yazılımın teknik gereksinimleri.
- Teknik
gereksinim örnekleri:
- Son kullanıcı, işlemci, destek, birleştirme
fonksiyonları
- Performans gereksinimleri
- Tasarım kısıtlamaları
- Programlama dili
- Arayüz
gereksinimleri
3.Yazılım ürünlerinin atanmış
gereksinimleri karşılayıp karşılamadığını ölçmek için kullanılacak olan kabul
edilebilirlik kriterleri.
Yetenek – 3 Atanmış gereksinimler yönetiminin
yapılabilmesi için kaynak ve bütçe sağlanması
1. Uygulama alanında ve yazılım mühendisliğinde
yeterli tecrübesi olan kişilerin gereksinimleri yönetmek için atanması.
2. Gereksinim yönetimi için gerekli olan araçların
sağlanması.
Örnek araçlar:
-
Hesap çizelgesi programları
-
Yapılandırma yönetimi programları
-
İzleme programları
-
Test yönetimi programları
Yetenek 4 – Yazılım mühendisliği grubu
üyeleri ve diğer yazılm ile ilgili grupların üyelerinin kendi gereksinim yönetim
aktivitelerini yapabilmeleri için eğitimi
Örnek
olarak:
- Projede kullanılan metod,
standard, süreç eğitimi
-
Uygulama alanı eğitimi (sağlık, eğitim, hukuk vs.)
Yapılacak Aktiviteler
Aktivite – 1 Yazılım mühendisliği grubu
tarafından, gereksinimler yazılım projesine geçirilmeden önce atanmış
gereksinimleri inceleme
1. Tamamlanmamış ve unutulmuş gereksinimler
düzeltilir. 2.Atanmış gereksinimlerin:
-
yapılabilir, yazılım ile gerçekleştirilebilir,
-
düzgün ve açıkca belirtilmiş,
-
test edilebilir,
-
birbiriyle tutarlı olup olmadıkları kontrol
edilir.
3. Gereksinimleri atamaktan ve analiz etmekten
sorumlu olan grup tarafından potansiyel olarak sorun teşkil edecek gereksinimler
gözden geçirilir ve gerekli değişiklikler yapılır.
4. Atanmış gereksinimlerden etkilenen gruplar ile görüşmeler yapılır.
Etkilenen grup
örnekleri:
- Yazılım mühendisliği
-
Yazılım tahminleme
-
Sistem mühendisliği
-
Sistem test
-
Yazılım kalite güvence
- Belgeleme/raporlama destek
Aktivite – 2 Yazılım mühendisliği grubu,
atanan gereksinimleri, yazılım planını, ürünü, aktiviteler için temel olarak
kullanmak
Atanmış gereksinimler:
1. Kontrol edilebilir, yönetilebilirdir. (Herhangi bir anda, ürünün hangi
versiyonu olduğu bilinmektedir ve ne gibi değişiklikler yapıldığı bilinmektedir.)
2. Yazılım planı için referans olur
3. Yazılım gereksinimleri geliştirme için referans olur.
Aktivite – 3 Atanmış gereksinimlere
yapılan değişiklikler incelenir ve yazılım projesine dahil edilir.
1. Kurum dışı gruplarla tayin edilen gereksinimler
üst düzey yöneticiler tarafından gözden geçirilir, kurum içi gruplara tayin
edilen gereksinimler etkilenen gruplar tarafından gözden geçirilir.
2. Atanmış gereksinimlerdeki değişikler yüzünden
plan, ürün, aktivitelerde yapılması gereken değişiklikler
- belirlenir,
- değerlendirilir,
- risk analizi yapılır,
- planlanır,
- etkilenen gruplarla iletişime geçilir,
- tamamlanana kadar gözlemlenir.
Ölçümleme
& Analiz
Atanmış gereksinimleri yönetmek için
kullanılan aktivitelerin durumlarını belirlemek için ölçümlemeler kullanılır
Ölçümleme örnekleri:
-
Her gereksinimin durumu,
-
Atanmış gereksinimler için değişim aktiviteleri,
-
Atanmış gereksinimlere uygulanan değişimlerin kümülatif sayısı
Gerçekleştirimde Doğrulama
Doğrulama – 1 Atanmış gereksinimlerin
yönetimi, periyodik aralıklarla üst düzey yönetim tarafından kontrol edilir
Belirli aralıklarla yapılan bu kontrollerin amacı
yazılım sürecine belirli bir soyutlama ile bakarak yanlışlıkların farkında
olmaktır. Kontroller arasındaki zaman, raporlamalar ve yeni gelişmeler için
yeterli olmalıdır.Doğrulama –2
Atanmış gereksinimlerin yönetimi, periyodik ve olay-tabanlı olarak proje
yöneticisi tarafından kontrol edilir
Doğrulama – 3 Yazılım kalite güvence grubu
iş ürünlerini ve diğer sonuçları kontrol eder
Bu kontroller aşağıdakileri doğrular:
1.
Atanmış gereksinimlerdeki problemlerin, tutarsızlıkların yazılım mühendisliği
grubu onları ele almadan önce çözülmesi
2. Atanmış gereksinimlerin değişiminde iş planlarının,
ürünlerinin, aktivitelerinin doğru olarak gözden geçirilmesi
Etkili gereksinim yönetimi,
yazılım kalitesini arttırır, proje yaşam döngüsü zamanını azaltır.Tam gereksinimler daha iyi bir yazılım
tasarımını sağlar ve daha bakımı kolay kod oluşmasını sağlar. Böylelikle
zamandan ve paradan tasarruf sağlanır çünkü yanlış mantıkta kodlama yapma
veya artık istenmeyen bir özelliğin gerçekleştirimi yapılmamış olur. |
NOT:
CMM gereksinimleri nasıl
yöneteceğinizi söylemez. Onun yerine yazılımın gereksinimlerini karşılamak
zorunda olduğunu belirtir ve aşağıdaki soruları dikkate almanızı ister:
- Gereksinimlerin ne olduğunu biliyor musun?
- Tüm
yazılım geliştirme ekibi ne yapılmak istendiğini biliyor musun?
-
Gereksinimler değişince ne yapacaksın?
CMM, gereksinimler değişince onları bir
şekilde yönetmek gerektiğini, bunu için de izlenmesi gereken yazılı bir
belge/poliçe olması gerektiğini söyler.
Gereksinimlerin yönetimindeki asıl amaç,
tüm projeleri kapsayan bir süreç hazırlamaktır. Gereksinimler tüm projelerde
farklı olacaktır fakat genel şablon aynı olacaktır. Süreç şablonları
değişmeyecektir. |
NEDEN GEREKSİNİMLERİN YÖNETİMİ?
Bu soruyu verilecek en güzel yanıt şudur: “Tahminlerinizden
çok, müşterinin istekleri doğrultusunda bir yazılım üretebilmek için”.
Belirsizlik, tüm proje risklerinin kökünü
oluşturur. Belirsizliğin büyük bir bölümünü de yetersiz gereksinimler analizi
oluşturur. Gereksiz veya tekrarlanmış gereksinimler, projenin kapsamının,
maliyetinin ne olacağının belirlenmesini engeller. Dahası, projeyi durdurma
noktasına getirir. Gereksinimlerdeki
eksikleri gidermek, tasarım sırasında 10 kat, gerçekleştirim sırasında ise 100
kat daha fazla maliyettedir.
İyi
Gereksinim Yönetimi Nedir?
-
Gereksinimlerin takibi, analizi için kullanıcı
merkezli, organize bir yaklaşımdır.
-
Gereksinimlerin nasıl ele alınacağını ve
gereksinimlerin yönetimi planını kapsar
- Kimler nasıl iş ile ilgili olacak?
- Gereksinimler ile ilgili hangi bilginin bakımı yapılacak?
- Yeni gereksinimlerle karşılaşılınca
hangi süreç izlenecek?
-
Ek gereksinimlerin belirlenmesinde proje
özellikleri de göz önüne alınmalıdır
Başarılı bir proje dikkatlice oluşturulmuş ve
belgelendirilmiş gereksinimlerle başlar. İyi oluşturulmuş bir gereksinimlerin
yönetimi süreci proje takımına tüm projeler boyunca yardımcı olur.
GEREKSİNİMLERİN YÖNETİMİNDE KULLANILAN ARAÇLAR
Aşağıda, gereksinim yönetiminde kullanılan
araçları görmektesiniz. Şunu unutmayın ki, kullanılan araç ne kadar iyi olursa
olsun, kötü belirlenmiş gereksinimleri yönetmek zordur, maliyeti arttırır,
çizelgeyi aşmanıza sebep olur.
İnternetteki GY Araçları:
Active!Focus:
www.xapware.com
AnalystPro:
analysttool.com/
Caliber-RM:
www.borland.com/caliber/index.html
C.A.R.E. 2.0:
www.sophist.de
Catalyze:
www.chiaracorp.com/requirements.htm
CORE:
www.vtcorp.com
Cradle:
www.threesl.com
DOORS:
www2.telelogic.com/doors/index/cfm
EasyRM:
www.easy-rm.com/easyrm.php3
Focal Point:
www.focalpoint.se
IRqA (Integral Requisite Analyzer):
www.irqaonline.com
Mac A&D and Win A&D:
www.excelsoftware.com
Projectricity:
www.projectricity.com/specification_tool.htm
Prosareq Requirements Manager:
www.prosa.fi/eng/pr2Req.htm
Qualica QFD:
qualica.de/english/requirements_mgmt.htm
RDD-100:
www.holagent.com/new/products/modules.html
RDT:
igatech.com/rdt/rdtwalkthrough.html
Reconcile:
compuware.com/products/reconcile.html
Requirement Tracing System:
www.bandwood.com/cms_exec_summary.htm
Requirements Manager:
toolforsystems.com/
Requisite Pro:
www.rational.com/products/reqpro/index.jsp
RMTrak:
www.rmtrak.com
RTM Workshop:
www.chipware.com
SLATE:
www.eds.com/products/plm/teamcenter/slate
SpeedReq:
www.speedev.com
Team-Trace:
www.team-trace.com
TrueReq:
www.truereq.com
Vital Link: www.complianceautomation.com
XTie-Requirements Tracer:
tbe.com/products/xtie
Kaynaklar:
Brackett, J.W. "Software
Requirements." Curriculum Module SEI-CM-19-1.2, Software Engineering
Institute, Carnegie Mellon University, Pittsburgh, Pa., Jan 1990. This paper
can be downloaded from the web at
http://www.asset.com/WSRD/abstracts/ABSTRACT_1715.html.
Romback, H. D. "Software Specification: A
Framework." Curriculum Module SEI-CM-11-2.1, Software Engineering
Institute, Carnegie Mellon University, Pittsburgh, Pa., Jan. 1990. This paper
can be downloaded from the web at
http://www.asset.com/WSRD/abstracts/ABSTRACT_1709.html.
McConnell, Steve "Software Project
Survival Guide: How to Be Sure Your First Important Project Isn’t Your
Last." Redmond, WA: Microsoft Press, 1998.
Jones, Do-While "Repeatable Software
Development, Part I: Quality Assurance." Software Developement, May 1995.
Jones, Do-While "Repeatable Software
Development, Part II: Configuration and Requirements Management." Software Developement, June 1995.
A Field Guide to Effective Requirements
Management Under SEI’s Capability Maturity Model
CMM Key Practices for Level 2 - Requirements
Management
LTInsights Managing Requirements for
Successful Software Projects
Requirements Management Policies and
Procedures
Requirements Management Using Tables
Software Program Managers Network - 16
Critical Software Practices TM
Makale:
SEI-CMM Düzey-2 Kapsamında Efektif Bir Gereksinimlerin Yönetimi Planı İçin Bir Rehber Yazılım Mühendisliği Tanıl Ergin
|