Θέµατα στην Τεχνολογία Λογισµικού Εργαστήριο Τεχνολογίας Λογισµικού ηµήτρης Βυτινιώτης dvitin@softlab.ntua.gr εκέµβρης 2002
Θέµατα που θα παρουσιαστούν: Κατάταξη της επιστήµης των υπολογιστών από την ACM Βιβλιοθήκες Λογισµικού Ηθική και πατέντες στην Τεχνολογία Λογισµικού
ACM Computing classification Πηγή: www.acm.org/class Computing Theory Of Computation Computer Applications Computing Milieux Software Mathematics Of Computing Computer Systems Organization Data General Literature Computing Methodologies Information Systems Hardware
ACM Software classification Πηγή: www.acm.org/class Software General Programming Techniques Programming Languages Software Engineering Operating Systems
ACM Software engineering classification Πηγή: www.acm.org/class Distribution, Maintenance and Enhancement Design Tools and Techniques Requirements and Specifications Coding Tools and Techniques Software Architecture Interoperability General Software Engineering Reusable Software Metrics Software and Program Verification Management Testing and Debugging Programming Environments
Μια άλλη κατάταξη της τεχνολογίας λογισµικού Technology Information Technology Software Technology Methodologies Materials Tools Languages Standards
Μια άλλη κατάταξη της τεχνολογίας λογισµικού (2) Materials Models Code Manuals Frameworks Libraries Products Routines Classes Components
Βιβλιοθήκες Λογισµικού ιαχειρίσιµες συλλογές από πόρους λογισµικού µε τη δυνατότητα αναζήτησης, αποθήκευσης και πλοήγησης. Μερικά χαρακτηριστικά βιβλιοθηκών Είδος πόρου Εµβέλεια βιβλιοθήκης Αναπαράσταση Ερωταποκρίσεων Σχήµα πλοήγησης Αναπαράσταση πόρων
Βιβλιοθήκες Λογισµικού - NAG Numerical Algorithms Group (www.nag.co.uk) Καθιερωµένη για scientific computing από πανεπιστήµια και οργανισµούς. Προσανατολισµός σε Fortran, C Υπάρχουν επεκτάσεις της NAG για παράλληλες αρχιτεκτονικές (SMP) Υπάρχουν επεκτάσεις της NAG για συστήµατα κατανεµηµένης µνήµης (π.χ. MPI πάνω από Beowulf clusters) Περιλαµβάνει ένα µεγάλο εύρος αξιόπιστων ρουτινών για αριθµητικές και στατιστικές µεθόδους.
Βιβλιοθήκες Λογισµικού - Allegro Βιβλιοθήκη για προγραµµατισµό παιχνιδιών σε C. ιανέµεται ελευθέρα σε εκδόσεις για: DOS,Unix, Windows κ.α. Υποστηρίζει ρουτίνες για γραφικά, ήχους, είσοδο από πληκτρολόγιο, ποντίκι, joystick. Περιλαµβάνει µαθηµατικές και 3D συναρτήσεις, ρουτίνες για αρχεία κ.α. http://www.talula.demon.co.uk/allegro/
Βιβλιοθήκες Λογισµικού -Intel Computer Vision Library Στόχος: Όραση υπολογιστών σε real time. Για παράδειγµα αναγνώριση προσώπων, εντοπισµός κίνησης, αντίληψη συναισθηµάτων, αλληλεπίδραση ανθρώπου υπολογιστή. ιάθεση από την Intel σαν ελεύθερο λογισµικό: http://www.intel.com/research/mrl/research/opencv/ Πλατφόρµες: Windows, Linux Γλώσσες προγραµµατισµού: C, C++ Μερικά χαρακτηριστικά: image creation, arith. and logic operations, filtering, l. transformations, morphology, color space conversion, histogram and thresholding, geometric transformations.
Βιβλιοθήκες Λογισµικού - Free Software Foundation Συλλογές ελεύθερου λογισµικού (που διανέµεται κάτω από κάποια Public License, συνήθως GPL, LGPL) www.fsf.org (www.gnu.org) Πάρα πολύ µεγάλο εύρος βιβλιοθηκών Προσανατολισµός σε Unix και C/C++ ως επί το πλείστον Βιβλιοθήκες κατασκευασµένες από προγραµµατιστές ανά τον κόσµο σε εθελοντική βάση. Ιδιαίτερα δηµοφιλείς λόγω έλλειψης κόστους... αλλά δεν υποστηρίζονται το ίδιο καλά µε εµπορικές βιβλιοθήκες Υπάρχουν πολλές συλλογές βιβλιοθηκών στο ίδιο πνεύµα (sourceforge.net, opensource.org)
Components και Component Libraries Εµπορικά components διαθέσιµα στο Internet. Εταιρείες µπορούν να αγοράζουν/πουλούν components Ένα από τα µεγαλύτερα ηλεκτρονικά παζάρια components: www.componentsource.com Components σχεδόν για κάθε µοντέρνα πλατφόρµα ανάπτυξης (JDK,.net, VB, Delphi) Μερικά χαρακτηριστικά: database components, XML components, email components, encryption components, multimedia components, localization components, spelling components, windows API components, web site components
Sites µε πολύ λογισµικό (προγράµµατα) tucows.ntua.gr (µεγάλη συλλογή προγραµµάτων για πολλές πλατφόρµες) ftp.ntua.gr (το καλύτερο στην Ελλάδα) freshmeat.net (τεράστια συλλογή κυρίως για Linux/Unix) www.cnet.com (πολλά downloads) sourceforge.net (πολλές συλλογές από open source projects που µπορεί να κατεβάσει κανείς) rpmfind.net (τεράστια συλλογή από πακέτα κυρίως για Linux)
Software patents Οι πατέντες είναι σχεδιασµένες να εµποδίζουν τον οποιονδήποτε από το να: χρησιµοποιεί πουλά συµπεριλαµβάνει στα προγράµµατά του οτιδήποτε περιγράφεται στην πατέντα Υπάρχουν εθνικά γραφεία αλλά και γραφεία κατοχύρωσης της Ευρωπαϊκής Ένωσης.
Software patents (2) Είναι τρόπος για να εξασφαλίσουν οικονοµικά οφέλη: Αυτός που πουλά την πατέντα Αυτός που θέλει να χρησιµοποιήσει αυτό που κατοχυρώνει η πατέντα (δηλ. Ο ιδιοκτήτης της)...εν γένει αυτός που έχει την πατέντα και κανένας άλλος.
Software patents (3) technique patented in France, Germany, UK
Software Patents (4) Νοµικά θέµατα: European Patent Law is defined by the European Patent Convention (EPC, also called Munich Convention, 20 member states) of 1973. Πρόσφατη εξέλιξη: 2002 February 20th CEC adopts BSA directive proposal σύµφωνα µε τη συνθήκη του 1973 το προηγούµενο πρόγραµµα δεν είναι δυνατό να πατενταριστεί.
Software Patents (5) Προσανατολισµός της ΕΕ στο θέµα: Πίεση προς το Αµερικάνικο σύστηµα (κυρίως από αµερικανικές πολυεθνικές) Η νοµοθεσία για πατέντες χρειάζεται ξεκαθάρισµα Οι πατέντες τελικά προωθούν την καινοτοµία και προστατεύουν τις ιδέες. Εξελίξεις µέσα στο 2002: Πρόταση από τη BSA προς την ευρωπαϊκή επιτροπή Αντιρρήσεις αλλά και πιέσεις
Software patents (6) Υποστηρικτές στην EE: Μεγάλες εταιρείες (από USA κυρίως) Γραφεία ευρεσιτεχνιών Εταιρείες νοµικών συµβούλων Ποιοι διαφωνούν θίγονται: Μικρές εταιρείες λογισµικού Ανεξάρτητοι προγραµµατιστές µηχανικοί Οργανώσεις ακτιβιστών
Software Patents (7) Νέο οικονοµικό µοντέλο
Software patents (8) Kίνδυνοι Παίρνουν ρίσκο: Όσοι ανοίγουν τον κώδικά τους, κάνοντας τον διαθέσιµο σε ανταγωνιστές Το πρόβληµα γενικεύεται όταν η πατέντα αφορά καθιερωµένα standards (π.χ. Το internet) Είναι ασφαλείς: Όσοι δεν ανοίγουν τον κώδικά τους (non open source) Όσοι δεν παράγουν λογισµικό :-)
Software patents (9) Πηγές Links: The portal to European Union law: http://europa.eu.int/eur-lex/en/index.html European patents: http://www.european-patent-office.org/legal/epc/e/ma1.html Free Patents Act: http://www.freepatents.org/adapt/useright/ Another activists site against software patents in Europe: http://swpat.ffii.org Petition for a Software Patent Free Europe: http://petition.eurolinux.org/