ΗΜΥ 317 Τεχνολογία Υπολογισμού

Σχετικά έγγραφα
Εισαγωγή Συμβόλαιο Μαθήματος

Ανάλυση Συστηµάτων και Τεχνολογία Λογισµικού

Test Data Management in Practice

ΕΠΛ664 ΑΝΑΛΥΣΗ ΚΑΙ ΕΠΑΛΗΘΕΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΕΙ ΗΠΕΙΡΟΥ- ΣΤΕΦ ΤΜΗΜΑ ΜΗΧ. ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε.

Διαχείριση Έργων Πληροφορικής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ «ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ» ΚΑΤΕΥΘΥΝΣΗ «ΕΥΦΥΕΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΕΠΙΚΟΙΝΩΝΙΑΣ ΑΝΘΡΩΠΟΥ - ΥΠΟΛΟΓΙΣΤΗ»

διοίκηση υπηρεσιών και διαδικασιών : μοντέλα CMM

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

Προσωπική Aνάπτυξη. Ενότητα 4: Συνεργασία. Juan Carlos Martínez Director of Projects Development Department

Εισαγωγή στην τεχνολογία λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 1

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής

ΟΡΓΑΝΙΣΜΟΣ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΔΙΟΚΤΗΣΙΑΣ

ΗΜΥ 317 Τεχνολογία Υπολογισμού

Information and Communication Technologies in Education

Πώς μπορεί κανείς να έχει έναν διερμηνέα κατά την επίσκεψή του στον Οικογενειακό του Γιατρό στο Ίσλινγκτον Getting an interpreter when you visit your

ΔΙΕΡΕΥΝΗΣΗ ΤΩΝ ΑΙΤΙΩΝ ΚΑΘΥΣΤΕΡΗΣΗΣ ΣΤΑ ΚΑΤΑΣΚΕΥΑΣΤΙΚΑ ΕΡΓΑ ΣΕ ΔΙΕΘΝΕΣ ΕΠΙΠΕΔΟ ΚΑΙ ΣΤΗΝ ΚΥΠΡΟ

ΚΒΑΝΤΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

«ΑΓΡΟΤΟΥΡΙΣΜΟΣ ΚΑΙ ΤΟΠΙΚΗ ΑΝΑΠΤΥΞΗ: Ο ΡΟΛΟΣ ΤΩΝ ΝΕΩΝ ΤΕΧΝΟΛΟΓΙΩΝ ΣΤΗΝ ΠΡΟΩΘΗΣΗ ΤΩΝ ΓΥΝΑΙΚΕΙΩΝ ΣΥΝΕΤΑΙΡΙΣΜΩΝ»

ΟΙΚΟΝΟΜΟΤΕΧΝΙΚΗ ΑΝΑΛΥΣΗ ΕΝΟΣ ΕΝΕΡΓΕΙΑΚΑ ΑΥΤΟΝΟΜΟΥ ΝΗΣΙΟΥ ΜΕ Α.Π.Ε

Architecture οf Integrated Ιnformation Systems (ARIS)

Ανάλυση & Μοντελοποίηση Επιχειρηματικών Συστημάτων & ιαδικασιών

The Simply Typed Lambda Calculus

ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΕΝΙΣΧΥΣΗ ΤΩΝ ΚΟΜΒΩΝ ΟΠΛΙΣΜΕΝΟΥ ΣΚΥΡΟΔΕΜΑΤΟΣ ΜΕ ΒΑΣΗ ΤΟΥΣ ΕΥΡΩΚΩΔΙΚΕΣ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΕΤΟΙΜΑΣΙΑ ΔΕΛΤΙΟΥ ΠΟΣΟΤΗΤΩΝ ΜΕ ΤΗ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Bring Your Own Device (BYOD) Legal Challenges of the new Business Trend MINA ZOULOVITS LAWYER, PARNTER FILOTHEIDIS & PARTNERS LAW FIRM

Πρόγραμμα εξ Αποστάσεως Εκπαίδευσης E-Learning. Πρόγραμμα εξ Αποστάσεως Εκπαίδευσης E-Learning. E-Learning ASSURANCE. E-learning.

ASSURANCE. Οδηγός Σπουδών E-Learning

