Giriş Giriş Giriş

İnşaat mühendisliği yazılımı, tasarım, analiz ve kritik altyapı yönetimi altında –bridges, otoyollar, su sistemleri ve binalar. Bu sistemler karmaşıklıkta büyürken, bu yüzden onları etkileyen kodlar, sıralamalar veya proje zaman çizelgesini inceler.Bu makale, sivil mühendislik yazılım geliştirmede en sık yeniden yapılandırmak için gerekli olan hataları incelemek ve güvenilir adımlar atabilir, ölçeklenebilir ve güvenilir hale getirmek için gerekli stratejilerin sağlanması için gerekli olan kodları inceler.

İnşaat Mühendisliği Yazılımında Refaksiyon Yüksek Stakes

İnşaat mühendisliği yazılımı, kamu güvenliğini etkileyen hesaplamaları ele alır, maliyet tahminleri ve düzenleyici bir uyum. İnşaatlı bir analiz modülünde yanlış hesaplanabilir, bir hidroloji modelinde bir hata, yanlış tasarlanmış su savunmalarını engelleyebilir.Refaksiyonel olarak, riskin tolere edilebilir olduğu tam olarak riskin ne kadar dikkate alınabileceğini ortaya koyar.

Sivil Mühendislik Yazılım Geliştirmede Yaygın Hatalar

1. Önce ve Yeniden İftifak Edilmeden Önce

En acil hata, sağlam bir test paketi olmadan yeniden faktörlemeye yol açıyor. Sivil mühendislik kodu genellikle hemen açık olmayan kenar vakaları ile matematiksel modellere dayanıyor - sıfır uzunlukta elementler, negatif materyal dezenfeksiyonlar veya yakın bir birim olmadan, entegrasyon ve regresyon testleri olmadan, geliştiricilerin sessiz bir şekilde hesaplamaları mümkün olmayan birkaç sonuç elde etmek için hiçbir güvenlik ağı yoktur.

Örnek from practice

Bir takım, 2005'ten sonra tek bir test davasına dayanan bir temel tasarım modülünü yeniden düzenlemektedir. Kurulumdan sonra, yazılım, en çok raporlarda fark etmek için% 3 daha düşük olan toprak taşıma kapasitelerini üretmeye başladı - milyonlarca dolara kadar tasarım ayağını yenilemek için yeterince az.

2. Unintentionally Change Functionity

Yeniden düzenleme mantrası “önemli davranış”, ancak beton tasarımında yanıltıcı olarak eşdeğer görünebilir, ancak yanlışlayıcı sayısal devrelerin ortaya çıkmasının (örneğin, Newton-Raphson’u bir yük dengelemek için) tekrarlamak, bir döngüden diğerine kadar dengelemek, dengesiz çıktılara yol açan bir değişkene veya sınır hatasına yol açan bir formüldür.

Bu erken nasıl yakalanacağız

Pair, gerçek sayısal çıktıları geniş bir giriş parametresi aralığında karşılaştıran yazılım geliştiricileriyle deneyimli domain uzmanları - sadece bir avuç manuel seçilmiş değer değil.

3. OverRefaksiyon: Komplekslik İyileştirme Olarak Ulaşılır

