Software Arsitektur antipatterns

chmood


Software Arsitektur antipatterns

Arsitektur antipatterns fokus pada struktur sistem-tingkat dan tingkat perusahaan aplikasi dan komponen. Meskipun disiplin teknik arsitektur perangkat lunak relatif belum matang, apa yang telah ditentukan berulang kali oleh penelitian software dan pengalaman adalah pentingnya menyeluruh arsitektur dalam pengembangan perangkat lunak:

Arsitektur yang baik merupakan faktor penting dalam keberhasilan pengembangan sistem.

Pengembangan perangkat lunak arsitektur berbasis adalah pendekatan yang paling efektif untuk membangun sistem. Pendekatan arsitektur-didorong lebih unggul persyaratan-driven, dokumen-driven, dan pendekatan metodologi-driven. Proyek sering berhasil terlepas dari metodologi, bukan karena itu.

Arsitektur perangkat lunak adalah bagian dari arsitektur sistem secara keseluruhan, yang mencakup semua aspek desain dan implementasi, termasuk hardware dan pemilihan teknologi. Prinsip penting dari arsitektur meliputi berikut ini:

Arsitektur memberikan pandangan dari keseluruhan sistem. Ini membedakan arsitektur dari analisis dan desain model lain yang berfokus pada bagian dari suatu sistem.

Sebuah cara yang efektif untuk model sistem keseluruhan adalah melalui beberapa sudut pandang. Sudut pandang berkorelasi dengan berbagai pemangku kepentingan dan para ahli teknis dalam proses sistem-pembangunan.

The antipatterns berikut fokus pada beberapa masalah umum dan kesalahan dalam penciptaan, pelaksanaan, dan pengelolaan arsitektur.

Software otomatis Stovepipe

Antipattern ini terjadi ketika melakukan migrasi sistem perangkat lunak yang ada untuk infrastruktur didistribusikan. Sebuah Software otomatis Stovepipe muncul ketika mengubah interface perangkat lunak yang ada untuk interface didistribusikan. Jika desain yang sama digunakan untuk komputasi terdistribusi, sejumlah masalah muncul.

Cerobong asap Perusahaan

Sistem Stovepipe ditandai oleh struktur perangkat lunak yang menghambat perubahan. Solusinya refactored menjelaskan cara subsistem abstrak dan komponen untuk mencapai struktur sistem yang ditingkatkan. The Stovepipe Perusahaan antipattern ditandai oleh kurangnya koordinasi dan perencanaan di satu set sistem.

Campur aduk

Ketika elemen desain horisontal dan vertikal bercampur, sebuah hasil arsitektur yang tidak stabil. Pembauran elemen desain horisontal dan vertikal membatasi usabilitas dan kekokohan arsitektur dan komponen perangkat lunak sistem.

Cerobong asap Sistem

Subsistem yang terintegrasi secara ad hoc menggunakan beberapa strategi dan mekanisme integrasi, dan semua titik terintegrasi ke titik. Pendekatan integrasi untuk setiap pasangan subsistem tidak mudah leveraged terhadap bahwa subsistem lainnya. The Stovepipe Sistem antipattern adalah sistem tunggal analogi Stovepipe Enterprise, dan berkaitan dengan bagaimana subsistem dikoordinasikan dalam satu sistem.

Menutupi Aset Anda

Proses perangkat lunak dokumen-driven sering menghasilkan kurang berguna persyaratan dan spesifikasi karena penulis menghindari membuat keputusan penting. Untuk menghindari membuat kesalahan, penulis mengambil kursus yang lebih aman dan rumit pada alternatif.

Vendor Lock-In


Vendor Lock-In terjadi pada sistem yang sangat tergantung pada arsitektur proprietary. Penggunaan lapisan isolasi arsitektur dapat memberikan kemerdekaan dari solusi-vendor tertentu.

Serigala Tiket

A Wolf Tiket adalah produk yang mengklaim keterbukaan dan kesesuaian dengan standar yang tidak memiliki arti dilaksanakan. Produk ini disampaikan dengan antarmuka proprietary yang mungkin berbeda secara signifikan dari standar yang diterbitkan.

Arsitektur oleh Implikasi

Manajemen risiko dalam pengembangan sistem follow-on sering diabaikan karena terlalu percaya dan keberhasilan sistem baru-baru ini. Pendekatan arsitektur umum yang disesuaikan dengan masing-masing sistem aplikasi dapat membantu mengidentifikasi kebutuhan unik dan daerah berisiko.


Tubuh-tubuh hangat


Proyek perangkat lunak sering dikelola dengan programmer dengan luas yang bervariasi keterampilan dan tingkat produktivitas. Banyak dari orang-orang ini dapat diberikan untuk memenuhi tujuan ukuran staf (yang disebut "tubuh hangat"). Programmer terampil sangat penting untuk keberhasilan proyek perangkat lunak. Disebut programmer heroik yang sangat produktif, namun sedikitnya 1 di 20 memiliki bakat ini. Mereka menghasilkan urutan besarnya software lebih kerja dari programmer rata-rata.

Desain oleh Komite

The antipattern klasik dari badan standar, Desain oleh Komite menciptakan arsitektur terlalu rumit yang tidak memiliki koherensi. Klarifikasi peran arsitektur dan ditingkatkan fasilitasi proses dapat refactor proses pertemuan buruk menjadi peristiwa yang sangat produktif.

Swiss Army Knife

Sebuah Swiss Army Knife adalah sebuah antarmuka kelas terlalu kompleks. Desainer mencoba untuk menyediakan semua kemungkinan penggunaan kelas. Dalam upaya itu, dia menambahkan sejumlah besar tanda tangan antarmuka dalam usaha sia-sia untuk memenuhi semua kebutuhan.


Menemukan kembali Roda


Kurangnya meresap transfer teknologi antara proyek perangkat lunak mengarah ke reinvention substansial. Pengetahuan desain dimakamkan di aset warisan dapat dimanfaatkan untuk mengurangi waktu-ke-pasar, biaya, dan risiko.

The Grand Old Duke of York

Proses perangkat lunak egaliter sering mengabaikan bakat orang untuk merugikan proyek. Keterampilan pemrograman tidak sama dengan keterampilan dalam mendefinisikan abstraksi. Tampaknya ada dua kelompok yang berbeda yang terlibat dalam pengembangan perangkat lunak: Pelukis abstrak dan rekan-rekan mereka yang implementationists.


Komentar