Λήψη PDF
1) Ποιες είναι οι σημαντικές κατηγορίες λογισμικού;
- Λογισμικό συστήματος
- Λογισμικό εφαρμογής
- Ενσωματωμένο λογισμικό
- Εφαρμογές Ιστού
- Λογισμικό τεχνητής νοημοσύνης
- Επιστημονικό λογισμικό.
2) Ποια είναι η κύρια διαφορά μεταξύ ενός προγράμματος υπολογιστή και ενός λογισμικού υπολογιστή;
Ένα πρόγραμμα υπολογιστή είναι ένα κομμάτι κώδικα προγραμματισμού. Εκτελεί μια καλά καθορισμένη εργασία. Από την άλλη πλευρά, το λογισμικό περιλαμβάνει κώδικα προγραμματισμού, τεκμηρίωση και οδηγό χρήστη.
3) Τι είναι η αναδημιουργία λογισμικού;
Είναι μια διαδικασία ανάπτυξης λογισμικού που γίνεται για τη βελτίωση της συντηρησιμότητας ενός συστήματος λογισμικού.
4) Περιγράψτε εν συντομία τη διαδικασία ανάπτυξης λογισμικού:
Η ανάπτυξη λογισμικού είναι ένας κύκλος ζωής που αποτελείται από τα ακόλουθα στάδια:
- Ανάλυση απαιτήσεων
- Προσδιορισμός
- Αρχιτεκτονική λογισμικού
- Εκτέλεση
- Δοκιμές
- Τεκμηρίωση
- Εκπαίδευση και υποστήριξη
- Συντήρηση
5) Ποια είναι τα διαθέσιμα μοντέλα SDLC;
Τα μοντέλα Waterfall, Spiral Model, Big-bag model, Iterative Model και V- Model είναι μερικά από τα διάσημα μοντέλα SDLC.
6) Τι είναι η επαλήθευση και επικύρωση;
Επαλήθευση:
Η επαλήθευση είναι ένας όρος που αναφέρεται στο σύνολο δραστηριοτήτων που διασφαλίζουν ότι το λογισμικό εφαρμόζει μια συγκεκριμένη λειτουργία.
Επικύρωση:
Αναφέρεται στο σύνολο των δραστηριοτήτων που διασφαλίζουν ότι το λογισμικό που έχει κατασκευαστεί σύμφωνα με τις ανάγκες των πελατών.
7) Στη διαδικασία ανάπτυξης λογισμικού ποια είναι η έννοια του εντοπισμού σφαλμάτων;
Ο εντοπισμός σφαλμάτων είναι η διαδικασία που οδηγεί στην αφαίρεση του σφάλματος. Είναι πολύ σημαντικό μέρος των επιτυχημένων δοκιμών.
8) Πώς μπορείτε να βεβαιωθείτε ότι ο κωδικός σας είναι ασφαλής και γρήγορος;
Στο λογισμικό, η ασφάλεια ανάπτυξης είναι πάντα πρώτη. Επομένως, εάν η εκτέλεση του προγράμματος είναι αργή τότε, θα προσπαθήσω να εντοπίσω τους λόγους για τους τρόπους για την πολυπλοκότητα του χρόνου του.
9) Ονομάστε δύο εργαλεία που χρησιμοποιούνται για την παρακολούθηση των απαιτήσεων λογισμικού;
Υπάρχουν πολλοί τρόποι για να παρακολουθείτε τις απαιτήσεις.
Δύο που χρησιμοποιούνται συνήθως είναι:
- Δημιουργήστε ένα έγγραφο προδιαγραφών απαιτήσεων για να απαριθμήσετε όλες τις απαιτήσεις.
- Δημιουργήστε ένα φύλλο excel στη λίστα με την απαίτηση, τον τύπο, την εξάρτηση, την προτεραιότητα κ.λπ.
10) Ποια είναι η κύρια διαφορά μεταξύ των στελεχών, ενός ψεύτικου;
Ένα στέλεχος είναι μια ελάχιστη εφαρμογή μιας διεπαφής που επιστρέφει γενικά δεδομένα με κωδικοποιημένο κώδικα ενώ το ψεύτικο συνήθως επαληθεύει τις εξόδους έναντι των προσδοκιών. Αυτές οι προσδοκίες τίθενται στο τεστ.
11) Ποια γλώσσα θέλετε να γράψετε αλγόριθμους προγραμματισμού;
Κάθε προγραμματιστής έχει τις απόψεις του όσον αφορά τις επιλογές γλώσσας προγραμματισμού. Παρόλα αυτά, κάποιος πρέπει να προτιμά γλώσσες υψηλού επιπέδου επειδή είναι δυναμικές. Όπως οι γλώσσες C και C ++.
12) Τι είναι το λογισμικό υπολογιστών;
Το λογισμικό υπολογιστή είναι ένα πακέτο που περιλαμβάνει ένα πρόγραμμα λογισμικού, την τεκμηρίωσή του και έναν οδηγό χρήσης για τον τρόπο χρήσης του λογισμικού.
13) Σύμφωνα με εσάς ποιο μοντέλο SDLC είναι το καλύτερο;
Δεν υπάρχει τέτοια κατάταξη, καθώς τα μοντέλα SDLC υιοθετούνται σύμφωνα με την ανάγκη για τη διαδικασία ανάπτυξης. Μπορεί να διαφέρει από λογισμικό σε λογισμικό.
14) Ποιος είναι διαχειριστής έργου λογισμικού; Ποιος είναι ο ρόλος του;
Ο διαχειριστής έργου λογισμικού είναι υπεύθυνος για τη διαχείριση του έργου ανάπτυξης λογισμικού.
Ο διαχειριστής του έργου κάνει τον προγραμματισμό του έργου, παρακολουθώντας την πρόοδο, επικοινωνία. Διαχειρίζεται επίσης κινδύνους και πόρους για να παραδώσει το έργο εντός χρονικών ορίων, κόστους και ποιοτικών περιορισμών.
15) Τι σημαίνει το πεδίο εφαρμογής του λογισμικού;
Το εύρος του λογισμικού είναι ένα καλά καθορισμένο όριο. Περιλαμβάνει κάθε είδους δραστηριότητες που γίνονται για την ανάπτυξη και την παράδοση του προϊόντος λογισμικού.
Το εύρος του λογισμικού καθορίζει όλες τις λειτουργίες και τα αντικείμενα που θα παραδοθούν ως μέρος του λογισμικού. Το εύρος προσδιορίζει επίσης τι θα κάνει το προϊόν; Ποιο δεν είναι το μέρος του έργου; Τι είναι η εκτίμηση έργου;
Αυτή η διαδικασία είναι χρήσιμη για την εκτίμηση διαφόρων πτυχών του προϊόντος λογισμικού. Αυτή η εκτίμηση μπορεί να αποφασιστεί είτε με συμβουλευτικούς εμπειρογνώμονες είτε χρησιμοποιώντας προκαθορισμένους τύπους.
16) Πώς να βρείτε το μέγεθος ενός προϊόντος λογισμικού;
Το μέγεθος του προϊόντος λογισμικού μπορεί να υπολογιστεί χρησιμοποιώντας δύο μεθόδους
- Μετρώντας τις γραμμές του παραδοθέντος κώδικα
- Μετρώντας τα παραδοθέντα σημεία λειτουργίας
17) Ποια είναι τα σημεία λειτουργίας;
Τα σημεία λειτουργίας είναι τα χαρακτηριστικά που παρέχονται από το προϊόν λογισμικού. Θεωρείται ως η πιο σημαντική μέτρηση για το μέγεθος του λογισμικού.
18) Ποιες είναι οι διαθέσιμες τεχνικές εκτίμησης έργου λογισμικού;
Οι πιο ευρέως χρησιμοποιούμενες τεχνικές εκτίμησης είναι:
- Τεχνική αποσύνθεσης
- Εμπειρική τεχνική
19) Τι είναι η διαχείριση διαμόρφωσης λογισμικού;
Η διαχείριση διαμόρφωσης λογισμικού είναι μια διαδικασία παρακολούθησης και ελέγχου αλλαγών που συμβαίνουν στο λογισμικό.
Ο έλεγχος αλλαγών είναι μια λειτουργία που διασφαλίζει ότι όλες οι αλλαγές που γίνονται στο σύστημα λογισμικού είναι συνεπείς και δημιουργούνται χρησιμοποιώντας οργανωτικούς κανόνες και κανονισμούς.
20) Πώς μπορείτε να μετρήσετε την εκτέλεση του έργου;
Μπορούμε να μετρήσουμε την εκτέλεση του έργου χρησιμοποιώντας την παρακολούθηση δραστηριότητας, τις αναφορές κατάστασης και τις λίστες ελέγχου ορόσημο.
21) Πείτε μου για ορισμένα εργαλεία διαχείρισης έργου.
Υπάρχουν πολλοί τύποι εργαλείων διαχείρισης που χρησιμοποιούνται ανάλογα με την ανάγκη για ένα έργο λογισμικού. Μερικά από αυτά είναι Pert Chart, Gantt Chart, Resource Histogram, Status Reports, etc.
22) Ποιες είναι οι απαιτήσεις λογισμικού;
Οι απαιτήσεις λογισμικού είναι μια λειτουργική περιγραφή ενός προτεινόμενου συστήματος λογισμικού. Υποτίθεται ότι είναι η περιγραφή του συστήματος στόχου, των λειτουργιών και των χαρακτηριστικών του.
23) Τι είναι η μελέτη σκοπιμότητας;
Είναι ένα μέτρο για να μάθετε πόσο πρακτικό και ωφέλιμο θα αποδειχθεί η ανάπτυξη του έργου λογισμικού στον οργανισμό. Ο αναλυτής λογισμικού διεξάγει μια μελέτη για να γνωρίζει την οικονομική, τεχνική και λειτουργική σκοπιμότητα του έργου.
-
Οικονομικό: Περιλαμβάνει το κόστος εκπαίδευσης, το κόστος πρόσθετων και εργαλείων και τη συνολική εκτίμηση του κόστους και των ωφελειών του έργου.
-
Τεχνική: Αξιολογεί τεχνική άποψη. Είναι δυνατόν να αναπτυχθεί αυτό το σύστημα; Αξιολόγηση της καταλληλότητας των μηχανών και των λειτουργιών στα οποία θα εκτελεστεί το λογισμικό, γνώση της ανάπτυξης λογισμικού και διαθέσιμα εργαλεία για αυτό το έργο.
-
Λειτουργικό: Εδώ ο αναλυτής πρέπει να εκτιμήσει ότι ο οργανισμός θα μπορεί να προσαρμόζεται ομαλά στις αλλαγές που γίνονται σύμφωνα με τη ζήτηση για το έργο. Αξίζει να λυθεί το πρόβλημα στο εκτιμώμενο κόστος;
Μετά, μελετώντας όλα αυτά δημιουργείται η τελική έκθεση σκοπιμότητας.
24) Ποιες είναι οι λειτουργικές και μη λειτουργικές απαιτήσεις;
Οι λειτουργικές απαιτήσεις είναι λειτουργικά χαρακτηριστικά που αναμένονται από τους χρήστες από το προτεινόμενο προϊόν λογισμικού.
Οι μη λειτουργικές απαιτήσεις σχετίζονται με την ασφάλεια, την απόδοση, την εμφάνιση και την αίσθηση του περιβάλλοντος χρήστη.
25) Τι είναι η μέτρηση λογισμικού;
Το Software Metrics προσφέρει μέτρα για διάφορες πτυχές της διαδικασίας λογισμικού που χωρίζονται σε:
- Μετρήσεις απαιτήσεων: Απαιτήσεις μήκους, πληρότητα
- Μετρήσεις προϊόντος: Αριθμός γραμμών κωδικοποίησης, μετρήσεις αντικειμενοστραφής, μετρήσεις σχεδιασμού και δοκιμής.
26) Τι είναι η διαμόρφωση;
Η τροποποίηση είναι μια τεχνική που χρησιμοποιείται για τη διαίρεση ενός συστήματος λογισμικού σε διάφορες διακριτικές ενότητες. Αυτό αναμένεται να εκτελέσει τα καθήκοντα ανεξάρτητα.
27) Τι είναι η συνοχή;
Η συνοχή είναι ένα μέτρο που καθορίζει την ενδο-αξιοπιστία μεταξύ των στοιχείων της ενότητας.
28) Αναφέρει κάποια εργαλεία ανάλυσης και σχεδιασμού λογισμικού;
Μερικά από τα πιο σημαντικά εργαλεία ανάλυσης και σχεδιασμού λογισμικού είναι:
- Διαγράμματα ροής δεδομένων
- Δομημένα διαγράμματα
- Δομημένα Αγγλικά
- Λεξικό δεδομένων
- Ιεραρχικά διαγράμματα εξόδου διεργασίας εισαγωγής
- Διαγράμματα σχέσεων οντοτήτων και πίνακες αποφάσεων
29) Τι σημαίνει διάγραμμα ροής δεδομένων επιπέδου-0;
Το υψηλότερο επίπεδο αφαίρεσης ονομάζεται Επίπεδο 0 του DFD. Ονομάζεται επίσης επίπεδο περιβάλλοντος DFD. Απεικονίζει ολόκληρο το σύστημα πληροφοριών ως ένα διάγραμμα.
30) Ποια είναι η κύρια διαφορά μεταξύ δομημένου αγγλικού και ψευδοκώδικα;
Τα δομημένα αγγλικά είναι μητρική αγγλική γλώσσα. Χρησιμοποιείται για τη σύνταξη της δομής μιας ενότητας προγράμματος. Χρησιμοποιεί λέξεις-κλειδιά γλώσσας προγραμματισμού. Από την άλλη πλευρά, ο Ψευδοκώδικας μοιάζει περισσότερο με τη γλώσσα προγραμματισμού χωρίς σύνταξη συγκεκριμένης γλώσσας.
31) Τι είναι ο δομημένος σχεδιασμός;
Ο δομημένος σχεδιασμός είναι μια σύλληψη του προβλήματος. Ονομάζεται επίσης σχεδιασμός λύσεων και βασίζεται στη στρατηγική «διαίρεση και κατάκτηση».
32) Τι είναι ο λειτουργικός προγραμματισμός;
Είναι μια μέθοδος προγραμματισμού, η οποία χρησιμοποιεί τις έννοιες μιας μαθηματικής συνάρτησης. Παρέχει μέσα υπολογισμού ως μαθηματικές συναρτήσεις, η οποία παράγει επίσης αποτελέσματα ανεξάρτητα από την κατάσταση του προγράμματος.
33) Τι είναι η διασφάλιση ποιότητας έναντι του ποιοτικού ελέγχου;
Η Διασφάλιση Ποιότητας ελέγχει εάν ακολουθείται η σωστή διαδικασία κατά την ανάπτυξη του λογισμικού, ενώ ο Ποιοτικός έλεγχος ασχολείται με τη διατήρηση της ποιότητας του προϊόντος λογισμικού.
34) Τι είναι τα εργαλεία CASE;
CASE σημαίνει Μηχανική Λογισμικού με τη βοήθεια υπολογιστή. Είναι σύνολο αυτοματοποιημένων προγραμμάτων εφαρμογών λογισμικού, τα οποία χρησιμοποιούνται για την υποστήριξη, ενίσχυση και ενίσχυση των δραστηριοτήτων SDLC.
35) Ποιο μοντέλο διεργασίας αφαιρεί ελαττώματα πριν από το πρόβλημα στο λογισμικό;
Η μέθοδος λογισμικού καθαρού χώρου απομακρύνει τα ελαττώματα προτού το λογισμικό αντιμετωπίσει προβλήματα.
36) Λύστε αυτό το πρόβλημα
Υπάρχουν είκοσι διαφορετικές κάλτσες δύο τύπων σε ένα συρτάρι σε ένα σκοτεινό δωμάτιο. Ποιος είναι ο ελάχιστος αριθμός κάλτσες που πρέπει να πάρετε για να βεβαιωθείτε ότι έχετε ένα αντίστοιχο ζευγάρι; "
Εάν πάρετε τρεις κάλτσες, μπορεί να είναι του ίδιου τύπου ακόμη και αν οι πιθανότητες είναι 50%. Οι πιθανότητες δεν είναι ποτέ ίση πραγματικότητα. Επομένως, ο μόνος τρόπος για να "διασφαλίσετε ότι έχετε ένα ταιριαστό ζευγάρι" είναι να πάρετε τουλάχιστον 11 αριθμό σοκ.
37) Πώς μπορείτε να βεβαιωθείτε ότι ο γραπτός κώδικάς σας που μπορεί να χειριστεί διάφορα είδη καταστάσεων σφάλματος;
Μπορώ να γράψω δοκιμές που καθορίζουν τις αναμενόμενες καταστάσεις σφάλματος.
38) Εξηγήστε τις διαφορές μεταξύ ενός νήματος και μιας διαδικασίας;
Μια διαδικασία είναι η παρουσία του προγράμματος υπολογιστή. Σε ένα μόνο πρόγραμμα είναι δυνατόν να έχουμε ένα ή περισσότερα νήματα.
39) Πες μου τη διαφορά μεταξύ ενός EXE και ενός DLL;
Το exe είναι ένα εκτελέσιμο πρόγραμμα, ενώ το DLL είναι ένα αρχείο που μπορεί να φορτωθεί και να εκτελεστεί δυναμικά από προγράμματα. Είναι ένα εξωτερικό αποθετήριο κώδικα για προγράμματα. Καθώς και τα δύο είναι διαφορετικά προγράμματα, χρησιμοποιήστε ξανά το ίδιο DLL αντί να έχετε αυτόν τον κώδικα στο αρχείο τους. Μειώνει επίσης τον απαιτούμενο χώρο αποθήκευσης.
40) Τι είναι η ισχυρή πληκτρολόγηση και η αδύναμη πληκτρολόγηση; Ποιο προτιμάται; Γιατί;
Η ισχυρή πληκτρολόγηση ελέγχει τους τύπους των μεταβλητών κατά το χρόνο μεταγλώττισης. Από την άλλη πλευρά, η αδύναμη πληκτρολόγηση ελέγχει τους τύπους του συστήματος κατά το χρόνο εκτέλεσης. Μεταξύ αυτών, η Ισχυρή πληκτρολόγηση προτιμάται πάντα επειδή ελαχιστοποιεί τα σφάλματα.
41) Περιγράψτε τη διαφορά μεταξύ του προγραμματισμού με διασύνδεση, του αντικειμένου και του προγραμματισμού.
- Ο προγραμματισμός διεπαφής βασίζεται σε συμβόλαια.
- Αντικειμενοστρεφής είναι ένας τρόπος για να γράψετε κοκκώδη αντικείμενα που έχουν έναν μόνο σκοπό.
- Ο Προγραμματισμός Προσανατολισμένου Προγράμματος είναι ο διαχωρισμός του κώδικα με τέτοιο τρόπο ώστε διάφορα αντικείμενα να φέρουν τα κύρια καθήκοντα και οι βοηθητικές εργασίες να εκτελούνται από ανεξάρτητα αντικείμενα.
42) Γιατί η χρήση αλιευμάτων (εξαίρεση) είναι πάντα κακή ιδέα;
Είναι κακή ιδέα γιατί:
- Καθώς δεν υπάρχει καθορισμένη μεταβλητή, δεν είναι δυνατή η ανάγνωση της εξαίρεσης
- Είναι καλό να χρησιμοποιείτε μια εξαίρεση όταν γνωρίζετε γνωστούς τύπους εξαιρέσεων.
43) Τι είδους δεδομένα διαβιβάζονται μέσω HTTP Headers;
Το σενάριο και τα μεταδεδομένα πέρασαν μέσω κεφαλίδων HTTP.
44) Πώς δίνετε προτεραιότητα στις απαιτήσεις;
Πρώτον, πρέπει να σχεδιάσετε ένα σύστημα αξιολογώντας τη δομή των δεδομένων. Στη συνέχεια, πρέπει να προχωρήσετε στη δομή κώδικα που απαιτείται για να την υποστηρίξετε.
45) Να μου δώσετε διαφορές μεταξύ αντικειμενοστραφής και εξαρτημένου σχεδιασμού;
Ο αντικειμενοστρεφής σχεδιασμός μπορεί εύκολα να ενθυλακωθεί σε κάποιο βαθμό στον σχεδιασμό που βασίζεται σε εξαρτήματα.
46) Πότε χρησιμοποιείτε πολυμορφισμό;
Ο πολυμορφισμός χρησιμοποιείται όταν υπάρχει ανάγκη για παράκαμψη λειτουργικότητας κατά την κληρονομική τάξη. Πρόκειται για κοινόχρηστα μαθήματα και κοινόχρηστα συμβόλαια.
47) Ποια είναι η διαφορά μεταξύ στοίβας και ουράς;
- Η ουρά είναι πάντα First In, First Out
- Το Stack είναι πάντα Last In, First Out
48) Τι είναι απαραίτητο για τον έλεγχο της ποιότητας του κώδικα;
Σύμφωνα με εμένα, το πλαίσιο δοκιμών μονάδας είναι απαραίτητο για τη δοκιμή της ποιότητας του κώδικα.
49) Πιστεύετε ότι η συντήρηση του λογισμικού είναι δαπανηρή;
Σύμφωνα με εμένα, η συντήρηση του λογισμικού δεν θα είναι ποτέ δαπανηρή αν χρησιμοποιούμε τη σωστή διαδικασία ανάπτυξης.
50) Να μου δώσετε διαφορές μεταξύ ετικετών και κλάδων;
Οι ετικέτες προορίζονται για εκδόσεις εκδόσεων που είναι προσωρινές θέσεις κράτησης για να κάνετε κάτι τέτοιο. Ωστόσο, οι κλάδοι διαγράφονται όταν αυτές οι αλλαγές συγχωνεύονται στον κορμό.
51) Πού είναι διαθέσιμη μια προστατευμένη μεταβλητή επιπέδου κλάσης;
Οι μεταβλητές επιπέδου προστατευμένης κατηγορίας είναι διαθέσιμες σε οποιαδήποτε υποκατηγορία που προέρχεται από την βασική κλάση.
52) Είναι δυνατόν να εκτελέσετε πολλά μπλοκ catch για μια δήλωση μιας δοκιμής;
Ναί. Μπορούν να εκτελεστούν πολλαπλά μπλοκ σύλληψης για μία δήλωση δοκιμής.
53) Πότε πρέπει να δηλώσετε μια τάξη ως αφηρημένη;
Πρέπει να δηλώσουμε μια τάξη ως αφηρημένη στις ακόλουθες περιπτώσεις:
- Όταν η τάξη κληρονομείται από μια αφηρημένη τάξη, αλλά δεν έχουν παρακαμφθεί όλες οι αφηρημένες μέθοδοι.
- Στην περίπτωση που τουλάχιστον μία από τις μεθόδους στην τάξη δηλώνεται ως αφηρημένη.
54) Αναπτύξτε έναν αλγόριθμο που εξάγει την τρέχουσα τοποθεσία σας και μια λίστα με τοποθεσίες ATM σε αυτήν την περιοχή. Λάβετε τα πλησιέστερα K ATM στην τοποθεσία σας.
Δημιουργήστε μια μέθοδο getDistance (a, b) που υπολογίζει την απόσταση μεταξύ a και b.
Κώδικας:
import java.util.HashMap;import java.util.Map;import java.util.PriorityQueue;public class PrioRQueueExample {public static void main(String[] args){PriorityQueuepq = new PriorityQueue ((x,y)-> {Double z = y-x;return z.intValue(); });PrioRQueueExample pqe = new PrioRQueueExample();//Number of ATMs to return i.e. Kint num_ATMs = 3;double curr_loc = 0.00;Map nallATMLocs = new HashMap ();//Map of ATM names and their distance co-ordinatesnallATMLocs.put("atm1",45.0);nallATMLocs.put("atm2",78.0);nallATMLocs.put("atm3",54.0);nallATMLocs.put("atm4",64.0);nallATMLocs.put("atm5",35.0);nallATMLocs.put("atm6",42.0);nallATMLocs.put("atm7",57.0);nallATMLocs.put("atm7",1.00);nallATMLocs.forEach((atm,dist) ->{if(pq.size() < num_ATMs){pq.add(pqe.getLocation(curr_loc,dist));}else{if( pq.peek() > pqe.getLocation(curr_loc,dist)){pq.poll();pq.add(pqe.getLocation(curr_loc,dist));}}});pq.forEach(atmLoc -> System.out.println(atmLoc));}private double getLocation(double curr,double atm){return atm - curr;}}