Overrephane, geliştiricilerin tasarım desenleri veya özetleri uygulamadığı zaman, gereksiz yere yerleştirme ve korumayı zorlaştırır.In Civil Engineering software, over-rephaing often appears as extreme use of replica hierarchies for material properties (e.g., 03.D) which a simple configuration object would not to the simple lineercully results.Concrete[Döneticileri yüksek çözünürlükte bir şekilde çözemez.[Döneticileri)

Sizin aşırı faktörlü olduğunuzu gösteren işaretler

  • Tasarımı alan mantığından daha fazla zaman ayırarak geçirirsiniz.
  • Yeniden düzenleme, fonksiyon uzunluğuna dikkat etmeden birçok yeni dosyayı tanıtmaktadır.
  • Asla değişiklik yapmadığı davranış için yapılandırma seçenekleri kendiniz bulabilirsiniz.
  • Performans karşılaştırmaları refaksiyondan sonra yavaş bir düşüş gösteriyor.

4. Yapısal Değişikliklerin Performanslarını Tanımlama

İnşaat mühendisliği yazılımı genellikle yoğun bir şekilde hesaplanır. Örneğin, bir matrisin genel bir kütüphaneye eklenmesi, ölçeklendirme emriyle yüksek oranda artırılabilir.Bir başka ortak hata, küçük fonksiyonları çok istekli bir şekilde ortaya koyar - okuma kabiliyeti için iyi bir şekilde optimize edilmiş ve sıcak yollarda performansa dönüştürmeyi önler. Örneğin, sivil mühendislerden parametrik çalışmalara genellikle 10 saatlik bir performansla birlikte parametrik çalışmalar yaparak,% 10 oranında tasarruf sağlar.

Mitigation strateji

Daha önce ve yeniden faktörlemeden önce ve mikro-benchmarks kullanın kritik sayısal çekirdekler için (örneğin, element sertlik matrisi hesaplama, sparse lineer sistem çözümü). Bir performans bütçe oluşturun ve net bir gerekçe olmadan ihlal eden değişiklikleri onaylayın.

5. Version Control Discipline olmadan Yeniden Yeniden Yeniden Yeniden Düzenleme

Sürüm kontrolü yaygın olarak kullanılıyor olsa da, birçok takım, yeni özellikler veya bug düzeltmeleri ile birlikte yeniden düzenlemez. Bu, regresyonları izole etmek ve yanlış olan yeniden faktörleme girişimlerine yol açmaz. İlgili bir hata endüstri standartlarına karşı kazınamaz veya daldırır; refaksiyon başarısız olduğunda, takım, önceki çalışma durumunu geri yüklemeye mücadele edebilir, özellikle de diğer taahhütler geçici olarak yapılırsa.

En İyi Uygulama En İyi Uygulama

Yeniden düzenleme işlemiş tutun - karmaşık bir özellik yoktur.Ücretsiz iş mesajlarını kullanın:0)why) yapısal değişimin özel bir bölümünü kullanmayı düşünün ve sadece tam test paketini ve alan özel geçerliliği kontrollerini aldıktan sonra birleştirin.

6. Refaksiyon sırasında Domain-Specific Validation

İnşaat mühendisliği yazılımı genellikle el hesaplamalarına karşı doğrulanır, yayınlanan kriter veya fiziksel test verileri.Refaksiyon sırasında, takımlar bazen bağımsız kaynaklardan elde edilen ünite testlerine güvenebilirler (örneğin, bir birim testi, bir hear-force hesaplamasının kendi yanlış olan belirli bir değer geri döndüğünü iddia edebilir – bu hatanın hiçbir zaman yakalanamayacağı bir işareti vardır.

Önerilen yaklaşım

Yazara dayalı mühendislik yayınlarından veya sertifikalı yazılımdan elde edilen bir referans testi vakalarını koruyun.Her rektör oturumundan sonra bunları çalıştırın ve bilinen değerleri karşılaştırın. Automate bu süreci sürekli bütünleşme boru hattının bir parçası olarak karşılaştırın.

Hatalardan Kaçmak için Stratejiler

1. Kapsamlı Test Güvenliği Net İlk Önce Oluştur

Tek bir çizgiye dokunmadan önce, alanla ilgili test altyapısına yatırım yapın. Bu, sadece birim testleri değil aynı zamanda tüm iş akışlarını (örneğin, tepki kuvvetlerinin toplanması, uygulanan yüklerin toplanmasının güvenilir olmayan kod yollarını tanımlamak için kullanım araçlarına eşitleştirilmesi anlamına gelir.

Dış bağlantı: Teste dayalı bir gelişme hakkında ayrıntılı bir kılavuz için, bakınız:0)Better Scientific Software).

2. Formal Eşdeğerlik Kontrolü ile Fonksiyonellik

