როგორ ავიცილოთ თავიდან პროგრამული უზრუნველყოფის პრობლემები
Miscellanea / / November 29, 2021
ამ ციფრულ ეპოქაში, თქვენ უნდა გსმენიათ სოციალური მედიის გიგანტების შესახებ, როგორიცაა Facebook და Twitter და ელექტრონული კომერციის პლატფორმები, როგორიცაა Alibaba და Amazon. ეს ონლაინ ვებსაიტები ეყრდნობა სხვადასხვა პროგრამულ პაკეტებს მათი მუშაობისთვის. ამ პროგრამებმა სრულიად გულწრფელად შეცვალა ჩვენი მუშაობის, აზროვნების და ცხოვრების წესი.
![Gt როგორ დაგვატეხა პროგრამულმა](/f/0f7a9bf696d466f9ec123df1e1c0a618.png)
გარდა ამისა, ბევრი მოწყობილობა, რომელიც ადრე მხოლოდ მექანიკური იყო, ახლა კონტროლდება პროგრამული უზრუნველყოფის საშუალებით. მაგალითად, თერმოსტატები ოდესღაც ელექტრომექანიკური მოწყობილობები იყო. თუმცა, ისინი ახლა დიდად ეყრდნობიან პროგრამულ უზრუნველყოფას ფუნქციონირებისთვის.
თუმცა, პროგრამული შეცდომები შეიძლება საკმაოდ პრობლემური იყოს, განსაკუთრებით მათზე ჩვენი ყოველდღიური აქტივობების გაზრდილი დამოკიდებულებით. სინამდვილეში, იყო რამდენიმე შემთხვევა, როდესაც პროგრამული უზრუნველყოფა არ მიაღწია თავის დანიშნულებას, რამაც გამოიწვია უსიამოვნო შედეგები.
ამ სტატიაში ჩვენ ვსაუბრობთ 4 შემთხვევაზე, როდესაც პროგრამული უზრუნველყოფის შესრულებამ ძირითადად გამოტოვა თავისი ნიშანი და როგორ ავიცილოთ თავიდან პროგრამული უზრუნველყოფის პრობლემები.
1. აშშ-ის მრავალსახელმწიფო 911-ის გათიშვა
![სასწრაფო დახმარება](/f/d54bb4c13d8759fef7bc0a17d98247be.jpg)
911 არის კრიტიკული სერვისი, რომელიც საშუალებას აძლევს პირებს დაუკავშირდნენ სასწრაფო დახმარების პერსონალს საჭიროების შემთხვევაში. ზოგჯერ, 911-ის საშუალებით სასწრაფო დახმარების დისპეტჩერებთან დაკავშირება შეიძლება ფაქტიურად განასხვავოს სიცოცხლესა და სიკვდილს შორის.
ამიტომ, კატასტროფა იყო, როდესაც 2014 წლის 9 აპრილს, 911 ზარის მარშრუტიზაცია ვერ მოხერხდა აშშ-ს შვიდ შტატში, მათ შორის კალიფორნიაში, ფლორიდაში, მინესოტაში, ჩრდილოეთ კაროლინაში, პენსილვანიაში, სამხრეთ კაროლინასა და ვაშინგტონში.
ეს გათიშვა გამოწვეული იყო კოდირების პრევენციული შეცდომით, რომელიც მოხდა კოლორადოს გადაუდებელი ზარის მართვის ცენტრში, რომელიც ინტრადოს საკუთრებაში იყო.
2. United Airlines-ის ფლოტის დამიწება
![United Airlines](/f/0808b947aa635e7e6b42e1797e3e7177.jpg)
2015 წლის ივლისში United Airlines იძულებული გახდა დაამყარა მთელი მისი ფლოტი თვითმფრინავი პროგრამული უზრუნველყოფის შეფერხების გამო. ამან გავლენა მოახდინა 4,900-ზე მეტ ფრენაზე გლობალურად და ბევრი მგზავრი დატოვა აეროპორტებში გაჩერებული და აშკარად იმედგაცრუებული.
ალბათ იყო ეკონომიკური ზემოქმედებაც, რადგან ავიაკომპანიას მოუწევდა კომპენსაციის გადახდა მრავალი მგზავრის უხერხულობისთვის. ასევე იყო ალბათ რამდენიმე მნიშვნელოვანი საქმიანი შეხვედრა, რომელიც ჩაიშალა დამიწების გამო.
3. Toyota Camry ამაჩქარებლის პედლის გაუმართაობა
![ჩახლართული არეულობა](/f/7d13843f69c8690504ba0c370b225cea.jpg)
2007 წლის სექტემბერში ჟან ბუკაუტი მგზავრ ბარბარა შვარცთან ერთად მგზავრობდა ოკლაჰომაში 69-ე სახელმწიფოთაშორის გზატკეცილზე, როდესაც მას პრობლემები შეექმნა. აკონტროლებს თავის Toyota Camry-ს.
მან სცადა ფეხების აწევა დროსელიდან, მაგრამ მანქანა აგრძელებდა აჩქარებას. სამუხრუჭე პედლმა ვერ გააჩერა მანქანა და ის იძულებული გახდა გამოეყენებინა სასწრაფო დამუხრუჭება.
სამწუხაროდ, ამან მანქანა ნაპირზე გადაიყვანა. ამის შედეგად შვარცი გარდაიცვალა და ბუაუტი კრიტიკული დაზიანებების გამო საავადმყოფოში ხუთი თვის განმავლობაში იმყოფებოდა.
![Ავტოავარია](/f/8175775ac7aafbafd8abd8e944c70441.jpg)
ვარაუდობდნენ, რომ ავარია მოხდა კოდირების რამდენიმე არაადეკვატურობის გამო, რამაც გამოიწვია დავალების ავარია Camry's CPU-ში. ეს CPU აკონტროლებს ფუნქციების უზარმაზარ რაოდენობას, მათ შორის ანთებას, დროსელის კონტროლს და კრუიზკონტროლს.
ტოიოტას კოდი ჩახლართულ არეულობად იქცა მას შემდეგ, რაც რამდენიმე წლის განმავლობაში ახალი კოდები ძველებურად გროვდებოდა. ამას ჩვეულებრივ უწოდებენ "სპაგეტის კოდს".
თუმცა, Bookout-ის ავარიამ ეს საკითხი ყურადღების ცენტრში მოექცა და ხაზი გაუსვა Toyota-ს ხარვეზებს მათ პროგრამულ პროცესში. აღმოჩნდა კიდეც, რომ 10 მილიონზე მეტი გზა არსებობდა არასასურველი აჩქარება შესაძლოა მოხდესტოიოტას კოდის სტრუქტურის საფუძველზე.
Nest თერმოსტატის გაუმართაობა
![Nest_თერმოსტატი_1](/f/11f4f07b8fa6e459de52cb78c8f7571e.jpg)
Nest არის კომპანიაალფაბეტის კუთვნილი, რაც ჭკვიან თერმოსტატებს ქმნის. ეს თერმოსტატები საკმაოდ მოხერხებულია და მომხმარებლებს საშუალებას აძლევს აკონტროლონ თავიანთი სახლის ტემპერატურა სმარტფონებიდან.
გასულ ზამთარს Nest თერმოსტატები განიცადა ხარვეზი პროგრამული უზრუნველყოფის გაუმართავი განახლების სახით, რამაც გამოიწვია მათი ბატარეების დაცლა. სამწუხაროდ, ეს შეცდომა შუა ზამთარში მოხდა, რამაც რამდენიმე მომხმარებელი დროებით სითბოს გარეშე დატოვა. ეს ნამდვილად არის ის, რაც არ გინდათ მოხდეს წლის ამ დროს.
პროგრამული უზრუნველყოფის საკითხების მოკლე ანალიზი
მიდგომები, როგორიცაა მოდელებზე დაფუძნებული დიზაინი და TLA+, საშუალებას აძლევს დეველოპერებს მიიღონ უფრო დიდი სურათი იმის შესახებ, თუ როგორ მუშაობს მათი პროგრამული უზრუნველყოფა.
ბრეტ ვიქტორი, გამოჩენილი კომპიუტერული მკვლევარი, მიიჩნევს, რომ არსებობს გათიშვა პროგრამისტებსა და პრობლემებს შორის, რომელთა გადაჭრას ისინი კოდებით ცდილობენ.
ამ გათიშვის გამო, პროგრამისტებისთვის რთული ხდება იმის წარმოდგენა, თუ რის ჩაწერას ცდილობენ კოდებში. ვიქტორი ფიქრობს, რომ ეს არის ერთ-ერთი ხელშემწყობი ფაქტორი იმისა, რომ პროგრამული უზრუნველყოფა იყოს შეცდომით.
თუმცა, არის იმედი. მიდგომები, როგორიცაა მოდელზე დაფუძნებული დიზაინი და TLA+ საშუალებას აძლევს დეველოპერებს მიიღონ უფრო დიდი სურათი იმის შესახებ, თუ როგორ მუშაობს მათი პროგრამული უზრუნველყოფა.
![შეცდომების ტესტირება](/f/611d0faaae40d1b08f82dd02d70b5361.jpg)
მოდელზე დაფუძნებული დიზაინი, როგორც სახელიდან ჩანს, პროგრამული უზრუნველყოფის შემუშავების საშუალებას იძლევა ვიზუალური მოდელების საშუალებით. TLA+, რომელიც ნიშნავს მოქმედებების დროებითი ლოგიკის შემოკლებას, არის ენა, რომელიც შექმნილია კომპიუტერული პროგრამის სპეციფიკაციების დასაწერად. რაც მთავარია TLA+-ში არის ის, რომ ის იძლევა პროგრამული უზრუნველყოფის ამომწურავი ტესტირებისა და გადამოწმების საშუალებას, სანამ ის გახდება ცნობილი.
როგორც მოდელზე დაფუძნებულმა დიზაინმა, ასევე TLA+-მა უკვე დაამტკიცა თავისი მარილი. Esterel ტექნოლოგიები, პროგრამული უზრუნველყოფის დამუშავების ფირმა, იყენებს მოდელზე დაფუძნებულ დიზაინს უსაფრთხოებისთვის კრიტიკული პროგრამული უზრუნველყოფის შესაქმნელად, ხოლო TLA+ გამოიყენებოდა ისეთების მიერ მაიკროსოფტი გამოასწორებს Xbox-ის შესაძლო კატასტროფულ შეცდომას და ევროპის კოსმოსური სააგენტოს მიერ გადაწერს ზონდს, რომელიც დაეშვა კომეტა.
კოდის დაწერის პროცესს პროგრამისტები დიდ პატივს სცემენ. ბევრი მათგანი უბრალოდ დაინტერესებულია კოდების დაწერის პროცესით. ამიტომ, გამოწვევაა ზოგიერთი პროგრამისტის დათანხმება ისეთი მიდგომებით, როგორიცაა მოდელებზე დაფუძნებული დიზაინი და TLA+. ეს მიდგომები ხშირად აღიქმება, როგორც მკაცრად აკადემიური, რეალურ სამყაროში სიცოცხლისუნარიანობის გარეშე. თუმცა, შეხედულების შეცვლა რაც შეიძლება ადრე უნდა მოხდეს.
საბოლოო აზრები
პროგრამული უზრუნველყოფა სულ უფრო ხშირად გამოიყენება აპლიკაციებში, რომლებიც საჭიროებენ უსაფრთხოების უსაფრთხოების ზომებს. პროგრამული უზრუნველყოფის დიზაინის უკეთესი მეთოდები უნდა დაინერგოს მთელ მსოფლიოში, რადგან ასეთი აპლიკაციები სასიცოცხლოდ მნიშვნელოვანია ჩვენს ცხოვრებაში.
პროცესები, როგორიცაა ავტომატიზაცია, დღესდღეობით დიდწილად ეყრდნობა პროგრამულ უზრუნველყოფას, მაგრამ კოდის ხაზში ერთმა შეცდომამ შეიძლება მიგვიყვანოს დიდ წარუმატებლობამდე, როგორც ზემოთ მოყვანილი შემთხვევები აჩვენებს.
![კოდირება](/f/0e40b94bd4b6479685cfa47758b960ac.jpg)
ახლა წარმოიდგინეთ რაღაც ხელოვნური ინტელექტის (AI) მსგავსი, რომელიც ჩართულია ამ აპლიკაციებში. AI არის საკმარისად საშინელი თავისთავად პროგრამული ხარვეზების გარეშე. დაამატეთ შეცდომები ნარევში და ვერაფერს გეტყვით, რა შეიძლება მოხდეს.
თუმცა, აქ არის ვერცხლის უგულებელყოფა. მცირე შრომითა და ახალი ხელსაწყოებით, ჩვენ შეგვიძლია შევქმნათ უკეთესი პროგრამული უზრუნველყოფა და ხელოვნური ინტელექტი, უფრო სწორად შემუშავებით და მის საყრდენებზე ტესტირებით.
იმედი ვიქონიოთ, რომ ეს კრიტიკული საკითხი სერიოზულად იქნება მიღებული შესაბამისი ხელისუფლების მიერ, რათა ჩვენ შევძლოთ პროგრამული უზრუნველყოფის სრული პოტენციალის გამოყენება, მაგრამ მხოლოდ უსაფრთხო და ჭკვიანი მომავლის ასაშენებლად.