YMT312 Yazılım Tasarım ve Mimarisi

1 YMT312 Yazılım Tasarım ve MimarisiMİMARİ TASARIM Bölüm ...
Author: Metin Bilici
0 downloads 7 Views

1 YMT312 Yazılım Tasarım ve MimarisiMİMARİ TASARIM Bölüm - 9 YMT312 Yazılım Tasarım ve Mimarisi

2 Bu Haftaki Konular Genel Bir Yazılım Mühendislik Tasarımı Süreci….…………………….…...7 Mimari Tasarıma Etki Eden Faktörler……………….…….… Mimari Tasarım Süreci……………………………………………………………….12 Mimari Spesifikasyon Notasyonları………………………………………….…17 Kutu-ve-çizgi diyagramları ………………………………………..…………….…25 Ortak UML Notasyonları………………………………………………………….…28 Sağlanan ve Gereksinilen Arabirimler………………………..…………….…39 Mantıksal ve Fiziksel Mimari…………………………………………..……….…44 Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

3 YMT312 Yazılım Tasarım ve MimarisiGENEL BAKIŞ KISIM 1 – Mimari Tasarım KISIM 2 – Mimari Modelleme Notasyonları Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

4 YMT312 Yazılım Tasarım ve MimarisiKISIM 1 Mimari Tasarım Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

5 YMT312 Yazılım Tasarım ve MimarisiAmaçlar Mimari tasarım, ürün tasarımı ve ayrıntılı tasarım arasındaki ilişkileri tartışmak Mimari tasarıma etki eden faktörleri listelemek Mimari tasarım sürecini gözden geçirmek Mimari Tasarım Dokümanı’nın (SAD) içeriğini sunmak Kalite niteliklerini ve bunların mimari tasarımdaki rolünü açıklamak Mimari tasarım spesifikasyonu notasyonlarını ve özellikle arabirimler (interface) için olanlarını araştırmak Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

6 YMT312 Yazılım Tasarım ve Mimarisiİçerik Mimari tasarım, ürün tasarımı, ve ayrıntılı tasarım Mimari tasarımı etkileyen faktörler Mimari tasarım süreci Kalite nitelikleri Mimari tasarım spesifikasyonları Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

7 Genel Bir Yazılım Mühendislik Tasarımı SüreciDoç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

8 Mimari Tasarım (Architectural Design)Mimari tasarım, programın büyük parçalarının, bunların sorumluluklarının, özelliklerinin, ve arabirimlerinin; ve bu parçalar arasındaki ilişki ve etkileşimlerin belirlenmesi aktivitesidir. Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

9 Ürün Tasarımında Mimari TasarımMimariye ürün tasarımı sırasında da gereksinim duyulur Fizibiliteyi değerlendirmek için Paydaşları (stakeholders) gereksinimlerinin karşılanabileceğine ikna etmek için Fayda-maliyet analizi yapmak için Projeyi planlamak için Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

10 Mimari Tasarım ve Ayrıntılı TasarımMimari tasarım ve ayrıntılı tasarım arasındaki ayrım bazen yeterince belirgin olmayabilir. “Büyük” bir program parçası ne demek? Mimari spesifikasyonları ne kadar soyut (abstract) olmalı? Çok küçük bir programın mimarisi nedir/nasıldır? Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

11 Mimari Tasarıma Etki Eden FaktörlerKod kütüphaneleri ve diğer kullanılabilir varlıklar (assets) Kurumsal yapı (Organizational structure) Tasarımcıların bilgi ve deneyimi Mimariler de kişileri ve kurumları etkileyebilir Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

12 YMT312 Yazılım Tasarım ve MimarisiMimari Tasarım Süreci Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

13 Mimari Tasarım Dokümanı (SAD)Ürüne Genel Bakış (Product Overview)—Ürün vizyonu, paydaşlar, hedeflenen pazar, vs. Mimari Modeller (Architectural Models)—Statik ve dinamik çeşitli modellere ilişkin spesifikasyonlar DeSCRIPTR Modellerin Nasıl Eşleştiği (Mapping Between Models)— Modellere ilişkin tablolar ve yazılı bilgiler Mimari Tasarımın Gerekçesi (Architectural Design Rationale)—Zor, çok önemli, kafa karıştıcı, ve değiştirilmesi zor tasarım kararlarına dair açıklamalar Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

