UML (Unified Modeling Language) Ενοποιημένη Γλώσσα Μοντελοποίησης
Τι είναι μοντέλο; Η απλοποίηση της πραγματικότητας Τα Μοντέλα: Βοηθούν στην απεικόνιση ενός συστήματος στην ιδανική του μορφή Συμβάλλουν στην σχεδίαση της επιθυμητής δομής και συμπεριφοράς Είναι οδηγοί ανάπτυξης ενός συστήματος Καταγράφουν τις σχεδιαστικές αποφάσεις
Γιατί μοντελοποιούμε; Να συλλάβουμε, αναπαραστήσουμε και επικοινωνήσουμε, την επιθυμητή συμπεριφορά Να διερευνήσουμε τις έννοιες του συστήματος πριν το υλοποιήσουμε Να δημιουργήσουμε ένα συστηματικό σχέδιο υλοποίησης – παράδοσης Τα πιο επιτυχημένα έργα λογισμικού βασίζονται αποδεδειγμένα στην μοντελοποίηση Για λιγότερη κωδικοποίηση
Τι είναι η UML Γλώσσα μοντελοποίησης για σχεδιασμό λογισμικού Διαθέτει λεξιλόγιο και κανόνες Δημιουργεί εννοιολογικές και φυσικές παραστάσεις ενός υπό ανάπτυξη συστήματος Παγκόσμια διαδεδομένη γλώσσα μοντελοποίησης λογισμικού Η γλώσσα επιτρέπει: Την απεικόνιση Δημιουργία Τεκμηρίωση Ορισμό προδιαγραφών
Τι δεν είναι η UML Γλώσσα ορισμού αλγορίθμων Διεργασία ή Μέθοδος ανάπτυξης Γλώσσα προγραμματισμού Εργαλείο CASE ΕΙΝΑΙ τυπική γλώσσα (formal)
Τι προάγει η UML; Κατανόηση Αφαίρεση Επικοινωνία γλώσσα μοντελοποίησης για προδιαγραφές του λογισμικού Η διεργασία μοντελοποίησης διευκολύνει την κατανόηση Αφαίρεση Επιτρέπει την παράσταση ενός συστήματος από διαφορετικά επίπεδα αφαίρεσης (Πακέτα, Συστατικά, Διάταξη συστήματος) Επικοινωνία Ο κώδικας συνήθως είναι πολύ λιτός για την ικανοποιητική περιγραφή ενός προβλήματος
Ιστορικά... Αναπτύχθηκε από τους Booch, Jacobson, Rumbaugh, από την «ενοποίηση» των μεθόδων τους: OOSE (Jackobson) Περιπτώσεις χρήσης ΟΜΤ (Rumbaugh) Ανάλυση Booch Σημασιολογία, Αρχιτεκτονική Η εταιρεία Rational Software υπέβαλε αρχικά για έγκριση την UML 1.0 στην OMG (Object Management Group) Η OMG υιοθέτησε την UML • UML 2.0 τυποποίηση σήμερα
Πως χρησιμοποιείται; • Από διάφορες μεθοδολογίες: RUP (Rational Unified Process) Agile (eXtreme Programming) ICONIX Άτυπα • Η UML δεν αποτελεί κάποια διεργασία, αλλά ενσωματώνεται σε διεργασίες
UML Συμβολισμοί και διαγράμματα
UML έννοιες και συμβολισμοί Class Name Package Component Name Attributes (private) Operations (public) Respon- sibilities Analysis Entity Class Analysis Boundary Class Analysis Control Class Use case Actor Action Relationships Association Dependency or Flow Realization Generalization Composition Aggregation Textual content Note
UML Class Diagram Theatre Customer Reservation 1..* Performance SeatingCapacity: Integer Offering( Id: String): Bool Availability(): Dates[] 1 Customer Name: String Phone: String Add(name, phone) class Reservation 1 aggregation 1 holds * association aplace: Theatre 1..* generalization Performance Id: String Start: Date End: Date Times: Hours[] Seasonal One_Time Constraint {xor} Make( D: Date, T: Hours ) Period: Date[] Make( D: Date[], T: Hours[] ) 0..1 BuyTickets( N: Integer) Available(): Integer GetTimes(): Hours[] GetDates(): Date[] 0..1 Ticket 1 Show: String ShowDate: Date ShowTime: Hours Seat: Location 6..12 Instance attributes 1 multiplicities Class methods SetShow( Pid: String ) SetDate( D: Date) … 0 .. SeatCapacity
Use Case Diagram Box Office actor system Buy tickets Clerk * * system Buy tickets Clerk Buy subscription «include» * * relationships * * «include» Make charges Credit card service Kiosk * * Use case Survey sales Supervisor
Sequence Diagram Kiosk Box office Credit card service Request(count, performance) Show availability(seat-list) Select(seats) Demand payment(cost) Insert card(card number) Charge (card number, cost) authorized Print tickets(performance, seats) Eject card
Collaboration Diagram: Design Active object Kiosk 1:request(count, performance) 4:offer(seat-list) 5:buy(seats) 8:confirm(seats,cost) link messages 3: seat-list:=lock(count) 6: claim(seats) 7: unlock(seat-list) Passive object ticketSeller db:PerformanceDB «local» db Transient link 2: db:=findDB(performance) multiobject Known dbs performanceGuide :PerformanceDB
StateChart Initial state Assign to subscription Timed out state lock Locked buy Available Sold unlock transition exchange Trigger event
Activity Diagram Pick Show activity Schedule Show fork Publicize Show Buy scripts and music Hire Artists Build Sets Design Lighting Make Costumes Sell tickets join Completion transition rehearse Dress rehearse Perform
Component Diagram actor «database» supplier purchase status interface * * actor «database» TicketDB supplier CreditCardCharges CreditCardAgency purchase status interface groupSales TicketSeller client ManageInterface subscriptionSales individualSales * * Supervisor ClerkInterface KioskInterface * * * * Clerk Customer
Deployment Diagram actor component dependency * * CreditCardAgency actor Manager component dependency communication association CreditCardCharges ManagerInterface TicketSeller «database» TicketDB TicketServer node Customer Clerk CustomerInterface ClerkInterface Kiosk SalesTerminal 1 *