510 likes | 668 Views
SOFTWARE DESIGN. Stages of design. Merancang adalah proses kreatif Kuncinya harus sering berlatih Tiga tahap mengatasi problema dalam perancangan. BUAT RANCANGAN RINCI. TENTUKAN RANCANGAN GLOBAL. PELAJARI & PAHAMI PERMASALAHAN. Stages of design. Tiga tahap
E N D
Stages of design • Merancang adalah proses kreatif • Kuncinya harus sering berlatih • Tiga tahap mengatasi problema dalam perancangan BUAT RANCANGAN RINCI TENTUKAN RANCANGAN GLOBAL PELAJARI & PAHAMI PERMASALAHAN
Stages of design • Tiga tahap • mengatasi problema dalam perancangan(ljt) • Pelajari & pahami permasalahan • Tanpa pemahaman tidak bermanfaat • Pemahaman bisa salah • Pemahaman yg salah membawa kearah yg salah • Pemahaman yang benar • Memudahkan penerimaan oleh user
Stages of design • Lihat dari berbagai sudut pandang • Kebutuhan bisa terlihat berbeda • Cara memahami kebutuhan • Gunakan berbagai pemodelan
Stages of design • Tiga tahap • mengatasi problema dalam perancangan(ljt) • Tentukan rancangan global • Buat garis besar pemecahan permasalahan • Rancang lebih dari satu alternatif • kemudian lakukan evaluasi bersama user • Pilihan solusi tergantung • Pengalaman & pengetahuan perancang • Mempengaruhi bentuk & pilihan solusi
Stages of design • Ketersediaan reusable component • Komponen yang diadopsi dari sistem lain • Kesederhanaan (simplicity ) • rancangan harus diupayakan sederhana
Stages of design • Tiga tahap • mengatasi problema dalam perancangan (ljt) • Buat rancangan rinci • Solusi yang terpilih dirinci • Dilakukan tahap-tahap implementasi • Terdiri dari-tahap-tahap • Perancangan antar muka • Perancangan komponen • Perancangan struktur data • Perancangan algoritma
Stages of design • Rancangan rinci bisa memperlihatkan • Kesalahan • ketidak lengkapan TEMUKAN & PERBAIKI
Tahap-tahap perancangan SPESIFIKASI KEBUTUHAN RANCANGAN ARSITEKTUR SPESIFIKASI ABSTRAK RANCANGAN ANTAR-MUKA RANCANGAN KOMPONEN RANCANGAN STRUKTUR DATA RANCANGAN ALGORITMA ARSITEKTUR SISTEM SPESIFIKASI PERANGKAT LUNAK SPESIFIKASI ANTAR-MUKA SPESIFIKASI KOMPONEN SPESIFIKASI STRUKTUR DATA SPESIFIKASI ALGORITMA
Tahap-tahap perancangan • Rancangan arsitektur • Sistem akan berisi apa saja • Komponen apa yang terdapat di dalam sistem • Penentuan sub-sistem yang mendukung • Interaksi sistem dengan lingkungannya • Sistem apa saja yang ada disekitarnya • Apa yang dibutuhkan dari sistem disekitarnya • Apa yang dapat diberikan untuk sistem disekitarnya
Tahap-tahap perancangan • Spesifikasi abstrak • Spesifikasi tentang perilaku sistem • Dibuat untuk tiap sub-sistem • Satu untuk tiap sub-sistem • Menjelaskan tentang: • Kemampuan sistem • Apa yang dapat dilakukan oleh sistem • Apa yang tidak dapat dilakukan oleh sistem • batasan sistem • Bagaimana sistem melakukan proses
Tahap-tahap perancangan • Rancangan antar-muka • Penghubung antara sistem dengan dunia luar • Sistem dengan sistem lainnya • Sistem dengan user • Sub-sistem satu dengan lainnya • Rancangan komponen • Proses dikelompokkan • Ditempatkan ke dalam modul-modul terpisah • Penentuan antar-muka antar komponen
Tahap-tahap perancangan • Rancangan struktur-data • Rincian struktur-data yang dipakai oleh sistem • Pilihan struktur data ditentukan • Rancangan algoritma • Rincian algoritma pemecahan masalah • Pilihan pemanfaatan algoritma tertentu
Strategi perancangan STRATEGI PERANCANGAN FUNCTIONAL DESIGN OBJECT-ORIENTED DESIGN
Strategi perancangan • Rancangan fungsional • Sistem dirancang dengan melihat proses apa saja yang ada di dalamnya • Bertahap dari high-level ke detail design • Strategi yang dipakai structure design memanfaatkan : • Data-flow model • Entity-relationship model • Structural model • Structure chart
Strategi perancangan • Alternatif strategi • Jackson method • Warnier-orr method
Strategi perancangan • Rancangan berorientasi obyek • Sistem dirancang sebagai koleksi dari obyek • Ide dasarnya adalah information hiding • Penyembunyian informasi • Tiap obyek mempunyai • sejumlah attribut • Operasi berdasarkan attribut yang ada • Obyek bisa mempunyai attribut yang diturunkan dari obyek lainnya • Obyek berkomunikasi dengan obyek lainnya • Melalui message
Kualitas Rancangan • Tidak ada kesepakatan tentang rancangan yang baik. • Yang penting rancangan sesuai spesifikasi. • Rancangan yang baik kemungkinan berbentuk. • Rancangan efisien • Menghasilkan program yang bekerja dengan efisien • Rancangan minimal • Menghasilkan program sangat kompak • Ukurannya kecil
Kualitas Rancangan • Rancangan yang mudah dirawat • Mudah diadaptasi • Disesuaikan dengan kebutuhan, diubah/ ditambah/dikurangi • Rancangan terpadu • Perubahan bersifat lokal • Kohesi tinggi • Kopling rendah
Elemen Proses Perancangan • Perancangan Data Transformasi model data yang dihasilkan oleh proses analisis menjadi struktur data yang dibutuhkan pada saat implementasi. • Perancangan Arsitektur Definisi keterkaitan antar elemen-elemen utama yang akan membentuk program
Elemen Proses Perancangan • Perancangan Antarmuka Penjabaran komunikasi : internal PL; antar PL dengan sistem diluarnya dan antara PL dengan usernya. • Perancangan Prosedural Transformasi dari elemen struktur dari arsitektur program menjadi deskripsi prosedur.
Merupakan proses kreatif dalam memecahkan dan memberikan solusi atas pembangunan PL Filosofi proses perancangan : - Mengemukakan suatu solusi - Membangun model dari suatu solusi - Evaluasi terhadap kebutuhan - Penjabaran atas solusi tersebut Posisi Perancangan
Translasi/pengembangan spesifikasi PL Penjabaran bagaimana PL dapat berfungsi Penjabaran bagaimana spesifikasi PL dapat diimplementasikan. Fungsi Proses Perancangan
Selama proses perancangan kualitas perancangan selalu dipantau melalui “review teknik formal” Petunjuk untuk evaluasi kualitas (Mcglaughlin) Perancangan harus mengimplementasikan semua kebutuhan PL baik secara implisit dan eksplisit. Harus readable, understandable, khususnya bagi programmer, tester dan pelaku maintenance. Harus menyajikan gambaran lengkap PL meliputi : model data, fungsi, prilaku PL dari sudut pandang prefektif implementasi. Perancangan vs Kualitas PL
Mempertimbangkan beberapa alternatif solusi Traceable (dapat dilacak) terhadap model analisis. Mempertimbangkan dan menghasilkan komponen reusable Meminimasi kesenjangan antara PL dengan kondisi nyata Memperlihatkan keragaman dan integrasi Mengakomodasi perubahan Abstrak lebih detail dari analisis & lebih tinggi dari coding Harus di-review untuk meminimasi kesalahan. Prinsip-prinsip Perancangan
Memilih respresentasi lojik dari objek data yang ditemukan pada proses analisis. Refinement (perbaikan) terhadap data dictionary menjadi : - Struktur data - Struktur file/database Penentuan struktur data dan struktur file membutuhkan kreativitas dan sistematika yang rapih agar tidak menyulitkan untuk proses perancangan berikutnya Perancangan Data
Perancangan Data • Hasil Perancangan Data adalah : • - Struktur data siap diprogram • - Struktur basis data siap dibuat oleh programmer • - Prosedur/operasi untuk mengakses data siap diprogram.
Perancangan Antarmuka • Fokus : • Antarmuka antar modul-modul PL • Antarmuka antar PL dengan sumber informasi selain manusia (external Entity) • Antarmuka antar manusia (users) dengan komputernya
Hal penting dalam perancangan antarmuka : Harus konsisten (font, warna, bahasa) Memberikan umpan balik ke pengguna Efisiensi dialog, gerak dan pikiran pengguna Mengelompokkan aktivitas berdasarkan fungsi Sediakan bantuan (help) Pesan kesalahan harus berarti Sesuaikan dengan kubutuhan dan kebiasaan user. Perancangan Antarmuka
Perancangan antarmuka dapat dilakukan secara : - Manual, dilakukan pada kertas - Bantuan alat bantu berupa software Hasil perancangan antarmuka : - Definisi antarmuka modul yang siap untuk diprogram - Definisi/format rancangan yang siap diimplementasikan Perancangan Antarmuka
Tahapan akhir pada proses perancangan Membentuk algoritma siap program dengan menggunakan dan mengacu pada : - Struktur data yang terbentuk pada perancangan data - Struktur modul kendali pada structure chart hasil perancangan arsitektur. - Struktur, rancangan menu dan format layar hasil perancangan antarmuka. Perancangan Prosedural
Dua hal yang harus diperhatikan : - Coupling : ukuran kekuatan saling ketegantungan antar modul-modul software. - Cohesion : Ukuran kekuatan modul- modul perangkat lunak secara fungsional relatis terhadap modul perangkat lunak itu sendiri. Perancangan Prosedural
K o h e s i • Keterkaitan aktifitas di dalam modul • Semakin tinggi kohesi semakin baik • Kohesi ada 7 macam • Functional cohesion • Sequential cohesion • Communicational cohesion • Procedural cohesion • Temporal cohesion • Logical cohesion • Coincidental cohesion
K o h e s i • Functional cohesion • Hanyamengerjakansatutugas • Hanyamempunyaisatutujuan FUNCTIONAL DESIGN Module Calculate Salary Input Work_Days, Pay_Per_Day Salary = Work_Days X Pay_Per_Day End Module
K o h e s i • Informational (sequential) cohesion • Modulmengerjakanurutantugas • Denganmemakaistruktur data yang sama O-O DESIGN Module Calculate Final_Grade Input Absen, Mid_Term, Final Calculate Final_Point Transfer Final_Point into Grade End Module
K o h e s i • Communicational cohesion • Modulberisisejumlahaktifitas Denganmemakai data ygsama Module Calculate Input Length, Wide Keliling = (Length + Wide) X 2 Area = Length X Wide End Module
K o h e s i • Procedural cohesion • Modulmengerjakanurutanprosestertentu Module Entry_Student Open Student_File Input Student_Data Write Student_Data Close Student_File End Module
K o h e s i • Temporal cohesion • Modulberisikelompokkomponen-komponenmodul • Terkelompokkarenakesamaanwaktueksekusi Module Begin Line_Number = 0 Page_Number = 0 Total = 0 Clear Buffer End Module
K o h e s i • Logical cohesion • Modulberisikomponen yang mengerjakantugas yang sama • Contoh: Sebuahmodul yang berisisemuakegiatanmencetak Module Open_Files Open Student_File Open Course_File Open Lecture_File End Module Module Checking Find Maximum Find Minimum Find Avegrae End Module
K o h e s i • Coincidental cohesion • Modulmengerjakanberagamtugas • Yang tidaksalingterkait • Biasanyaberisi 25 sampai 50 baris program Module Process Open Student_File Find Maximum_Salary Print Lecture_Data Calculate Gross_Income End Module
1. Functional YES One Task? 2. Sequential YES NO BY SEQUENCE DATA NO 3. Communicational Activity Connected By 4. Procedural FLOW OF YES BY SEQUENCE CONTROL NO 5. Temporal NONE 6. Logical YES SAME ACTIVYTIES NO 7. Coincidental Good Design Guideline
K o p l i n g • Keterkaitan modul satu dengan lainnya • Semakin rendah kopling semakin baik • Kelompok kopling ada 3 : • Normal coupling • Data coupling • Stamp coupling • Control coupling • Common coupling • Content coupling
K o p l i n g • Normal coupling • Data coupling • Komunikasidengan data • Stamp coupling • Komunikasidenganstruktur data • (Keseluruhan record) • Control coupling • Komunikasidengan flag/switch
K o p l i n g • Data coupling • Komunikasi dengan data CALCULATE FINAL-GRADE NUMBER-G ALPHABET-G CONVERT GRADE
FIND-DATA STUDENT-REC READ F-STUDENT K o p l i n g • Stamp coupling • Komunikasidenganstruktur data • (Keseluruhan record)
COLLECT-DATA STUDENT-REC EOF READ F-STUDENT K o p l i n g • Control coupling • Komunikasi dengan flag/switch
K o p l i n g • Common coupling • Komunikasi menggunakan global variable • Content coupling • Modul mempengaruhi bentuk statement pada modul yang dipanggil ataupun sebaliknya
Alat bantu yang dapat digunakan : - Flowchart - Algoritma/psedoucode/Program design language (PDL) Perancangan Prosedural