Γιπλυμαηική Δπγαζία. «Ανθπυποκενηπικόρ ζσεδιαζμόρ γέθςπαρ πλοίος» Φοςζιάνηρ Αθανάζιορ. Δπιβλέπυν Καθηγηηήρ: Νηθφιανο Π. Βεληίθνο

ΕΘΝΙΚΗ ΣΧΟΛΗ ΗΜΟΣΙΑΣ ΙΟΙΚΗΣΗΣ

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2670

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

Πέτρος Γ. Οικονομίδης Πρόεδρος και Εκτελεστικός Διευθυντής

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα

þÿ Ç»¹º ³µÃ ± : Ãż²» Ä Â

ΠΑΝΔΠΙΣΗΜΙΟ ΜΑΚΔΓΟΝΙΑ ΠΡΟΓΡΑΜΜΑ ΜΔΣΑΠΣΤΥΙΑΚΧΝ ΠΟΤΓΧΝ ΣΜΗΜΑΣΟ ΔΦΑΡΜΟΜΔΝΗ ΠΛΗΡΟΦΟΡΙΚΗ

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Τεχνολογίες και Εφαρμογές Διαδικτύου. Σχεδίαση Συστήματος

«Αξιολόγηση ατόμων με αφασία για Επαυξητική και Εναλλακτική Επικοινωνία, σύμφωνα με το μοντέλο συμμετοχής»

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΠΑΡΑΓΩΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ


Τεχνολογία Λογισμικού

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΝΟΣΗΛΕΥΤΙΚΗΣ

Προσωπική Aνάπτυξη. Ενότητα 2: Διαπραγμάτευση. Juan Carlos Martínez Director of Projects Development Department

Εκπαιδευτική Ρομποτική

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΑΛΛΗΛΟΓΡΑΦΙΑ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑ ΣΤΗΝ ΑΓΓΛΙΚΗ ΓΛΩΣΣΑ

ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Μεταπτυχιακή Εργασία Διαχείριση Επιχειρησιακών Διαδικασιών με τη χρήση Τεχνολογίας BPMN

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα

Προσωπική Aνάπτυξη. Ενότητα 1: Ηγεσία και ενδυνάμωση. Juan Carlos Martínez Director of Projects Development Department

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 21/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.

Εισαγωγή στην πληροφορική

ΜΟΝΤΕΛΑ ΛΗΨΗΣ ΑΠΟΦΑΣΕΩΝ

Ψηφιακή Οικονομία. Διάλεξη 11η: Markets and Strategic Interaction in Networks Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΙΟΙΚΗΣΗΣ II ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΜΑΘΗΜΑ: ΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΕΠΛ 476: ΚΙΝΗΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΗ ΣΧΟΛΗ ΤΟΠΙΚΗΣ ΑΥΤΟ ΙΟΙΚΗΣΗΣ Β ΕΚΠΑΙ ΕΥΤΙΚΗ ΣΕΙΡΑ ΤΜΗΜΑ: ΟΡΓΑΝΩΣΗΣ ΚΑΙ ΙΟΙΚΗΣΗΣ ΤΕΛΙΚΗ ΕΡΓΑΣΙΑ. Θέµα:

ΠΠΜ 511: Προγραµµατισµός και Διεύθυνση Κατασκευών

Math 6 SL Probability Distributions Practice Test Mark Scheme

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ

Διαχείριση Πληροφοριακών Συστημάτων

ΓΗΠΛΧΜΑΣΗΚΖ ΔΡΓΑΗΑ ΑΡΥΗΣΔΚΣΟΝΗΚΖ ΣΧΝ ΓΔΦΤΡΧΝ ΑΠΟ ΑΠΟΦΖ ΜΟΡΦΟΛΟΓΗΑ ΚΑΗ ΑΗΘΖΣΗΚΖ

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Τα γνωστικά επίπεδα των επαγγελματιών υγείας Στην ανοσοποίηση κατά του ιού της γρίπης Σε δομές του νομού Λάρισας

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2690

Context-aware και mhealth

Ζητήματα Τυποποίησης στην Ορολογία - ο ρόλος και οι δράσεις της Επιτροπής Ορολογίας ΤΕ21 του ΕΛΟΤ

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

Τεχνολογία Ψυχαγωγικού Λογισμικού και Εικονικοί Κόσμοι Ενότητα 8η - Εικονικοί Κόσμοι και Πολιτιστικό Περιεχόμενο

