REKAYASA PERANGKAT LUNAK

Slides:



Advertisements
Presentasi serupa
Peserta mengerti tahap-tahap pada ADC
Advertisements

KIMIA UNSUR-UNSUR TRANSISI
PERTEMUAN 3 Algoritma & Pemrograman
Penyelidikan Operasi 1. Konsep Optimisasi.
KEBIJAKAN PEMERINTAH PROVINSI JAWA TIMUR
Penyusunan Data Baseline dan Perhitungan Capaian Kegiatan Peningkatan Kualitas Permukiman Kumuh Perkotaan DIREKTORAT PENGEMBANGAN KAWASAN PERMUKIMAN DIREKTORAT.
BALTHAZAR KREUTA, SE, M.SI
PENGEMBANGAN KARIR DOSEN Disarikan dari berbagai sumber oleh:
Identitas, persamaan dan pertidaksamaan trigonometri
ANGGOTA KELOMPOK WISNU WIDHU ( ) WILDAN ANUGERAH ( )
METODE PENDUGAAN ALTERNATIF
Dosen Pengampu: Muhammad Zidny Naf’an, M.Kom
GERAK SUGIYO, SPd.M.Kom.
Uji Hipotesis Luthfina Ariyani.
SOSIALISASI PEKAN IMUNISASI NASIONAL (PIN) POLIO 2016
PENGEMBANGAN BUTIR SOAL
Uji mana yang terbaik?.
Analisis Regresi linear berganda
PEERSIAPAN DAN PENERAPAN ISO/IEC 17025:2005 OLEH: YAYAN SETIAWAN
E Penilaian Proses dan Hasil Belajar
b. Kematian (mortalitas)
Ilmu Komputasi BAGUS ADHI KUSUMA
Uji Hipotesis dengan SPSS
OVERVIEW PERUBAHAN PSAK EFFEKTIF 2015
Pengolahan Citra Berwarna
Teori Produksi & Teori Biaya Produksi
Pembangunan Ekonomi dan Pertumbuhan Ekonomi
PERSIAPAN UN MATEMATIKA
Kriptografi.
1 Bab Pembangunan Ekonomi dan Pertumbuhan Ekonomi.
Ekonomi untuk SMA/MA kelas XI Oleh: Alam S..
ANALISIS PENDAPATAN NASIONAL DALAM PEREKONOMIAN TIGA SEKTOR
Dosen: Atina Ahdika, S.Si., M.Si.
Anggaran biaya konversi
Junaidi Fakultas Ekonomi dan Bisnis Universitas Jambi
Pemodelan dan Analisis
Bab 4 Multivibrator By : M. Ramdhani.
Analisis Regresi – (Lanjutan)
Perkembangan teknologi masa kini dalam kaitannya dengan logika fazi
DISTRIBUSI PELUANG KONTINU
FETAL PHASE Embryolgy II
Yusuf Enril Fathurrohman
3D Viewing & Projection.
Sampling Pekerjaan.
Gerbang Logika Dwi Indra Oktoviandy (A )
SUGIYO Fisika II UDINUS 2014
D10K-6C01 Pengolahan Citra PCD-04 Algoritma Pengolahan Citra 1
Perpajakan di Indonesia
Bab 2 Kinerja Perusahaan dan Analisis Laporan Keuangan
Penyusunan Anggaran Bahan Baku
MOMENTUM, IMPULS, HUKUM KEKEKALAN MOMENTUM DAN TUMBUKAN
Theory of Computation 3. Math Fundamental 2: Graph, String, Logic
Strategi Tata Letak.
Theory of Computation 2. Math Fundamental 1: Set, Sequence, Function
METODE PENELITIAN.
(Skewness dan kurtosis)
Departemen Teknik Mesin dan Biosistem INSTITUT PERTANIAN BOGOR
Dasar-dasar piranti photonik
Klasifikasi Dokumen Teks Berbahasa Indonesia
Mekflu_1 Rangkaian Pipa.
Digital to Analog Conversion dan Rekonstruksi Sinyal Tujuan Belajar 1
SEKSI NERACA WILAYAH DAN ANALISIS BPS KABUPATEN TEMANGGUNG
ASPEK KEPEGAWAIAN DALAM PENILAIAN ANGKA KREDIT
RANGKAIAN DIODA TK2092 Elektronika Dasar Semester Ganjil 2015/2016
Ruang Euclides dan Ruang Vektor 1.
Bab Anuitas Aritmetrik dan Geometrik
Penyelidikan Operasi Pemrograman Dinamik Deterministik.
Kesetimbangan Fase dalam sistem sederhana (Aturan fase)
ANALISIS STRUKTUR MODAL
Transcript presentasi:

