• Tidak ada hasil yang ditemukan

INTRODUCTION TO SOFTWARE ENGINEERING

N/A
N/A
Protected

Academic year: 2021

Membagikan "INTRODUCTION TO SOFTWARE ENGINEERING"

Copied!
39
0
0

Teks penuh

(1)

INTRODUCTION TO

SOFTWARE ENGINEERING

This presentation is revised by HA, STMIK, 2013

Mata Kuliah Testing & Implementasi Sistem Program Studi Sistem Informasi 2013/2014 STMIK Dumai Pertemuan 1

(2)

--Acknowledgement

2

Main materials:

 [Pressman, 2010] Pressman, Roger S. Software Engineering: A

Practitioner’s Approach. New York:McGraw-Hill Higher Education, 2010. Print

Supplements:

 [Alter, 2001] Alter, Steven. "Which Life Cycle --- Work System,

Information System, or Software?“ Communications of the Association for Information Systems 7.17 (2001). Print

 [Yud, 2012] Yudhoatmojo, Satrio Baskoro. “Software & Software

Engineering” IKI30202 Rekayasa Perangkat Lunak Term 1

-2011/2012. Faculty of Computer Science University of Indonesia. 2012. Print

(3)
(4)

Apa itu Perangkat Lunak?

 Perangkat Lunak (Software) adalah:

1. Instruksi-instruksi (program komputer) yang pada

saat dijalankan akan menyajikan fitur dan fungsi yang diinginkan, dan dengan performa yang baik;

2. Struktur data yang memungkinkan program untuk

mengatur informasi di dalamnya;

3. Dokumentasi yang mendeskripsikan cara

menggunakan dan fungsi dari program.

(5)

Kurva Ideal vs. Kurva Sebenarnya

5

(6)

6

Apa hubungannya Sistem Informasi

dengan Perangkat Lunak?

(7)

Sistem Informasi vs. Perangkat Lunak

7

 Sistem informasi adalah suatu sistem kerja karena terdiri dari [Alter, 2001, diterjemahkan]:

Manusia sebagai partisipan (perancang maupun

pengguna)

Mesin yang menyajikan proses bisnis yang menggunakan

informasi, teknologi, dan sumber-sumber lain untuk memproduksi produk dan/atau pelayanan (jasa) untuk pelanggan internal maupun eksternal

 Perangkat lunak adalah bagian dari teknologi yang digunakan dalam sebuah sistem informasi yang terkomputerisasi.

(8)

Sistem Informasi vs. Perangkat Lunak

8

 Sistem yang termasuk ke dalam Perangkat Lunak terbagi dalam 2 kategori:

1. Technical computer-based systems

Meliputi komponen perangkat keras dan perangkat lunak, namun tidak melalui prosedur dan proses dari pihak lain Contoh: TV, Handphone, Personal Computer (PC)

2. Socio-technical systems

Meliputi satu atau lebih teknikal sistem, namun yang terpenting juga melibatkan knowledge tentang

bagaimana sistem tersebut seharusnya digunakan untuk mencapai tujuan yang disepakati

Contoh: buku ‘Software Engineering’ yang dibuat melalui sistem publishing socio technical

(9)

9

Pernah mendengar istilah

‘Legacy Software’?

(10)

Legacy Software

10

 Dari Dayani-Fard [Day99], diterjemahkan:

Sistem legacy software … dikembangkan beberapa (bahkan puluhan) tahun yang lalu, dan masih

digunakan, dimodifikasi secara terus menerus dalam

hal business requirements dan computing platforms.

Pengembangan sistem ini sangat beresiko dan sangat memungkinkan ditemukannya masalah dalam proses pengembangan

Legacy software dalam bahasa sederhana: suatu

sistem lama/kuno yang masih dioperasikan samapai hari ini.

(11)

Legacy Software …(2)

11

 Karena masih dioperasikan, software ini secara kritikal ditandai dengan karasteristik proses bisnis yang lama

 Beberapa karakteristik tersebut yang termasuk

poor quality adalah:

 Disain yang tak dapat diperluas  Kode yang tidak rapi

 Dokumentasi yang buruk bahkan tidak ada  Test cases dan hasilnya tak pernah terarsip

(12)

Legacy Software …(3)

12

 Dengan karakteristik kualitas yang buruk, mengapa

perusahaan masih saja menggunakan legacy software?

Karena sistem ini mendukung inti dari fungsi bisnis

(core business functions) yang sangat dibutuhkan oleh perusahaan.

 Apakah organisasi harus menjaga untuk terus menggunakan legacy software ini?

Ya, paling tidak sampai ditemukannya perubahan yang signifikan pada legacy software ini.

(13)

Legacy Software …(4)

13

 Kenapa harus ada perubahan pada legacy software? Ada 4 alasan…

 Perangkat lunak harus mampu beradaptasi saat bertemu

dengan lingkungan teknologi komputasi baru.

 Perangkat lunak harus dapat ditingkatkan untuk

