Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

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

Benzer bir sunumlar


... konulu sunumlar: "Chapter 2, UML ile Modelleme, Bölüm 1"— Sunum transkripti:

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

2 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)

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

4 Soyutlama - Abstraction
Karmaşık sistemleri anlamak zordur fenomeni Kısa hafızamız aynı anda 7+-2 parçadan daha fazlasını aynı anda tutamaz -> beynin sınırları Telefon numaram: 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.

5 Soyutlama - Abstraction
Karmaşık sistemleri anlamak zordur fenomeni Kısa hafızamız aynı anda 7+-2 parçadan daha fazlasını aynı anda tutamaz -> beynin sınırları Telefon numaram: 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.

6 Soyutlama - Abstraction
Karmaşık sistemleri anlamak zordur fenomeni Kısa hafızamız aynı anda 7+-2 parçadan daha fazlasını aynı anda tutamaz -> beynin sınırları Telefon numaram: 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

7 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.

8 Modeller Model bir sistemin soyutlanmış halidir
Artık var olmayan sistemler Var olan sistemler Geleceğe ait sistemler Acknowledgements: Dinosaur: Sombrero galaxy: (direct link) Star trek enterprise 1701: Picture from (Creative Common License: If you reuse these pictures in your class lectures, please make sure to read the wiki commons license: 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.

9 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 ?

10 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 ?

11 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).

12 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?

13 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

14 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.

15 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 ? ?

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

17 İ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.

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

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

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

21 Bir Yüz! Hair Eye Nose Ear Mouth Chin

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

23 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.

24 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'

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

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

27 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

28 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ı.

29 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.

30 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

31 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

32 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)

33 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.

34 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: Awesome SONIC BOOM: 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ı

35 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

36 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

37 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: 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.

38 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();

39 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

40 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 MapDisplay TrafficControl FlightPlanDatabase TrafficController TrafficControl Aircraft Airport FlightPlan

41 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 Commercial tools: Rational (IBM),Together (Borland), Visual Architect (business processes, BCD) Open Source tools: ArgoUML, StarUML, Umbrello Commercial and Opensource: PoseidonUML (Gentleware)

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

43 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)

44 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

45 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

46 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

47 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

48 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

49 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

50 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

51 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 Also: - Visual Paradigm Academic Program: - Together Designer 2006 for Eclipse - Together Designer 2005, for Microsoftィ Visual Studio.NET 2003 - Together Designer 2005, for JBuilderィ 2005


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

Benzer bir sunumlar


Google Reklamları