REKAYASA PERANGKAT LUNAK Dr. Ratna Wardani Prodi PTI Fakultas Teknik Universitas Negeri Yogyakarta Pendidikan dan Latihan Profesi Guru Materi 1 • Tentang Kurikulum 2 • Rekayasa Perangkat Lunak 3 • Tools Pengembangan TENTANG KURIKULUM IEEE Computing Curricula 2005 • Pembagian Domain Keilmuan • Rekayasa Perangkat Lunak • Kata Kunci • Level SMK di bidang RPL • Pemahaman yang salah tentang RPL • Apa yang Dipelajari dalam RPL • Kendala • REKAYASA PERANGKAT LUNAK Tahapan Proses RPL • Tahap umum: – Definisi: Apa yang akan dibangun • Analisis sistem • Perencanaan Proyek • Analisis Kebutuhan – Pengembangan: Bagaimana membangunnya • Desain perangkat lunak • Pemrograman / Coding • Pengujian perangkat lunak – Pemeliharaan: Bagaimana berdaptasi terhadap perubahan • Koreksi • Adaptasi • Peningatan Analisis Sistem Analisis Sistem • Elemen: Analisis Sistem Data Dictionary : deskripsi semua objek data dalam S/W Entity Relationship Diagram : notasi pemodelan data yang menggambarkan hubungan antar objek data Data Flow Diagram : model fungsional, dengan tujuan menunjukkan transformasi data saat data bergerak melalui sistem menunjukkan fungsi-fungsi yg mentransformasi aliran data State Transition Diagram : model tingkah laku, yg menunjukkan transisi state/tingkah laku sistem akibat kejadian eksternal Analisis Sistem Pemodelan Data • ERD memungkinkan perekayasa S/W mengidentifikasi objek data dan hubungannya menggunakan notasi grafis (data yg dimasukkan, disimpan, ditransformasi dan dihasilkan suatu aplikasi) • ERD hanya berfokus pada data dan bersifat independen thd proses yg mentransformasikan data tersebut • Model data terdiri dari tiga informasi utama : – Objek data – Atribut – Hubungan Objek Data • Objek data adalah representasi dari hampir semua informasi gabungan yg harus dipahami perangkat lunak • Objek data dapat berupa entitas eksternal, benda, event, unit organisasional, tempat atau suatu struktur • Deskripsi objek data menghubungkan objek data dg semua atributnya • Objek data dihubungkan satu sama lain berdasarkan konteks masalah yg dianalisis • Objek data hanya mengenkapsulasi data, tidak ada referensi pd sebuah objek data ke operasi yg bekerja pada data Atribut • Atribut menentukan properti suatu objek data • Atribut digunakan untuk menamai sebuah contoh dari objek data Menggambarkan contoh Membuat referensi ke contoh lain pada tabel yang lain • Contoh : objek data manusia, memiliki atribut : nama, alamat, umur, tinggi badan. • Rangkaian atribut yang sesuai untuk suatu objek data ditentukan melalui pemahaman konteks masalah Hubungan • Objek data dihubungkan satu dan lainnya dengan berbagai cara • Contoh : Antara dua objek data buku dan toko buku dapat dibangun suatu hubungan berdasarkan konteks perangkat lunak yg akan dibangun (dg object-relationship pairs) : – – – – toko buku memesan buku toko buku menampilkan buku toko buku menjual buku toko buku mengembalikan buku Kardinalitas • Kardinalitas merupakan spesifikasi dari sejumlah peristiwa dari satu objek yg dapat dihubungkan ke sejumlah peristiwa dari objek lain • Dua objek dapat dihubungkan sebagai : – Satu-ke-satu : suatu kejadian dari objek A dapat berhubungan dg satu dan hanya satu kejadian dari objek B dan sebaliknya – Satu-ke-banyak : satu kejadian dari objek A dapat berhubungan dg satu atau lebih kejadian dari objek B, tetapi satu kejadian dari objek B dapat berhubungan dg hanya satu kejadian dari objek B – Banyak-ke-banyak : sebuah kejadian dari objek A dapat berhubungan dg satu atau lebih kejadian dari objek B, dan satu kejadian dari objek B dapat berhubungan dg satu atau lebih kejadian dari objek A Pemodelan Fungsional dan Aliran Informasi • DFD merupakan teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output. • DFD memberikan suatu mekanisme bagi pemodelan fungsional dan pemodelan aliran data • DFD dapat menyajikan perangkat lunak pada setiap tingkat abstraksi, karena DFD dapat dipartisi ke dalam tingkattingkat yang merepresentasikan aliran informasi yang bertambah dan fungsi ideal. Pemodelan Fungsional dan Aliran Informasi (Analisis Terstruktur) Aplikasi Cash Register: Data yang menjadi masukan PL 3 1 2 6 Pelangga n 1. Menyerahkan barang 2. 3. 4. 5. 6. Mencatat data penjualan Memberikan pembayaran Mencatat data pembayaran Mencetak struk Menerima struk, barang, dan kembalian 4 5 C as h R e g is te r Kasir Data yang menjadi keluaran PL sumber/tujuan data (entitas eksternal) lingkup/konteks perangkat lunak Pemodelan Fungsional dan Aliran Informasi (Analisis Terstruktur) penjualan pembayaran Kasir struk Aplikasi Cash Register Pemodelan Tingkah Laku • STD merepresentasikan tingkah laku sistem dengan menggambarkan keadaan dan kejadian yang menyebabkan sistem mengubah keadaan • Dalam STD, suatu aksi diambil sebagai akibat dari suatu kejadian khusus Pemodelan Tingkah Laku e1 [nil] S1 e2 [t_process ≤ t_user] e3 [t_process > t_user] Pre(Initial()) Get(“eMule-installer.exe”, “http:// sourceforge.net”, t_user <= 10 ) Post(S2 Ú S3) S3 S2 Pre(S1 Ú S3) NormalDL(“eMule-installer.exe”, “http://sourceforge.net”, t_user <= 10 ) Post(S4) e4 [t_process ≤ t_user] Pre(S1) Retry(“eMule-installer.exe”, “http://sourceforge.net”, t_user <= 10 ) Post(S2 Ú S5) e5 [true] e6 [t_process > t_user] S4 Pre(S2) SaveTo(“eMule-installer.exe”, “http://sourceforge.net”, MyDirectory, true ) Post(End) S5 Pre(S3) BackgroundDL(“eMuleinstaller.exe”, “http:// sourceforge.net”, t_process > 10 ) Post(S6) e7 [true] S6 Pre(S5) SendEmail(“eMule-installer.exe”, ratna@uny.ac.id, true ) Post(End) Model to Design procedural design EntityRelationship Diagram Data Flow Diagram interface design Data Dictionary architectural design State-Transition Diagram data design Model to Design Data design mengubah model informasi (entity relationship diagram dan data dictionary) menjadi struktur data Architectural design berisi hubungan antar elemen dalam program Interface design menjelaskan bagaimana komunikasi di dalam perangkat lunak, dengan sistem, dan dengan manusia yang menggunakannya. Sebuah interface mengandung maksud sebuah aliran informasi. Model to Design Procedural design mengubah elemen struktural dari arsitektur program menjadi deskripsi prosedural dari komponen perangkat lunak Model to Design Sebuah desain harus menunjukkan organisasi secara hirarkis Sebuah desain harus bersifat modular; jadi, sebuah perangkat lunak seharusnya dapat dibagi-bagi secara lojik menjadi beberapa elemen yang melakukan fungsi atau subfungsi secara spesifik Sebuah desain harus mengandung abstraksi data dan prosedural Sebuah desain harus mengarah pada modul-modul (prosedur atau subrutin) yang menunjukkan karakteristik fungsional Model to Design Sebuah desain harus mengarah pada antarmuka yang mengurangi kompleksitas hubungan antar modul dan dengan lingkungan luar Sebuah desain harus diturunkan menggunakan metode yang berulang yang diarahkan oleh informasi yang dihasilkan pada tahap analisis perangkat lunak Model to Design Proses desain tidak boleh mengalami “tunnel vision” Desain harus dapat dilacak ke model analisis Tidak melakukan desain pada hal yang sama berulang-ulang Desain harus merepresentasikan masalah pada keadaan nyata Desain harus memperlihatkan keseragaman dan integrasi Model to Design Desain harus terstruktur untuk mengatisipasi adanya perubahan Desain bukan coding, coding bukan desain Penilaian kualitas desain harus dilaksanakan pada saat desain tersebut dibuat Desain harus di-review untuk meminimasi kesalahan konseptual Konsep Desain Abstraksi Modularitas Arsitektur software Hirarki kontrol Pembagian struktural Data struktur Software procedure Penyembunyian informasi Dokumentasi Desain I. II. III. IV. V. VI. VII. Lingkup Sistem Desain Data Desain Architectural Desain Antarmuka Desain Prosedural Catatan Khusus Appendix Data Design Mengubah objek data yang didefinisikan pada model analisis menjadi struktur data yang ada dalam perangkat lunak Atribut yang dimiliki objek data, hubungan di antara objek data, dan penggunaannya dalam program, semuanya mempengaruhi pemilihan struktur data Architectural Design Menggunakan karakteristik aliran informasi dalam model analisis untuk menghasilkan struktur program Sebuah data flow diagram dipetakan menjadi struktur program menggunakan dua pendekatan : Transform mapping Transaction mapping Transform mapping : diterapkan untuk sebuah aliran data yang menunjukkan batas yang jelas antara data yang masuk dan yang keluar Architectural Design DFD dipetakan menjadi sebuah struktur yang mengalokasikan kontrol menjadi input, pemorsesan, dan output bersama dengan hirarki modul Transaction mapping : diterapkan jika sebuah item informasi menyebabkan percabangan DFD dipetakan menjadi sebuah struktur yang mengalokasikan kontrol menjadi sebuah substruktur yang mendapatkan dan mengevaluasi sebuah transaksi Interface Design Meliputi antarmuka program internal dan eksternal serta desain untuk antarmuka pengguna Desain antarmuka internal dan eksternal diarahkan oleh informasi yang diperoleh dari model analisis SADT Pemodelan Fungsional dan Aliran Informasi (Analisis Terstruktur) Aplikasi Cash Register: Data yang menjadi masukan PL 3 1 2 6 Pelanggan 1. 2. 3. 4. 5. 6. Menyerahkan barang Mencatat data penjualan Memberikan pembayaran Mencatat data pembayaran Mencetak struk Menerima struk, barang, dan kembalian 4 5 C as h R e g is te r Kasir Data yang menjadi keluaran PL sumber/tujuan data (entitas eksternal) lingkup/konteks perangkat lunak Pemodelan Fungsional dan Aliran Informasi (Analisis Terstruktur) penjualan pembayaran Kasir struk Aplikasi Cash Register Pemodelan Fungsional dan Aliran Informasi (Analisis Terstruktur) • Merupakan pemerincian (break down) dari Diagram Konteks: level-1, 2, dst. • Proses-proses yang akan dibuat harus sesuai dengan deskripsi kebutuhan fungsionalnya. • Alur dan urutan proses mengikuti mekanisme proses pengolahan data yang nanti akan dilakukan oleh perangkat lunak. Workflow Penjualan Barang 1 Diagram Aliran Data (DAD) 2 3 B as is D ata W o rk s t a tio n Pelanggan Kasir 1. Menyerahkan barang 1. Catat data penjualan Kasir penjualan 1 Catat Data Penjualan 4 1. Baca kode barang 2. Cari dan tampilkan Spesifikasi data barang Proses 3. Baca banyak barang 4. Hitung dan tampilkan jumlah 5. Rekam data penjualan ke basis data; update stok barang Kamus Data 1. barang yang dibeli 2. penjualan = kode_brg + banyak 3. Barang = @kode_brg + nama_brg + harga + stok 4. Jual = @no_faktur + @kode_brg + banyak Barang Jual Sketsa Tampilan Layar Entry Penjualan Barang Kode Barang BRG-101 Nama Barang KERTAS A4 80 GR. Harga (Rp.) 27,500 Banyaknya 2 Jumlah (Rp.) 55,000 Rekam X Workflow Pembayaran 5 Diagram Aliran Data (DAD) 6 7 B as is D ata 9 Pelanggan 8 Kasir penjualan 1 Catat Data Penjualan W o rk s t a tio n pembayaran Kasir Spesifikasi 1. Hitung dan tampilkan total Proses 1. Memberikan 1. Akhiri 2. Baca jumlah bayar pembayaran penjualan 3. Hitung dan tampilkan 2. Menerima struk, 2. Catat data jumlah kembalian barang dan pembayaran; 4. Rekam data pemkembalian cetak struk bayaran ke basis data 5. Cetak struk Barang struk total Jual 2 Catat Data Pembayaran & Cetak Struk Bayar Kamus Data 1. barang yang dibeli 2. penjualan = kode_brg + banyak 3. Barang = @kode_brg + nama_brg + harga + stok 4. Jual = @no_faktur + @kode_brg + banyak 5. uang 6. pembayaran = jml_bayar 7. Bayar = @no_faktur + tanggal + total 8. struk = no_faktur + tanggal + {nama_brg + harga + banyak + jumlah} + total + bayar + kembali 9. struk, barang dan kembalian total = no_faktur + {kode_brg + nama_brg + harga + banyak} + total Sketsa Tampilan Layar X Entry Penjualan Barang Entry Pembayaran Total Kode (Rp.) Barang 55,000 BRG-101 Nama Barang Jumlah Bayar 60,000 KERTAS A4 80 GR. Harga (Rp.) Kembali Banyaknya 27,500 5,000 2 Jumlah (Rp.) 55,000 Rekam Cetak Struk Pembayaran 47 Pemodelan Fungsional dan Aliran Informasi (Analisis Terstruktur) Pemodelan Fungsional dan Aliran Informasi (Analisis Terstruktur) Data Store 1. Barang = @kode_brg + nama_brg + harga + stok 2. Bayar = @no_faktur + tanggal + total 3. Jual = @no_faktur + @kode_brg + banyak Data Flow 1. pembayaran = jml_bayar 2. penjualan = kode_brg + banyak 3. struk = no_faktur + tanggal + {nama_brg + harga + banyak + jumlah} + total + bayar + kembali 4. total = no_faktur + {kode_brg + nama_brg + harga + banyak} + total Pemodelan Fungsional dan Aliran Informasi (Analisis Terstruktur) Proses 1: Catat Data Penjualan 1. Baca kode barang 2. Cari dan tampilkan data barang 3. Baca banyak barang; Hitung dan tampilkan jumlah 4. Rekam data penjualan ke basis data; Update stok barang Proses 2: Catat Data Pembayaran & Cetak Struk 1. Hitung dan tampilkan total 2. Baca jumlah bayar; Hitung dan tampilkan jumlah kembalian 3. Rekam data pembayaran ke basis data 4. Cetak struk Pemodelan Fungsional dan Aliran Informasi (Analisis Terstruktur) Dari DFD yang sudah dibuat, identifikasi data yang akan diolah: Tentukan data mana yang mewakili entitas: Data transaksi penjualan Data transaksi pembayaran Data barang Penjualan, pembayaran event Barang things Tentukan relasi antar entitas. Pemodelan Fungsional dan Aliran Informasi ERD (versi Peter Chen) BARANG PEMBAYARAN 1 dijual-pd 1 n PENJUALAN 1 dilunasi-dg Pemodelan Fungsional dan Aliran Informasi ERD (versi James Martin (Conceptual Data Model) BARANG PEMBAYARAN dijualpd dilunasi -dg PENJUALAN TOOLS PENGEMBANGAN Data Flow Diagram Data Flow Diagrams Symbols DeMarco & Yourdon Source/ Sink System Analysis and Design System – a group of interrelated procedures used for a business function, with an identifiable boundary, working together for some purpose. Analysis – separation of a whole into its component parts 0.0 Process DATA STORE Data Flow Lines Design – to create, fashion, execute, or construct according to plan Physical Data Flow Diagrams – show how the current system flows Logical Data Flow Diagrams – show the data flow, structure, and requirements of a new system Data Flow Diagrams Symbols DeMarco & Yourdon Source/ Sink 0.0 Process DATA STORE Data Flow Lines Source/Sink – help to establish the boundaries of the system. A source identifies the origin of data inflow to the system. A sink identifies the outflow of a system, many times as information. Sometimes referred to an entity, a source may be a customer, vendor, employee, or even another system. A single entity can be both a source and a sink. Data Flow Diagrams Symbols DeMarco & Yourdon Source/ Sink 0.0 Process DATA STORE Data Flow Lines Processes – are the activities (manual and automated) that transform the inputs, transport data from process to process, stores the data, and produce the outputs of a system. Processes are used on every DFD starting with an over all process on the context level diagram, the system. The system is then decomposed until a primitive level is obtained. The primitive level is the point in which the relevant activities of a process are identified. Data Flow Diagrams Symbols DeMarco & Yourdon Source/ Sink 0.0 Process DATA STORE Data Flow Lines Data Store – is the resting place of the data in a system. A data store can be in the form of paper, a disk file or any other media. Normally the word ‘data’ does not appear in the title of a data store. Some examples of data stores are Customer Order, Payment, Invoice, Time Card…… Data Flow Diagrams Symbols DeMarco & Yourdon Source/ Sink Data Flow – is the data in motion. Data can move from the outside (source) into a process. Once the inside of a system data must flow from place to place through a process, the flow lines show this movement. 0.0 Process The lines are labeled to provide clarity and meaning to the data moving through the system. DATA STORE Data Flow Lines Data Flow Diagrams Levels DeMarco & Yourdon Context Level DFD Source/ Sink Source/ Sink Data Flow 0.0 Process Data Flow Source/ Sink Data Flow Level 1 DFD 0.0 Process 1.0 Process Data Flow Data Flow DATA STORE Data Flow Lines Source/ Sink Data Flow 2.0 Process Data Flow Data Flow Data Flow 3.0 Process Data Flow Source/ Sink Data Flow Diagrams Levels DeMarco & Yourdon Source Source/ Sink Level 2 DFD (and on) Data Flow 1.1 Process 0.0 Process DATA STORE Source Data Flow 1.2 Process DATA STORE Data Flow Lines Data Flow Sink Data Flow Diagrams Levels Prepared by: yourname Project Name Project Name Date: 01/01/2002 Context Level DFD Prepared by: yourname Date: 01/01/2002 Level 2 DFD Data Flow 1.1 Process Source/ Sink Data Flow 0.0 Process DATA STORE Project Name Source/ Sink Data Flow 1.2 Process Data Flow Data Flow Prepared by: yourname Project Name Data Flow Date: 01/01/2002 Data Flow 1.1 Process DATA STORE Project Name Source/ Sink Data Flow 2.0 Process Level 2 DFD Data Flow Data Flow Data Flow Source/ Sink Data Flow 1.1 Process Data Flow 3.0 Process 1.2 Process Data Flow 1.0 Process Data Flow Date: 01/01/2002 Level 2 DFD Level 1 DFD Data Flow Prepared by: yourname DATA STORE Data Flow Data Flow 1.2 Process Data Flow Prepared by: yourname Date: 01/01/2002 Creating Data Flow Diagrams Steps: 1. Create a list of activities 2. Construct Context Level DFD (identifies sources and sink) 3. Construct Level 1 DFD (identifies manageable sub process ) 4. Construct Level 2- n DFD (identifies actual data flows and data stores ) Creating Data Flow Diagrams Lemonade Stand Example Creating Data Flow Diagrams Example The operations of a simple lemonade stand will be used to demonstrate the creation of dataflow diagrams. Steps: 1. Create a list of activities 2. Construct Context Level DFD (identifies sources and sink) 3. Construct Level 1 DFD (identifies manageable sub processes ) 4. Construct Level 2- n DFD (identifies actual data flows and data stores ) Creating Data Flow Diagrams Example 1. Create a list of activities Think through the activities that take place at a lemonade stand. Customer Order Serve Product Collect Payment Produce Product Store Product Creating Data Flow Diagrams Example 1. Create a list of activities Also think of the additional activities needed to support the basic activities. Customer Order Serve Product Collect Payment Produce Product Store Product Order Raw Materials Pay for Raw Materials Pay for Labor Creating Data Flow Diagrams Example 1. Create a list of activities Group these activities in some logical fashion, possibly functional areas. Customer Order Serve Product Collect Payment Produce Product Store Product Order Raw Materials Pay for Raw Materials Pay for Labor Creating Data Flow Diagrams Example 2. Construct Context Level DFD (identifies sources and sink) Create a context level diagram identifying the sources and sinks (users). Context Level DFD Order Customer Order Serve Product Collect Payment Produce Product Store Product Order Raw Materials Pay for Raw Materials Pay for Labor CUSTOMER Sales Forecast 0.0 Lemonade Production Schedule EMPLOYEE Pay System Product Served Payment Received Goods Payment VENDOR Time Worked Purchase Order Creating Data Flow Diagrams Example Create a level 1 diagram identifying the logical subsystems that may exist. 3. Construct Level 1 DFD (identifies manageable sub processes ) Level 1 DFD 1.0 Sale Customer Order Serve Product Collect Payment Product Ordered Payment CUSTOMER Produce Product Store Product Pay for Labor Product Served Received Goods VENDOR Order Raw Materials Pay for Raw Materials Sales Forecast Customer Order Purchase Order Production Schedule 2.0 Production EMPLOYEE Inventory 3.0 Procurement Payment Order Decisions Pay 4.0 Payroll Time Worked Creating Data Flow Diagrams Example Create a level 2 decomposing the processes in level 0 and identifying data stores. 4. Construct Level 2- n DFD (identifies actual data flows and data stores ) Level 2 DFD CUSTOMER Customer Order ORDER Customer Order Serve Product Collect Payment 1.1 Record Order Severed Order Produce Product Store Product Order Raw Materials Pay for Raw Materials Pay for Labor Payment 1.2 Receive Payment PAYMENT Request for Forecast 1.3 Produce Sales Forecast Sales Forecast Creating Data Flow Diagrams Example Create a level 2 decomposing the processes in level 0 and identifying data stores. 4. Construct Level 2 (continued) Level 2 DFD Product Order ORDER Customer Order Serve Product Collect Payment Produce Product Store Product Order Raw Materials Pay for Raw Materials Pay for Labor 2.1 Serve Product Quantity Severed RAW MATERIALS Production Schedule 2.2 Produce Product Production Data 2.3 Store Product Quantity Used INVENTORTY Quantity Produced & Location Stored Creating Data Flow Diagrams Example Create a level 2 decomposing the processes in level 0 and identifying data stores. Customer Order Serve Product Collect Payment 4. Construct Level 2 (continued) Level 2 DFD Order Decision 3.1 Produce Purchase Order PURCHASE ORDER Quantity On-Hand Quantity Received Received Goods 3.2 Receive Items Produce Product Store Product Payment Approval Order Raw Materials Pay for Raw Materials 3.3 Pay Vendor Pay for Labor Payment RAW MATERIALS RECEIVED ITEMS VENDOR Creating Data Flow Diagrams Example Create a level 2 decomposing the processes in level 0 and identifying data stores. Customer Order Serve Product Collect Payment 4. Construct Level 2 (continued) Level 2 DFD Time Worked 4.1 Record Time Worked TIME CARDS Employee ID EMPLOYEE Payroll Request 4.2 Calculate Payroll Produce Product Store Product Unpaid time cards PAYROLL Payment Approval Order Raw Materials Pay for Raw Materials 4.3 Pay Employe e Pay for Labor Payment PAYMENTS Process Decomposition 0.0 Lemonade System Context Level 1.0 Sale 1.1 Record Order 1.2 Receive Payment 2.0 Production 2.1 Serve Product 2.2 Produce Product 2.3 Store Product 3.0 Procurement 3.1 Produce Purchase Order 3.2 Receive Items 3.3 Pay Vendor 4.0 Payroll 4.1 Record Time Worked 4.2 Calculate Payroll 4.3 Pay Employe e Level 1 Level 2 Creating Data Flow Diagrams Lemonade Stand Example END