Requirements Engineering

Benzer belgeler
Yazılım Gereksinimleri & Sistem Gereksinimleri (tekrar)

Gereksinim Mühendisliği (SE 560) Ders Detayları

Öğretim planındaki AKTS Ulusal Kredi

SİSTEM ANALİZİ VE TASARIMI

Kullanım Durumu Diyagramları (Use-case Diyagramları)

Yazılım Gereksinimleri Mühendisliği (SE 221) Ders Detayları

Yazılım Süreçleri Software Processes

Requirements Engineering

Proje Yönetimi Bahar Yarıyılı. Yrd. Doç. Dr. Ömer GİRAN

Yazılım Mühendisliği 1

Yazılım Gereksinimlerinin Görsel Çözümlemeleri: UML (UnifiedModeling Language) Birleştirilmiş Modelleme Dili

PROJE ve PROJE YÖNETİMİ

Geleneksel Yazılım Mühendisliğinden Alana Özel Yazılım Mühendisliğine Doğru

BİLİŞİM SİSTEMLERİNİN PRENSİPLERİ

GÜNLÜK ATÖLYE YÖNETİMİNDE 5S

1. GİRİŞ Kılavuzun amacı. Bu bölümde;

Chapter 5 Sistem Modelleme. Lecture 1. Chapter 5 System modeling

Sistem Analizi ve Tasarımı DERS2

SOBA BORUSU AÇINIM LEVHALARININ KESİLMESİNDE MALİYETLERİN ENKÜÇÜKLENMESİ

Internet Programming II

Scrum1.0 & Scrum2.0 & Scrum3.0

Bir yazılım geliştirme metodolojisi aşağıdaki adımlardan meydana gelir; Yazılım geliştirme sürecine destek verecek araçlar, modeller ve yöntemler.

<Ekip Adı> <Proje Adı> Yazılım Gereksinimlerine İlişkin Belirtimler. Sürüm <1.0>

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

KIRMACI ENDÜSTRİ IV.0 DEĞİŞİM SÜRECİ DANIŞMANLIĞI İŞ PLANI. KIRMACI MÜHENDİSLİK DANIŞMANLIK TİC. 1

design)1980li ve 1990lıyıllar Birleştirilmiş Modelleme Dili (Unified Modeling Language-(UML) yazılım geliştirme araçlarının temelidir.

Chapter 8 Yazılım Testi. Lecture 1. Chapter 8 Software testing

Yaz.Müh.Ders Notları #6 1

BULANIK MANTIK DENETLEYİCİLERİ. Bölüm-4 Bulanık Çıkarım

YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ 9.Hafta. Bakım

Requirements Engineering

Yaz.Müh.Ders Notları #3 1

MESLEKİ TERMİNOLOJİ I 1. HAFTA YAZILIM MÜH. TEMEL KAVRAMLAR

Görünümler ve Ötesi Yaklaşımıyla Radar Yazılım Mimarisi Dokümantasyonu Tecrübeleri. Ali Özzeybek M. Devrim Tokcan Murat Tuncer

Bilişim Teknolojileri Temelleri 2011

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) İş Kuralları ve Veri Modelleri

YAPIM YÖNETİMİ - EKONOMİSİ 03. İşler veya eylemler olası olan zaman ve mekanının tamamını kullanacaktır.

Sistem Geliştirme Yaşam Döngüsü (The Systems Development Life Cycle) (SDLC)

EK-3 HAVAALANI ĠġLETĠMĠ

5.DERS PROJEDE YÜRÜTMENİN PLANLANMASI

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

Yaz.Müh.Ders Notları #4 1

SİVİL HAVACILIKTA EMNİYET YÖNETİM SİSTEMİ YÖNETMELİĞİ (SHY-SMS) BİRİNCİ BÖLÜM. Amaç, Kapsam, Dayanak ve Tanımlar

PASCAL PROGRAMLAMA DİLİ YAPISI

MerSis. Bilgi Teknolojileri Bağımsız Denetim Hizmetleri

Tümleştirilmiş Süreçte (UP) Yazılım Projesi Aşamaları

TEKİM - Teknolojik ve Kurumsal İşbirliği Merkezi Bilgi ve İletişim Sistemleri Sanayi, Danışmanlık ve Ticaret Ltd. Sti. Adres (Merkez): Mustafa Kemal

3. Proje ekibi ilk proje planını ve bütçesini tamamladılar. Sıradaki yapmaları gereken şey nedir?

JDF262-MÜHENDĠSLĠK ETĠĞĠ Ders Notları. 1. Aşama: Tüm tarafları belirleyiniz.

Araştırma Problemleri: Problem İfadeleri, Araştırma Soruları ve Hipotezler

BİL-142 Bilgisayar Programlama II

Bulanık Mantık Denetleyicileri

Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım

Proje DöngD. Deniz Gümüşel REC Türkiye. 2007,Ankara

Doç. Dr. Cüneyt BAYILMIŞ

BİLGİ SİSTEMLERİNİN GELİŞTİRİLMESİ

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

SİSTEM ANALİZİ VE TASARIMI. Sistem Analizi -Bilgi Sistemleri-

BM-311 Bilgisayar Mimarisi

BENZETİM. Prof.Dr.Berna Dengiz. 4. Ders Modelleme yaklaşımları Benzetim yazılımlarında aranan özellikler M/M/1 Kuyruk Sistemi benzetimi

BLG Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK

NESNEYE YÖNELİK ÇÖZÜMLEME SÜRECİ

I. SİSTEM TANIMI ve KAVRAMLARI 1. SİSTEM TANIMI

SAĞLIK TURİZMİ İLE İLGİLİ POLİTİKALAR, TEŞVİKLER VE FİNANSMAN

YAZILIM YAŞAM DÖNGÜSÜ VE YAZILIM GELİŞTİRME SÜREÇLERİ

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

BİR MONTAJ HATTI ÜRETİM SİSTEMİNDE OPTİMAL İŞGÜCÜ DAĞILIMININ ARENA PROCESS ANALYZER (PAN) VE OPTQUEST KULLANILARAK BELİRLENMESİ

BÖLÜM 7 ULAŞTIRMA MÜHENDİSLİĞİ ANABİLİM DALI

Programlama Nedir? Bir bilgisayar bilimcisi gibi düşünmek ve programlama ne demektir?

Kavramsal Tasarım. Veritabanlarına Giriş Dersi

Yönetim Sistemleri Kurulumu

1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı

Business Intelligence and Analytics Principles and Practices: Charting the Course to BI and Analytic Success

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

Bölüm 10: PHP ile Veritabanı Uygulamaları

Savunma Sanayii Telnolojileri Sertifika Programı

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

DESTEK DOKÜMANI KAYIT NUMARALAMA ŞABLONLARI

BİÇİMSEL YÖNTEMLER (FORMAL METHODS) Betül AKTAŞ Suna AKMELEZ

Akıllı Ortamlarda Sensör Kontrolüne Etmen Tabanlı Bir Yaklaşım: Bir Jadex Uygulaması

Proje Çevresi ve Bileşenleri

BİLİŞİM SİSTEMLERİNİN PRENSİPLERİ

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama

TEKİM - Teknolojik ve Kurumsal İşbirliği Merkezi Bilgi ve İletişim Sistemleri Sanayi, Danışmanlık ve Ticaret Ltd. Sti. Adres (Merkez): Mustafa Kemal

VERİ TABANI YÖNETİM SİSTEMLERİ Melih BÖLÜKBAŞI

Bulanık Mantık Tabanlı Uçak Modeli Tespiti

TÜBİTAK BİLİM VE TOPLUM DAİRE BAŞKANLIĞI MALİ DENETLEME VE SÖZLEŞMELER MÜDÜRLÜĞÜ ÇALIŞMA USUL VE ESASLARI

Bu çalışma insan kaynakları dersinde yapılan kariyer yönetimi konulu sunumun metin halidir.

Mantıksal Çerçeve Matrisi

Mühendislik Ekonomisi. Ders 1 Mersin Üniversitesi, 2014

TÜBİTAK TEYDEB GENEL SANAYİ DESTEKLERİ ÇAĞRI SUNUMU

SPORDA STRATEJİK YÖNETİM

Sistem Analizi ve. Tasarımı. Mustafa COŞAR

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

KİNETİK MODEL PARAMETRELERİNİN BELİRLENMESİNDE KULLANILAN OPTİMİZASYON TEKNİKLERİNİN KIYASLANMASI

BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok

COBIT Bilgi Sistemleri Yönetimi. Şubat 2009

CENG 302 Yazılım Mühendisliği Yazılım Mimarisi - Devam. Alper UĞUR

Transkript:

Requirements Engineering From System Goals to UML Models to Software Specifications Axel Van Lamsweerde 1

Gereksinimler Mühendisliğinin (GM) Temelleri Bölüm 1 2

Gereksinimler Mühendisliği (GM) Dersine Giriş Gereksinimler Mühendisliği nedir? Gerçek dünya problemine ait problemin makine çözümü gerçekleştirilir real world problem and its machine solution GM nin kapsamı Çözülecek probleme ait Niçin(WHY), Ne (WHAT) ve Kim (WHO) sorularına cevap aranır. GM çalışmalarında çok kullanılan ifadeler: betimsel tanımlayıcı (descriptive) ve kurallı (prescriptive) deyimler (cümleler) Gereksinimin belirlenmesinde temel 2 kategori: fonksiyonel gereksinimler ve fonksiyonel olmayan gereksinimler Gereksinimlerin yaşam döngüsü: aktörlerin gerçekleştirdikleri prosesler (süreçler) sonunda yazılım ürününün analizi gerçekleşir. 3

Problem Dünyası ve Makine Çözümü Problem World and Machine Solution Geliştirilen bir yazılımın doğru ve kaliteli bir ürün olduğundan emin olmak için, öncelikle gerçek dünya problemi doğru çözülmüş olmalıdır. Bu da problemi ayrıntılı olarak anlamak ve tanımlamak demektir. Gerçek dünyada çözülecek problemin gereksinimleri ne (what) sorusunun cevabıdır. Bu cevaptan ortaya içerik( context) çıkar. Örnek: araba kontrolü Problem: el freninin indirilmesi bazı durumlarda istenilen şekilde gerçekleşemeyebilir İçerik (Context): araba sürme, fren, sürücünün amacı, güvenlik, kurallar. 4

Problem Dünyası : Gerçek dünyanın çözülmesi istenen problem parçasının ifadesidir ve aşağıdaki bileşenlerle tanımlanır. Beşeri Bileşenler (human components): organizasyon birimleri, personel(staff), operatorler,... VE Fiziksel Bileşenler: aygıtlar, eski yazılım, doğa,. içerir. Problem Dünyası ve Makine Çözümü Problem World and Machine Solution Makine Çözümü : Problemin çözümü için düzenlenmesi gerekenler, yazılımın geliştirilmesi için gerekli gereksinimler belirlenir. Bunlar şöyle özetlenebilir: - Geliştirilmesi ve /veya satın alınması gereken yazılım Donanım/yazılımın implementasyonun sağlandığı platform, Ortak giriş/çıkış aygıtları (sensorler-vericiler & çalıştırıcılaralıcılar (actuators) 5

Problem Dünyası ve Makine Çözümü Problem World and Machine Solution Gereksinimler Mühendisliği çalışmalarında başlangıçta 2 temel çalışma gerçekleştirilir. Makinenin istenilen çözümünün problem dünyasına etkisi belirlenir. Problem dünyası ile ilgili varsayımlar (assumptions) ve bununla ilgili çeşitli özellikler (relevant properties) tanımlanır 6

Problem Dünyası ve Makine Çözümü Dünya ve makine sözcüklerinin kendilerine ait olguları vardır. GM dünya olgusu (world phenomena) ile ilgilidir ve paylaşılan olguları (shared phenomena) içerir. Oysa yazılım tasarımı machine phenomena (makine fenomeni) ile ile ilgilidir. MotorRaising World phenomena Shared phenomena Machine phenomena DriverWantsToStart motor.regime = up statedatabase updated HandbrakeReleased World Machine errorcode = 013 handbrakectrl = off 7

ÖRNEK: Ödemenin gerçekleştirilmesi ile ürünün teslim edilmesi probleminin GM çözümüne ait bir özelliğin (bir deyimin) problem dünyası ve makine çözümü gösterimi Item delivered only if paid Payment notification sent to seller Payment record created in database World phenomena Shared phenomena Machine phenomena The World The Machine Figure 1.1 - The problem world and the machine solution Yukarıdaki çözüme ait olası problem ifadesi : Ödeme gerçekleştirildikten sonra satıcıya bir bildirim gönderilmelidir. 8

Problem Dünyasına ait Sistem Betimlemeleri System-as-is ve System-to-be System: Problem Dünyasına oluşturulmuş etkileşim halindeki bileşenlerin kümesidir. İki küme ile betimlenir: i) System-as-is: Makine Çözümü oluşturulmadan önce sistemin içerdikleridir (mevcut sistem olarak yorumlanır) ii) System-to-be: Makine Çözümünün sistem çalıştırıldığında gerçekleştirecekleridir (istenilen çözümdür) Araba fren sistemi : kavramlar (concepts) olgular (phenomena) kuralların (rules) betimlenmesi ile problem tanımlanır. Otomatikleştirilmiş araba fren sistemine ait kavramlar, olgular,kurallar Driver Car Brake System-as-is System-to-be Machine Solution 9

Gereksinimler Mühendisliğinin Tanımı Birbiri ile bağlantılı, (eşgüdümlü) aktiviteler dizisi olarak tanımlanır. Yazılım yoğun bir sistem üzerinde hedefler (objectives), yetenekler(capabilities), nitelikler (qualities), kısıtlamalar (constraints) ve varsayımların (assumptions) araştırılması (exploring), değerlendirilmesi (evaluationg), belgelenmesi (documenting), pekiştirilmesi -sağlamlaştırılması (consolidating), düzeltilmesi (revising) ve uyarlanması (adapting) gerçekleştirilir. system-as-is ile tanımlanmış problemler yeni teknolojilerle sağlanan fırsatlarla (opportunities) çözümlenir. 10