REKAYASA PERANGKAT LUNAK Defri Kurniawan defri.kurniawan@dsn.ac.id

RENCANA KEGIATAN PERKULIAHAN SEMESTER W Pokok Bahasan 1 Pengenalan Teknologi Informasi 2 Konsep Sistem Komputer & Pengenalan Perangkat Keras 3 4 Data Storage 5 Perangkat Lunak 6 7 Data dan Informasi 8 Ujian Tengah Semester W Pokok Bahasan 9 Komputasi Pemrograman 10 11 Rekayasa Perangkat Lunak 12 13 Komunikasi data & Jaringan Komputer 14 Etika dan dampak sosial teknologi informasi 15 Teknologi Terkini / Advance Topik 16 Ujian Akhir Semester

Reference Bruce K William, Stacey C. Sawyer – Using Information Technology : A Practical Introduction to Computers & Communications 9th Edition (2010) J. Glenn Brookshear – Computer Science : An Overview 11th Edition (2011)

Content The Software Engineering Discipline The Software Life Cycle Software Engineering Methodologies Tools Quality Assurance

The Software Engineering Discipline

The Software Engineering Discipline Rekayasa Perangkat Lunak (RPL) = software engineering (SE) Rekayasa Perangkat Lunak merupakan Disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal spesifikasi, desain, konstruksi, testing sampai pemeliharaan setelah digunakan

The Software Engineering Discipline Software engineering adalah cabang computer science dengan prinsip pengembangan system software yang besar dan kompleks Pengembangan sistem membutuhkan upaya banyak orang Software engineering terdiri dari personel dan project management yang berkaitan dengan business management

The Software Engineering Discipline Problem selama pengembangan sistem : How can you estimate the cost in time, money and other resource to complete the project ? How can you divide the project into manageable pieces ? How can you ensure that the pieces produced are compatible ? How can those working on the various pieces communicate? How can you measure progress?

The Software Engineering Discipline Penelitian dalam software engineering saat ini terdiri dari dua level : practitioners dan theoreticians Practitioners bekerja ke arah pengembangan teknik untuk aplikasi Theoreticians bekerja berdasarkan prinsip dan teori dimana teknik lebih stabil dapat dibangun nantinya

Perjalanan Software Engineering Peter J Dennings yang memimpin satuan tugas disiplin ilmu computing memasukkan software engineering sebagai satu disiplin ilmu (Dennings, 1999) IEEE Computer Society membentuk tim khusus untuk menyusun pohon ilmu Software Engineering (Software Engineering Body of Knowledge, SWEBOK) http://swebok.org Software Engineering termasuk nama jurusan atau fakultas yang diakui menurut IEEE Computing Curricula 2005

Matriks Dennings 1999 Algoritma dan Struktur Data Bahasa Pemrograman Arsitektur Komputer Sistem Operasi dan Jaringan Software Engineering Database dan Sistim Retrieval Informasi Artificial Intelligence dan Robotik Grafik Human Computer Interaction Ilmu Komputasi Organizational Informatics BioInformatik

SWEBOK 2004

IEEE Computing Curricula 2005 Computer Engineering (CE, Teknik Komputer) Computer Science (CS, Ilmu Komputer) Information Systems (IS, Sistem Informasi) Information Technology (IT, Teknologi Informasi) Software Engineering (SE, Rekayasa Perangkat Lunak)

The Software Life Cycle Software Engineering

The Software Life Cycle Konsep dalam software engineering adalah software life cycle Software life cycle menggambarkan bahwa dalam pengembangan software masuk ke dalam sebuah cycle yang digunakan (development, use, maintenance)

