Chapter 2, UML ile Modelleme, Bölüm 1

Slides:



Advertisements
Benzer bir sunumlar
el ma 1Erdoğan ÖZTÜRK ma ma 2 Em re 3 E ren 4.
Advertisements

Yrd. Doç. Dr. Mustafa Akkol
Oktay ERBEY CRM & B2B Ürün Satış Hizmet Yöneticisi
Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
Diferansiyel Denklemler
Değişkenler ve bellek Değişkenler
NOKTA, DOĞRU, DOĞRU PARÇASI, IŞIN, DÜZLEMDEKİ DOĞRULAR
UML Unified Modeling Language
Nesneye Dayalı (Nesne Tabanlı ) Programlama
T.C. İNÖNÜ ÜNİVERSİTESİ Arapgir Meslek YÜKSEKOKULU
Eğitim Programı Kurulum Aşamaları E. Savaş Başcı ASO 1. ORGANİZE SANAYİ BÖLGESİ AVRUPA BİLGİSAYAR YERKİNLİĞİ SERTİFİKASI EĞİTİM PROJESİ (OBİYEP)
KİŞİSEL KAMP MALZEMEN Kamp malzemelerini şu ana başlıklar altında düşünebilirsin. Uyku malzemesi Yemek malzemesi Temizlik malzemesi Zorluklara karşı hazır.
Veri ve Veri Yapıları Genel olarak bilgisayarlar.
Atlayarak Sayalım Birer sayalım
BEIER CÜMLE TAMAMLAMA TESTİ
Diferansiyel Denklemler
Zamana Bağımlı Olmayan Doğrusal (LTI) Sistemlerin Frekans Tepkileri
ÖRNEKLEME DAĞILIŞLARI VE TAHMİNLEYİCİLERİN ÖZELLİKLERİ
Microsoft Danışman Öğrenci
1/27 GEOMETRİ (Kare) Aşağıdaki şekillerden hangisi karedir? AB C D.
BEIER CÜMLE TAMAMLAMA TESTİ
8. SAYISAL TÜREV ve İNTEGRAL
5) DOĞRUSAL DENKLEM SİSTEMLERİNİN SAYISAL ÇÖZÜMLERİ
ALIŞVERİŞ ALIŞKANLIKLARI ARAŞTIRMASI ÖZET SONUÇLARI Haziran 2001.
Algoritmalar En kısa yollar I En kısa yolların özellikleri
Algoritmalar DERS 2 Asimptotik Notasyon O-, Ω-, ve Θ-notasyonları
Yönetim Bilgi Sistemleri Şubat TAPU VE KADASTRO GENEL MÜDÜRLÜĞÜ.
KIR ÇİÇEKLERİM’ E RakamlarImIz Akhisar Koleji 1/A.
HİSTOGRAM OLUŞTURMA VE YORUMLAMA
Prof. Dr. Leyla Küçükahmet
MÜRŞİT BEKTAŞ 1-A SINIFI
Algoritmalar DERS 3 Böl ve Fethet(Divide and Conquer) İkili arama
HAZIRLAYAN:SAVAŞ TURAN AKKOYUNLU İLKÖĞRETİM OKULU 2/D SINIFI
Mobil Uygulamalar ve Bilgi Hizmetleri Orçun Madran
ÖRNEKLEM VE ÖRNEKLEME Dr.A.Tevfik SÜNTER.
TÜMLEŞİK MODELLEME DİLİ
Matematik 2 Örüntü Alıştırmaları.
Yazılım Proje Yönetimi
PROTOKOL.
Tam sayılarda bölme ve çarpma işlemi
DEĞİŞİM YÖNETİMİ Pervin GÖZENOĞLU.
Anadolu Öğretmen Lisesi
Açık Ders Malzemelerinde (ADM) Teknik Alt Yapı R. Orçun Madran
Mukavemet II Strength of Materials II
Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü C ++ Nesne.
Nesneye yönelİk analİz ve tasarima gİrİş
Chapter 6: Using Arrays.
Yard. Doç. Dr. Mustafa Akkol
Strateji Geliştirme Başkanlığı 1 DÜNYA EKONOMİSİ REEL SEKTÖR.
ANA BABA TUTUMU ENVANTERİ
1 DEĞİŞMEYİN !!!
Üçüncü Grup Birinci Harf U sesi sunumu MÜRŞİT BEKTAŞ.
Chapter 1: Giriş.
1 2 3 GÜVENLİK İÇİN ÖNCELİKLE RİSKİ YOK EDİLMELİDİR. RİSKİ YOK EDEMIYORSANIZ KORUNUN KKD; SİZİ KAZALARDAN KORUMAZ, SADECE KAZANIN ŞİDDETİNİ AZALTIR.
Chapter 11: Exception Handling
Bankacılık sektörü 2010 yılının ilk yarısındaki gelişmeler “Temmuz 2010”
AB SIĞIR VE DANA ETİ PAZAR DURUMU 22 Ekim AB TOPLAM BÜYÜKBAŞ HAYVAN VARLIĞI CANLI HAYVAN May / June SURVEY CANLI HAYVAN May / June SURVEY.
Çocuklar,sayılar arasındaki İlişkiyi fark ettiniz mi?
Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü C ++ Veri.
ÇOK DEĞİŞKENLİ FONKSİYONLARDA
Proje Konuları.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Amaçlar Bu derste öğrenilecekler: –Uygulamaları “method”
ECHİNODERMATA Kambriyen – Güncel tümüyle denizel Filum
ÖĞR. GRV. Ş.ENGIN ŞAHİN BİLGİ VE İLETİŞİM TEKNOLOJİSİ.
Diferansiyel Denklemler
Modül 1: Giriş. Genel Bakış Temel.NET kavramları Geliştirme ortamında gezinti Bir C# projesi oluştur Use Visual Studio.NET Veriye eriş Hata ayıkla ve.
JAVA 1. GİRİŞ & TARİHÇE Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmıştır. Açık kodlu. Nesneye yönelik. Düzlemden.
PHP ile Nesneye Yönelik Programlama
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Sunum transkripti:

