1 JSD Cara Programmer menghadapi Software Engineering Lewati

  • Slides: 49
Download presentation
1 JSD

1 JSD

Cara Programmer menghadapi Software Engineering Lewati fase spesifikasi kebutuhan desain Mulai menulis kode program

Cara Programmer menghadapi Software Engineering Lewati fase spesifikasi kebutuhan desain Mulai menulis kode program 2

3 Kenapa? Desain dianggap membuang waktu Programmer harus secepatnya menunjukkan hasil ke konsumen Kinerja

3 Kenapa? Desain dianggap membuang waktu Programmer harus secepatnya menunjukkan hasil ke konsumen Kinerja programmer dilihat dari jumlah LOC/bulan Kemungkinan jadwal yang sempit

4 Kenyataannya Membuat program berdasarkan desain akan mempercepat penyelesaian pembuatan program Namun Proses desain

4 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

5 Metode Desain Functional decomposition Data Flow Design (SA/SD) Design based on Data Structures

5 Metode Desain Functional decomposition Data Flow Design (SA/SD) Design based on Data Structures (JSD/JSP)

6 Sample of design methods Decision tables OOD E-R PDL Flowcharts Petri Nets FSM

6 Sample of design methods Decision tables OOD E-R PDL Flowcharts Petri Nets FSM SA/SD JSD SA/WM JSP SADT LCP SSADM Meta IV Statecharts Note. Cards OBJ

7 Functional decomposition bottom-up top-down

7 Functional decomposition bottom-up top-down

8 Functional decomposition Extremes: bottom-up and top-down Desain tidak selalu sesuai/rasional: Klien tidak tahu

8 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

9 Data flow design Yourdon and Constantine (early 70 s) Proses dua langkah secara

9 Data flow design Yourdon and Constantine (early 70 s) 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

Design based on data structures (JSP & JSD) JSP = Jackson Structured Programming JSD = Jackson Structured Design 10

11 JSP Program yang baik menyesuaikan dengan struktur input dan output Program dapat dibuat

11 JSP Program yang baik menyesuaikan dengan struktur input dan output Program dapat dibuat secara mekanik dari deskripsi input dan output digambarkan menggunakan structure diagram atau structured text/schematic logic (pseudocode) 3 komponen dasar JSP: sequence, iteration, dan selection

12 Compound components in JSP

12 Compound components in JSP

13 Compound components in JSP B sequence iteration A A C D B* selection

13 Compound components in JSP B sequence iteration A A C D B* selection A o B C o o D

14 Compound components in JSP • Sequence direpresentasikan dengan kotak polos, dijalankan dari kiri

14 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

15 JSP procedure Gambar setiap data stream input dan output Gabungkan semuanya untuk membuat

15 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

16 Karakteristik JSP dikonsentrasikan untuk pengembangan algoritma menggunakan JSD yang disesuaikan dengan pseudocode untuk

16 Karakteristik JSP dikonsentrasikan untuk pengembangan algoritma menggunakan JSD yang disesuaikan dengan pseudocode 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)

17 Sequence

17 Sequence

18 Selection

18 Selection

19 Selection (If then else) Tidak harus T/F

19 Selection (If then else) Tidak harus T/F

20 Selection

20 Selection

21 Iterasi

21 Iterasi

22 Iterasi

22 Iterasi

23 Prosedur

23 Prosedur

24 Data & return values

24 Data & return values

25 Perbandingan hitung jumlah

25 Perbandingan hitung jumlah

26 Absensi

26 Absensi

27 Contoh: Pom Bensin Sebuah pom bensin memiliki pompa untuk diesel dan petrol. Pada

27 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 input 28 JSD output

1: Gambar JSD input/output JSD input 28 JSD output

2: Buat JSD untuk program 29 Gabungkan input dan output Verifikasi bahwa program tree

2: Buat JSD untuk program 29 Gabungkan input dan output Verifikasi bahwa program tree konsisten dengan input (C[consume]) dan output (P[produce])

Comparison 30

Comparison 30

3: Buat daftar operasi untuk blok program Inputs: Outputs: 1. Ambil identitas pompa 5.

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 31

32 4: Konversikan ke teks

32 4: Konversikan ke teks

33 5: Masukkan kondisi

33 5: Masukkan kondisi

34 Perbandingan

34 Perbandingan

Perbandingan 35

Perbandingan 35

36 Tipe Structure clash Ordering clash: Data disortir dengan cara yang berbeda Boundary clash:

36 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

37 Program inversion menyortir sebuah input agar sama dengan input lainnya: Mengatasi ordering clash

37 Program inversion menyortir sebuah input agar sama dengan input lainnya: Mengatasi ordering clash menggunakan intermediate file

38 Klasifikasi metode desain problem-oriented product-oriented conceptual I ER modeling Structured analysis II Structured

38 Klasifikasi metode desain problem-oriented product-oriented conceptual I ER modeling Structured analysis II Structured design formal III JSD VDM IV Functional decomposition JSP

39 Karakteristik klasifikasi I ER modeling Structured analysis II Structured design III JSD VDM

39 Karakteristik klasifikasi I 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

40 Metode terbaik? Kebiasaan Pengalaman Alat yang ada Filosofi pengembangan

40 Metode terbaik? Kebiasaan Pengalaman Alat yang ada Filosofi pengembangan

41 METODE WARNIER/ORR

41 METODE WARNIER/ORR

42 Sejarah Metodologi pengembangan sistem ini pertama kali dikembangkan tahun 1970 oleh Jean Domique

42 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.

43 Kegunaan Representasi grafis dari algoritma Membantu programmer menentukan masalah yang harus diselesaikan. Mengurangi

43 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

44

44

45 Urutan Backward read for input combination

45 Urutan Backward read for input combination

46 Repetisi (N)

46 Repetisi (N)

47 Seleksi (XOR ; (0, 1))

47 Seleksi (XOR ; (0, 1))

48 Rekursi

48 Rekursi

49 “ Pertemuan akhir selesai : D : D : D : D :

49 “ Pertemuan akhir selesai : D : D : D : D : D : D ”