Gereksinimler Mühendisliğinin Farklı Tanımlamaları... Ross'77 Gereksinimler tanımı mutlaka aşağıdakileri vurgulamalıdır. Mevcut ve gelecek (tahmini) koşullara göre niçin (WHY) yeni bir sisteme ihtiyaç vardır? Hangi (WHAT) sistem özellikleri bu bağlamı sağlayacaktır? Sistem Nasıl (HOW) oluşturulacaktır? Zave'97 Gereksinimler gerçek-dünyanın amaçları, fonksiyonları, yazılım sistemindeki kısıtları ile ilgilidir ve Yazılım davranışının kesin olarak belirlenebilmesi için bu kavramlarla bağlantı kurar Zaman içerisinde bu kavramların evrimleşmesi gelişmesi (evolution) sağlanır 11

Sistem Gereksinimleri (System Requirements) Software-to-be:( Geliştirilecek yazılım makinenin parçasıdır ve system-to-be nin bileşenidir. Environment (çevre) : system-to-be nin diğer tüm bileşenlerini insan (people), aygıtlar(devices), önceden mevcut yazılımı (preexisting software ) içerir. System Requirements: çevredeki (environments) olgulara göre belirlenmiş olan system-to-be NELERİ karşılamalıdır? El freni, sürücü hareket etmek istediğinde indirilmelidir.. 12

Yazılım Gereksinimleri (Software Requirements) Software Requirements: : Yazılım ve çevresi tarafından paylaşılan (shared) olgular cinsinden belirlenmiş olan software-to-be kendi başına NELERİ karşılamalıdır? Yazılım çıktı değişkeni olan handbrakectrl ın değeri, yazılım girdi değişkeni motorregime değeri arttığında kapalı (off) olacaktır" 13

Gereksinimler Mühendisliğinin Kapsamı Niçin (Why), Ne(What), Kim(Who) Boyutları System-as-is problems, opportunities, system knowledge atama System-to-be Objectives sağlar requirements, constraints, assumptions Niçin yeni bir sisteme gereksinim vardır? Ne hizmetleri gerçekleştirilecektir? Kimler neler yapmakdan sorumludur? 14

? Gereksinimler Mühendisliğinin NİÇİN boyutu System-to-be nin amaçlarının tanımlanması, analiz edilmesi ve gereksiz bilgilerden temizlenmesi (saflaştırılması) gerçekleştirilir. system-as-is in analiz edilmiş eksikliklerinin belirlenmesi Ticari (işe ait -business) amaçlar ile uyum sağlanması Teknolojik olanaklardan yararlanılması Örnek: havaalanı tren kontrol sistemine ait system-to-be şöyle tanımlanabilir. Daha fazla yolcuya hizmet edebilmek Terminaller arasında transfer süresini azaltmak Güçlükler Alan bilgisinin (domain knowledge) elde edilmesi kolay değildir. Alternatif seçeneklerin değerlendirilmesi (yani aynı amacı sağlamak için alternatif yolların sağlanması) kolay değildir. Çelişen amaçlarla başa çıkmak kolay değildir. 15

? Gereksinimler Mühendisliğinin NE Boyutu system-to-be nin fonksiyonel hizmetlerinin tanımlanmasıdır. Bunlar yazılım hizmetlerini oluştururlar. Tanımlanmış amaçların sağlanması (gerçekleşmek üzere tanımlanması) Nitelik kısıtlarının güvenlik, performans,. sağlanması Çevre ile ilgili gerçekçi varsayımların probleme ilavesi Örnek: havaalanı tren kontrolü trenin güvenli hızlanmasının hesaplanması trendeki yolculara yararlı bilgilerin gösterilmesi Güçlükler Özelliklerin tanımlamalarının doğru yapılması kolay değildir. Bunların parçaların tümünde açık olarak anlaşılabilirliği kolay sağlanamaz. Sistemin amaçlarının geriye doğru izlenebilirliğini sağlamak güçtür. 16

? Gereksinimler Mühendisliğinin KİM Boyutu System-to-be bileşenlerini oluşturan amaçlar, servisler, kısıtlardan sorumlu olanların belirlenmesi gerekir. Böylece yazılım-ortamının (software environment) sınırları belirlenecektir. Örnek: havaalanı tren kontrolü Trenin güvenli hızlanması... software-to-be nin doğrudan sorumluluğu altında (sürücüsüz seçenek) veya sürücünün yazılım işaretlerini takip etmesi olarak tanımlanabilir. Trenin hızı/pozisyonunun tahmini doğruluğu... İzleyen sistemin sorumluluğunda ya da önceki trenin sorumluluğunda tanımlanabilir. Güçlükler Doğru otomasyon derecesine karar vermek için alternatif seçeneklerin değerlendirilmesi kolay değildir. 17