JSD
Cara Programmer menghadapi Software Engineering Lewati fase spesifikasi kebutuhan dan desain Mulai menulis kode program
Kenapa? Desain dianggap membuang waktu Programmer harus secepatnya menunjukkan hasil ke konsumen Kinerja programmer dilihat dari jumlah LOC/bulan Kemungkinan jadwal yang sempit
Kenyataannya Membuat program berdasarkan desain akan mempercepat penyelesaian pembuatan program Namun Proses desain bersifat trial-and-error Proses ≠ Hasil Ada kesinambungan antara spesifikasi kebutuhan, arsitektur dan desain See also the architecture chapter © SE, Design, Hans van Vliet
Metode Desain Functional decomposition Data Flow Design (SA/SD) Design based on Data Structures (JSD/JSP)
Sample of design methods Decision tables E-R Flowcharts FSM JSD JSP LCP Meta IV NoteCards OBJ OOD PDL Petri Nets SA/SD SA/WM SADT SSADM Statecharts
Functional decomposition bottom-up top-down
Functional decomposition Extremes: bottom-up and top-down Desain tidak selalu sesuai/rasional: Klien tidak tahu apa yang mereka inginkan Keputusan awal akan mengalami perubahan Kesalahan manusia Proyek tidak dimulai dari nol Desain umumnya bersifat bolak-balik Proses desain bersifat perkiraan/mendekati kebenaran Mention another important article by David Parnas © SE, Design, Hans van Vliet
Data flow design Yourdon and Constantine (early 70s) Proses dua langkah secara umum: Structured Analysis (SA), berupa logical design, digambarkan sebagai data flow diagrams Structured Design (SD) merubah logical design kedalam program structure digambarkan sebagai structure charts
Design based on data structures (JSP & JSD) JSP = Jackson Structured Programming JSD = Jackson Structured Design In the slides, we only discuss JSP. JSD is of historical interest, but little used now © SE, Design, Hans van Vliet
JSP Program yang baik menyesuaikan dengan struktur input dan output Program dapat dibuat secara mekanik dari deskripsi input dan output input dan output digambarkan menggunakan structure diagram atau structured text/schematic logic (pseudocode) 3 komponen dasar JSP: sequence, iteration, dan selection © SE, Design, Hans van Vliet
Compound components in JSP
Compound components in JSP B A * iteration B C D A o selection A B C D sequence © SE, Design, Hans van Vliet
Compound components in JSP Sequence direpresentasikan dengan kotak polos, dijalankan dari kiri ke kanan Selection direpresentasikan dengan kotak yang ditandai lingkaran Bagian akhir diartikan sebagai conditionless / ELSE Iteration direpresentasikan dengan kotak yang ditandai asterisk Ketiga bentuk ini tidak dapat dicampur dalam sebuah cabang(1 kotak)
JSP procedure Gambar setiap data stream input dan output Gabungkan semuanya untuk membuat program JSD Buat daftar operasi yang harus dilakukan program dan alokasikan setiap operasi dalam 1 blok Konversikan blok program ke dalam teks sesuai urutan tanpa kondisi Masukkan kondisi untuk setiap selection dan iteration
Karakteristik JSP JSP dikonsentrasikan untuk pengembangan algoritma menggunakan JSD yang disesuaikan dengan pseudo-code untuk spesifikasi proses. Memiliki hasil struktur program yang sesuai dengan struktur pekerjaan JSP mendekomposisi prosedur Tidak mempermasalahkan modularity Mentransformasikan urutan data statis menjadi urutan operasi yang dinamis(berdasarkan waktu eksekusi)
Sequence
Selection
Selection (If then else) Tidak harus T/F
Selection
Iterasi
Iterasi
Prosedur
Data & return values
Perbandingan hitung jumlah
Absensi
Contoh: Pom Bensin Sebuah pom bensin memiliki pompa untuk diesel dan petrol. Pada pompa diberikan computer yang menampilkan harga dan volume bensin. Ketika selang dikembalikan ke pompa, computer akan memberikan record data pembelian ke komputer kasir. Record berupa detail transaksi yaitu: Identitas pompa; jenis bensin; volume bensin. Kasir dan konsumen akan mendapatkan total biaya per transaksi.
1: Gambar JSD input/output JSD output
2: Buat JSD untuk program Gabungkan input dan output Verifikasi bahwa program tree konsisten dengan input (C[consume]) dan output (P[produce])
Comparison
Tuliskan leaf elements ke Diagram 3: Buat daftar operasi untuk blok program Inputs: Outputs: 1. Ambil identitas pompa 5. Tulis identitas pompa 2. Ambil tipe bensin 6. Tulis volume bensin 3. Ambil volume bensin 7. Tulis biaya ke konsumen 4. Kalikan harga bensin dengan volume Tuliskan leaf elements ke Diagram
4: Konversikan ke teks
5: Masukkan kondisi
Perbandingan
Perbandingan
Tipe Structure clash Ordering clash: Data disortir dengan cara yang berbeda Boundary clash: data dikelompokkan dengan kriteria yang berbeda (jenis input & output berbeda) Multi-threading clash: unit data input overlap
Program inversion Program inversion menyortir sebuah input agar sama dengan input lainnya: Mengatasi ordering clash menggunakan intermediate file
Klasifikasi metode desain problem-oriented product-oriented I ER modeling Structured analysis II Structured design conceptual III JSD VDM IV Functional decomposition JSP formal
Karakteristik klasifikasi ER modeling Structured analysis II Structured design III JSD VDM IV Functional decomposition JSP I: mengerti permasalahan II: mengubah menjadi implementasi III: merepresentasikan properties IV: menciptakan unit implementasi
Metode terbaik? Kebiasaan Pengalaman Alat yang ada Filosofi pengembangan
METODE WARNIER/ORR
Sejarah Metodologi pengembangan sistem ini pertama kali dikembangkan tahun 1970 oleh Jean Domique Warnier dari Paris.Kemudian dikembangkan lebih lanjut untuk desain sistem oleh Ken Orr dari Kansas Metodologi W/O menggunakan alat yg disebut dengan diagram W/O, yg secara lintas mirip dengan bagan berjenjang yg diputar.
Kegunaan Representasi grafis dari algoritma Membantu programmer menentukan masalah yang harus diselesaikan. Mengurangi kompleksitas program. Membantu mengerti struktur logika Mudah dibuat dan dimengerti Membantu mengidentifikasi input, output, kombinasi input untuk setiap proses
Urutan Backward read for input combination
Repetisi (N)
Seleksi (XOR ; (0,1))
Rekursi
Pertemuan akhir selesai :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D