λογισμικό

Γνώση Υπολογιστών >> λογισμικό >  >> Λογισμικό Utility

Ποια είναι η διαφορά μεταξύ του λογισμικού που καθορίζει και απροσδιόριστο;

Οι όροι "καθορίστε" και "απροσδιόριστο" δεν είναι τυποποιημένες ταξινομήσεις για το ίδιο το λογισμικό. Ωστόσο, μπορούν να εφαρμόσουν σε * πτυχές * της συμπεριφοράς λογισμικού ή του σχεδιασμού. Η διάκριση σχετίζεται συνήθως με την προβλεψιμότητα και τον έλεγχο:

* Προσδιορίστε το λογισμικό (ή τη συμπεριφορά): Αυτό αναφέρεται στο λογισμικό όπου, λαμβάνοντας υπόψη τις ίδιες εισόδους και τις αρχικές συνθήκες, θα * πάντα * να παράγει τις ίδιες εξόδους. Δεν υπάρχει τυχαία ή απρόβλεπτη συμπεριφορά. Η διαδρομή εκτέλεσης καθορίζεται πλήρως από την είσοδο και τη λογική του προγράμματος. Παραδείγματα:

* Ένας απλός υπολογιστής: Δεδομένου ότι 2 + 2, θα επιστρέφει πάντα 4.

* Compiler: Δεδομένου του ίδιου πηγαίου κώδικα, θα πρέπει πάντα να παράγει τον ίδιο κωδικό αντικειμένου (Βελτιστοποιήσεις του μεταγλωττιστή που μπορεί να αναδιατάξει τις οδηγίες χωρίς να αλλάξει το αποτέλεσμα).

* Μια ντετερμινιστική προσομοίωση: Μια προσομοίωση φυσικής που χρησιμοποιεί σταθερούς κανόνες και δεν ενσωματώνει τυχαία.

* απροσδιόριστο λογισμικό (ή συμπεριφορά): Αυτό αναφέρεται στο λογισμικό όπου, ακόμη και με τις ίδιες εισόδους και τις αρχικές συνθήκες, η έξοδος μπορεί να διαφέρει. Αυτή η απρόβλεπτη είναι συχνά σκόπιμη και προκύπτει από:

* Παραγωγή τυχαίων αριθμών: Χρησιμοποιείται σε παιχνίδια, προσομοιώσεις ή κρυπτογραφία για απρόβλεπτα στοιχεία.

* Συμφωνία/παραλληλισμός: Στα προγράμματα πολλαπλών σπιτιών, η σειρά εκτέλεσης των νημάτων μπορεί να είναι μη καθοριστική, οδηγώντας σε διαφορετικά αποτελέσματα ανάλογα με τις αποφάσεις προγραμματισμού του λειτουργικού συστήματος.

* Εξωτερικοί παράγοντες: Το λογισμικό που αλληλεπιδρά με εξωτερικές συσκευές (αισθητήρες, δίκτυα) ενδέχεται να λαμβάνει ποικίλες εισροές, οδηγώντας έτσι σε διαφορετικές εξόδους ακόμη και με την ίδια αρχική κατάσταση προγράμματος.

* Μη-καθέρχια αλγόριθμοι: Ορισμένοι αλγόριθμοι, από το σχεδιασμό, διερευνούν διαφορετικές διαδρομές λύσης και το αποτέλεσμα τους δεν είναι εγγυημένο ότι είναι το ίδιο σε κάθε διαδρομή (π.χ. ορισμένοι αλγόριθμοι βελτιστοποίησης ή τυχαιοποιημένοι αλγόριθμοι αναζήτησης).

Συνοπτικά:

Η βασική διαφορά έγκειται στην προβλεψιμότητα. Ο καθορισμός του λογισμικού είναι προβλέψιμο. Η έξοδος του είναι μια συνάρτηση αποκλειστικά της εισόδου της. Το απροσδιόριστο λογισμικό εισάγει ένα στοιχείο τυχαιότητας ή απρόβλεπτη, με αποτέλεσμα δυνητικά διαφορετικές εξόδους ακόμη και για πανομοιότυπες εισροές. Η "απροσδιόριστη" δεν είναι απαραιτήτως σφάλμα. Είναι συχνά ένα χαρακτηριστικό σχεδιασμένο στο σύστημα για συγκεκριμένους σκοπούς.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα