Requirements Engineering From System Goals to UML Models to Software Specifications Axel Van Lamsweerde 1
Fundamentals of RE Chapter 4 Requirements Specification & Documentation 2
Chap.1: RE products and processes alternative options Chap. 2: Elicitation techniques Chap. 3: Evaluation techniques consolidated requirements start documented requirements agreed requirements Chap. 4: Specification & documentation techniques 3
Doğal Dildeki Yapısal Disiplinli Dokümantasyon: Gereksinimlerin Dokümantasyonu için Global Kurallar Gruplama Kuralları Çözülecek problemle ilgili ortak özelliklerin (kriterlerin) belirlenerek, ilgili tüm bildirimlerin aynı bölümde dokümantasyonunun yazılmasıdır. Bunlar: Sistemin amacı (system objective) Sistem bileşeni (system component) Görev yapılacak iş (task) Kavramsal nesne (conceptual object) Yazılım özelliği (software feature). şeklinde düzenlenebilir. Gereksinimler Dokümantasyonunu stadartlaşt olarak oluşturan global şablonlar farklı düzenlenir. Örneğin: Alana-özgü(domain-specific), organizasyona özgü (organization-specific), şirkete özgü (company-specific) 4
1.Giriş ( Introduction) 1.1 gereksinimler Dok. Amacı (RD purpose 1.2 Ürün Kapsamı (Product scope) 1.3 Tanımlamalar, Kısaltmalar (Definitions, acronyms, abbreviations) 1.4 Kaynaklar (References) 1.5 Genel Bakış (Overview) 2. Genel Betimleme(General Description) 2.1 Ürün Perspektifi(Product perspective 2.2 Ürün Fonksiyonları (Product functions 2.3 Kullanıcı Karakteristikleri (User characteristics 2.4 Genel Kısıtlamalar( General constraints 2.5 (Tahminler&Bağlılıklar(Assumptions & Dependencies) 2.6 Gereksinimlerin Bölüştürülmesi (Apportioning of requirements) 3. Spesifik Gereksinimler (Specific Requirements Gereksinimlerin Belirlenmesinde IEEE Std-830 Şablonu domain, scope, purpose of system-to-be glossary of terms elicitation sources sw-environment boundary: interfaces with users, devices, other sw functionalities of software-to-be assumptions about users development constraints (hw limitations, implem platform,...) environment assumptions (subject to change) optional, deferable reqs. 5
3. Spesifik Gereksinimler (Specific Requirements) 3.1 Fonksiyonel Gereksinimler (Functional requirements) 3.2 Dışsal Arayüz Gereksinimleri (External interface reqs) 3.3 Performance reqs 3.4 Tasarım Kısıtları (Design constraints) 3.5 Yazılım Kalite Öznitelikleri (Software quality attributes) 3.6 Diğer Gereksinimler (Other requirements Ekler (Appendices) indeks (Index) Gereksinimlerin Belirlenmesinde IEEE Std-830 Şablonu alternative templates for specific types of system NFRs: interoperability NFRs: time/space performance NFRs: development reqs. NFRs: quality reqs. NFRs: security, reliability, maintainability NFRS: Fonksiyonel olmayan gereksinimler 6
Gereksinimlerin Dokümantasyonunda Diyagram Şeklinde Görsel Notasyonların Kullanımı Doğal dilde dokümantasyonu yapılmış gereksinimlerin görsel olarak ta ifade edilmesidir. Geliştirilecek sistemin hedefleri ifade edilir. (to-be) Grafiksel Gösterim geliştirme aşamasında iletişimi kolaylaştırır, problemin çözümüne genel bir bakış sağlar Semi-formal (Yarı biçimsel) betimleme de oluşturur. 7
Geliştirilecek Sistem Kapsamı 1: «Context» Diyagramları Sistemin bileşenleri (system components) ve onların arayüzlerini betimler Sistemin yapısı tanımlanır. Sistem nedir? Ne değildir? cevaplanır. Her bileşenin çevresi (environment of each component): komşular (neighbors), arayüzler (interfaces) Handbrake Controller button Pressed handbrake.sw pedal Pushed motor.regime Car system component Driver connection through shared phenomenon (data, event) 8
«Context» Diyagramları «Context» Diyagramlarında bir bileşen (component) diğer tüm bileşenlerle etkileşime girmeyebilir. «Context» diyagramı her bileşenin doğrudan ilişkili olduğu çevresinin (environment) basit bir görselleştirmesini ifade eder. «Context Diyagramı» kısaca bir bileşenin, bileşenin arayüzleri ile etkileşimde olduğu komşu bileşenleri kümesidir. 9
Sistem Kapsamı 2: Problem Diyagramları Context diyagramının daha ayrıntılı ifade edilmesidir. Machine Bileşen paylaşılan bir olguyu (shared phenomenon) kontrol eder. Bileşen, oluşturulacak makineyi temsil eder. Bileşenler gereksinimler tarafından etkilenir. Handbrake Controller HC! handbrake.sw C! motor.regime Car DR! {pedalpushed, buttonpressed} {pedalpushed, Driver buttonpressed} constrains {BrakeActivation, BrakeRelease} controlling component refers to Handbrake shall be... activated if the brake button is pressed, released if the acceleration pedal is pushed requirement 10
Kavramsal Yapılar (Conceptual structures): Varlık-İlişki Diyagramlar (Entity-Relationship Diagrams) Kavramsal imgelerin bildirimi ve onların yapılandırılması Varlık (Entity) : kavram örnekleri sınıfı (class of concept instances )... Farklı kimlikler (having distinct identities) Ortak özelliklerin paylaşımı (sharing common features (attributes, relationships)) e.g. Meeting, Participant N-li ilişkiler (N-ary relationship Çokluk (Multiplicity), varlık örneklerinin min&max sayısı e.g. Invitation linking Participant and Meeting Öznitelik (Attribute) : bir ilişki ya da bir varlığın özelliğinin bir değer aralığı vardır. e.g. Date of Meeting 11
specialization Important Participant Preferences Email Participant Name Address Email Varlık-ilişki Diyagramı Örneği Entity-relationship diagram invitedto Normal Participant role Invitation 1..* 0..* constraintsfor binary relationship Constraints excludeddates preferreddates Invites constraintsfrom attributes of relationship Meeting Date Location 1..* 1..1 Initiator entity attribute Requesting daterange withwhom A meeting invites at least 1 up to an arbitrary number of participants Çokluklar (multiplicities) gereksinimleri ya da alan özelliklerini ifade edebilir. prescriptive & descriptive tanımlamalar arasında fark yoktur 12
Varlık İlişki Diyagramları Entity-Relationship Diagrams Varlıkların (entities) özelleştirilmesi: Kavram örneklerinin alt sınıfı spesifik özellikleri ile (öznitelikler (attributes) ve ilişkiler (relationships) ile karakterize edililir. İlişkiler ve öznitelikler varsayımsal olarak (default) alt sınıflardan miras alınır. Üst sınıflarda (super classes) yapısal olan ortak özellikleri saptamada güçlü bir yapısal mekanizma oluşturulur. e.g. ImportantParticipant, with specific attribute Preferences Invitation, Constraints miras ilişkileridir (inheritance relationship) Address ise özniteliktir (attribute) (Email of ImportantParticipant varsayımsal miras özelliğini miras alır inhibits default inheritance) 13
Varlık İlişki Diyagramları Entity-Relationship Diagrams Diyagram açıklamaları(diagram annotations): elemanların kesin olarak tanımlanması Böylece yapılabilecek bazı temel hataların önüne geçilmiş olacaktır. e.g. annotation for Participant: (katılımcıya açıklama) «Kişinin toplantıya belli bir rolü gerçekleştirmek üzere katılacağı beklenir. Toplantı başladığında kişi sistemde görünür ve bittiğinde artık sistemde kaydı bulunmayacaktır». 14
Use Case Diyagramı Örneği environment component operation interaction Initiator variant operation Check Request <<extend>> Unauthorized Deny Request Ask Constraints Collect Constraints Participant Participant every thing good in UML is not new, every thing new in UML is not good Determine Schedule <<include>> Resolve Conflicts Scheduler Merge Constraints operation performer software component Conflict Resolver suboperation 15
Olay izleme Şeması (Event trace diagram) Sequence Diyagram in UML interaction event attribute component instance Initiator meetingrequest (daterange, withwhom) OK-request Scheduler Participant? constraints! constraints OK-constr scheduledetermination notification (date, location) notification (date, location) timeline controls interaction monitors interaction self-interaction 16
Gereksinimleri Mühendisliğinde UML Birleştirilmiş Modelleme Dilinin - Unified Modeling Language-UML Gereksinimler Mühendisliğinde kullanıldığı diyagramlarının standart gösterimleri Class diagrams: Yapısal ilişkilerin görüntülendiği diyagramlar Use case diagrams: Operasyonel işlemlerinin özeti Sequence diagrams: Seneryoları simgeleyen diyagramlar State diagrams: Farklı davranışların içerildiği diyagramlar 17