diaplikasikan ke kebutuhan bisnis yang baru.

 Perangkat lunak harus dapat diluaskan sehingga bisa

diinteraksikan dengan banyak sistem atau database yang lebih modern.

 Perangkat lunak harus dapat dirancang-ulang untuk bisa

(14)

14

Untuk apa kita belajar tentang

PERANCANGAN PERANGKAT LUNAK

(

Software Engineering

)?

(15)

Software Engineering …(1)

15

 Beberapa realita dalam mengembangkan perangkat lunak:

 Besarnya usaha yang akan dikeluarkan harus diukur sesuai besarnya permasalahan sebelum solusi

software mulai dikembangkan

 Disain menjadi aktifitas yang sangat penting  Software harus memiliki performa yang baik  Software harus dapat dipelihara selanjutnya

(16)

Software Engineering …(2)

16

Definisi Perancangan Perangkat Lunak (Software Engineering):

 Perancangan yang menggunakan prinsip-prinsip keahlian teknik (engineering) untuk menghasilkan perangkat lunak yang ekonomis dan sesuai, serta mampu bekerja secara efisien didalam sebuah mesin yang nyata.

(17)

Software Engineering …(3)

17

 Definisi Software Engineering versi IEEE:

1. The application of a systematic, disciplined, quantifiable approach to the development,

operation, and maintenance of software; that is, the application of engineering to software.

(18)

Lapisan Teknologi

18

(19)

Lapisan Teknologi - Proses Model

19

 Lapisan proses model adalah sebagai pondasi  Menjadi perekat semua lapisan teknologi

 Mendefinisikan kerangka

 Bentuk dasar untuk manajemen kontrol dari sebuah proyek perangkat lunak

 Lapisan dimana metode teknik digunakan, kualitas perangkat lunak dipastikan, dan

(20)

Lapisan Teknologi - Metode

20

 Lapisan metode menyajikan bagaimana cara untuk membangun perangkat lunak

 Meliputi set dari tugas-tugas, yaitu:

communication, requirement analysis, design modeling, program construction, testing, dan support

 Mengandalkan prinsip-prinsip dasar dalam

menentukan tiap area teknologi yang digunakan termasuk pemodelan dan teknik lainnya.

(21)

Lapisan Teknologi - ‘Tools’

21

 Lapisan peralatan (tools) digunakan sebagai pendukung untuk lapisan proses dan lapisan metode.

(22)

Kerangka Proses (

Process Framework

)

22

• Membangun pondasi untuk proses perancangan perangkat lunak dengan mengidentifikasi sebagian kecil kerangka aktifitas yang dapat diaplikasikan ke semua proyek perangkat lunak.

• Sebagai tambahan, sebuah kerangka proses

mencakupi satu set umbrella acivities yang dapat diaplikasikan ke semua proses perangkat lunak (software process).

• Ilustrasi dari kerangka proses dapat dilihat pada gambar berikut ini …

(23)

Kerangka Proses (

Process Framework

)

(24)

Framework Activities

24  Communication  Planning  Modeling ✤ Analysis of requirements ✤ Design  Construction ✤ Code generation ✤ Testing  Deployment

(25)

Framework Activities

25

COMMUNICATION

 Dilakukan sebelum pekerjaan teknikal apapun dimulai

 Melakukan komunikasi, bekerja sama dengan kustomer dan pihak lainnya.

 Untuk memahami tujuan para stakeholders di dalam proyek dan untuk mengumpulkan

kebutuhan (requirements) yang membantu

mendefinisikan fungsi dan fitur dari perangkat lunak yang akan dibangun.

(26)

Framework Activities

26

PLANNING

 “Perjalanan serumit apapun akan menjadi sederhana jika

ada peta/map”

 Proses perencanaan menghasilkan “map” yang membantu

mengarahkan tim proyek dalam pengerjaan proyek.

 Map ini disebut dengan istilah software project plan

(perencanaan proyek perangkat lunak) yang

mendefinisikan pekerjaan (job desc) dalam merekayasa perangkat lunak

 Termasuk pekerjaan teknikal

 Resiko-resiko yang mungkin terjadi

(27)

Framework Activities

27

MODELING

 Membuat sebuah sketsa sedemikian hingga tim mengerti gambar besar dari proyek

Gambaran secara arsitektur

Bagaimana modul-modul dalam proyek bisa

terhubung satu sama lain

dll

 Tujuan pemodelan adalah untuk mengerti lebih jauh kebutuhan perangkat lunak dan disain yang ingin dicapai dari kebutuhan tersebut.

(28)

Framework Activities

28

CONSTRUCTION

 Membuat kode (baik secara manual maupun otomatis)

Testing yang dibutuhkan untuk menguji apakah ada

error dalam kode

DEPLOYMENT

 Perangkat lunak yang sudah selesai diterima oleh pihak kostumer untuk kemudian dievaluasi dan diberikan

(29)

Framework Activities

29

 Kelima “generic framework activities” ini dapat

digunakan di banyak jenis aplikasi perangkat lunak  Namun implementasi detail tiap aktifitasnya bisa