14 Kalite Nitelikleri (Quality Attributes)Bir kalite niteliği, müşteri gereksinimlerinin karşılanması bakımından önemli olan işlevlerinden bağımsız olarak, bir yazılım ürününün bir karakteristiği veya özelliğidir. İşlevsel olmayan gereksinimler Mimarilerin kalite nitelikleri üzerinde büyük etkisi vardır Geliştirmeye veya operasyona yönelik nitelikler Kalite niteliklerini kullanmak için teknikler (daha sonra) Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

15 Geliştirme Nitelikleri (Development Attributes)Bakım Yapılabilirlik (Maintainability)—Ürünün hatalarının düzeltilebilme, iyileştirilebilme ve başka platforma taşınabilme (port) kolaylığı Genellikle altbölümlere ayrılır Yeniden Kullanılabilirlik (Reusability)—Ürünün parçalarının başka ürünlerin geliştirilmesinde kullanılabilirliğinin derecesi Diğer Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

16 Operasyonel Nitelikler (Operational Attributes)Performans (Performance)—Ürün işlevlerinin zaman ve kaynak limitleri içerisinde sağlanabilme becerisi Uygunluk (Availability)—Kullanıma hazır bulunma durumu Güvenilirlik (Reliability)—Normal çalışma koşullarında gereksinimlere uygun davranabilme becerisi Güvenlik (Security)—Kötü niyetli uygulamalar ve etkiler karşısında zarar görmeye ya da zarar vermeye karşı koyabilme becerisi Diğer Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

17 Mimari Spesifikasyon NotasyonlarıSpesifikasyon Türü Kullanışlı Notasyonlar Decomposition Box-and-line diagrams, class diagrams, package diagrams, component diagrams, deployment diagrams States State diagrams Collaborations Sequence and communication diagrams, activity diagrams, box-and-line diagrams, use case models Responsibilities Text, box-and-line diagrams, class diagrams Interfaces Text, class diagrams Properties Text Transitions Relationships Box-and-line diagrams, component diagrams, class diagrams, deployment diagrams, text Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

18 Arabirimler (Interfaces)Bir arabirim varlıklar arasındaki iletişim sınırıdır. Bir arabirim spesifikasyonu, bir varlığın içinde bulunduğu ortam ile haberleşmek için kullandığı mekanizmayı tanımlar. Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

19 Arabirim SpesifikasyonlarıSözdizim (Syntax)—İletişim ortamının elemanları ve bunların mesaj oluşturmak için nasıl kombine edildiği Semantik (Semantics)—Mesajların anlamları Pragmatik (Pragmatics)—Mesajların ilgili bağlam içerisinde görevleri yerine getirmek için nasıl kullanıldığı Arabirim spesifikasyonları bir modül ve onun içinde bulunduğu ortamla yaptığı iletişimin sözdizim, semantik, ve pragmatiklerini içermelidir. Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

20 Arabirim Spesifikasyonu ŞablonuSağlanan Servisler (Services Provided) Sağlanan her bir servis için belirtilmelidir: a) Sözdizim (Syntax) b) Semantik (Semantics) c) Pragmatik (Pragmatics) Gereksinilen Servisler (Services Required) Gereksinilen her bir servis adıyla belirtilmelidir. Servis açıklaması da eklenebilir. Kullanım Kılavuzu (Usage Guide) Tasarım Gerekçesi (Design Rationale) Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

21 Semantik (Semantic) SpesifikasyonuBir önkoşul (precondition) bir aktivite veya operasyonun başlangıcında sağlanması (doğru olması) gereken bir koşuldur. Bir sonkoşul (postcondition) bir aktivite veya operasyonun bitiminde sağlanması (doğru olması) gereken bir koşuldur. Önkoşullar ve sonkoşullar bir operasyon gerçekleştiğinde ne olması gerektiğini yani operasyonun semantiklerini belirtirler. Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

22 YMT312 Yazılım Tasarım ve MimarisiKISIM 2 Mimari Modelleme Notasyonları Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

23 YMT312 Yazılım Tasarım ve MimarisiAmaçlar Mimari modellemede kullanılan çeşitli notasyonları göstermek Box-and-line diagrams UML package diagrams UML component diagrams UML deployment diagrams Ortak UML notasyonlarını göstermek Notes Constraints Properties Stereotypes Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