The Software Life Cycle Perangkat lunak memiliki siklus hidup yang dikenal dengan siklus hidup perangkat lunak (Software Life Cycle) Siklus hidup perangkat lunak (Software Life Cycle) adalah urutan dari kegiatan yang ada di dalam sebuah pengembangan perangkat lunak (Gustafson, 2002)

Software Development Process Software Development Process, juga dikenal sebagai Software Development Life-Cycle / siklus hidup pengembangan perangkat lunak, adalah struktur yang dikenakan pada pengembangan produk perangkat lunak. Software Life Cycle dan Software Process merupakan bagian dari siklus hidup pengembangan sistem (System Development Life Cycle)

System Development Life Cycle (SDLC) System Development life cycle (SDLC) / Siklus Hidup Pengembangan Sistem adalah proses memahami bagaimana sistem informasi (IS) dapat mendukung kebutuhan bisnis, perancangan sistem, membangunnya dan memberikannya kepada pengguna (Dennis, 2005).

Kelebihan dan Kekurangan SDLC Penerapan SDLC memiliki kekurangan dan kelebihan. Kelebihan dari SDLC adalah menyediakan tahapan yang dapat digunakan sebagai pedoman pengembangan sistem, sedangkan Kekurangannya: hasil dari SDLC tergantung pada hasil analisis, sehingga jika terdapat kesalahan di tahap analisis akan terbawa terus ke hasil sistem

The Traditional Development Phase

The Traditional Development Phase Tahap Requirement Analysis : Menganalisa kebutuhan user Negoisasi dengan stakeholder mengenai kebutuhan, harga dan kemungkinan yang terjadi pada sistem Membangun seperangkat kebutuhan untuk identifikasi apa saja fitur yang ada dalam sistem software

The Traditional Development Phase Tujuan Requirement Analysis : Menentukan apa saja kebutuhan sistem yang diusulkan Identifikasi kebutuhan sistem yang diusulkan Mendefinisikan bagaimana user berinteraksi dengan sistem

The Traditional Development Phase Tahap Design : Membuat rancangan untuk system yang diusulkan Fokus pada pengembangan solusi Fokus pada “Bagaimana sistem akan melakukannya” ? Hasil dari design adalah tahapan struktur sistem secara detail yang akan dikonversikan ke program Diagram dan pemodelan penting dalam tahapan desain

The Traditional Development Phase Tahap Implementasi : Implementasi melibatkan penulisan program, pembuatan file, dan database Programmer memiliki beban pada penulisan program dimana sebelumnya telah didesain oleh software analyst Programmer menerjemahkan hasil dari design menjadi suatu program (aplikasi)

The Traditional Development Phase Tahap Testing : Proses debug program dan konfirmasi apakah software sesuai dengan spesifikasi kebutuhan software Testing digunakan untuk mengetahui kualitas dari software Beberapa kesalahan mungkin tidak terdeteksi pada saat tahap implementasi

Software Engineering Methodologies

Software Engineering Methodologies Waterfall Model Prototyping RAD Extreme Programming (XP)

Waterfall Mengidentifikasi kebutuhan jauh sebelum pemrograman dimulai Meminimalkan perubahan kebutuhan selama project

Waterfall Tahap Planning : Tahap Analysis Tahap Design Dalam form permintaan sistem, menjelaskan ringkasan dari kebutuhan bisnis Analisa kemungkinan aspek dari project yang diusulkan Bagaimana tim project berjalan selama pengembangan sistem Tahap Analysis Tahap Design Tahap Implementation

Parrarel Development Mengatasi masalah penundaan yang lama antara tahap analisis dan pengiriman sistem. Membagi proyek menjadi serangkaian sub proyek yang berbeda yang dapat dirancang dan implementasi secara paralel

RAD (Rapid Application Development) Pemahaman yang lebih baik terhadap sistem dan revisi langsung dengan membawa sistem lebih cepat apa yang diinginkan user Problem dari RAD adalah mengelola keinginan pengguna terhadap kemungkinan perubahan yang terjadi Phased development (a series of versions) Prototyping (system prototyping) Throw-away prototyping (design prototyping)