Chapter 2, UML ile Modelleme, Bölüm 1

Ders Özeti Karmaşıklıkla başa çıkmanın üç yolu UML notasyonuna giriş Soyutlama ve Modelleme Parçalara Ayırma (Decomposition) Hiyerarşi UML notasyonuna giriş İlk bakış: Senaryo diyagramları (Use case diagrams) Sınıf diyagramları (Class diagrams) Sıralama diyagramları (Sequence diagrams) Durum diyagramları (Statechart diagrams) Aktivite diyagramları (Activity diagrams)

Aşağıdaki figürün problemi nedir?

Soyutlama - Abstraction Karmaşık sistemleri anlamak zordur 7 +- 2 fenomeni Kısa hafızamız aynı anda 7+-2 parçadan daha fazlasını aynı anda tutamaz -> beynin sınırları Telefon numaram: 498928918204 Inherent human limitation to deal with complexity In philosophical terminology, abstraction is Definition (Wikipedia): An abstraction is an idea, concept, or word which defines the phenomena which make up the concrete events or things which the abstraction refers to A model is a construct that represents physical, biological or social systems, with a set of variables and a set of logical and quantitative relationships between them. Models are constructed to enable reasoning within a idealized logical framework about these systems and are an important component of scientific theories. Idealized here means that the model may make explicit assumptions that are known to be false in some detail, but by their simplification of the model allow the production of acceptably accurate solutions. (Animation) This is a scale model of a real train. A scale model is a replica or prototype of an object built either for research or as a hobby, usually built smaller than the existing or intended thing, though can equally be built larger to illustrate something that would otherwise be hard to see.

Soyutlama - Abstraction Karmaşık sistemleri anlamak zordur 7 +- 2 fenomeni Kısa hafızamız aynı anda 7+-2 parçadan daha fazlasını aynı anda tutamaz -> beynin sınırları Telefon numaram: 498928918204 Gruplama: Objeleri gruplamak karmaşıklığı azaltıyor 4 grup: Ülke-kodu, Alan-kodu, Local-Prefix, İç hat-Nr Inherent human limitation to deal with complexity In philosophical terminology, abstraction the process in concept-formation of recognizing some set of common features in individuals. Definition (Wikipedia): An abstraction is an idea, concept, or word which defines the phenomena which make up the concrete events or things which the abstraction refers to A model is a construct that represents physical, biological or social systems, with a set of variables and a set of logical and quantitative relationships between them. Models are constructed to enable reasoning within a idealized logical framework about these systems and are an important component of scientific theories. Idealized here means that the model may make explicit assumptions that are known to be false in some detail, but by their simplification of the model allow the production of acceptably accurate solutions.