24 YMT312 Yazılım Tasarım ve Mimarisiİçerik Kutu-ve-çizgi diyagramları (Box-and-line diagrams) Ortak UML notasyonları Paketler ve paket diyagramları (Packages and package diagrams) Bileşenler ve bileşen diyagramları (Components and component diagrams) Nodes, artifacts, and deployment diagrams Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

25 Kutu-ve-Çizgi Diyagramları (Box-and-Line)Çizgilerle birleştirilen simgeler (kutular, icon’lar) şeklindedir Oluşuma ilişkin kurallar yoktur Hem statik hem de dinamik modelleme için kullanılırlar Lejant (gösterge) eklenmesi iyi olur Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

26 Kutu-ve-Çizgi Diyagramı ÖrneğiDoç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

27 Kutu-ve-Çizgi Diyagramı KurallarıKutu-ve-çizgi diyagramlarını yalnızca standart notasyonların yetersiz kaldığı durumlarda kullanın. Kutuları ve çizgileri basit ve sade tutun. Farklı şeyler için farklı semboller/simgeler kullanın. Farklı diyagramlarda sembolleri tutarlı bir şekilde kullanın. Elemanları isimlendirirken gramer kurallarına uyun. Statik ve dinamik elemanları birlikte kullanmayın. Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

28 UML’de Notlar ve KısıtlarNot (Note)—Model elemanlarına kesik çizgiyle bağlanan, bir köşesi kıvrılmış bir kutu İsteğe bağlı herhangi bir metin içerebilir Yorumlar ve belirtimler için kullanılır Kısıt (Constraint)—Model elemanları tarafından belirtilen varlıklar için sağlanması gereken koşulu belirten bir ifade Küme parantezi içinde yazılır { } Model elemanlarının yanında Çeşitli model elemanlarını bağlayan kesik çizgilerin yanında Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

29 UML’de Özellikler ve StereotiplerÖzellik (Property)—Bir model elemanı tarafından belirtilen bir varlığın karakteristiği Küme parantezi içinde etiketli değerlerin listesi Etiketli değer: etiket = değer True olan Boolean özellikler için değer ve eşittir simgesi yazılmayabilir. Stereotip (Stereotype)—Daha spesifik anlam verilen bir model elemanı Simgeler, renkler, ve grafiklerle gösterilir Stereotip anahtar sözcükleri özel çift tırnaklar arasına yazılır, örneğin «interface» Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

30 Ortak Elemanlara ÖrnekDoç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

31 UML Bağımlılık (Dependency) İlişkileriD ve I iki varlık olmak üzere; I'da (bağımsız - independent) olan bir değişiklik D'yi (bağımlı - dependent) etkiliyorsa, D ve I arasında bir bağımlılık ilişkisi (dependency relation) vardır. Örneğin: D I’yı kullanır, D derlenebilmek için I’ya bağımlıdır, D I’yı import eder. Bağımlılık oklarıyla (dependency arrow) temsil edilir: stereotipli kesik çizgili oklar. Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

32 Bağımlılık İlişkisine ÖrnekDoç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

33 UML Paketleri (Packages)Bir UML paketi (package), paket üyeleri (package member) olarak adlandırılan model elemanlarının bir koleksiyonudur. Paket sembolu olarak dosya klasörü kullanılır. Eğer gövde kısmı doluysa paket adı sekmeye, gövde dolu değilse gövde içinde değilse gövdeye yazılır Üyeler gövde içinde ya da bir kapsama sembolü (çember içinde artı işareti) kullanılarak gösterilir Genellikle import veya export bağımlılık oklarıyla bağlanırlar. Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

34 YMT312 Yazılım Tasarım ve MimarisiPaket Diyagramları Temel olarak paket sembolleri kullanılarak oluşturulan diyagramlara UML paket diyagramı denir. Kullanım alanı: Modüllerin, parçalarının, ve onların ilişkilerinin statik modellerinin gösterimi Mimari modelleme Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

35 Paket Diyagramı ÖrneğiDoç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

36 Yazılım Bileşenleri (Components)Bir yazılım bileşeni yeniden kullanılabilir ve değiştirilebilir bir yazılım parçasıdır. Bileşen-tabanlı yazılım geliştirme, ürünlerin satınalınabilir ya da özel olarak geliştirilmiş yazılım bileşenleri kullanılarak tasarlandığı ve geliştirildiği bir yaklaşımdır. Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