Prototyping Sangat cepat untuk mendefinisikan kebutuhan Sangat cepat menyediakan sistem User dapat langsung berinteraksi dengan prototype untuk mengetahui apa yang dapat dan tidak dilakukan oleh sistem

Throw-away Prototyping Masalah yang muncul diujicobakan/diselesaikan dengan menganalisa, mendesign, & membangun sebuah prototype (yang dinamakan design prototype) Membangun fitur yang belum dipahami dengan jelas Membuat design prototype untuk memahami kebutuhan

Phased Development Mendapatkan sistem yang berguna untuk pengguna dengan cepat Sistem awal sengaja tidak lengkap System requirements berkembang tergantung pandangan dari versi user

Extreme Programming (XP) XP terdiri dari empat nilai inti : komunikasi, kesederhanaan, umpan balik, dan keberanian Pengembang harus menyediakan umpan balik secara cepat Pengembang harus membuat perubahan tambahan untuk perkembangan sistem

Criteria for Selecting a Methodology

Tools Software Engineering

Tools Tool digunakan untuk membuat pemodelan selama tahapan analisis dan desain Pemodelan bertujuan untuk menggambarkan bagaimana data berpindah melalui sistem, meningkatkan komunikasi antara stakeholder dan software engineer Contoh : Data Flow Diagram (DFD), UML

Data Flow Diagram (DFD) Data flow diagram menggambarkan informasi yang diperoleh dari data flow (aliran data) Memudahkan untuk memahami sistem yang diusulkan selama tahap analisis Identifikasi prosedur selama tahap desain

UML (Unified Modeling Language) Sebuah tool yang dikembangkan dengan paradigma Object – Oriented Contoh : Use Case Diagram, Class Diagram Sama seperti DFD, use case menggambarkan interaksi antara user dan sistem Class diagram menggambarkan struktur kelas dan hubungan antar kelas

Use Case Diagram

Class Diagram Person Car 1 own 1..*

Tools (Software) Pada fase analisis dan design, kita bisa menggunakan program-program di bawah ini: Rational Rose Enterprise Architect Microsoft Visio Star UML dsb

Quality Assurance Software Engineering

Software Quality Software Quality berkesesuaian dengan: Persyaratan fungsional dan kinerja dinyatakan dengan jelas Standar dokumen pengembangan jelas Karakteristik implisit yg diharapkan dari semua perangkat lunak dikembangkan secara profesional

Software Quality Assurance Software Quality Assurance (SQA) adalah aktivitas yang digunakan untuk menjamin bahwa proses-proses pengembangan software dilakukan dengan benar. Adanya aktivitas SQA ini diharapkan kebutuhan dan target software yang dikembangkan dapat tercapai.

Software Quality Attributes (1) Correctness Sebuah sistem adalah benar jika berperilaku sesuai dengan spesifikasinya Reliability Keandalan adalah probabilitas bahwa sistem akan beroperasi seperti yang diharapkan selama interval tertentu Robustness Sebuah sistem yang kuat jika berperilaku cukup bahkan dalam keadaan yang tidak ditentukan

Software Quality Attributes (2) Efficiency (Performance) Memperhatikan penggunaan sumber daya seperti waktu komputasi, memori Usability (User Friendliness, Human Factors) Sejauh mana para pengguna (manusia) menemukan sistem dengan "mudah digunakan" dan berguna Maintainability Bagaimana mudahnya untuk mengubah/melakukan perubahan sistem setelah rilis awal

Software Quality Attributes (3) Repairability Berapa banyak pekerjaan yang diperlukan untuk memperbaiki cacat Evolvability (Adaptability) Berapa banyak pekerjaan yang diperlukan untuk beradaptasi dengan perubahan kebutuhan (baik sistem dan proses) Portability Berapa banyak pekerjaan yang diperlukan untuk port ke lingkungan atau platform baru

Software Quality Attributes (4) Verifiability Bagaimana mudahnya untuk memverifikasi apakah atribut yang diinginkan ada Understandability Bagaimana mudahnya untuk memahami sistem Productivity Jumlah produk yang dihasilkan oleh suatu proses untuk sejumlah resource tertentu Visibility (Transparency) Langkah-langkah proses saat ini dan status proyek dapat diakses