και τα οφέλη για τον τομέα ανάπτυξης γης και οικοδομών

ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ ΙΓ' ΕΚΠΑΙΔΕΥΤΙΚΗ ΣΕΙΡΑ

UML: Unified modelling language

ΣΤΥΛΙΑΝΟΥ ΣΟΦΙΑ

Έξυπνα ενεργειακά δίκτυα

Tεχνολογία Λογισµικού II

ΒΕΛΤΙΩΣΗ ΔΙΕΡΓΑΣΙΩΝ ΕΡΓΑΣΤΗΡΙΟΥ ΕΛΕΓΧΟΥ ΠΟΙΟΤΗΤΑΣ ΚΑΙ ΕΦΑΡΜΟΓΗ ΕΡΓΑΛΕΙΩΝ ΔΙΑΣΦΑΛΙΣΗΣ ΠΟΙΟΤΗΤΑΣ ΣΕ ΜΕΤΑΛΛΟΒΙΟΜΗΧΑΝΙΑ

Κανονισμός (ΕΚ) αριθ. 2023/2006

Scrum framework: Ρόλοι

Τεχνολογία Λογισμικού

Κτίρια nζεβ και προσομοίωση με την χρήση του energy+

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία

ΔΘΝΙΚΗ ΥΟΛΗ ΓΗΜΟΙΑ ΓΙΟΙΚΗΗ ΚΑ ΔΚΠΑΙΓΔΤΣΙΚΗ ΔΙΡΑ ΣΔΛΙΚΗ ΔΡΓΑΙΑ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Assalamu `alaikum wr. wb.

Εκτεταμένη περίληψη Περίληψη

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

ΘΕΜΑΤΙΚΗ ΕΥΡΕΤΗΡΙΑΣΗ ΚΑΙ ΚΑΘΙΕΡΩΣΗ ΟΡΟΛΟΓΙΑΣ ΣΤΙΣ ΤΕΧΝΙΚΕΣ ΒΙΒΛΙΟΘΗΚΕΣ: Η ΕΜΠΕΙΡΙΑ ΣΤΟ ΤΕΕ

ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

ΕΠΛ 476: ΚΙΝΗΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ

ΣΧΕΔΙΑΣΜΟΣ ΕΠΙΓΕΙΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΛΥΣΟΚΙΝΗΣΗΣ ΓΙΑ ΜΕΤΑΦΟΡΑ ΤΡΟΛΕΪ

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

Μεταπτυχιακή διατριβή. Ανδρέας Παπαευσταθίου

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ. Πτυχιακή Εργασία

Διαχείριση Έργων Πληροφορικής

Μειέηε, θαηαζθεπή θαη πξνζνκνίσζε ηεο ιεηηνπξγίαο κηθξήο αλεκνγελλήηξηαο αμνληθήο ξνήο ΓΗΠΛΩΜΑΣΗΚΖ ΔΡΓΑΗΑ

Transcript:

ΗΜΥ 317 Τεχνολογία Υπολογισμού Εαρινό Εξάμηνο 2008 ΙΑΛΕΞΗ 01: ΕΙΣΑΓΩΓΗ ΧΑΡΗΣ ΘΕΟΧΑΡΙ ΗΣ Λέκτορας ΗΜΜΥ (ttheocharides@ucy.ac.cy) [Προσαρμογή από Ian Sommerville, Software Engineering, 8 th Edition]

ΙΟΙΚΗΤΙΚΑ ιδάσκων: ρ. Χάρης Θεοχαρίδης Γραφείο: Green Park, #112 Τηλέφωνο: 22892259 Εmail: ttheocharides@ucy.ac.cy Ώρες Γραφείου: ευτέρα 13:00-14:30 και Παρασκευή 16:00μμ-17:30μμ ή με ραντεβού. Ιστοσελίδα Μαθήματος: http://www.eng.ucy.ac.cy/theocharides/courses/ece317/ ΗΜΥ317 01 Εισαγωγή.2 Θεοχαρίδης, ΗΜΥ, 2008

ΙΟΙΚΗΤΙΚΑ ιαλέξεις: ευτέρα και Πέμπτη, 10:30 12:00 Πανεπιστημιούπολη, ΧΩ 01, Αίθουσα 003 Φροντιστήριο: Τετάρτη, 14:00 15:00 μ.μ., ΧΩ 01, Αιθ. 003 Βοηθός Μαθήματος: Ανδρέας Σάββα Γραφείο: 307 Πολυκατοικία ΑΜΑRAL Ώρες Γραφείου: ΤΒΑ Εmail: andsavv_1981@yahoo.com ΗΜΥ317 01 Εισαγωγή.3 Θεοχαρίδης, ΗΜΥ, 2008

Υλικό (Προαπαιτήσεις) και Βιβλιογραφία Προαπαιτούμενα: ΕΠΛ 034 και ΕΠΛ 035 ΚΑΙ αποδεδειγμένη γνώση σε όλα από τα ακόλουθα: Προγραμματισμός Υπολογιστών Αριθμητικά Συστήματα υαδική Άλγεβρα και Βασική Λογική Υπολογιστών ομές εδομένων και Αλγόριθμοι Βασική Γνώση Αντικειμενοστρεφή Προγραμματισμού Συνιστάται οι φοιτητές να έχουν παρακολουθήσει επιτυχώς τα ΗΜΥ 324 και ΗΜΥ 325. Βασικό Σύγγραμμα Μαθήματος (υποχρεωτικό) Software Engineering, Ian Sommerville (8th Edition), International Computer Science Series, ISBN: 0321313798 Σημειώσεις και φυλλάδια από το Φροντιστήριο και τις διαλέξεις. Επιπλέον Προτεινόμενη Μελέτη Object Oriented Programming in C++, Nicolai Josuttis, Wiley, 2002. ISBN: 0470843993. D. A. Patterson and J. L. Hennessy, Computer Organization and Design: The Hardware/Software Interface, Morgan Kaufman, 3rd Ed., 2005. ΗΜΥ317 01 Εισαγωγή.4 Θεοχαρίδης, ΗΜΥ, 2008

ΒΑΘΜΟΛΟΓΙΑ Μελέτη Εξαμήνου 40% Ενδιάμεση Εξέταση 25% Τελική Εξέταση (εφ όλης της ύλης) 35% Απαραίτητες προϋποθέσεις επιτυχίας στο μάθημα είναι: η εξασφάλιση συνολικού βαθμού πέραν του 50% ηεξασφάλισηπέραντου50% του μέσου βαθμού στις δυο εξετάσεις (τελική και ενδιάμεση). ΗΜΥ317 01 Εισαγωγή.5 Θεοχαρίδης, ΗΜΥ, 2008

ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ Περιεχόμενα Αρχές Ανάπτυξης Λογισμικού ιαχείριση Ομαδικών Μελετών και ημιουργίας Λογισμικού Αντικειμενοστρεφής Προγραμματισμός Προδιαγραφές Λογισμικού Πιστοποίηση και Έλεγχος Λογισμικού Υλοποίηση και Κωδικοποίηση CASE Tools - Computer-Aided Software Engineering Άλλες Μορφές Προγραμματισμού - Λογικός Προγραμματισμός ΗΜΥ317 01 Εισαγωγή.6 Θεοχαρίδης, ΗΜΥ, 2008

ΣΤΟΧΟΙ ΜΑΘΗΜΑΤΟΣ Στόχοι Το μάθημα αυτό εισάγει τους φοιτητές στις βασικές ιδέες και σε μοντέρνα εργαλεία και τεχνικές της τεχνολογίας λογισμικού. Θα δοθεί έμφαση στην ανάπτυξη αξιόπιστων και συντηρήσιμων λογισμικών ακολουθώντας την διαδικασία δημιουργίας απαιτήσεων, προδιαγραφών, σχεδιασμού (αντικειμενοστρεφή), υλοποίησης, ενσωμάτωσης και ελέγχου. Θα συζητήσουμε θέματα που αφορούν στην διαχείριση ενός λογισμικού έργου, στον κύκλο ζωής της τεκμηρίωσης του, στην συντήρηση του, και τέλος θέματα που αφορούν σε ανθρώπινους παράγοντες και σε θέματα ηθικής. Θα μελετήσουμε τις αρχές προγραμματισμού (programming principles) και θα τις χρησιμοποιήσουμε για να παρουσιάσουμε τις απαιτήσεις του χρήστη σε ένα λογισμικό έργο, το οποίο θα είναι μια ομαδική εργασία η οποία θα ολοκληρωθεί σταδιακά καθόλη τη διάρκεια του μαθήματος. Θα απεικονίσουμε το σχεδιασμό του έργου και για να μπορέσουμε να τον βελτιώσουμε πιο εύκολα, και θα δούμε το έργο με πολλαπλούς αλληλένδετους τρόπους. Θα δώσουμε έμφαση στο σχεδιασμό ο οποίος βασίζεται σε προοδευτική και επαναλαμβανόμενη ανάπτυξη. Στο μάθημα αυτό οι φοιτητές θα εργαστούν ομαδικά για να αναπτύξουν ένα λογισμικό, ακολουθώντας αναλυτικά τα workflows στο κύκλο ζωής του αντικειμενοστρεφούς παραδείγματος. ΗΜΥ317 01 Εισαγωγή.7 Θεοχαρίδης, ΗΜΥ, 2008

ΙΑΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ Η τάξη έχει μεγάλες απαιτήσεις (όπως όλες οι τάξεις των ΜΥ) Ομαδική Μελέτη Εξαμήνου με Εβδομαδιαίες Παραδοτέες Εργασίες Προγραμματισμός σε ΟΟ Γλώσσα (Object-Oriented Language) Τι θα μάθουμε: ιαχείριση ημιουργίας Λογισμικού Αναγκαίες ιεργασίες για ομαδική ανάπτυξη ημιουργία Προδιαγραφών και Αναμενόμενων Παραδοτέων ημιουργία Αρχείου ιαχείρισης και Επαναχρήσης Υλικού ιαχείριση Κώδικα Προδιαγραφές και Αναφορές Παραδοτέων Τι ΕΝ θα μάθουμε: Προγραμματισμό!!! Αριθμητική, Λογική ΗΜΥ317 01 Εισαγωγή.8 Θεοχαρίδης, ΗΜΥ, 2008

Στόχοι εν συντόμω Να εισαχθεί η Τεχνολογία Υπολογιστών (Λογισμικού) και να κατανοηθεί η σημασία της Να απαντηθούν ερωτήσεις που αφορούν την μηχανική λογισμικού Να εισαχθούν ηθικές και επαγγελματικές διαδικασίες και να επεξηγηθεί γιατί αποτελούν ζεστό θέμα στους μηχανικούς υπολογιστών ΗΜΥ317 01 Εισαγωγή.9 Θεοχαρίδης, ΗΜΥ, 2008

Software engineering ΟΛΕΣ οι ανεπτυγμένες οικονομίες στηρίζονται στην τεχνολογία (Λογισμικό!) Τα υλικά σχεδιάζονται για να τρέχουν λογισμικό! Όλο και περισσότερα συστήματα ελέγχονται από λογισμικό Η τεχνολογία λογισμικού ασχολείται με την θεωρία, μεθοδολογία και εργαλεία ανάπτυξης επαγγελματικού λογισμικού Η παραγωγή σε λογισμικό είναι ένα σημαντικό μερίδιο του ακαθάριστου εθνικού προϊόντος ενός κράτους! ΗΜΥ317 01 Εισαγωγή.10 Θεοχαρίδης, ΗΜΥ, 2008

Κόστος Λογισμικού Το κόστος ενός λογισμικού συνήθως είναι ο μεγαλύτερος παράγοντας στο κόστος ενός συστήματος (περισσότερο πολλές φορές από υλικό!) Η συντήρηση του λογισμικού πολλές φορές στοιχίζει περισσότερο από την ανάπτυξη του, ειδικά για συστήματα με μεγάλη διάρκεια ζωής! Η μηχανική λογισμικού ασχολείται με την αποτελεσματική ανάπτυξη λογισμικού με γνώμονα αυτό το κόστος ΗΜΥ317 01 Εισαγωγή.11 Θεοχαρίδης, ΗΜΥ, 2008

FAQs για το Software Engineering Τι είναι λογισμικό; Τι είναι μηχανική λογισμικού; Ποια η διαφορά μεταξύ μηχανικής λογισμικού και πληροφορικής; Ποια η διαφορά μεταξύ μηχανικής λογισμικού και μηχανικής συστημάτων; Τι είναι η εργασία με λογισμικό (software process); Τι είναι το μοντέλο εργασίας λογισμικού (software process model); ΗΜΥ317 01 Εισαγωγή.12 Θεοχαρίδης, ΗΜΥ, 2008

FAQs για το Software Engineering Ποιο είναι το κόστος της μηχανικής λογισμικού; Ποιες είναι οι μέθοδοι μηχανικής λογισμικού; Τι είναι οι μέθοδοι μηχανικής λογισμικού; Τι είναι τα CASE (Computer-Aided Software Engineering); Ποιες είναι οι παράμετροι καλού λογισμικού; Ποιες είναι οι σημαντικές προκλήσεις που αντιμετωπίζει ημηχανικήλογισμικού; ΗΜΥ317 01 Εισαγωγή.13 Θεοχαρίδης, ΗΜΥ, 2008

What is software? Προγράμματα υπολογιστών και τα παρελκόμενα ντοκουμέντα, όπως τα τεχνικά εγχειρίδια, οι απαιτήσεις και οι προδιαγραφές, τα μοντέλα σχεδίασης, κλπ. Το λογισμικό μπορεί να κατευθύνεται σε γενική αγορά, αλλά και σε ένα συγκεκριμένο πρόσωπο. Το λογισμικό μπορεί Να είναι γενικής χρήσεως για χρήση σε ένα φάσμα υπολογιστών/πελατών, π.χ. Word, Excel. Να είναι συγκεκριμένο (custom made, bespoke (i.e. arranged)) να έχει αναπτυχθεί για ένα συγκεκριμένο πελάτη, με βάση τις προδιαγραφές που θέτει πάντοτε ο πελάτης. Καινούριο λογισμικό μπορεί να δημιουργηθεί μέσα από νέα προγράμματα, αλλά και μέσα από την τροποποίηση υφιστάμενων προγραμμάτων (developing new programs, configuring generic software systems or reusing existing software). ΗΜΥ317 01 Εισαγωγή.14 Θεοχαρίδης, ΗΜΥ, 2008

Τι είναι το Software Engineering? Κλάδος της μηχανικής που ασχολείται με ΟΛΕΣ τις φάσεις ανάπτυξης και παραγωγής λογισμικού (Software engineering is an engineering discipline that is concerned with all aspects of software production). Οι μηχανικοί που ασχολούνται με το θέμα, πρέπει να αναπτύξουν συστηματική οργανωμένη αντίληψη για την δουλειά τους, και να χρησιμοποιούν εργαλεία και τεχνικές που αφορούν την λύση του εκάστοτε συγκεκριμένου προβλήματος, τιςδιαθέσιμεςπηγές, αλλά και τους περιορισμούς που αντιμετωπίζονται (Software engineers should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available). ΗΜΥ317 01 Εισαγωγή.15 Θεοχαρίδης, ΗΜΥ, 2008

ιαφορά από την Επιστήμη της Πληροφορικής (Computer Science) Η επιστήμη της πληροφορικής ασχολείται με τις βασικές πτυχές και την θεωρία. Η μηχανική λογισμικού ασχολείται με τις εφαρμογές ανάπτυξης, συντήρησης και παράδοσης χρήσιμου λογισμικού. Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software. Οι θεωρίες της πληροφορικής δεν είναι πλήρες για να καλύπτουν τις βασικές πτυχές της μηχανικής λογισμικού (π.χ. όχι σαν την φυσική και την ηλεκτρική μηχανική) Computer science theories are still insufficient to act as a complete underpinning for software engineering (unlike e.g. physics and electrical engineering). ΗΜΥ317 01 Εισαγωγή.16 Θεοχαρίδης, ΗΜΥ, 2008

What is the difference between software engineering and system engineering? System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this process concerned with developing the software infrastructure, control, applications and databases in the system. System engineers are involved in system specification, architectural design, integration and deployment. ΗΜΥ317 01 Εισαγωγή.17 Θεοχαρίδης, ΗΜΥ, 2008

Τι είναι το software process (εργασία λογισμικού)? Μια δέσμη δραστηριοτήτων που στοχεύουν στην ανάπτυξη και ανέλιξη λογισμικού Generic activities in all software processes are: Specification - what the system should do and its development constraints Development - production of the software system Validation - checking that the software is what the customer wants Evolution - changing the software in response to changing demands. ΗΜΥ317 01 Εισαγωγή.18 Θεοχαρίδης, ΗΜΥ, 2008

Τι είναι ένα software process model? A simplified representation of a software process, presented from a specific perspective. Examples of process perspectives are Workflow perspective - sequence of activities; Data-flow perspective - information flow; Role/action perspective - who does what. Generic process models Waterfall; Iterative development; Component-based software engineering. ΗΜΥ317 01 Εισαγωγή.19 Θεοχαρίδης, ΗΜΥ, 2008

Το κόστος της μηχανικής λογισμικού Roughly 60% of costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs. Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliability. Distribution of costs depends on the development model that is used. ΗΜΥ317 01 Εισαγωγή.20 Θεοχαρίδης, ΗΜΥ, 2008

Activity cost distribution ΗΜΥ317 01 Εισαγωγή.21 Θεοχαρίδης, ΗΜΥ, 2008

Product development costs ΗΜΥ317 01 Εισαγωγή.22 Θεοχαρίδης, ΗΜΥ, 2008

Ποιες είναι οι μέθοδοι Μηχανικής Λογισμικού; ομημένες ενέργειες για ανάπτυξη λογισμικού, που περιλαμβάνουν μοντέλα συστήματος, αναφορές και σημειώσεις, κανονισμοί, δομημένη σχεδίαση και συμβουλές/καθοδήγηση. Περιγραφές Μοντέλων Descriptions of graphical models which should be produced; Κανόνες και Περιορισμοί Constraints applied to system models; Εισηγήσεις Advice on good design practice; Καθοδήγηση Εργασιών What activities to follow. ΗΜΥ317 01 Εισαγωγή.23 Θεοχαρίδης, ΗΜΥ, 2008

What is CASE (Computer-Aided Software Engineering) Λογισμικά συστήματα που έχουν σκοπό την αυτοματοποίηση της διαδικασίας ανάπτυξης Λογισμικού Συχνά χρησιμοποιούνται για υποστήριξη διάφορων μεθόδων. Upper-CASE Εργαλεία που υποστηρίζουν την πρώιμη διαδικασία των απαιτήσεων και της σχεδίασης Tools to support the early process activities of requirements and design; Lower-CASE Εργαλεία που υποστηρίζουν μετέπειτα δραστηριότητες όπως ο προγραμματισμός (κωδικοποίηση), αφαίρεση λαθών και έλεγχος λειτουργίας Tools to support later activities such as programming, debugging and testing. ΗΜΥ317 01 Εισαγωγή.24 Θεοχαρίδης, ΗΜΥ, 2008

Ποιες είναι οι προδιαγραφές ενός καλού Λογισμικού; Το Λογισμικό πρέπει να παραδίδει την απαιτούμενη λειτουργικότητα και η απόδοση προς τον χρήστη πρέπει να είναι εφικτή, αξιόπιστη και αποδεκτή. Αποτελεσματικός ιαχειρισμός / Maintainability Software must evolve to meet changing needs; Αξιοπιστία / Dependability Software must be trustworthy; Αποτελεσματικότητα / Efficiency Software should not make wasteful use of system resources; Αποδοχή / Acceptability Software must accepted by the users for which it was designed. This means it must be understandable, usable and compatible with other systems. ΗΜΥ317 01 Εισαγωγή.25 Θεοχαρίδης, ΗΜΥ, 2008

Ποια είναι τα σημαντικότερα Μηχανική Λογισμικού; Πολυμορφία, παράδοση και εμπιστοσύνη Heterogeneity, delivery and trust. Πολυμορφία - Heterogeneity εμπόδια που αντιμετωπίζει η Ολοκλήρωση ετερογενών πλατφορμών ανάπτυξης και εκτέλεσης λογισμικού, καθώς και ποικιλία τεχνικών υλοποίησης! Developing techniques for building software that can cope with heterogeneous platforms and execution environments; Παράδοση - Delivery Ανάπτυξη τεχνικών ταχείας παράδοσης λογισμικού στον πελάτη Developing techniques that lead to faster delivery of software; Εμπιστοσύνη - Trust Ανάπτυξη τεχνικών που ανακτούν την εμπιστοσύνη του χρήστη προς το λογισμικό. Developing techniques that demonstrate that software can be trusted by its users. ΗΜΥ317 01 Εισαγωγή.26 Θεοχαρίδης, ΗΜΥ, 2008

Επαγγελματική και Ηθική Ευθύνη Η Μηχανική Λογισμικού περιλαμβάνει περισσότερες ευθύνες από την απλή εφαρμογή των τεχνικών ικανοτήτων Οι Μηχανικοί Λογισμικού πρέπει να συμπεριφέρνονται με ειλικρινείς και ηθικούς τρόπους ώστε να γίνουν σεβαστοί επαγγελματίες Η ηθική συμπεριφορά όμως δεν είναι απλά η τήρηση των νόμων ΗΜΥ317 01 Εισαγωγή.27 Θεοχαρίδης, ΗΜΥ, 2008

Θέματα Επαγγελματικής Ηθικής Αποκλειστικότητα Οιμηχανικοίπρέπεινασέβονταιτοαπόρρητοτόσοτου εργοδότη όσο και του πελάτη, έστω και αν δεν υπάρχει γραπτή συμφωνία. Confidentiality - Engineers should normally respect the confidentiality of their employers or clients irrespective of whether or not a formal confidentiality agreement has been signed. Καταλληλότητα/Αρμοδιότητα/Ειδικότητα Οι μηχανικοί δεν πρέπει να ξεφεύγουν από τις αρμοδιότητες/ειδικότητες/καταλληλότητες τους. Πρέπει πάντοτε να δέχονται εργασία που είναι σε θέση να υλοποιήσουν. Competence - Engineers should not misrepresent their level of competence. They should not knowingly accept work which is outwith their competence. ΗΜΥ317 01 Εισαγωγή.28 Θεοχαρίδης, ΗΜΥ, 2008

Θέματα Επαγγελματικής Ηθικής Κανόνες Πνευματικής Ιδιοκτησίας Προστασία Εργοδότη ΚΑΙ Πελάτη! Intellectual property rights - Engineers should be aware of local laws governing the use of intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is protected. Σεβασμός στους Υπολογιστές των άλλων! Όχι επειδή ξέρουμε την διαδικασία να προκαλέσουμε κακόβουλη χρήση ενός ξένου υπολογιστή, με ότι συνεπάγεται. Computer misuse - Software engineers should not use their technical skills to misuse other people s computers. Computer misuse ranges from relatively trivial (game playing on an employer s machine, say) to extremely serious (dissemination of viruses). ΗΜΥ317 01 Εισαγωγή.29 Θεοχαρίδης, ΗΜΥ, 2008

Περίληψη Η Μηχανική Υπολογιστών είναι ένας κλάδος της Μηχανικής που ασχολείται με όλες της φάσης παραγωγής Λογισμικού. Τα πακέτα λογισμικού περιλαμβάνουν τόσο τα προγράμματα, όσο και τα εγχειρίδια χρήσης και τεχνικές περιγραφές της παραγωγής Λογισμικού. Η βασικές ικανότητες του Λογισμικού είναι η διαθεσιμότητα (δυνατότητα συντήρησης), η αξιοπιστία, η αποτελεσματικότητα αλλά και η χρησιμότητα. Η διαδικασία ανάπτυξης περιλαμβάνει ενέργειες όπως η ανάπτυξη προδιαγραφών, υλοποίηση, πιστοποίηση λειτουργίας αλλά και η φυσική ανέλιξη ενός λογισμικού πακέτου. Η μέθοδοι ανάπτυξης είναι οργανωμένοι τρόποι παραγωγής λογισμικού. Περιλαμβάνουν στοιχειοθετημένες εισηγήσεις για τον τρόπο (διαδικασία) που θα ακολουθηθεί, την σήμανση που θα χρησιμοποιηθεί, τους κανονισμούς περιγραφής και υλοποίησης καθώς και τους κανόνες/προδιαγραφές σχεδιασμού. ΗΜΥ317 01 Εισαγωγή.30 Θεοχαρίδης, ΗΜΥ, 2008

Key points CASE tools are software systems which are designed to support routine activities in the software process such as editing design diagrams, checking diagram consistency and keeping track of program tests which have been run. Software engineers have responsibilities to the engineering profession and society. They should not simply be concerned with technical issues. Professional societies publish codes of conduct which set out the standards of behaviour expected of their members. ΗΜΥ317 01 Εισαγωγή.31 Θεοχαρίδης, ΗΜΥ, 2008

ΕΠΟΜΕΝΗ ΙΑΛΕΞΗ ΚΑΙ ΠΛΗΡΟΦΟΡΙΕΣ ΕΠΟΜΕΝΗ ΙΑΛΕΞΗ Fundamentals of Object Oriented Programming Part II - Andreas Τετάρτη, 14:00 pm Φροντιστήριο και παράδοση πρώτων αναφορών. ΗΜΥ317 01 Εισαγωγή.32 Θεοχαρίδης, ΗΜΥ, 2008