Yazılım İster Analizi - Sosyal Hizmet Uzmanları

advertisement
Yazılım İster Analizi
<Ahtapot CRM>
Versiyon 1.0
Prepared by Code35 Yazılım Ekibi
02.02.2017
1. Gereksinim Geliştirme
1.1. Amaç
Ahtapot CRM sigorta şirketlerinin ürünlerini satmakla mükellef sigorta acentelerinin iş sürecinin
takibini sağlamak amacıyla oluşturulmuş tümleşik bir müşteri ilişkileri yönetim sistemidir.
Bu doküman ise Ahtapot CRM yazılımının ortaya çıkana kadar içinden geçeceği yazılım yaşam
döngüsü süreçlerindeki her bir adımın tasnif ve açıklanması amacıyla hazırlanmıştır.
1.2. Giriş
Bu işlem alanı CMMI’da belirtildiği üzere 3 tip gereksinim tanımlar : Müşteri gereksinimi, ürün
gereksinimi ve ürün bileşen gereksinimleri. Bu gereksinimler ilgili paydaşların gereksinimlerini
adresler. Bununla beraber gereksinimler aynı zamanda tasarım çözümleri tarafından seçilen kısıtları
da adresler.
Yazılım geliştirme süreci aşamaları:
Gereksinim Analizi / Requirements (Requirements Analysis)
Spesifikasyon / Specification (Functional Specification)
Mimari / Architecture (Software Architecture)
Dizayn / Design (Software Design)
İmplementasyon (Programlama) / Implementation (Computer Programming)
Test / Testing (Software Testing)
Sahaya Yerleştirme / Deployment (Software Deployment)
Bakım / Maintenance (Software Maintenance)
Bütün geliştirilen projelerin gereksinimleri vardır. Bir projenin bakımına odaklanıldığında, ürün ya da
ürün bileşenlerinde değişiklik yapılırken varolan gereksinim, tasarım ve implementasyondaki
değişiklikler baz alınır. Müşteri ya da kullanıcının isteklerinde bir değişiklik olursa ya da gereksinim
geliştirme işleminden alınan yeni gereksinimlerin formunda bir değişiklik olursa, gereksinimler
değişebilir.
Gereksinim geliştirme şu aşamaları içerir:
Müşteri ihtiyaçlarının, beklentilerinin ve paydaşlara ne sağlayacağını anlamaya yönelik müşteri
gereksinimlerini sağlayan kısıtların meydana çıkarılması, analizi, geçerlemesi ve bağlantısı.
Paydaşların ihtiyaçlarının koordine edilmesi ve toplanması
Ürünün yaşam döngüsü gereksinimlerinin geliştirimi
Müşteri gereksinimlerinin belirlenmesi
Müşteri gereksinimleriyle tutarlı ilk ürün ve ürün bileşen gereksinimlerinin belirlenmesi
Bu işlem alanı tüm müşteri gereksinimlerini adresler. Müşteri gereksinimleri, ürün ve ürün bileşen
gereksinimlerinde çıkarılmıştır. Müşteri gereksinimlerine ek olarak, ürün ve ürün bileşen
gereksinimleri seçilmiş tasarım çözümlerinden türetilir.
Analiz; rakip alternatiflerden tüm seviyelerde tüm seviyelerde gereksinimleri anlamak, tanımlamak ve
seçmek için kullanılır. Analiz aşağıdakileri içerir:
İlgili paydaşların ihtiyaçları, operasyonel çevre ve genel müşteri ve son kullanıcı beklentilerini ve
memnuniyetini yansıtan faktörleri de içeren, her ürün yaşam döngüsü fazı için ihtiyaçların ve
gereksinimlerin analizi
Bir operasyonel konseptin gelişimi
Gerekli işlevselliğin tanımı
İşlevselliğin tanımı, yazılım geliştirmedeki yapısal analizle aynı olmayan işlevsel analiz olarak da ifade
edilebilir.
İlerlemek için ayrıntılı tasarımı ve ürünün testini mümkün kılan etkin bir tanım varolana kadar bir
ürün mimarisinin daha ayrıntılı katmanlarında tekrarlı olarak analiz meydana gelir. Gereksinim analizi
ve işlevsel konseptin bir sonucu olarak, fabrikasyon ve üretim konsepti aşağıdaki hususları dikkate
alarak türetilmiş gereksinimler üretir.
Çeşitli tiplerin kısıtları
Teknolojik limitler
Maliyet ve maliyet sürücüleri
Zaman kısıtları ve iş takvimi sürücüleri
Riskler
Müşteri ve son kullanıcı tarafından tespit edilmemiş fakat belirtilmiş konuların ifadesi
Geliştiricilerin biricik iş düşüncesi, denetimi ve yasaları tarafından tanıtılmış faktörler
1.3. Gereksinim Türleri
1.3.1. Kullanıcı Gereksinimleri
Nesne misyonunun, ortamın, kısıtların ve etkililik ve uygunluğun ölçülmesinde sistemin beklentilerini
tanımlayan gerçek ve varsayımların durumudur. Kullanıcılar; sistem mühendisliğinin sekiz birincil
fonksiyonun gerçekleştirirler. İşlevsel gereksinimler temel ihtiyacı ve aşağıdaki soruları cevaplayacak
şekilde tanımlıdır:
İşlevsel dağıtım ve yayılma : Sistem nerede kullanılacak?
Profil misyonu ya da senaryo : Sistem nesne misyonunu nasıl tamamlayacak?
Performans ve ilgili parametreler : Misyonu tamamlamak için kritik sistem parametreleri nelerdir?
Gereksinimlerin etkililiği : Misyonu gerçekleştirirken sistem nasıl etkin ve etken olacak?
İşlevsel yaşam döngüsü : Sistem kullanıcı tarafından nasıl kullanılacak?
Ortam : Etkin bir biçimde çalışabilmek için hangi ortamlar sistem tarafından beklenir?
Bu gereksinimler doğal dille yazılabilen, diyagramlarla gösterilebilen ve müşteriler için hazırlanan
gereksinimlerdir. Kullanıcı senaryoları için temel oluşturur.
Use-case’ler ayrı ayrı ve use-case diyagramlarıyla belirtilir. Bir use-case senaryoların toplamını belirtir.
Veri akış diyagramı : Veri öğlerinin çeşitli fonksiyonlara geçmek için nasıl bir akış gösterdiğini açıklar.
Sistem fonksiyonlarını açıklamak için kullanışlıdır.
Durum geçiş diyagramı : Bir ya da daha fazla işleme cevapta sistemin durumunu açıklar.
Kullanıcı arayüzü : Genellikle gereksinim analizinin bir parçası olmamakla beraber dahil edilebilir.
Veri akış diyagramı :
Durum Geçiş Diyagramı:
1.3.2. Mimari Gereksinimler
Bir sistemin gerekli sistem mimarisini tanımlamak için ne yapılması gerektiğini tanımlar.
1.3.3. Yapısal Gereksinimler
Bir sistemin gerekli yapısını tanımlamak için ne yapılması gerektiğini tanımlar.
1.3.4. Davranışsal Gereksinimler
Bir sistemin gerekli davranışını tanımlamak için ne yapılması gerektiğini tanımlar.
1.3.5. Fonksiyonel Gereksinimler
Sistemin sunacağı hizmetler ile sistemin işlevsel altyapısını tanımlarlar. Sistemin ne yapacağını yapısal
ve işlevsel olarak ortaya koyarlar. Geliştirmeden bağımsız çoğunlukla giriş, çıkış arabirimleri, süreçler
ile hata yönetimine yönelik gereksinimlerdir. Sistem girişindeki izin verme ve yetkilendirme
gereksinimleri de bu tiptedir. Sistemin neler yapacağını soyut olarak değil de detaylandırılmış biçimde
belirler.
Fonksiyonel gereksinim analizi fonksiyonel analiz için yüksek seviye fonksiyonlarda kullanılır.
1.3.6. Fonksiyonel Olmayan Gereksinimler
Sistemin daha çok kısıtları ile fiziksel ortam, arayüzler, kullanıcı odaklı olma, güvenlik, güvenilirlik,
kalite güvence gibi soyut niteliklerini belirleyen gereksinimlerdir. Yazılımlara işlevsellik katmamasına
rağmen bu tip gereksinimler özellikle yazılım kalitesi açısından kritik rol oynarlar. Bu gereksinimler
yazılımda karşılanmadığı sürece yazılımın kullanılabilirliği yetersiz kalacaktır.
1.4. Paydaşların Gereksinim Tanımı
Uluslararası standartta paydaş gereksinimleri tanımı işlemi ISO/IEC 15288’in paydaş gereksinimleri
tanım işleminin özelleştirilmiş halidir.
Paydaş gereksinimlerinin tanımının amacı, tanımlı ortamda kullanıcılar ve diğer paydaşlar tarafından
ihtiyaç duyulan servisleri sağlayan sistem için gereksinimleri tanımlamaktır.
Paydaşları ya da paydaş sınıflarını sistem yaşam döngüsü içinde ihtiyaçlarını ve isteklerini tanımlar.
Paydaş gereksinimleri tanım işlemi sonucunda;
a)
Gerekli karakteristikler ve servis kullanımının içeriği belirlenir.
b) Sistem çözümündeki kısıtlar tanımlanır.
c)
Paydaş gereksinimlerinin izlenilebilirliği başarılır.
d) Sistem gereksinimleri tanımı için temel tanımlanır.
e)
Servislerin uygunluğu geçerlemek için temel tanımlanır ve
f)
Bir ürünün ya da servisin temin edilmesinde görüşme ve anlaşma için temel sağlanır.
Paydaş gereksinim tanım işlemiyle ilgili uygulanabilir organizasyon politikaları ve yordamlarıyla uyum
içinde projenin şu aktiviteleri implemente etmesi gerekir:
Paydaş tespiti
Gereksinim tespiti
Gereksinim değerlendirme
Gereksinim görüşülmesi
Gereksinim kaydı
1.4.1. Paydaşların Tespiti
Proje bireysel paydaşları ya da sistem yaşam döngüsü içinde sistemde yasal bir ilgiye sahip paydaş
sınıflarını tanımlamalıdır.
1.4.2. Gereksinim Tespiti
Proje paydaş gereksinimlerini meydana çıkarmalıdır.
Paydaş gereksinimleri, ihtiyaçları, istekleri, arzuları, beklentileri ve tanımlı paydaşların seçilmiş
kısıtlarını tanımlar. Bunlar, sistem amaç ve davranışına yoğunlaşan ve işlevsel ortam ve durumların
bağlamında tanımlı, metne dayalı ya da formal olabilen bir modele dayanarak açıklanır. Paydaş
gereksinimleri, topluluk tarafından empoze edilen ihtiyaçları ve gereksinimleri, organizasyon ve
kullanıcı ve teknik personelin yetenek ve işlevsel karakteristikleri tarafından empoze edilen kısıtları
içerir. Bu belgelerin ve anlaşmaların taleplerini, onların gerekçeleme ve gerekçe ve paydaşların ve
gereksinimlerinin tatmininde yer alan değerlerin varsayımını içeren kaynakların belirlenmesinde
faydalıdır. Anahtar paydaş ihtiyaçları için, etkililiğin ölçümü, işlevsel performansın ölçülebilir ve tayin
edilmiş olacak şekilde tanımlanır.
Proje, varolan anlaşmanın kaçınılmaz sonuçları, yönetim kararları ve teknik kararlardan oluşan bir
sistem çözümünde kısıtlarını tanımlamalıdır.
Bu 1) paydaş tanımlı çözümün örnekleri ya da alanlarından; 2) sistemin hiyerarşik yapısının yüksek
seviyede yapılan implementasyon kararlarından; 3) tanımlı mümkün sistemlerin, kaynakların ve
personelin gerekli kullanımından çıkarılabilir.
Proje, beklenen işlevsellikle uyumlu ve senaryoları ve ortamı destekleyen tüm gerekli servisleri
tanımlamak için etkinlik sırasının temsili bir kümesini tanımlamalıdır.
Senaryolar, kendine ayrılmış ortamda paydaşların herhangi biri tarafından formal olarak belirtilmemiş
gereksinimleri tanımlamak için sistemin işletimini analiz etmek için kullanılır. Sistemin kullanım
bağlamı tanımlanır ve analiz edilir. Kullanıcıların sistem nesnelerini, sistemin son kullanıcısının ilgili
karakteristiklerini, fiziksel ortamı ve kullanılacak herhangi bir ekipmanı sağlamak için kullanıcıların
işleteceği etkinlikleri bağlam dahilinde analiz eder.
Sistem, kullanıcı ve sistem arasındaki etkileşimi insan kapasitesini ve yetenek sınırlarını dikkate alarak
tanımlamalıdır.
Kullanılabilirlik gereksinimleri minimumda en etkin, etken ve güvenilir insan performans ve insan
sistem etkileşiminde tanımlanır, onaylanır. Mümkünse, uygulanabilir standartlar ve kabul edilebilir
profesyonel uygulamalar tanımlamak için kullanılır:
a)
Fiziksel, mental ve öğrenilmiş yetenekler;
b) İş yeri, ortamı ve özellikleri
c)
Normal, olağandışı ve acil durumlar
d) Operatör ve kullanıcı kaydı, eğitimi ve kültürü.
Eğer kullanılabilirlik önemliyse, kullanılabilirlik gereksinimleri, planlanmalı, belirtilmeli ve yaşam
döngüsü işleminde implemente edilmelidir.
Proje, sağlığı, emniyeti, güvenliği, ortamı ve diğer paydaş gereksinimlerini ve kritik kalitelerle ilişkili
fonksiyonları belirtmelidir ve insan sağlığı ve güvenliğinde sistemin kullanımının ters etkileri
adreslenmelidir.
Güvenlik riskini tanımla ve eğer garantiliyse, gereksinimleri ve güvenliği sağlamak için fonksiyonları
belirt.
1.4.3. Gereksinimlerin Değerlendirilmesi
Proje ortaya çıkarılan gereksinimlerin tümünü analiz etmelidir.
1.4.4. Gereksinimlerin Görüşülmesi
Proje gereksinim problemlerini çözmelidir.
Proje ihtiyaçların ve beklentilerin tatmin edici bir şekilde ele alındığı ve ifade edildiğinden emin olmak
için uygulanacak paydaşlara analiz edilmiş gereksinimleri geri bildirim dönmelidir.
Proje gereksinimlerin tamamen ifade edildiğine dair paydaşlarla birlikte onay almalıdır.
1.4.5. Gereksinim Kaydı
Proje, paydaşların gereksinimlerini yaşam döngüsü içinde gereksinim yönetimi için uygun bir formda
kaydetmelidir.
Proje, paydaş ihtiyaçlarının kaynaklarına paydaş gereksinimleri izlenebilirlik bakımını yapmalıdır.
1.5. Gereksinim Analizi
Analizler; paydaşların ihtiyaçlarını, beklentilerini, kısıtlarını ve arayüzlerini sağlayacak yetenekte
işletim ortamının vuruşuna karar vermek için gerçekleştirilir. Olurluk, misyon ihtiyaçları, maliyet
kısıtları, potansiyel market büyüklüğü ve elde edilen strateji gibi düşünceler ürün bağlamında hesaba
katılmalıdır. Gerekli fonksiyonelliğin bir tanımı tanıtılmalıdır. Ürün için tüm belirtilmiş kullanım
modları düşünülmelidir, ve fonksiyonların zaman kritik sırası için bir zaman hattı analizi üretilir.
Analiz amaçları aday gereksinimleri tanımlamak içindir. Parametreler ise ürünün etkiliğini ölçmek için
kullanılır.
Analiz amaçları;
Yeni sistemin ya da yazılımın sınırlarını ve yeni problem alanında kendi ortamıyla nasıl etkileşim içinde
olmak zorunda olacağını bulunması
Kullanıcı gereksinimleri arasındaki çelişkileri bulunması ve çözümlenmesi
Paydaşların önceliklerini görüşülmesi
Gereksinim belirtim belgesinde tanımlı sistem gereksinimlerini ortaya çıkarılması
Gereksinim bilgisinin çeşitli kategorilere sınıflandırılması ve gereksinimlerin alt sistemlere ayrılması
İstenen kaliteler için gereksinimlerin değerlendirilmesi
1.5.1. İşlevsel Kavram ve Senaryoların Tanıtılması
Senaryo; paydaşların ihtiyaçlarının bazılarını belirtmekte kullanılan, ürünün kullanımında meydana
gelen olayların bir sırasıdır. Bir ürün için işlevsel kavram, hem tasarım çözümüne hem de senaryoya
bağlıdır. İşlevsel kavramlar, çözüm kararlarının yapılması ve düşük seviyeden ayrıntılı gereksinimlerin
geliştirilmesinden tanımlanır.
Bir ürün bileşeni için bir gereksinimin ürün olması tasarım karı olduğu gibi, işlevsel kavram ürün
bileşenleri için senaryolar olabilir. İşlevsel kavramlar ve senaryolar ürün bileşenlerinin ortamla,
kullanıcılarla ve diğer ürün bileşenleriyle ilişkisini belgeler.
Tipik iş ürünleri:
İşlevsel kavram
Ürün ve ürün bileşeni kurulumu, işlevsel, bakım ve destek bağlamları
Satış kavramları
Use-case’ler
Zaman hattı senaryoları
Yeni gereksinimler
Alt uygulamalar:
Fonksiyonelliği, performansı, bakımı, desteği ve satışı içeren işlevsel kavramları ve senaryoları geliştir.
Limitler ve kısıtları içeren ürün ve ürün bileşeninin işleyeceği ortamı tanımlar
İşlevsel kavram ve senaryoları gereksinimleri tanımlamak ve keşfetmek için gözden geçir
Ayrıntılı bir işlevsel kavram geliştir. Bu işlevsel kavram seçili ürün ve ürün bileşenlerinden oluşsun,
ürün, son kullanıcı ve oram etkileşimini tanımlasın ve işlevsel bakım, destek be satış ihtiyaçlarını
sağlasın.
1.5.2. Gerekli Fonksiyonelliğin Tanımının Tanıtılması
Fonksiyonelliğin tanımı fonksiyonel analiz olarak da referans edilebilir. Fonksiyonel analiz yazılım
geliştirmedeki yapısal analizle aynı değildir.
Tipik iş ürünleri:
Fonksiyonel mimari
Etkinlik diyagramı ve use-case’ler
Servislerle ve metotlarla tanımlı nesne tabanlı analiz
Alt uygulamalar:
Son kullanıcı tarafından gereksenen fonksiyonelliği analiz et
Mantıksal ve fonksiyonel kısımları tanımlamak için gereksinimleri analiz et
Gereksinim analizine odaklanmak için onaylanmış kriter taban alınarak gereksinimleri gruplara
parçala
Ürün bileşen gelişimi boyunca hem zaman-kritik fonksiyonların sırasını düşünmek
Müşteri gereksinimlerini çözümün sentezini kanıtlamak kanıtlanmış nesnelere ya da fonksiyonel
parçalar, nesneler, insanlara paylaştır
Fonksiyonel ve performans gereksinimlerini fonksiyonlara ve alt fonksiyonlara paylaştır.
1.5.3. Gereksinimlerin Analizi
Analiz edilmiş gereksinimler, daha ayrıntılı gereksinimler için temel oluşturur. Gereksinimler
tanımlandığı gibi, yüksek seviye gereksinimlere ve yüksek seviyeden tanımlı fonksiyonelliğe ilişkisi
anlaşılmalıdır.
Tipik iş ürünleri:
Gereksinimler raporlardan ayrılır
Sunulmuş gereksinimler çözümlere dönüşür
Anahtar gereksinimler
Tenkil performans ölçülür
Alt uygulamalar:
Paydaşların ihtiyaçlarının, beklentilerinin, kısıtlarının ve dış arayüzlerin karışıklığın ortadan
kaldırılması ve ilgili öznelerin organize edilmesi için analizi
Gereksinimlerin yüksek seviye gereksinimlerin amaçlarını sağlayıp sağlamadığına karar vermek için
gereksinimlerin analizi
Gereksinimlerin tam, olur, güvenilir, doğrulanabilir olduğundan emin olmak için gereksinimlerin
analizi
Maliyette, iş takviminde, fonksiyonellikte, riskte ya da performansta güçlü bir etkiye sahip anahtar
gereksinimlerin belirtilmesi
Geliştirim boyunca izlenecek teknik performans ölçümlerinin belirtimi
Müşteri ihtiyaçlarını, kısıtlarını, ve arayüzlerini tanımlamak için ve yeni gereksinimler keşfetmek için
işlevsel kavramların ve senaryoların analizi
1.5.4. Dengeyi Sağlamak için Gereksinimlerin Analizi
Paydaş ihtiyaçları ve kısıtları, maliyet, iş takvimi, performans, fonksiyonellik, tekrar kullanılabilir
bileşenler, bakım yapılabilirlik ya da risl olarak adreslenebilir.
Tipik iş ürünleri:
Gereksinimlerle ilişkili risklerin keşfi
Alt uygulamalar:
Kanıtlanmış modelleri, simülasyonları ve prototipleri paydaş ihtiyaç ve kısıtlarını analiz etmek için
kullan
Gereksinimler ve fonksiyonel mimaride bir risk keşfi çalıştır
Risk gereksinimlerinin vurgusu için ürün yaşam döngüsü kavramlarının gözden geçirilmesi
1.6. Sistem Gereksinim Analizi
Sistem gereksinim analizi, gereksinim analizinin özelleşmiş bir şeklidir. Amacı; tanımlı paydaş
gereksinimlerini sistem gereksinimlerine dönüştürmektir.
Sistem gereksinim analizi sonucunda;
a)
Sistemin fonksiyonel ve fonksiyonel olmayan gereksinimlerinin bir kümesi tanımlanır.
b) Seçilen proje çözümünü optimize etmek için uygun teknikler işletilir.
c)
Sistem gereksinimleri doğruluk ve test edilebilirlik için analiz edilir.
d) İşletim ortamı üstünde sistem gereksinimlerinin vuruşu anlaşılır.
e)
Gereksinimler önceliklendirilir, onaylanılır ve gerekliyse güncellenir.
f)
Sistem gereksinimleri ve müşteri gereksinimleri arasında tutarlılık ve izlenebilirlik onaylanır.
g) Temelin üstüne değişiklikler maliyet, iş takvimi ve teknik vuru için değerlendirilir.
h)
Sistem gereksinimleri tüm parçalara ve temele iletilir.
Sistem gereksinim analizi, gereksinim belirtimi ve gereksinim değerlendirmesi aşamalarından oluşur.
Gereksinim belirtiminde, geliştirilecek sistemin özel kullanımı sistem gereksinimlerini belirlemek için
analiz edilir. Sistem gereksinim analizi; sistemin fonksiyonlarını ve yeteneklerini, iş, örgütsel ve
kullanıcı gereksinimlerini, sağlamlık, güvenlik, ergonomikleri, arayüzleri, işlemleri ve bakım
gereksinimlerini, tasarım kısıtlarını ve kalite gereksinimlerini tanımlar.
Gereksinim değerlendirmesi ise şu aşamalardan oluşur:
a)
Elde edilen ihtiyaçların izlenebilirliği
b)
Elde edilen ihtiyaçlarla tutarlılık
c)
Test edilebilirlik
d)
Sistem mimari tasarımının olurluğu
e)
İletim ve bakımın olurluğu
1.7. Gereksinimlerin Geçerlenmesi
Gereksinimlerin uyumluluğunu kontrol etmek için son kullanıcıyla beraber geliştirmenin erken
aşamalarında işletilir.
Gereksinimlerin geçerlenmesi için şu teknikler kullanılabilir:
1)
Analiz
2)
Simülasyon
3)
Prototip çıkarma
4)
İspat
Alt uygulamalar:
1) Amaçlanan kullanım ortamında ürün çalıştırılmadığında ortaya çıkacak riskler için gereksinim
analizi
2) Gereksinimlerin yeterlik ve tamlığını ürünün sunum geliştirmesiyle (prototipler, simülasyonlar,
senaryolar ve hikaye tahtaları, vb) ve iligli paydaşlardan geri bildirimler alarak kontrol edilmesi
3) Geçerleme konularına ve bildirilmemiş ihtiyaç ve müşteri gereksinimlerinin tanımlanmasında
geçerleme ortamı gereksinimleri kapsamında tasarımın tayin edilmesi.
Download