Αρχές Τεχνολογίας Λογισμικού Εργαστήριο 1: Εισαγωγή
Περιεχόμενα μαθήματος Τυπικά στάδια ανάπτυξης λογισμικού (Waterfall) Ευέλικτες (Agile) διαδικασίες ανάπτυξης λογισμικού Εισαγωγή στην UML Το εργαλείο Visual Paradigm for UML
Τυπικά στάδια ανάπτυξης λογισμικού Ιδέα Εξαγωγή & Ανάλυση απαιτήσεων Σχεδιασμός λογισμικού Υλοποίηση λογισμικού Επικύρωση λογισμικού
Τυπικά στάδια ανάπτυξης λογισμικού 1. Ανάλυση απαιτήσεων : Οι υπηρεσίες, οι περιορισμοί και οι στόχοι του συστήματος καθορίζονται μέσω συζήτησης με τους χρήστες του. Στην συνέχεια καθορίζονται λεπτομερώς και χρησιμεύουν ως προδιαγραφές του συστήματος 2. Σχεδιασμός λογισμικού : Περιλαμβάνει τον προσδιορισμό και την περιγραφή των επί μέρους τμημάτων του συστήματος καθώς και των σχέσεων μεταξύ τους. 3. Υλοποίηση λογισμικού : Υλοποίηση του σχεδιασμού ως ένα σύνολο προγραμμάτων ή προγραμματιστικών υπομονάδων. 4. Επικύρωση λογισμικού : Τα επί μέρους κομμάτια λογισμικού ενοποιούνται και δοκιμάζονται ως ενιαίο σύστημα, για να διασφαλιστεί ότι οι απαιτήσεις λογισμικού έχουν εκπληρωθεί.
Ευέλικτες μέθοδοι ανάπτυξης λογισμικού( Agile Software Development Methods ) Εξαγωγή & Ανάλυση απαιτήσεων Σχεδιασμός λογισμικού Υλοποίηση λογισμικού Επικύρωση λογισμικού
Ευέλικτες μέθοδοι ανάπτυξης λογισμικού ( Agile Software Development Methods ) Ανάπτυξη του λογισμικού σε σύντομους επαναληπτικούς (iterative) και αυξητικούς (incremental) κύκλους. δυνατότητα της προσαρμογής και αντίδρασης στις αλλαγές που τίθενται από το διαρκώς μεταβαλλόμενο επιχειρησιακό περιβάλλον «χτίσιμο» του λογισμικού σταδιακά από την αρχή ενός έργου, αντί για πλήρη υλοποίηση πριν το τέλος του. Προτίμηση στην επικοινωνία πρόσωπο με πρόσωπο για τον περιορισμό των παραγομένων εγγράφων και σε στενή συνεργασία με τον πελάτη, οι μηχανικοί λογισμικού επικεντρώνονται στην ανάπτυξη λογισμικού, που θεωρείται το πρωταρχικό μέτρο προόδου. είναι προσανατολισμένες στους ανθρώπους και όχι στις διαδικασίες, όπως οι παραδοσιακές μέθοδοι, και βασίζονται πολύ στην ομαδική εργασία.
Unified Modeling Language (UML) Σε μεγάλα έργα λογισμικού, σημαντικό κομμάτι είναι η επικοινωνία μεταξύ των εμπλεκομένων. Πολλαπλοί ενδιαφερόμενοι, πολλοί προγραμματιστές, πολλοί πελάτες- χρήστες επιβάλλουν τη χρήση κοινής ορολογίας Τι είναι; Γραφική γλώσσα γενικού σκοπού, η οποία χρησιμοποιείται για τον προσδιορισμό, οπτικοποίηση, ανάπτυξη και τεκμηρίωση των τεχνουργημάτων (artifacts) ενός συστήματος λογισμικού. Στην πράξη, η UML είναι μία γλώσσα μοντελοποίησης (σύνολο από διαγράμματα). Δεν είναι γλώσσα προγραμματισμού
Unified Modeling Language (UML) Γιατί UML; Ένα διάγραμμα UML δεν μπορεί να αναπαραστήσει επακριβώς την μορφή κώδικα, αλλά μπορεί να δώσει στον προγραμματιστή μια γενική ιδέα στο πως θα είναι περίπου η δομή του, καθιστώντας την χρήσιμο εργαλείο στην ανάπτυξη λογισμικού.
Τύποι διαγραμμάτων UML Διάγραμμα περιπτώσεων χρήσης ( Use Case Diagram ) Διάγραμμα κλάσεων ( Class Diagram ) Διαγράμματα συμπεριφοράς ( Behavior Diagrams ) Διάγραμμα καταστάσεων ( Statechart Diagram ) Διάγραμμα δραστηριοτήτων ( Activity Diagram ) Διαγράμματα αλληλεπίδρασης ( Interaction Diagrams ) Διάγραμμα ακολουθίας ( Sequence Diagram ) Διάγραμμα συνεργασίας ( Collaboration Diagram ) Διαγράμματα υλοποίησης ( Implementation Diagrams ) Διάγραμμα συστατικών ( Component Diagram ) Διάγραμμα διάταξης ( Deployment Diagram )
Διάγραμμα περιπτώσεων χρήσης (Use Case Diagram) Τα use case diagrams χρησιμοποιούνται για την καταγραφή λειτουργικών απαιτήσεων ενός συστήματος Κάθε use case, παριστάνει μια λειτουργία του συστήματος, η οποία παράγει κάποιο αποτέλεσμα. Οι Actors στα use case diagrams, αναπαριστούν τους ρόλους των χρηστών που διαδρούν με τις λειτουργίες αυτές. Τα use case diagrams υλοποιούνται παίρνοντας σοβαρά υπόψιν έναν άλλο τύπο διαγραμμάτων, τα διαγράμματα απαιτήσεων ( Requirements Diagrams )
Διάγραμμα κλάσεων (Class Diagram) Περιγράφουν την δομή ενός συστήματος, απεικονίζοντας τις κλάσεις του μαζί με τα χαρακτηριστικά και τις συμπεριφορές τους Ένα UML class diagram μπορεί να χρησιμοποιηθεί ως προσχέδιο για την υλοποίηση ενός συστήματος λογισμικού
Διάγραμμα ακολουθίας (Sequence Diagram) Οπτικοποίηση των διαδράσεων μεταξύ χρηστών, συστημάτων και υπο-συστημάτων στον άξονα του χρόνου, μέσω ανταλλαγής μηνυμάτων μεταξύ τους. Το sequence diagram «ολοκληρώνει» ένα class diagram, με το να αναπαριστά την λογική η οποία θα χρησιμοποιηθεί για τον προγραμματισμό των συμπεριφορών μιας κλάσης.
Εφαρμογή της φιλοσοφίας Agile στην UML Λόγω του ότι οι ευέλικτες προσεγγίσεις στην ανάπτυξη λογισμικού δεν βασίζονται σε έγγραφα προσχέδια, «περιφρονούν» την παραδοσιακή χρήση της UML. Όμως, μπορεί να χρησιμοποιηθεί ως σχεδιάγραμμα-κορμός ενός συστήματος λογισμικού, εντάσσοντας την στην διαδικασία του προγραμματισμού
Visual Paradigm for UML Computer-aided software engineering (CASE) tool. Εργαλείο που μας επιτρέπει την μοντελοποίηση αντικειμενοστραφή λογισμικού με UML. Δυνατότητα παραγωγής πηγαίου κώδικα Java, βασισμένο σε UML class diagram. Για τις ανάγκες του μαθήματος, θα χρησιμοποιηθεί η έκδοση Visual Paradigm for UML 10.0 Enterprise Edition Tutorials:
Visual Paradigm for UML
Δημιουργία νέου project File New Project
Visual Paradigm for UML Δημιουργία νέου διαγράμματος Πχ. για use case diagram: Δεξί κλίκ στην αντίστοιχη επιλογή στον Diagram Navigator New Use Case Diagram Αντιστοίχως και για class και sequence Diagrams
Visual Paradigm for UML Ανοίγοντας κάθε διάγραμμα προσφέρονται τα αντίστοιχα εργαλεία για τον σχεδιασμό του.