SlideShare una empresa de Scribd logo
1 de 37
Ποιότητα
    Λογισμικού
Τι αφορά και πως αποτιμάται

       Γεώργιος Γούσιος
Κάποιοι στοιχεία

     • >70% έργων πληροφορικής
       καθυστερούν

     • 5-15% εγκαταλείπονται
     • Γενικά, ένα έργο λογισμικού είναι
       ποιο πιθανό να είναι μη επιτυχές

Τα έργα λογισµικού περιέχουν πολύ σηµαντικό ρίσκο
Διάσημες περιπτώσεις
            αστοχίας
• 1985-1987: Therac 25 radiation equip.
• 1991: Patriot missile
• 1996: Ariane 5
• 1998: Mars climate orbiter
• 2000: ILOVEYOU
• 2010: Toyota’s acceleration bug, GPS glitch
Ρίσκο έργου



Ποιότητα Λογισμικού
“Το πρόβλημα με την
ποιότητα λογισμικού είναι
ότι όλοι νομίζουν ότι την
     καταλαβαίνουν”


                   Crosby, 1979
Χρήστης
Πελάτης
Προγραμματιστής
Μηχανικός
λογισμικού
Code reviewer
   Tester
Διαχειριστής
   Έργου
Quality, simplistically, means that a
 product should meet its specification




                            Sommerville, 2004
a product's quality is a function of how
much it changes the world for the better.




                             Tom DeMarco
External quality characteristics are those
parts of a product that face its users,
where internal quality characteristics are
those that do not




                          Steve Mc Connell, 2004
Ποιότητα                   Εξωτερική
 Χρήσης                    Ποιότητα




             Ποιότητα
            Λογισμικού




Εσωτερική                   Ποιότητα
Ποιότητα                   Διαδικασίας




                         Σπινέλλης, 2006
Χαρακτηριστικά
ποιότητας κατά ISO
                        Portability
Functionality


                                          Maintainability

Reliability          ISO
                     9126




         Usability                    Efficiency
Μηχανική Λογισμικού
 (software engineering)
Μπορούμε να βελτιώσουμε
     μόνο ότι αξιολογούμε
και μπορούμε να αξιολογήσουμε
       μόνο ότι μετράμε
Στόχοι




Μέτρησεις




 Ανάλυση




Αξιολόγηση




  Γνώση
Σχεδιασμός
Διαδικασιών Ποιότητας
•   Επιλογή στόχων ποιότητας
    •   Χαρακτηριστικά
    •   Μετρικές
•   Προδιαγραφή διαδικασιών
    •   Code reviews
    •   Μετρήσεις λογισμικού
•   Δημιουργία μηχανισμού συλλογής,
    καταγραφής και ανάλυσης δεδομένων
Στόχοι ποιότητας

                                Ποιότητα
                               Λογισμικου



            Εσωτερική          Εξωτερική          Ποιότητα
            Ποιότητα           Ποιότητα          Διαδικασίας




                         Ασφάλεια   Βλαβοανοχή



                                             Ταχύτητα
Πολυπλοκότητα                                Επίλυσης
                        Δομή
                                                           Συνέπεια

   Συνεκτικότητα
Στόχοι ποιότητας

Χαρακτηριστικά                    Μετρικές
                                     Αριθμός
                                    ορισμάτων
   Συντηρησιμότητα

                                      Κυκλο-
                                  πολυπλοκότητα
     Βλαβοανοχή
                                 Αριθμός γραμμών
                                      κωδικα

  Μεταφερσιμότητα
                                    Αριθμός
                                   σφαλμάτων

    Χρηστικότητα
                                 Αριθμός γραμμών
                                   τεκμηρίωσης

                                        Sommerville, 2004
Μετρικές




• Καταγραφή στο χρόνο
• Συσχέτιση με γεγονότα στη
 διάρκεια ζωής (πχ releases)

• Αυτόματοποίηση συλλογής
• Εργαλεία ΕΛΛΑΚ και εμπορικά
Πολυπλοκότητα




• Κυκλοπολυπλοκότητα κατά McCabe
• Επίδραση στη διαδικασία ελέγχου
Δομή




•   Μετρικές δομής

•   Μετρικές επαναχρησιμοποίησης