Kritik sayısal rutinler için, etkilenen hassaslarla yüzen çıkışları karşılaştırabilecek araçlar kullanın. Basit “sert eşit”, derleyici optimizasyonlardan veya yeniden işlem siparişlerinden gelen farklılıkların yuvarlaklanması nedeniyle başarısız olabilir. Bunun yerine, her önemli orta değerle ilgili kayıtları uygulayın, o zaman tekrarlayıcı kod ve günlükler için aynı girişleri tekrar oynatın.

3. Küçük, Diktilebilir Adımlar

“Red-Green-Refaksiyon” döngüsüni takip edin, kod zaten işe yaradığı zaman bile.Her bir rektör adım, çok fazla çalışmayı kaybetmeden gizli olarak geri dönebilmeli. Örneğin, değişken olarak, sonra çalıştırılan testleri alın; döngü yapısını değiştirmek, sonra testleri çalıştırmak için daha kolay.Bir geçişte birden fazla rektörlü modeli birleştirmekten kaçının. Bu disiplin, kodları yönetmek için uygulanabilir hale getirir.In practice, using 50 line of code is easier to validate than one touch.

4. Kod İncelemelerinde Domain Uzmanları

Revizyon değerlendirmeleri sadece teknik olmamalıdır. Yorum sürecinde güçlü bir alan bilgisi ile bir geliştirici veya geliştiriciyi bir araya getirmelidir.Bu işbirliği, basitleştirilmiş bir döngünün fiziksel kısıtlamayı göz ardı edebilir (örneğin, Posisson'un oranı 0 ile 0,5 arasında olmalıdır) veya bir isim değiştirdiğinde, tasarım kodunda bir terim için sezgisel bağlantıyı kaybeder.Bu işbirliği aynı zamanda yazılımların kavramsal bütünlüğüne yardımcı olabilir - kod sadece elvestig.

Dış bağlantı: TheETHFLT:0)Software Sürdürülebilirlik Enstitüsü), alan-uzman kod değerlendirmeleri için pratik adımlar sunar.

5. Deney Güvenli Bir Şekilde Deneye Sürüm Kontrolü

Her bir refaksiyon çaba için özel bir şube oluşturun.Ücretsiz isimleri kullanın:0) Bu nedenle geliştiriciler kapsamını bilir. Merge sadece rekreasyon testlerinden sonra, 03.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D

6. Automate Domain-Specific Validation

Standart doğrulama örneklerinin çalışmasını otomatik olarak takip edin – Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) sonlu elemanlar analizi için kriterler veya ASCE 7 rüzgar yük örneklerini kabul eden Mağaza, bu çekleri CI boru hattınıza entegre eder, böylece her bir taahhütün (onlara karşı) doğrulanır.Bu, kabul edilen mühendislik sonuçlarıyla ilgili olarak asla sessiz bir şekilde sapmaları sağlar.

Dış bağlantı: TheETHFLT:0)NIST Uygulamalı Matematik ve C ⁇ Bilim) portal yapısal ve akışkan dinamikler için kriter problemleri sağlar.

Vaka Çalışması: Bir Trafik Simülasyonu Modüle Yeniden Yardımcı Olmak

Bir orta ölçekli mühendislik firmasından gerçek bir dünya senaryosu düşünün. Trafik simülasyonu yazılımı, şerit geometrisi için daha küçük bir temel modül içeriyordu ve sinyalizasyonlu kesişmeler ile tekrarlanabilir.The original code was written in a single 2000-line function, make it hard to add new traffic control algorithms. A team to rephane-seplike modelleri kullanarak tekrarlamak için daha uzun süre boyunca tekrarlayıcı sonuçlar verdi.

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Refaksiyon, yetersiz testlerin ortak hatalarından kaçınmak, sınırsız işlevsellik, performans ihmali, zayıf sürüm kontrolü ve eksik alan doğrulamasını sağlamak için eşsiz riskler taşır, ancak bu stratejiler, güvenilir bir şekilde, güvenli bir şekilde, güvenli bir şekilde doğrulanabilir bir şekilde, doğru bir şekilde yapılanma bağlı olarak, resmi equivalans kontrollerini kullanarak, alan uzmanları, disipline edilen zayıf yönleri kullanarak, alan uzmanları, disipline edilen bir şekilde doğru bir şekilde yeniden tasarlamaya yardımcı olur.