37 UML Bileşen DiyagramlarıBir UML bileşeni, iyi tanımlanmış arabirimlere sahip, modüler, ve başkasıyla değiştirilebilir (replacable) bir birimdir. Bileşen sembolü isim içeren bir dikdörgendir «component» ile stereotipli veya sağ üst köşesinde bileşen sembolü olabilir Bir UML bileşen diyagramı bileşenleri, ortamlarıyla ilişkilerini, ve iç yapılarını gösterir. Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

38 UML Arabirimleri (Interfaces)Bir UML arabirimi (interface) public tanımlı özellikler ve soyut (abstract) operasyonların adlandırılmış bir koleksiyonudur. Stereotipli bir sınıf sembolüyle temsil edilir (daha sonra) Özel top ve soket sembolleriyle temsil edilir. Not: arabirim (interface) sözcüğünün buradaki anlamı daha önce gördüğümüz iletişim sınırı anlamından farklıdır. Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

39 Sağlanan ve Gereksinilen ArabirimlerBir sınıf veya bileşen bir arabirimin tüm özelliklerini kendine dahil eder ve arabirimin tüm operasyonlarını implemente ederse, bu sınıf veya bileşen bu arabirimi gerçekliyor/gerçekleştiriyor (realize) demektir. Sağlanan (Provided) arabirim—Sınıf veya bileşen tarafından gerçeklenir Bir top veya lolipop sembolüyle temsil edilir Gereksinilen (Required) arabirim—Bir sınıf veya bileşen tarafından ihtiyaç duyulur Bir soket sembolüyle temsil edilir Montaj konnektörü (assembly connector) arabirimleri birbirine bağlar. Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

40 Arabirim Sembollerine ÖrneklerDoç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

41 Bileşenlerin İç YapısıBileşenler başka bileşenleri veya sınıfları içerebilirler ve içsel yapılarını gösterebilirler. Bir delegasyon konnektörü (delegation connector), bir bileşen arabirimini bu arabirimi gerçekleyen veya kullanan bir veya daha fazla içsel sınıfa veya bileşene bağlar. Düz çizgili oklar «delegate» ile stereotipli Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

42 Bileşenlerin İç Yapısına ÖrnekDoç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

43 Bileşen Diyagramı KullanımıYazılım bileşenlerinin statik modellerinin gösteriminde (yeniden kullanılabilir ve başkasıyla değiştirilebilir parçalar) Program bileşenlerinin modellenmesinde Mimari modeller Ayrıntılı tasarım modelleri Ortam ile ilişkiler Bileşenlerin içsel yapısının modellenmesinde kullanılır. Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

44 Mantıksal ve Fiziksel MimariMantıksal (Logical) mimari—Bir ürünün temel parçalarının ve onların ilişkilerinin çalışan kod halinde gerçek bir makinede implementasyonundan daha soyut bir konfigürasyonu Fiziksel (Physical) mimari—Bir ürünün işlemsel kaynaklar üzerinde kod ve veri dosyaları halinde bulunmasının ve çalışmasının gerçekleştirilmesi UML kurulum (deployment) diyagramı fiziksel mimariyi modeller. Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

45 UML Artefaktları (Artifacts)Bir UML artefaktı (artifact) geliştirme veya işletim sırasında kullanılan veya üretilen verinin herhangi bir fiziksel temsilidir. Örneğin: dosyalar, dokümanlar, program kodları, veritabanı tabloları, vb. Artefaktların tipleri ve örnekleri (instance) vardır İsim içeren dikdörtgenle temsil edilir «artifact» ile stereotiplidir veya sağ üst köşesinde artefakt sembolü vardır Örneklerin isimlerinin altı çizgilidir, tiplerin isimlerini altı çizgili değildir Artefaktlar mantıksal varlıkların gerçeklenmiş şekilleridir (sınıflar, bileşenler, vb.) Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

46 YMT312 Yazılım Tasarım ve MimarisiUML Düğümleri (Nodes) Bir UML düğümü (node) işlemsel (computational) bir kaynaktır. Cihaz (Device)—Bir bilgisayar gibi fiziklsel bir işlem birimidir İşletim ortamı (Execution environment)—İşletim sistemi veya bir dil yorumlayıcısı gibi bir sanal makineyi implemente eden bir yazılım sistemidir UML’de kutu veya kütük (slab) sembolüyle temsil edilir «device» veya «execution environment» ile stereotiplidir Tipler ve örnekler (instance) Tiplerin isimleri vardır Örneklerin name : type formunda altı çizgili etiketleri vardır İsim veya tipten biri yazılmayabilir, ama ikisi birden değil Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