•   Αντικειμενοστραφείς μετρικές
Ασφάλεια


• Στατική ανάλυση κώδικα
• Δυναμική ανάλυση μνήμης
• Penetration Testing
                                 30.00

                                 22.50

     Null Pointer Dereferences   15.00
     Forgoten free()
                                  7.50

                                    0
                                         v0.4   v0.5   v0.6   v0.7
Ανάλυση




• Οι μετρικές δίνουν μια αριθμητική
  τιμή σε ένα χαρακτηριστικό

• Απαιτείται ανάλυση
 • Ως προς το χρόνο
 • Ως προς την επίδραση
Ανάλυση


           Όριο       Κυκλοπολυπλοκότητα
30.00


22.50


15.00


 7.50


   0
            foo.c       bar.c       baz.c



        Συσχέτιση μετρικών με στόχους
Ανάλυση


 Αριθμός γραμμών          Αριθμός σφαλμάτων




Ιαν   Φεβ   Μαρ   Απρ   Μαι   Ιουν   Ιουλ   Αυγ   Σεπ



      Παρακολούθηση προόδου
Ανάλυση


    Αριθμός γραμμών          Αριθμός σφαλμάτων




   Ιαν   Φεβ   Μαρ   Απρ   Μαι   Ιουν   Ιουλ   Αυγ   Σεπ



Παρακολούθηση προόδου - κακό σενάριο
Ανάλυση



               Μέσος χρόνος επιδιόρθωσης λαθών ανά υποσύστημα
       70.00


       52.50
Ώρες




       35.00


       17.50


          0
                  Υ1       Υ2       Υ3      Υ4       Υ5


          Αναγνώριση τάσεων και εξαιρέσεων
Ανάλυση

                             Διασπορά λαθών σε αρθρώματα

                50


                38
Αριθμός λαθών




                25


                13


                 0
                     0   1    2   3    4   5   6   7   8   9   10
                                  Αριθμός αρθρωμάτων


                Αναγνώριση τάσεων και εξαιρέσεων
Ανάλυση



                           15
Αριθμός λαθών ανά αρχείο



                                                                  R² = 0.9054
                           11


                            8


                            4


                            0
                                0   1   2   3    4   5    6   7       8     9   10
                                            Κυκλοπολυπλοκότητα


                                    Αναγνώριση συσχετίσεων
Αξιολόγηση




• Συσχέτιση ευρημάτων με στόχους
• Επιλογή διορθωτικών ενεργειών
• Επιλογή επιπλέον μετρήσεων
Γνώση




• Μοντέλα ποιότητας
• Πρόβλεψη συμπεριφοράς έργου
• Αυτοματοποιημένη παροχή
 βοήθειας στους προγραμματιστές
Αξιολόγηση Ποιότητας
              Έργου
        Πριν             Κατά τη διάρκεια          Μετά

•   Επιλογή στόχων   •   Παρακολούθη        •   Δημιουργία
    ποιότητας            ση μετρικών            μοντέλων

•   Επιλογή          •   Ανάλυση            •   Επεξεργασία
    μετρικών και                                συμπερασμάτ
    μοντέλων         •   Διορθωτικές            ων
                         παρεμβάσεις
•   Εφαρμογή
    συστήματος
    συλλογής
    δεδομένων
                         Kahn, 2002
Σημεία Κλειδιά

• Η ποιότητα λογισμικού έχει
  διαφορετικές οπτικές και
  αναγνώσεις

• Οι μετρικές δεν είναι αυτοσκοπός
• “Εκλογή σκοπού και εμμονή σε
  αυτόν”
Ευχαριστώ!
  gousiosg@aueb.gr


http://demo.sqo-oss.org

Más contenido relacionado

Destacado

Alexei popovici portfolio
Alexei popovici portfolioAlexei popovici portfolio
Alexei popovici portfolioalesheal
 
2011 pl fica o poder executivo autorizado a criar o projeto “natal luz nos ...
2011   pl fica o poder executivo autorizado a criar o projeto “natal luz nos ...2011   pl fica o poder executivo autorizado a criar o projeto “natal luz nos ...
2011 pl fica o poder executivo autorizado a criar o projeto “natal luz nos ...drtaylorjr
 