Soyutlama - Abstraction Karmaşık sistemleri anlamak zordur 7 +- 2 fenomeni Kısa hafızamız aynı anda 7+-2 parçadan daha fazlasını aynı anda tutamaz -> beynin sınırları Telefon numaram: 498928918204 Gruplama: Objeleri gruplamak karmaşıklığı azaltıyor 4 grup: Ülke-kodu, Alan-kodu, Local-Prefix, İç hat-Nr Telefon Numarası Ülke - kodu Alan - kodu Local-Prefix İç Hat-Nr

Soyutlama - Abstraction Soyutlama gereksiz detayları ihmal etmemizi sağlar Soyutlamanın iki tanımı: Soyutlama fikirlerin objelerden uzaklaştırıldığı düşünce prosesleridir Soyutlama bir aktivite Soyutlama bir düşünce prosesi sonucunda objelerden uzaklaşmış sonuç fikirdir Soyutlama bir entite Fikirler modellerle ifade edilebilir (Animation) This is a scale model of a real train. A scale model is a replica or prototype of an object built either for research or as a hobby, usually built smaller than the existing or intended thing, though can equally be built larger to illustrate something that would otherwise be hard to see.

Modeller Model bir sistemin soyutlanmış halidir Artık var olmayan sistemler Var olan sistemler Geleceğe ait sistemler Acknowledgements: Dinosaur: http://upload.wikimedia.org/wikipedia/commons/1/12/Carhenge_dinosaur.jpg Sombrero galaxy: http://www.spacetelescope.org/images/html/opo0328a.html (direct link) Star trek enterprise 1701: Picture from http://www.flickr.com/photos/sneezypb/2688690679/ (Creative Common License: http://creativecommons.org/licenses/by-sa/2.0/deed.en) If you reuse these pictures in your class lectures, please make sure to read the wiki commons license: http://commons.wikimedia.org/wiki/Commons:Welcome Many methods that have been successfully applied in the natural sciences and humanities can be applied to the sciences of the artificial as well. By looking at the other sciences, we can learn quite a bit. One of the basic methods of science is modeling. A model is an abstract representation of a system that enables us to answer questions about the system. Models are useful when dealing with systems that are too large, too small, too complicated, or too expensive to experience firsthand. Models also allow us to visualize and understand systems that either no longer exist or that are only claimed to exist. Fossil biologists unearth a few bones and teeth preserved from some dinosaur that no one has ever seen. From the bone fragments, they reconstruct a model of the animal, following rules of anatomy. The more bones they find, the clearer their idea of how the pieces fit together and the higher the confidence that their model matches the original dinosaur. If they find a sufficient number of bones, teeth, and claws, they can almost be sure that their model reflects reality accurately, and they can guess the missing parts. Legs, for example, usually come in pairs. If the left leg is found, but the right leg is missing, the fossil biologists have a fairly good idea what the missing leg should look like and where it fits in the model. This is an example of a model of a system that no longer exists Today’s high-energy physicists are in a similar position to that of a fossil biologist who has found most of the bones. Physicists are building a model of matter and energy and how they fit together at the most basic subatomic level. Many years of experiments with particle accelerators have given high-energy physicists enough confidence that their models reflect reality and that the remaining pieces that are not yet found will fit into the so-called standard model. This is an example of a model for a system that is claimed to exist.

Yazılım Sistemlerini Tarif Etmek İçin Modeller Kullanılır Nesne Modeli (Object model): Sistemin yapısı (structure) nasıl? Fonksiyonel Modeli (Functional model): Sistemin fonksiyonları nedir? Dinamik Model (Dynamic model): Sistem dış etkilere karşı nasıl davranıyor? Sistem Modeli: Nesne Modeli + Fonksiyonel Model + Dinamik Model Object model: What is the structure of the system? What are the objects and how are they related? Functional model: What are the functions of the system? How is data flowing through the system? Dynamic model: How does the system react to external events? How is the event flow in the system ?