(30)

Umbrella Activities

30

 Software project management  Formal technical reviews

 Software quality assurance

 Software configuration management

 Work product preparation and production  Reusability management

 Measurement

(31)

Membangun Sistem Informasi

31

Dalam SI, System Development Life Cycle (SDLC) memiliki 4 fase

dasar yang similar (planning, analysis, design and implementation)

Planning

✴ Why build the system?

✴ How the project team will go to build it? ✤ Analysis

✴ Who, what, when, where will the system be? ✤ Design

✴ How will the system will operate, in terms of the hardware,

software and infrastructure?

Implementation

✴ The system is actually built or purchased ✴ System delivery

(32)

Esensi dalam praktek

32

1. Understand the problem (communication and analysis)

2. Plan a solution (modeling and software design)

3. Carry out the plan (code generation)

4. Examine the result for accuracy (testing and quality assurance)

(33)

Understand the Problem

33

Siapa pihak yang akan mengajukan solusi untuk permasalahan proyek

ini?

Siapa pihak-pihaknya?

Apa saja yang belum diketahui?

Apa saja data, fungsi, dan fitur yang dibutuhkan untuk dapat menyelesaikan maslah tersebut?

Apakah masalah tersebut dapat dipecah?

Apakah tersebut bisa disajikan menjadi masalah-masalah kecil yang bisa lebih mudah dimengerti?

Apakah masalah ini bisa direpresentasikan secara grafik? Apakah bisa dibuat ke dalam bentuk analisis model?

(34)

Plan the Solution

34

Apakah masalah ini sebelumnya sudah pernah ada?

Apakah ada pola untuk solusi masalah ini? Apakah sudah ada

perangkat lunak yang mengimplementasikan data, fungsi, dan fitur yang dibutuhkan?

Apakah masalah yang similar dengan masalah ini sudah

terpecahkan?

Jika ya, apakah solusinya dapat digunakan (reuseable)?

Apakah sub masalah dapat didefinisikan?

Jika ya, apakah solusinya sudah dapat ditemukan untuk sub masalah tersebut?

Apakah solusi yang dihasilkan tetap menjadikan proses bisnis

yang efektif?

(35)

Carry Out the Plan

35

Apakah solusi tersebut sesuai dengan perencanaan?

Apakah kode yang dibuat sesuai dengan disain model?

Apakah tiap bagian komponen solusi sudah terbukti benar?

Apakah disain dan kode sudah di-review? Apakah algoritma kode sudah benar?

(36)

Examine the Result

36

Apakah memungkinkan untuk dilakukan

pengujian terhadap tiap komponen dari solusi? Apakah ada strategi pengujian yang digunakan?

Apakah solusi yang dihasilkan sesuai dengan data, fungsi, dan fitur yang dibutuhkan?

Apakah perangkat lunak sudah divalidasi oleh semua pihak yang membutuhkan?

(37)

Hooker’s General Principles

37

1. The Reason It All Exists 2. KIS (Keep It Simple)

3. Maintain the Vision

4. What You Produce, Others Will Consume 5. Be Open to the Future

6. Plan Ahead for Reuse 7. Think!

(38)

The Chaos Report (Standish Group)

on IT Project survey

38

Successful: delivered on time, on budget, with required features and functions

Challenged: late, over budgeted, and/or with less than the required features and functions

Failed:cancelled prior to completion or delivered and never used.

(39)

Terima Kasih …

39

Pertanyaan

&

Referensi

Dokumen terkait

Jika ditinjau dari Identitas Nilai dalam pelembagaan partai melalui masing- masing basis sayap, basis sayap merupakan bagian dari gambaran basis sosial pendukung

Semakin tinggi posisi piston valve, maka semakin tinggi jarum skep terangkat, karena bentuk jarum yang tirus, maka semakin besar celah antara main jet dengan jarum skep,

yang dilakukan oleh Rosydah (2011) dengan meningkatnya jumlah kitosan, mikropartikel yang terbentuk lebih sferis dengan permukaan yang halus, sedangkan pada penelitian

Selanjutnya, pada halaman sumber yang sama, Field (2004: 63 — 64) mengemukakan bahwa di antara pandangan tentang akuisisi yang dapat dicirikan sebagai “ kognitif ” adalah

DAFTAR GAMBAR ... Latar Belakang ... Rumusan Masalah ... Tujuan Penelitian ... Manfaat Penelitian ... Pengertian Religi .... Fungsi Agama Bagi Manusia ... Pengertian

Untuk mengetahui secara simultan besarnya pengaruh citra merek dan persepsi harga terhadap keputusan pembelian dengan menggunakan teknik analisis statistik yang sudah di

Avoidant coping merupakan strategi yang dilakukan individu untuk menjauhkan diri dari sumber stres dengan cara melakukan suatu aktivitas atau menarik diri dari suatu

Modul Program 4.16 Tampilan Halaman Video Letusan Gunung Merapi ...95. Modul Program 4.17 Tampilan Halaman Kawasan Rawan