Özel durumların ortaya çıkmasına ve geliştirme yaşam döngüsünün erken safhalarında istisnaların modellenmesine yönelik bir yaklaşım
An approach of eliciting exceptions and modeling exceptions handling at early stage of the development lifecycle
Yazar: MOHAMED. ALİ S. HAGAL
Danışman: PROF. DR. FATMA KANDEMİRLİ
Kastamonu Üniversitesi / Fen Bilimleri Enstitüsü / Malzeme Bilimi ve Mühendisliği Ana Bilim Dalı
Derece: Doktora, 2018
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Yazılım güvenilirliği, yazılımın istenen hedeflerine ulaşmak için dikkate alınması
gereken en önemli faktördür.
Paydaşlarının gereksinimlerini etkin bir şekilde karşılayan bir yazılım oluşturmak
için yazılım geliştiricilerine yardımcı olma yollarını ve araçlarını tanımlamak için
pek çok çaba gösterilmiştir.
Yazılım mühendisliği organize bir şekilde birçok aşamayı içeren her biri geliştirme
sürecinin geri kalanında etkileri olan sistematik bir yaklaşım sunar.
Bu nedenle, bu aşamaların başarısı, yazılım bütünlüğü açısından önemlidir.
Gereksinim mühendisliği (GM) aşaması bu aşamalardaki en önemli aşamadır ve
geliştirilecek yazılım sisteminin ne anlama geldiğine dayanmaktadır, ancak birçok
yazılım sistemi görevlerini tatmin edici bir şekilde yerine getirmeye devam
etmemektedir. Bu tür başarısızlıkların ortaya çıkmasına katkıda bulunan en önemli
problemler, bu tür sistemlerin gerekliliklerinin oluşturulmasındaki zayıflık veya
bunların uygulanması sırasında sorunların ortaya çıkmasıdır.
Bu aksaklıklar, hedeflere ulaşmada sistemlerin başarısız olmasına neden olmaktadır.
Bu genellikle, gelişim sürecinin ilk aşamalarından kendileriyle ilgilenmeyen ya da
ileri aşamalarda bile onları ihmal etmiş olabilen geliştiricilere bağlı olan istisnadır.
Bu tez çalışmasında, geliştirme sürecinde daha sonra tespit edilen kullanım
istisnalarının yükünü azaltmak için istisnai durumlarla başa çıkmada RE aşamasını
geliştirerek, SDLC'nin erken aşamalarında istisnaları keşfetmeye yardımcı olmayı
amaçlayan birkaç adım içeren bir yaklaşım sunulmuştur. Bu adımlar: istisnaların
sınıflandırılması, keşif ve modellemedir.
Eksik gereksinimler konusu, ilk istisna sınıflaması olarak kabul edilir; Bu nedenle,
ilk aşamada istisnalarla baş etme sürecini göz önünde bulundurarak gereksinimleri
ortaya çıkarmaya yardımcı olacak bir yaklaşım önerilmiştir. Zayıf kullanıcıların
sistemle etkileşimi ve zayıf sistem yanıtları, ikinci istisna sınıflandırması ve birinci
sınıflamanın tamamlayıcısı olarak kabul edilir. İstisnalar tespit sürecini
kolaylaştırmak için, kullanıcı gereksinimleri senaryolarını yazmak için kısıtlayıcı
kurallar önerilmiştir. Ayrıca, bu istisna sınıflandırması için python programlama dili
kullanılarak EDT adlı bir yazılım geliştirilmiştir.
Ek olarak, UCM'lerin görsel senaryoları, normal senaryo adımlarının açıklığa
kavuşturulmasında kullanıcı gereksinimlerinin modellenmesinde uyarlanmıştır ve
ayrıca önerilen EDT, tespit edilen istisnaları da içerecek şekilde geliştirilmiştir.
Yaklaşımımızın, yazılım geliştiricilerinin SDLC'nin erken aşamasında istisnalara
odaklanmasını teşvik edeceğine inanıyoruz.

Anahtar Kelimeler: Yazılım mühendisliği, istisnalar, doğal dil işleme, modelleme, 
yazılım testi.

Abstract:
Software reliability is the most important factor that should be considered in order to
achieve the desired objectives of the software. Many efforts have been made to
identify ways and means of helping software developers to build software that
effectively meets the requirements of their stakeholders. Software engineering offers
a systematic approach that contains many stages in an organized manner, each of
which has output that effects on the rest of the development process. Thus, the
success of these stages is therefore essential for software rigidity. Requirements
engineering (RE) stage is the most important stage in these stages, and is based on
the definition of what the software system to be developed should do, however many
software systems failing to continue to perform their duties satisfactorily. The most
important problems contributing to the emergence of such failures are the weakness
in building the requirements of such systems or the emergence of problems during
their implementation and delivery to the applicants. These failings result in systems
failing to achieve their objectives. This is the exception, which is usually due to
developers, who are not interested in them from the early stages of the development
process, or may have ignored them even in the advanced stages.
In this thesis, we presented an approach that contains several steps aimed at trying to
help discover exceptions at an early stage of the SDLC, through improving the RE
stage in dealing with exceptions early, in order to reduce the burden of handling
exceptions if detected later in the development process.These steps are: classification
of exceptions, their discovery and modeling.
Missing requirements issue is considered to be the first exceptions classification;
therefore we suggested an approach to help elicit the requirements in a manner that
took into consideration the process of dealing with exceptions at an early stage. Poor
users' interaction with the system and weak system responses is considered as the
second exception classification, and the complement to the first classification. To
facilitate the process of exceptions detection, restrictive rules are proposed for
writing the scenarios of user requirements. Also, a tool named EDT was developed
using python programming language to address this classification of exception.
In addition, UCMs visual notations were adapted in the modeling of user
requirements in the clarification of normal scenario steps, and also improed to
include the exceptions detected by the proposed tool. We belief our approach will
encourage software developers focus on exceptions at early stage of SDLC.

Key Words: Software engineering, exceptions, natural language processing, 
modeling, software testing