Yazılım Geliştirme Sistemlerini Tarif Eden Modeller Görev Modeli (Task Model): PERT Chart: Görevler arasındaki bağlantılar nasıl? Program (Schedule): Zaman sınırlaması içinde bu işler nasıl yapılacak? Organizasyon Şeması : Projedeki roller nelerdir? Meseleler Modeli: Açık ve kapalı meseleler nelerdir? Bana engel olan durum nedir? Müşteri ne gibi sınırlamalar getirmiştir? Ne gibi çözümler önerilmiş? Buna bağlı olarak şimdi hangi aksiyon yapılmalı ? Object model: What is the structure of the system? What are the objects and how are they related? Functional model: What are the functions of the system? How is data flowing through the system? Dynamic model: How does the system react to external events? How is the event flow in the system ?

2. Karmaşıklıkla Başa Çıkmak İçin Teknikler: Parçalara Ayırmak Karmaşıklığı anlamak için kullanılan bir teknik (“böl ve yönet”) Parçalamın iki çeşidi Fonksiyonel Parçalama Nesne-Tabanlı Parçalama Sistem modülere ayrılır Her modül uygulama alanında ana bir fonsksiyondur Modüler daha küçük modüllere ayrılabilir . Which decomposition is the right one? If you think you are politically correct, you probably want to answer: Object-oriented. But that is actually wrong. Both views are important Functional decomposition emphasises the ordering of operations, very useful at requirements engineering stage and high level description of the system. Object-oriented decomposition emphasizes the agents that cause the operations. Very useful after initial functional description. Helps to deal with change (usually object don’t change often, but the functions attached to them do).

Parçalama Hangisi daha iyi? Nesne-Tabanlı Parçalama Sistem sınıflara parçalanır (“objects”) Her sınıf uygulama alanında önemli bir entitidir Sınıflar daha küçük sınıflara ayrılabilir Nesne-Tabanlı veya Fonksiyonel Parçalama Which decomposition is the right one? If you think you are politically correct, you probably want to answer: Object-oriented. But that is actually wrong. Both views are important Functional decomposition emphasises the ordering of operations, very useful at requirements engineering stage and high level description of the system. Object-oriented decomposition emphasizes the agents that cause the operations. Very useful after initial functional description. Helps to deal with change (usually object don’t change often, but the functions attached to them do). Hangisi daha iyi?

Fonksiyonel Parçalama System Function Top Level functions Read Input Produce Output Transform Level 1 functions Read Input Transform Produce Output Level 2 functions Load R10 Add R1, R10 Machine instructions

Fonksiyonel Parçalama Fonksiyonalite bütün sisteme dağılmış durumdadır Sistem üzerinde değişiklik yapmak için bütün sistemi anlamak gerekli Sonuç: Kaynak kodu anlamak zordur Kaynak kod karmaşıktır Genelde kullanıcı arayüzü kullanışlı değildir.

Fonksiyonel Parçalama Fonksiyonalite bütün sisteme dağılmış durumdadır Sistem üzerinde değişiklik yapmak için bütün sistemi anlamak gerekli Sonuç: Kaynak kodu anlamak zordur Kaynak kod karmaşıktır Genelde kullanıcı arayüzü kullanışlı değildir. Örnek: Microsoft Powerpoint’s Autoshapes Kareyi nasıl çembere çevirelim ? ?

Kareyi nasıl çembere çevirelim ? İlk deneme: Check the Format Menu: Autoshape ?

İkinci deneme: Help Assistant’a soralım Change one AutoShape to another: 1. Select the AutoShape you want to change. 2. On the Drawing toolbar, click Draw , click Change AutoShape, point to a category, and then click the shape you want.

Fonksiyonel Parçalama : Autoshape Change Draw Change Rectangle Oval Circle Draw Rectangle Oval Circle

Autoshape Draw() Change() Object-Oriented View Autoshape Draw() Change()

Bu nedir? Bir Eskimo! Cave Neck Ellbow Glove Pocket Coat

Bir Yüz! Hair Eye Nose Ear Mouth Chin