47 Düğüm Sembolü ÖrnekleriDoç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

48 Kurulum (Deployment) DiyagramlarıBir UML kurulum diyagramı, işlemsel kaynakları, aralarındaki iletişim yollarını, ve üzerlerinde bulunan ve işletilen artefaktları modeller. Kullanım yeri: Sistemde kullanılan gerçek ve sanal makineleri göstermek Makineler arasındaki iletişim yolunu göstermek Sistemi oluşturan program ve veri dosyalarını göstermek Yerleşim (Residence) İşletim (Execution) Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

49 Kurulum Diyagramı Kurallarıİşlemsel kaynaklar düğümlerdir İletişim yolları düğümler arasındaki düz çizgilerdir Etiketlenebilir Çoklukları ve rol isimleri olabilir Artefakt sembolleri Düğüm sembollerinin içinde görünebilir Düğüm sembollerinin içinde listelenebilir «deploy» stereotipli bağımlılık oklarıyla düğüm sembollerine bağlanabilir Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

50 Kurulum Diyagramı ÖrneğiDoç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

51 YMT312 Yazılım Tasarım ve MimarisiÖzet Mimari tasarım ürünün fizibilitesinin değerlendirilebilmesi amacıyla genellikle ürün tasarımı sırasında başlamalıdır. Mimari tasarımdan ayrıntılı tasarıma doğru soyutlamanın (abstraction) derecesi azalır. Bir mimarı tasarım dokümanı (SAD) ürüne genel bir bakış, mimari spesifikasyonlar, ve tasarım gerekçesi gibi bölümlerden oluşur. Mimari kararların kalite nitelikleri üzerinde büyük etkisi vardır. Mimari modelleme için kullanılan çeşitli notasyonlar mevcuttur. Arabirim spesifikasyonları, iletişim ortamına dair tanımlamalar içermelidir Sözdizim (Syntax), Semantik (Semantics), ve Pragmatik. Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

52 YMT312 Yazılım Tasarım ve MimarisiÖzet Kutu-ve-çizgi diyagramları statik ve dinamik mimari model oluşturmak için kullanılır. Notlar, kısıtlar, özellikler, ve stereotipler herhangi bir UML diyagramında kullanılabilir. Paket diyagramları modulleri ve modüllerin parçalarını modellemek için kullanılır. Bileşen diyagramları yazılım bileşenlerini modellemek için kullanılır. Kurulum diyagramları fiziksel mimarileri modellemek için kullanılır. Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

53 YMT312 Yazılım Tasarım ve MimarisiSorular Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

54 YMT312 Yazılım Tasarım ve MimarisiÖdevler Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi

55 YMT312 Yazılım Tasarım ve MimarisiKaynaklar “Software Engineering A Practitioner’s Approach” (7th. Ed.), Roger S. Pressman, 2013. “Software Engineering” (8th. Ed.), Ian Sommerville, 2007. “Guide to the Software Engineering Body of Knowledge”, 2004. ” Yazılım Mühendisliğine Giriş”, TBİL-211, Dr. Ali Arifoğlu. ”Yazılım Mühendisliği” (2. Basım), Dr. M. Erhan Sarıdoğan, 2008, İstanbul: Papatya Yayıncılık. Kalıpsiz, O., Buharalı, A., Biricik, G. (2005). Bilgisayar Bilimlerinde Sistem Analizi ve Tasarımı Nesneye Yönelik Modelleme. İstanbul: Papatya Yayıncılık. Buzluca, F. (2010) Yazılım Modelleme ve Tasarımı ders notları (http://www.buzluca.info/dersler.html) Hacettepe Üniversitesi BBS-651, A. Tarhan, 2010. Yazılım Proje Yönetimi, Yrd. Doç. Dr. Hacer KARACAN YZM211 Yazılım Tasarımı – Yrd. Doç. Dr. Volkan TUNALI Doç. Dr. Resul DAŞ YMT312 Yazılım Tasarım ve Mimarisi