Tiyatro kursu-istanbul
Tiyatro kursu-istanbulTiyatro kursu-istanbul
Tiyatro kursu-istanbulzeynep_zyn84
 
Programas utilitários
Programas utilitáriosProgramas utilitários
Programas utilitáriossimoesflavio
 
Implementação de Redes com Alta Disponibilidade
Implementação de Redes com Alta DisponibilidadeImplementação de Redes com Alta Disponibilidade
Implementação de Redes com Alta Disponibilidadetiredes
 
MDA Response to a Mass Casualty Toxicological Accident
MDA Response to a Mass Casualty Toxicological AccidentMDA Response to a Mass Casualty Toxicological Accident
MDA Response to a Mass Casualty Toxicological AccidentGlobal Risk Forum GRFDavos
 
Plano de marketing digital
Plano de marketing digitalPlano de marketing digital
Plano de marketing digitalMarcioveras
 
Risk assessment example
Risk assessment exampleRisk assessment example
Risk assessment exampleasmediad14
 
Sistemas Operacionais e Aplicativos
Sistemas Operacionais e AplicativosSistemas Operacionais e Aplicativos
Sistemas Operacionais e Aplicativostiredes
 
7. Display track - Data-Driven programmatic marketing - Kelly Siemons (Orange...
7. Display track - Data-Driven programmatic marketing - Kelly Siemons (Orange...7. Display track - Data-Driven programmatic marketing - Kelly Siemons (Orange...
7. Display track - Data-Driven programmatic marketing - Kelly Siemons (Orange...OrangeValley
 
11. Case Centraal Beheer "Even Apeldoorn bellen" en data-driven marketing - (...
11. Case Centraal Beheer "Even Apeldoorn bellen" en data-driven marketing - (...11. Case Centraal Beheer "Even Apeldoorn bellen" en data-driven marketing - (...
11. Case Centraal Beheer "Even Apeldoorn bellen" en data-driven marketing - (...OrangeValley
 
1. Paid Search Strategy Event - Opening Ortwin Verreck & Niels Dengel
1. Paid Search Strategy Event - Opening Ortwin Verreck & Niels Dengel1. Paid Search Strategy Event - Opening Ortwin Verreck & Niels Dengel
1. Paid Search Strategy Event - Opening Ortwin Verreck & Niels DengelOrangeValley
 
Sistemas operativos servidores
Sistemas operativos  servidoresSistemas operativos  servidores
Sistemas operativos servidoresJoel Saramago
 
Yuri equpamento passivo
Yuri equpamento passivoYuri equpamento passivo
Yuri equpamento passivoomaildoyuri
 

Destacado (17)

2013 middle school - responsible use
2013 middle school - responsible use2013 middle school - responsible use
2013 middle school - responsible use
 
2011 state tech plan development
2011 state tech plan development2011 state tech plan development
2011 state tech plan development
 
Alexei popovici portfolio
Alexei popovici portfolioAlexei popovici portfolio
Alexei popovici portfolio
 
2011 pl fica o poder executivo autorizado a criar o projeto “natal luz nos ...
2011   pl fica o poder executivo autorizado a criar o projeto “natal luz nos ...2011   pl fica o poder executivo autorizado a criar o projeto “natal luz nos ...
2011 pl fica o poder executivo autorizado a criar o projeto “natal luz nos ...
 
Tiyatro kursu-istanbul
Tiyatro kursu-istanbulTiyatro kursu-istanbul
Tiyatro kursu-istanbul
 
10
1010
10
 
Programas utilitários
Programas utilitáriosProgramas utilitários
Programas utilitários
 
Implementação de Redes com Alta Disponibilidade
Implementação de Redes com Alta DisponibilidadeImplementação de Redes com Alta Disponibilidade
Implementação de Redes com Alta Disponibilidade
 
MDA Response to a Mass Casualty Toxicological Accident
MDA Response to a Mass Casualty Toxicological AccidentMDA Response to a Mass Casualty Toxicological Accident
MDA Response to a Mass Casualty Toxicological Accident
 
Plano de marketing digital
Plano de marketing digitalPlano de marketing digital
Plano de marketing digital
 
Risk assessment example
Risk assessment exampleRisk assessment example
Risk assessment example
 
Sistemas Operacionais e Aplicativos
Sistemas Operacionais e AplicativosSistemas Operacionais e Aplicativos
Sistemas Operacionais e Aplicativos
 
7. Display track - Data-Driven programmatic marketing - Kelly Siemons (Orange...
7. Display track - Data-Driven programmatic marketing - Kelly Siemons (Orange...7. Display track - Data-Driven programmatic marketing - Kelly Siemons (Orange...
7. Display track - Data-Driven programmatic marketing - Kelly Siemons (Orange...
 
11. Case Centraal Beheer "Even Apeldoorn bellen" en data-driven marketing - (...
11. Case Centraal Beheer "Even Apeldoorn bellen" en data-driven marketing - (...11. Case Centraal Beheer "Even Apeldoorn bellen" en data-driven marketing - (...
11. Case Centraal Beheer "Even Apeldoorn bellen" en data-driven marketing - (...
 
1. Paid Search Strategy Event - Opening Ortwin Verreck & Niels Dengel
1. Paid Search Strategy Event - Opening Ortwin Verreck & Niels Dengel1. Paid Search Strategy Event - Opening Ortwin Verreck & Niels Dengel
1. Paid Search Strategy Event - Opening Ortwin Verreck & Niels Dengel
 
Sistemas operativos servidores
Sistemas operativos  servidoresSistemas operativos  servidores
Sistemas operativos servidores
 
Yuri equpamento passivo
Yuri equpamento passivoYuri equpamento passivo
Yuri equpamento passivo
 

Similar a Software quality

Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούISSEL
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...ISSEL
 
Χατζηελευθερίου Ειρήνη
Χατζηελευθερίου ΕιρήνηΧατζηελευθερίου Ειρήνη
Χατζηελευθερίου ΕιρήνηISSEL
 
Συνεχής έμμεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου με συνδυασμό των δεδ...
Συνεχής έμμεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου με συνδυασμό των δεδ...Συνεχής έμμεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου με συνδυασμό των δεδ...
Συνεχής έμμεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου με συνδυασμό των δεδ...ISSEL
 
Software process improvement
Software process improvementSoftware process improvement
Software process improvementGeorge Kara
 
Punctual fault identification through Machine Learning techniques
Punctual fault identification through Machine Learning techniquesPunctual fault identification through Machine Learning techniques
Punctual fault identification through Machine Learning techniquesISSEL
 
Έγκαιρη ταυτοποίηση βλαβών με αλγόριθμους Μηχανικής Mάθησης
Έγκαιρη ταυτοποίηση βλαβών με αλγόριθμους Μηχανικής MάθησηςΈγκαιρη ταυτοποίηση βλαβών με αλγόριθμους Μηχανικής Mάθησης
Έγκαιρη ταυτοποίηση βλαβών με αλγόριθμους Μηχανικής MάθησηςISSEL
 
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...ISSEL
 
Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...ISSEL
 
Μιχαήλ Παπαμιχαήλ
Μιχαήλ ΠαπαμιχαήλΜιχαήλ Παπαμιχαήλ
Μιχαήλ ΠαπαμιχαήλISSEL
 
Κλέαρχος Θωμόπουλος 7435
Κλέαρχος Θωμόπουλος 7435Κλέαρχος Θωμόπουλος 7435
Κλέαρχος Θωμόπουλος 7435ISSEL
 
Μηχανισμοί Ενισχυτικής Μάθησης και Εξελικτικής Υπολογιστικής για Αυτόνομους Π...
Μηχανισμοί Ενισχυτικής Μάθησης και Εξελικτικής Υπολογιστικής για Αυτόνομους Π...Μηχανισμοί Ενισχυτικής Μάθησης και Εξελικτικής Υπολογιστικής για Αυτόνομους Π...
Μηχανισμοί Ενισχυτικής Μάθησης και Εξελικτικής Υπολογιστικής για Αυτόνομους Π...Kyriakos Chatzidimitriou
 
Ιoannis Αgrotis
Ιoannis ΑgrotisΙoannis Αgrotis
Ιoannis ΑgrotisISSEL
 
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...ISSEL
 
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...ISSEL
 
Source code remodularization based on component dependency graphs
Source code remodularization based on component dependency graphsSource code remodularization based on component dependency graphs
Source code remodularization based on component dependency graphsISSEL
 
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...ISSEL
 
Γεροκώστα
ΓεροκώσταΓεροκώστα
ΓεροκώσταISSEL
 

Similar a Software quality (20)

Sonar platform
Sonar platformSonar platform
Sonar platform
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
 
Χατζηελευθερίου Ειρήνη
Χατζηελευθερίου ΕιρήνηΧατζηελευθερίου Ειρήνη
Χατζηελευθερίου Ειρήνη
 
Thessaloniki rb-24
Thessaloniki rb-24Thessaloniki rb-24
Thessaloniki rb-24
 
Συνεχής έμμεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου με συνδυασμό των δεδ...
Συνεχής έμμεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου με συνδυασμό των δεδ...Συνεχής έμμεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου με συνδυασμό των δεδ...
Συνεχής έμμεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου με συνδυασμό των δεδ...
 
Software process improvement
Software process improvementSoftware process improvement
Software process improvement
 
Punctual fault identification through Machine Learning techniques
Punctual fault identification through Machine Learning techniquesPunctual fault identification through Machine Learning techniques
Punctual fault identification through Machine Learning techniques
 
Έγκαιρη ταυτοποίηση βλαβών με αλγόριθμους Μηχανικής Mάθησης
Έγκαιρη ταυτοποίηση βλαβών με αλγόριθμους Μηχανικής MάθησηςΈγκαιρη ταυτοποίηση βλαβών με αλγόριθμους Μηχανικής Mάθησης
Έγκαιρη ταυτοποίηση βλαβών με αλγόριθμους Μηχανικής Mάθησης
 
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
 
Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...
 
Μιχαήλ Παπαμιχαήλ
Μιχαήλ ΠαπαμιχαήλΜιχαήλ Παπαμιχαήλ
Μιχαήλ Παπαμιχαήλ
 
Κλέαρχος Θωμόπουλος 7435
Κλέαρχος Θωμόπουλος 7435Κλέαρχος Θωμόπουλος 7435
Κλέαρχος Θωμόπουλος 7435
 
Μηχανισμοί Ενισχυτικής Μάθησης και Εξελικτικής Υπολογιστικής για Αυτόνομους Π...
Μηχανισμοί Ενισχυτικής Μάθησης και Εξελικτικής Υπολογιστικής για Αυτόνομους Π...Μηχανισμοί Ενισχυτικής Μάθησης και Εξελικτικής Υπολογιστικής για Αυτόνομους Π...
Μηχανισμοί Ενισχυτικής Μάθησης και Εξελικτικής Υπολογιστικής για Αυτόνομους Π...
 
Ιoannis Αgrotis
Ιoannis ΑgrotisΙoannis Αgrotis
Ιoannis Αgrotis
 
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
 
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
 
Source code remodularization based on component dependency graphs
Source code remodularization based on component dependency graphsSource code remodularization based on component dependency graphs
Source code remodularization based on component dependency graphs
 
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...
 
Γεροκώστα
ΓεροκώσταΓεροκώστα
Γεροκώστα
 

Software quality

Notas del editor

  1. Καλησπέρα σας.\n
  2. Θα ξεκινήσω την παρουσίασή μου με κάποιους αριθμούς που αφορούν περισσότερο την διοίκηση έργων παρά την ποιότητα. Αν και είμαι σίγουρος ότι οι περισσότεροι γνωρίζετε τα παραπάνω στοιχεία, απλά να αναφέρω ότι....\nΤα στοιχεία έχουν προκύψει από ανάλυση αποτελεσμάτων πολύ μεγάλων έργων λογισμικού στις 3 προηγούμενες 10ετιες\nΟ λόγος που τα αναφέρω είναι για να τονίσω κάτι το οποίο είναι μεν προφανές, αλλά δεν είναι απαραίτητα κάτι το οποίο λαμβάνουμε υποψην όταν σχεδιάζουμε ένα εργο\n
  3. Ακόμη όμως και αν παραδοθεί ένα έργο, αυτό δεν σημαίνει ότι λειτουργεί ή ότι δεν θα παρουσιάσει κάποιο πρόβλημα. Όλοι το γνωρίζουμε αυτό από προσωπική εμπειρία με τους υπολογιστές μας και δυστυχώς υπάρχουν πολύ ποιο σοβαρές περιπτώσεις που έχουν σαν συνέπεια ανθρώπινες ζωές ή δυσθεώρατα κόστη. \n
  4. Ένας από τους τρόπους, ίσως ο ποιο σημαντικός, για να περιορίσουμε το ρίσκο και το κόστος ενός έργου είναι να εφαρμόσουμε διαδικασίες ποιότητας λογισμικού. Οπότε το ερώτημα που προκύπτει είναι τι ακριβώς αφορά η ποιότητα λογισμικού\n
  5. Η απάντηση είναι ότι δυστυχώς δεν ξέρουμε ακριβώς ακόμη τι είναι ποιότητα λογισμικού, ακριβώς διότι η ποιότητα είναι διαφορετικά πράγματα για διαφορετικές κατηγορίες εμπλεκομένων σε ένα έργο λογισμικού\n
  6. Για παράδειγμα, για τον τελικό χρήστη η ποιότητα μπορεί να είναι το κατά πόσο εμφανίζονται βλάβες με τη μορφή μυνημάτων λάθους ή τη συχνότητα εμφάνισης διορθώσεων ή γενικά το πόσο καλά του κάνει τη δουλειά\n
  7. Για τον προγραμματιστή που πρέπει για να διορθώσει ένα λάθος ή να προσθέσει κάποια καινούργια λειτουργία να αρχίσει να ψάχνει σε χιλιάδες ή εκατομύρια γραμμές κώδικα, η ποιότητα αφορά το πόσο καλά δομημένος είναι ο κώδικας ή πόσο καλή τεκμηρίωση έχει\n
  8. Για τον σχεδιαστή λογισμικού, που συνήθως έχει μια συστημική προσέγγιση στα προβλήματα, το ποιοτικό σύστημα είναι αυτό που δεν είναι πολύπλοκο και που τα διάφορα επίπεδά του επικοινωνούν με καλά ορισμένες διεπαφές κτλ.\n
  9. Για αυτόν που ελέγχει το λογισμικό η ποιότητα αφορά τη συχνότητα εμφάνισης λαθών σε συγκεκριμένα σημεία ενός προγράμματος\n
  10. Τέλος για τον διαχειριστή έργου, η ποιότητα είναι συνάρτηση περισσότερο του κόστους ή της τήρησης διαδικασιών και λιγότερο του πως το λογισμικό είναι δομημένο εσωτερικά\n
  11. Ας δούμε και την άποψη των ειδικών: Για τον sommerville η ποιότητα αφορά την στη σχεδίαση\n
  12. Ενώ για τον de marko, η ποιότητα είναι συνάρτηση της χρησιμότητας του προϊόντος\n
  13. Από μια ποιο τεχνική σκοπιά, ο mcconnel διαχωρίζει την ποιότητα σε εσωτερική και εξωτερική, ανάλογα με το τι βλέπουν οι χρήστες. Γενικά αυτός ο διαχωρισμός ακολουθείται στην βιβλιογραφία και υπάρχει η υπόνοια (αλλά όχι βεβαιότητα) ότι η εσωτερική ποιότητα αντικατοπτριζεται στην εξωτερική.\n
  14. Ο Σπινέλλης, σε πρόσφατο σχετικό βιβλίο του, αναλύει περισσότερο την άποψη του McConnel για την ποιότητα και την σπάει σε 4 κομμάτια\n
  15. Τέλος ό οργανισμός ISO έχει δημιουργήσει ένα διεθνές standard για το τί αφορά η ποιότητα λογισμικού, χωρίζοντάς τη σε 7 διαφορετικά χαρακτηριστικά το καθένα από τα οποία έχει πολλά υποχαρακτηριστικά\n
  16. Έχοντας όλες αυτές αυτές τις διαφορετικές και αλληλοσυγκρουόμενες απόψεις κατά νου, η μηχανικοί λογισμικού καλούνται να εφαρμόσουν τις αρχές της μηχανικής ώστε να βελτιώσουν τη διαδικασία ανάπτυξης και το τελικό προιόν\n
  17. Αυτό γίνεται εφαρμόζοντας την επιστημονική μέθοδο στην ανάπτυξη λογισμικού ή ποιο σχηματικά:\n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n