Eskimo! Yüz! Cave Hair Neck Eye Ellbow Nose Ear Glove Pocket Mouth Coat Chin

Sınıf Tanımlaması Temel Varsayımlar: Yeni bir yazılım sistemi için sınıfları bulabiliriz: Greenfield Engineering Var olan bir yazılımdaki sınıfları bulabiliriz: Yeniden Mühendislik : Reengineering Eski bir sisteme sınıf tabanlı yeni bir arayüz tasarlayabiliriz: Arayüz Mühendisliği : Interface Engineering. This basic assumptio is crucial for object-oriented modeling. We can identify objects first, and attach functions to them. We can find the classes for a new software system We call this Greenfield Engineering We can identify the classes in an existing system We call this Reengineering We can create a class-based interface to an existing system: We call this Interface Engineering Depending on the purpose of the system different objects might be found: A nose is suddenly an elbow, hair is a cave, an ear turns out to be a glove.

3. Hiyerarşi Şimdiye kadar soyutlamalara odaklandık Bu bizi sınıf ve objelere götürür “Parçalar” Karmaşıklık ile başa çıkmanın bir yolu bu parçacıklar arasında hiyerarşi ilişkiler oluşturmaktır 2 özel hiyerarşi "Parçasıdır" hiyerarşisi (“Part-of”) “Türüdür" hiyerarşisi ("Is-kind-of"). A hierarchy (in greek: hieros, sacred, and arkho, rule) is a system of organizing things. Hierarchies can be generally divided into two kinds: those where the upper levels of the hierarchy are 'superior' to the lower in some way, and those where the lower levels are 'contained' in the upper, again in different ways. An example of the first kind might be a company organisational structure: the CEO is superior to the divisional managers, who are superior to their team leaders who are superior to their ordinary workers. An example of the second kind is the hierarchy of animal classification: the set of 'birds' contains the set of 'birds of prey’ which contains the set of 'eagles' which contains the set of 'golden eagles'

Parçasıdır Hiyeraşisi (Aggregation) Computer I/O Devices CPU Memory Cache ALU Program Counter

Türüdür Hiyerarşisi (Taxonomy) Hücre Kas Hücresi Kan Sinir Striate Smooth Kır- mızı Be- yaz Cortical Pyramidal

Konunun Neresindeyiz? Karmaşıklıkla başa çıkmanın üç yolu: Soyutlama, Parçalara Ayırma (Decomposition), Hiyerarşi Nesne-tabanlı parçalama iyi Maalesef sistemin amaçına bağlı olarak değişik objeler bulunabilir Doğrusunu nasıl yapabiliriz? Sistemin fonksiyonalitesini tarif ederek başlayabiliriz Ondan sonra sistemin yapısını tarif ederek devam edebiliriz Geliştirme aktivitelerinin düzenlenmesi Yazılım yaşam döngüsü The identification of objects and the definition of the system boundary are heavily intertwined with each other. That is, we are ordering the development activities in a certain way

Modeller Yanlışlanabilir Olmalı Karl Popper (“Objektif Bilgi”): Gerçeği anlamaya çalıştığınızda mutlak doğru yoktur Bizler teoriler oluşturabiliriz. Birisi gelip teorinin çalışmadığı bir örnek getirene kadar teorimiz “doğrudur”. Yanlışlama: Bir teoriyi veya hipotezi çürütmek Bir teorinin doğruluğu kesin değildir. Teoriden bahsederken : “bize göre”, “en son bilgilere göre” gibi cümleler kullanılmalı. Yazılım mühendiliğinde her model bir teoremdir: Modeller inşa edip çürütmeye çalışabiliriz: Gereksinim doğrulaması, arayüz testi, tasarımın kontrol edilmesi, kodun testi, sistem testi, vs. Test: Modeli yanlışlamaya çalışması.

Konseptler ve Fenomenler Bir alandaki gözlenebilir, anlaşılabilir olay vaya obje Örnekler: Bu ders saat 9:35’da, benim siyah saatim Konsept Fenomenlerin genel özelliklerini tarif eder Örnek: Bütün Yazılım Mühendisliği Dersleri Örnek: Bütün siyah saatler Konsept 3’lü bir yapıdır: Isim: Konseptin ismi konsepti diğerlerinden ayırır Amaç: Fenomenin koseptin parçası olup olmadığını belirleyen özellikler Üyeler: Konseptin parçası olan fenomen seti.

Konseptler, Fenomen, Soyutlama ve Modelleme Isim Amaç Üyeler Zamanı ölçen bir alet. Saat Soyutlamanın Tanımı: Fenomenlerin konseptlere sınıflanması Modellemenin Tanımı: Bir fenomen seti hakkındaki sorulara cevaplar verebilmek için detayları ihmal ederek soyutlamalar geliştirmek. Hourglass

Soyut Veri Tipleri & Sınıflar Superclass State Soyut Veri Tipi İmplementasyonu sistemin gerisinden saklı bir tip Sınıf: Nesne-Tabanlı kontext içinde bir soyutlama Bir sınıf bir durumu ve davranışı kapsar Örnek: Watch Watch time date SetDate(d) CalculatorWatch EnterCalcMode() InputNumber(n) calculatorState Behavior Miras (Inheritance) Unlike abstract data types, subclasses can be defined in terms of other classes using inheritance Example: CalculatorWatch Subclass

Tip ve Durum (Instance) Programlama dilli koncepti İsim: int Amaç: integral number Üyeler: 0, -1, 1, 2, -2,… Durum: Belirli bir tipin üyesi Bir değişkenin tipi bütün mümkün olan duruları temsil eder Aşağıdaki ilişkiler benzerdir: Tip (Type) <–> Değişken (Variable) Knsept (Concept) <–> (Fenomen) Phenomenon Sınıf (Class) <-> Obje (Object)

Sistemler Bir sistem birbiri ile haberleşen organize parçalardan oluşur Doğal sistem: bütün amaçlarını bilemediğimiz, hazır çevremizde bulduğumuz sistem Mühendislik sistemi: Mühendisler tarafından belli bir amaç için kurulmuş bir sistem Sistemin parçaları da sistem olabilir Bu durumda onlara alt sistemler denebilir (subsystems) Örnek doğal sistemler: • Evren, dünya, okyanus Örnek mühendislik sistemleri: • Uçak, saat, GPS Örnek alt sistemler: • Jet motoru, pil, uydu.

Sistemler, Modeller ve Görünümler • Model bir sistemi veya alt sistemi tarif eden bir soyutlamadır • Görünüm (View) bir sistemi belirli bir bakış açısından gösterir Notasyon bir sistemi veya görünümü anlatmak için kullanılan grafiksel veya metinsel kurallardır: formal notasyonlar Sistem: Uçak Modeller: Uçuş simulatörü Prototip modeli SOURCES FOR F14 Flyby sources on You-Tube: Sonic Boom - Extreme Close Fly By: http://www.youtube.com/watch?v=QX04ySm4TTk Awesome SONIC BOOM: http://www.youtube.com/watch?v=jZ3Hhdr8EjI A view is a subset of a model that makes it more understandable Alle the blueprints needed to build a scale model are a view of the scale model. The film shows a flyby of a F-14 airplane at an aircraft carrier reaching supersonic speed. The sound wave can be well seen. Görünümler: Uçak parçalarının planları Elektrik aksamı, Yakıt sistemi Uçak tarafından üretilen ses dalgası

Sistemler, Modeller ve Görünümler Flightsimulator Aircraft Fuel System This is a graphical notation of a system. We show the systems and subsystems as areas, and annotate them with clouds containing the name of the system. It is important to notice that we use this type of notation in many situations, we might write it down in the sand on the beach, we might use a napkin in a restaurant. It is a conceptual description of the system, using a freeformat notation. For this reason I call it the napkin notation Electrical Wiring Blueprints Scale Model Karmaşık bir sistemin görünümleri ve modelleri genelde kesişir

Sistemler, Modeller ve Görünümler (UML Notasyonu) Sınıf Diyagramı System Model * View * Depicted by Described by Airplane: System Obje Diyagramı Scale Model:Model Flight Simulator:Model UML is designed to restrict the set of notations that we can use to describe a system. The advantage is, that we can generate tools that translate these notation into source code of a higher programming language. These tools are called CASE tools. A view is a subset of a model that makes it more understandable Alle the blueprints needed to build a scale model are a view of the scale model. Blueprints: View Fuel System: View Electrical Wiring: View

Model Tabanlı Geliştirme Bir uygulamanın fonksiyonalitesini veya davranışını gösteren platform bağımsız modelini geliştir a) Modeli belirli bir modeleme notasyonu ile tarif et (UML) b) Modeli platform bağımlı hale dönüştür Platform bağımlı modelden “executable” oluştur Avantajlar: Kod modelden geliştirilir (“genellikle”) Taşınabilirlik (portabilitiy) ve platformlar arası uygunluk (interoperability) Model Driven Architecture effort: http://www.omg.org/mda/ OMG: Object Management Group - MDD is the current holy grail of software development Software development in the MDA starts with a Platform-Independent Model (PIM) of an application's business functionality and behavior, constructed using a modeling language based on OMG's MetaObject Facility (MOF). - This model remains stable as technology evolves, extending and thereby maximizing software ROI. MDA development tools, available now from many vendors, convert the PIM first to a Platform-Specific Model (PSM) and then to a working implementation on virtually any middleware platform: Web Services, XML/SOAP, EJB, C#/.Net, OMG's own CORBA, or others. - Portability and interoperability are built into the architecture. - OMG Task Forces organized around industries including Finance, Manufacturing, Biotechnology, Space technology, and others use the MDA to standardize facilities in their domains.

Model Tabanlı Yazılım Geliştirme Gerçek: stock exchange birçok şirketi listeler. Her şirket bir ticker symbol ile ifade edilir Analiz analiz obje modelini oluşturur (UML Sınıf Diyagramı): * * StockExchange Company Lists tickerSymbol One way to develop is to start with a problem statement from the customer, and turn it into a system model. Here we have converted a textual description of a stock exchange into a UML class diagram. Does this model reflect the problem statement? The association between the stock exchange and company is many to many, as we call it. It means that each stock exchange has many companies, and that there are companies that are listed on more than one stock exchange. Is this correct? To see if this model reflects reality, we have to find a stock exchange, that lists more than one company, that is easy. The NASDAQ stock exchange lists Adobe and SUN, so we found one example in reality. For the other direction it initially looks tougher, is there a company listed on more than one stock exchange? Think about it? One example is DaimlerChrysler, which is listed on the NYSE and on the Frankfurter Boerse. Implementasyon kaynak kodu oluşturur (Java): public class StockExchange { public m_Company = new Vector(); }; public class Company { public int m_tickerSymbol; public Vector m_StockExchange = new Vector();

Uygulama ve Çözüm Alanları Uygulama Alanı (Analiz): Sistemin çalıştığı ortam Çözüm Alanı (Tasarım, Implementasyon): Sistemi gerçekleştirmek için kullanılan teknolojiler Her iki alan da bir sistem modeli oluşturmak için soyutlamalar içerir. Recall system model: Functional model, object model and dynamic model

Object-oriented Modeling Solution Domain (Phenomena) Application Domain (Phenomena) System Model (Concepts) (Analysis) System Model (Concepts) (Design) UML Package Summary Display Airplane pictures reused from http://en.wikipedia.org/wiki/Aircraft MapDisplay TrafficControl FlightPlanDatabase TrafficController TrafficControl Aircraft Airport FlightPlan

UML nedir? UML (Unified Modeling Language) Current Version: UML 2.2 Nonproprietary standard for modeling software systems, OMG Convergence of notations used in object-oriented methods OMT (James Rumbaugh and collegues) Booch (Grady Booch) OOSE (Ivar Jacobson) Current Version: UML 2.2 Information at the OMG portal http://www.uml.org/ Commercial tools: Rational (IBM),Together (Borland), Visual Architect (business processes, BCD) Open Source tools: ArgoUML, StarUML, Umbrello Commercial and Opensource: PoseidonUML (Gentleware)

UML: İlk Bakış Modeleme problemlerinizin % 80 UML notasyonun %20 ile çözebilirsiniz Bu derste % 20 UML öğretilecek 80-20 Kuralı: Pareto prensibi Vilfredo Pareto, 1848-1923 Introduced the concept of Pareto Efficiency, Founder of the field of microeconomics.

UML: İlk Bakış Senaryo diyagramları(Use case) Sistemin fonksiyonel davranışını kullanıcının gördüğü gibi tarif eder Sınıf Diyagramları (Class diagrams) Sistemin statik yapısını tarif eder: Objeler, attributes, bağlantılar Sıralı Diyagramlar (Sequence diagrams) Sistemin objeler arasındaki dinamik davranışını tarif eder Durum Diyagramları (Statechart diagrams) Tek bir objenin dinamik davranışını tarif eder Aktivite Diyagramları (Activity diagrams) Sistemin dinamik davranışını tarif eder, özelde iş akışını tarif eder. Statechart diagrams Describe the dynamic behavior of an individual object (essentially a finite state automaton) Activity Diagrams Model the dynamic behavior of a system, in particular the workflow (essentially a flowchart)

UML Temel Konvensiyonlar Bütün UML diyagramları düğüm ve kenarlardan oluşan graflardan oluşur Nodes are entities and drawn as rectangles or ovals Dikdörtgenler sınıfları veya durumları gösterir Oval şekiller fonksiyonları gösterir Sınıfların isimlerinde alt çizgi yoktur SimpleWatch Firefighter Durumların alt çizgisi vardır myWatch:SimpleWatch Joe:Firefighter İki düğüm arasındaki kenar onların arasındaki ilişkiyi belirtir

UML İlk Bakış : Senaryo diyagramları Classifier Use Case Actor. System boundary Senaryo diyagarmları sistemin fonksiyonalitesini kullanıcının görüş acısı ile tarif eder

UML İlk Bakış : Sınıf Diyagramları Association Class Multiplicity SimpleWatch 1 2 1 2 PushButton Display Battery Time Sınıf diyagramları sistemin statik yapısını tarif eder

UML İlk Bakış : Sınıf Diyagramları Class diagrams represent the structure of the system Association Class Multiplicity Watch 1 blinkIdx blinkSeconds() blinkMinutes() blinkHours() stopBlinking() referesh() LCDDisplay 1 Battery Load 1 2 Time Now 1 1 2 PushButton state push() release() Operations Attribute

UML İlk Bakış : Sıralama Diyagramları :Watch :WatchUser Actor Message Object Lifeline :LCDDisplay :Time pressButton1() blinkHours() pressButton1() blinkMinutes() pressButton2() incrementMinutes() refresh() pressButton1and2() commitNewTime() stopBlinking() Activation Sistemin objeler arasındaki dinamik davranışını mesaj olarak tarif eder

UML İlk Bakış : Durum Diyagramları Initial state Event button1&2Pressed button1Pressed button2Pressed Increment Minutes Hours Blink Seconds Stop Blinking Transition State Represent behavior of single objects with interesting dynamic behavior in terms of states and transitions The behavior of the single object Watch, for example, has several different interesting states, BlinkHours, BlinkMinutes, BlinkSeconds, Because in each state pressing a button or two yields a different result. Final state Tek bir objenin dinamik davranışını tarif eder

UML Temel Notasyon Özeti UML yazılım sistemlerinin değişik yönlerini modellemek için geniş bir notasyon zenginliği içerir Bugün birkaç notasyon üzerinde odaklandık: Fonksiyonel model: Senaryo diyagramı Obje modeli: Sınıf diyagramı Dinamik model: Sıralı diyagramlar, durum diyagramı. Powerful, but complex language Warning: Can also be misused to generate unreadable models Warning: Can be misunderstood when using too many exotic features

Ek Referanslar Martin Fowler Grady Booch,James Rumbaugh,Ivar Jacobson UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd ed., Addison-Wesley, 2003 Grady Booch,James Rumbaugh,Ivar Jacobson The Unified Modeling Language User Guide, Addison Wesley, 2nd edition, 2005 Open Source UML tools http://java-source.net/open-source/uml-modeling Also: - Visual Paradigm Academic Program: http://www.visual-paradigm.com/partner/academic/ - Together Designer 2006 for Eclipse - Together Designer 2005, for Microsoftィ Visual Studio.NET 2003 - Together Designer 2005, for JBuilderィ 2005