Desain Software Dan Proses Desain RPL,Karateristik Dan Konsep Desain RPL



Makalah
Rekayasa Perangkat Lunak
Dosen : Dewi Suranti M.kom


 












Disusun Oleh :

Nama : Reyhans Nopaldy A.Razaq
NPM : 16010008

PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS DEHASEN BENGKULU
2017

KATA PENGANTAR

Bismillahirrahmaanirrahiim, Assalamu’alaikum Wr.Wb.

Puji dan syukur marilah kita panjatkan kehadirat illahi rabbi yang mana berkat rahmat dan hidayahnya penyusun dapat menyelesaikan tugas individu ini yang diajukan pada mata kuliah “Rekayasa Perangkat Lunak Shalawat beserta salam marilah kita curahkan selalu kepada baginda alam yakni nabi Muhammad saw. Tugas ini adalah sebuah karya yang saya susun berkat kerja keras dan bantuan dari pihak-pihak yang terkait. Maka dari itu saya mengucapkan banyak terimakasih pada semua pihak yang ikut berperan aktif dalam terwujudnya tugas ini.Terutama pada orang tua yang telah memberikan dukungan baik moril maupum materil serta sahabat-sahabat kami yang senantiasa memberikan motivasi. Tugas yang saya susun ini bukanlah sesuatu yang sempurna, akan tetapi tugas ini terlahir dari kerja kera. Dalam penyusunan tugas ini tentunya masih banyak kekurangan-kekurangan yang harus di perbaharui maka dari itu, saya mengharapkan kepada para pembaca untuk memberikan kritik dan saran supaya dalam pembuatan tugas yang selanjutnya bisa menjadi lebih baik lagi.Terimakasih.

Billahitaufiq wal hidayah
Wassalammu’alaikum Wr.Wb.

Bengkulu,   Oktober 2017



                Reyhans Nopaldy .A




DAFTAR ISI

KATA PENGANTAR............................................................................................................... 2
DAFTAR ISI............................................................................................................................ 3
BAB I PENDAHULUAN
A.    Latar Belakang........................................................................................................................ 4
B.     Rumusan Masalah.................................................................................................................. 4
C.     Tujuan.................................................................................................................................... 4
BAB II PEMBAHASAN
       A.  Desain Software........................................................................................................ 7
       B.  Proses Desain Rekayasa Perangkat Lunak............................................................... 12
       C   Karateristik Rekayasa Perangkat Lunak ................................................................  12 
       D.  Konsep Desain .......................................................................................................  13
BAB III PENUTUP
A.    Kesimpulan......................................................................................................................... 18
B.     Kritik dan Saran ................................................................................................................ 18
DAFTAR PUSTAKA......................................................................................................... 18














BAB I
PENDAHULUAN

A.        Latar Belakang
Rekayasa perangkat lunak (RPL, atau dalam bahasa Inggris: Software Engineering atau SE) adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunaktermasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan perangkat lunak dan manajemen kualitas.
IEEE Computer Society mendefinisikan rekayasa perangkat lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan perangkat lunak, serta studi atas pendekatan-pendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunak.
Rekayasa Perangkat Lunak adalah pengubahan perangkat lunak itu sendiri guna mengembangkan, memelihara, dan membangun kembali dengan menggunakan prinsip reakayasa untuk menghasilkan perangkat lunak yang dapat bekerja lebih efisien dan efektif untuk pengguna.kriteria yang dapat digunakan sebagai acuan dalam merekayasa perangkat lunak.

B.        Rumusan Masalah
Sesuai dengan latar belakang yang telah dikemukakan, dapat dirumuskan beberapa permasalahan, diantaranya ialah :

1.    Apa yang dimaksud dengan desain software dan proses desain RPL ?
2.    Apa yang dimaksud dengan karakteristik RPL ?
3.    Apa yang dimaksud dengan konsep desain RPL ?

C.        Tujuan
Adapun tujuan dari penulisan makalah ini adalah :

1.      Agar dapat mengetahui desain software dan proses desain RPL.
2.      Agar dapat mengetahui karakteristik RPL.
3.      Agar dapat mengetahui konsep desain RPL.




BAB II
PEMBAHASAN
A.        Desain Software
Sejumlah metode desain dapat digunakan untuk menghasilkan desain software :
·         Desain data: mentransformasi model domain informasi ke struktur data
·         Desain arsitektur: menggambarkan relasi antar elemen struktural utama program
·         Desain interface : mendeskripsikan bagaimana software berkomunikasi with user
·         Desain prosedur: mentransformasikan elemen structural arsitektur program ke sebuah deskripsi prosedur dari komponen software.
Evolusi desain software :
·         Konstruksi program modular[DEN73] dan metode perbaikan top-down[WIR71].
·         Pemrograman terstruktur [DAH71, MIL72].
·         Perpindahan data flow/data structure ke sebuah defenisi desain[JAC75][WAR74].
·         Pendekatan berorientasi object[JAC92][GAM95].
Fitur umum metode desain software :
Sebuah mekanisme untuk perpindahan sebuah model analisa ke representasi desain Sebuah notasi untuk merepresentasi komponen fungsional dan interface-nya Heuristic untuk perbaikan dan partisi Panduan untuk assessment kualitas
B.         Proses Desain Rekayasa Perangkat Lunak
Desain adalah langkah pertama dalam fase pengembangan bagi setiap produk atau sistem yang direkayasa. Desain dapat didefinisikan berbagai “proses aplikasi berbagai teknik dan prinsip bagi tujuan pendefinisian suatu perangkat, suatu proses atau sistem dalam detail yang memadai untuk memungkinkan realisasi fisiknya”[TAY59]. Tujuan desainer adalah untuk menghasilkan suatu model atau representasi dari entitas yang kemudian akan dibangun.
Desain Perangkat Lunak Dan Rekayasa Perangkat Lunak
Desain perangkat lunak berada pada inti teknik dari proses rekayasa perangkat lunak dan diaplikasikan tanpa memperhatikan model proses perangkat lunak yang digunakan. Begitu persyaratan perangkat lunak telah mulai dianalisis dan ditentukan, maka desain perangkat lunak menjadi yang pertama dari tiga aktivitas teknik – desain, pembuatan kode dan pengujian – yang diperlukan untuk membangun dan menguji perangkat lunak. Persyaratan perangkat lunak, yang dimanifestasi oleh data, fungsional, dan model-model perilaku, mengisi langkah desain. Dengan menggunakan satu dari sejumlah metode desain, langkah desain menghasilkan.
1.      Desain Data (Data Design)
2.      Desain Arsitektur (Architectural Design)
3.      Desain Antar Muka (Interface Design)
4.      Desain Prosedural (Procedural Design)

ü  Desain Data
Desain data adalah aktivitas pertama dan terpentig dari empat aktivitas desain yang dilakukan selama rekayasa perangkat lunak. Proses pemilihan struktur dalam menentukan desain yang paling efisien sesuai kebutuhan.
Tujuan : Untuk mendapatkan struktur data yang baik sehingga diperoleh program yang lebih modular dan mengurangi kompleksitas pengembangan software.
ü  Prinsip Mendesain Data
·         Prinsip analisis sistematika yang diaplikasikan pada fungsi dan perilaku harusnya juga diaplikasikan pada data.
·         Semua struktur data dan operasi yang akan dilakukan pada masing-masing struktur data harus didentifikasi.
·         Kamus data harus dibangun dan digunakan untuk menentukan baik data maupun desain program.
·         Keputusan desain data tingkat rendah harus ditunda sampai akhir proses desain.
·         Representasi struktur data hanya boleh diketahui oleh modul-modul yang menggunakan secara langsung data yang diisikan didalam struktur tersebut.
·         Pustaka struktur data dan operasi yang berguna yang dapat diaplikasikan pada struktur data tersebut harus dikembangkan.
·         Desain perangkat lunak dan bahasa pemrograman harus mendukung spesifikasi dan realisasi dari tipe-tipe data abstrak.
ü  Desain Arsitektur
Desain arsitektur adalah untuk mengembangkan struktur program modular dan merepresentasikan hubungan kontrol antar modul. Metode desain yang disajikan pada bagian ini mendorong prekayasa perangkat lunak untuk berkosentrasi pada desain arsitektur sebelum mencemaskan masalah perpipaan.
Faktor seleksi yang penting untuk suatu metode desain adalah luasnya apliksi dimana aplikasi dapat diaplikasikan. Desain berorientasi pada aliran data dapat menyetujui rentang area aplikasi yang luas.
·         Proses Desain Arsitektur
Desain yang berorientasi pada aliran data merupakan suatu metode desain arsitektur yang mengijinkan transisi yang baik dari model analisis ke deskripsi desain dari struktur program.
Transisi dari aliran informasi (yang ditujukan sebagai diagram aliran data) kestruktur dilakukan bagian dari proses 5 langkah:
o   Tipe aliran informasi dibangun.
o   Batas aliran diindikasikan.
o   DFD dipetakan didalam struktur program.
o   Hirarki kontrol ditentukan dengan pemfaktoran.
o   Struktur resultan disaring atau diperhalus dengan menggunakan pengukuran desain dan heuristik.
·         Pasca Pemrosesan Desain
Aplikasi dari pemetaan transaksi dan transformasi yang berhasil kemudian ditambahkan pada dokumentasi tambahan yang dibutuhkan sebagai bagian dari desain arsitektur. Setelah struktur dikembangkan dan disaring, tugas – tugas berikut harus dilakukan:
o   Mengembangkan narasi pemerosesan untuk masing – masing modul.
o   Menyediakan deskripsi interface untuk masing – masing modul.
o   Menentukan struktur data local dan global.
o   Mencatat semua batasan desain.
o   Mengkaji desain.
o   Mempertimbangkan “optimasi” (bila perlu dan dibenarkan).

·         Optimasi Desain Arsitektur
Desainer perangkat lunak harus memperhatikan perkembangan representasi perangkat lunak yang akan memenuhi semua fungsi dan persyaratan kinerja dan penerimaan jasa berdasarkan pengukuran desain kualitas.
Usul pendekatan berikut ini untuk perangkat lunak kinerja – kritis dalam optimasi desain arsitektur :
o   Kembangkan dan saringlah struktur program tanpa memperhatikan optimasi kinerja – kritis.
o   Gunakan peranti CASE yang mensimulasi kinerja run – time untuk menisolasi area inesifiensi.
o   selama iterasi desain selanjutnya, pilihlah modul yang dicurigai dan dengan hati – hati kembangkanlah prosedur (algoritma – algoritma) untuk efisiensi waktu.
o   Kodekan sebuah bahasa pemerograman yang sesuai.
o   Instrumentasikan perangkat lunak untuk mengisolasi modul yang menjelaskan utilisasi proses yang berat.
o   Bila perlu, Desain ulang atau kodekan kembali bahasa yang tergantung pada mesin untuk meningkatkan efisiensi.

ü  Desain Interface
Memberikan suatu gambaran mengenai struktur program kepada perekayasa perangkat lunak. Fokus Desain Interface :
·         Desain interface antar modul
·         Desain interface antara perangkat lunak dan entitas eksternal (produser & konsumen)
·         Desain interface manusia dengan komputer
·         Desain Interface Manusia-Mesin
Ada empat model yang berbeda pada saat manusia-komputer/ human-komputer interface (HCL) akan didesain. Perekayasa perangkat lunak menciptakan sebuah model desain, perekayasa perangkat lunak membangun model pemakai, pemakai akhir mengembangkan citra mental yang sering disebut user’s model atau perception, dan implementer sistem menciptakan system image.        
Model desain dari keseluruhan sistem menggabungkan data, arsitektur, interface, dan representasi prosedural dari perangkat lunak.
Model pemakai menggambarkan profil para pemakai akhir dari sistem. Untuk membangun interface pemakai yang efektif, semua desain harus dimulai dengan suatu pemahaman terhadap pemakai yang dimaksudkan, meliputi profil, usia, jenis kelamin.
Para pemakai juga dapat dikategorikan sebagai:
·         Orang baru
·         Pemakai intermiten yang banyak pengetahuan
·         Pemakai yang banyak pengetahuan dan sering
Persepsi sistem (model pemakai) merupakan citra sistem yang ada dikepala seorang pemakai akhir. Sebgai contoh, bila pemakai pengelola kata tersebut, persepsi sistem akan menuntun respon tersebut.
Citra sistem merangkai manifestasi bagian luar dari sistem berbasis computer (tampilan luar dan “rasa” interface), dengan semua informasi yang mendukung (buku-buku, manual, pita video) yang menggambarkan sintaksis dan semantik sistem.
ü  Desain Prosedural
Tujuan untuk menetapkan detail algoritma yang akan dinyatakan dalam suatu bahasa tertentu.           
Desain prosedural dilakukan setelah diselesaikannya perancangan desain data, arsitektur, dan antar muka software.

ü  Coding
Program Design Language (PDL)
adalah pseudocode atau suatu bahasa keseluruhan yang sintaksnya dari bahasa tertentu (pemrograman terstruktur).
C.        Karakteristik Perangkat Lunak
Setiap individu menilai perangkat lunak secara berbeda. Ini karena mereka terlibat dengan perangkat lunak dengan cara yang berbeda. Misalnya, pengguna ingin perangkat lunak tampil sesuai dengan kebutuhan mereka. Demikian pula, pengembang (developer) yang terlibat dalam perancangan, pengkodean, dan pemeliharaan perangkat lunak mengevaluasi perangkat lunak dengan melihat karakteristik internalnya, sebelum mengirimkannya ke pengguna. Karakteristik perangkat lunak dikelompokkan menjadi enam komponen utama.
ü  Functionality: Mengacu pada tingkat kinerja perangkat lunak terhadap tujuan yang telah ditentukan.
ü  Reliability: Mengacu pada kemampuan perangkat lunak untuk menyediakan fungsionalitas yang diinginkan dalam kondisi tertentu.
ü  Usability: Mengacu pada sejauh mana perangkat lunak dapat digunakan dengan mudah.
ü  Efficiency: Mengacu pada kemampuan perangkat lunak untuk menggunakan sumber daya sistem dengan cara yang paling efektif dan efisien.
ü  Maintainability: Mengacu pada kemudahan modifikasi yang dapat dilakukan dalam sistem perangkat lunak untuk memperluas fungsinya, memperbaiki kinerjanya, atau memperbaiki kesalahannya.
ü  Portability: Mengacu pada kemudahan pengembang perangkat lunak (software developer) mana yang dapat mentransfer perangkat lunak dari satu platform ke platform lainnya, tanpa (atau dengan minimum) perubahan. Secara sederhana, ini mengacu pada kemampuan perangkat lunak untuk berfungsi dengan baik pada berbagai platform perangkat keras (hardware) dan perangkat lunak (software) tanpa membuat perubahan apa pun di dalamnya.
Selain karakteristik yang disebutkan di atas, robustness dan integrity juga penting. Robustness mengacu pada sejauh mana perangkat lunak dapat tetap berfungsi meskipun dilengkapi data yang tidak valid sementara integrity mengacu pada sejauh mana akses yang tidak sah terhadap perangkat lunak atau data dapat dicegah.
D.        Konsep Desain
a.       Abstraksi
Abstraksi memungkinkan desainer menentukan prosedur dan data, dan masih menekan detail tingkat rendah.
Terdapat 3 macam bentuk abstraksi, yaitu :
1)      Abstraksi prosedural.
Merupakan urutan instruksi yang diberi nama yang mempunyai fungsi tertentu dan terbatas.
2)      Abstraksi data.
Kumpulan data yang bernama yang menggambarkan obyek data.
3)      Abstraksi kontrol.
Mengimplikasikan suatu mekanisme kontrol program tanpa menentukan detail-detail internal
b.      Penyaringan.
Penyaringan stepwise (dengan serangkaian langkah) adalah strategi desain top-down yang diusulkan oleh Wiklaus Wirth. Kajian dari konsep tersebut adalah“Pada setiap langkah (penyaringan), satu atau beberapa instruksi dari program yang diberikan didekomposisi ke dalam instruksi-instruksi yang lebih detail. Dekomposisi berurutan atau penyaringan spesifikasi berhenti bila semua instruksi diekspresikan dalam bentuk bahasa pemrograman atau komputer yang mendasar. Jika tugas-tugas disaring, maka data harus disaring juga, didekomposisi atau distruktur, dan adalah wajar untuk menyaring program dan spesifikasi data secara paralel” .
Abstraksi dan penyaringan adalah konsep kompementer. Kedua konsep tersebut membantu desainer dalam menciptakan suatu model desain lengkap jika desain berkembang.


c.       Modularita
Modularitas merupakan atribut tunggal dari perangkat lunak yang memungkinkan sebuah program untuk dikelola secara intelektual.
Meyer menyebutkan 5 kriteria yang memungkinkan kita untuk mengevaluasi suatu metode desain dengan merujuk pada kemampuannya untuk menentukan sistem modular yang efektif.
1)            Dekomposisi modular.
2)            Komposabilitas modular.
3)            Kemampuan pemahaman modular.
4)            Kontinuitas modular.
5)            Proteksi modular.

d.      Arsitektur perangkat lunak
Arsitektur perangkat lunak mencakup “struktur keseluruhan perangkat lunak dan cara dimana struktur memberikan integrasi konseptual bagi suatu sistem”.
Shaw dan Garlan menjelaskan sekumpulan properti yang seharusnya ditetapkan sebagai bagian dari desain arsitektural :
·         Properti struktural.
Menentukan komponen suatu sistem dan cara dimana komponen-komponen tersebut dikemas dan berinteraksi satu dengan yang lain.
·         Properti ekstra-fungsional.
Menekankan pada bagaimana arsitektur desain memenuhi persyaratan kinerja, kapasitas, reliabilitas, keamanan, adaptibilitas, dan karakteristik sistem yang lain.
·         Keluarga dari sistem yang berhubungan.
Desain harus memiliki kemampuan untuk memakai lagi blok bangunan arsitektural tersebut.



e.       Hirarki Kontrol
Hirarki kontrol, disebut juga struktur program merepresentasikan organisasi komponen program serta mengimplikasikan suatu hirarki kontrol. Hirarki kontrol tidak mengimplikasikan aspek prosedural dari perangkat lunak, seperti urutan proses, kejadian/urutan dari keputusan, atau pengulangan operasi.
f.       Partisi structural
Struktur progam harus dipartisi baik secara horizontal maupun vertikal.
Partisi horizontal menentukan cabang-cabang terpisah dari hirarki modular untuk setiap fungsi program mayor. Keuntungannya :
·         menghasilkan perangkat lunak yang lebih mudah diuji.
·         Membawa kepada perangkat lunak yang lebih mudah dipelihara.
·         Menghasilkan penyebaran efek samping yang lebih sedikit.
·         Menghasilkan suatu perangkat lunak yang lebih mudah untuk diperluas.
Partisi vertikal menyatakan bahwa kontrol dan kerja harus didistribusikan secara top-down dalam arsitektur program.
g.      Struktur data
Struktur data adalah representasi dari hubungan logis antara elemen-elemen data individual.
h.      Prosedur perangkat lunak
Prosedur perangkat lunak berfokus pada detail-detail pemrosesan dari masing-masing modul secara individual. Prosedur harus memberikan spesifikasi yang teliti terhadap pemrosesan, mencakup urutan event, poin-poin keputusan nyata, operasi repetitif, dan organisasi struktur data.
i.        Penyembunyian informasi
Prinsip penyembunyian informasi menyatakan bahwa bahwa modul ditandai dengan keputusan desain tersembunyi dari semua desain lain.


§  Konsep Desain – Modularity
Desain Modular Afektif
1.      Independensi fungsional
Merupakan hasil pertumbuhan langsung dari modularitas dan konsep abstraksi dan penyembunyian informasi.
Independensi fungsional dicapai dengan mengembangkan modul dengan fungsi “single-minded” dan suatu “aversi” ke interaksi eksesif dengan modul yang lain.
2.      Kohesi
Kohesi adalah suatu ekstensi natural dari konsep penyembunyian informasi. Modul kohesi melakukan suatu tugas tunggal pada suatu prosedur perangkat lunak yang memerlukan sedikit interaksi dengan prosedur yang sedang dilakukan di bagian lain dari suatu program.
3.      Perangkaian
Perangkaian adalah pengukuran interkoneksi diantara modul-modul pada sebuah struktur progam. Perangkaian tergantung pada kompleksitas interface diantara modul-modul, titik dimana entri atau referensi dibuat untuk sebuah modul dan data yang dilewatkan pada interface tersebut.
Software dibagi komponen dengan nama dan alamat yang berbeda, disebut modul. Meyer [MEY88] mendefenisikan lima kriteria yang memungkinkan kita mengevaluasi sebuah metode desain dengan bergantung kepada kemampuannya mendefenisikanfive sebuah sistem modular efektif:
o   Modular decomposability: sebuah metode desain menyediakan sebuah mekanisme sistematik untuk men- decompose atau membagi masalah ke sub-masalahà mengurangi kompleksitas dan mendapatkan modularity
o   Modular composability: sebuah metode desain memungkinkan komponen desain yang telah ada dirakit ke sebuah sistem baru.
o   Modular understandability: sebuah modul dapat dimengerti sebagai sebuah unit yang berdiri sendiri dan akan lebih mudah membangun dan mengubahnya.
o   Modular continuity: perubahan kecil terhadap kebutuhan sistem menghasilkan perubahan pada tiap modul, dibanding perubahan system-wide.
o   Modular protection: sebuah kondisi aberrant terjadi dalam sebuah modul dan efeknya di-constrain dalam modul.
j.        Abstraksi
Abstraksi memungkinkan desainer menentukan prosedur dan data, dan masih menekan detail tingkat rendah.
Terdapat 3 macam bentuk abstraksi, yaitu :
·         Abstraksi prosedural.
Merupakan urutan instruksi yang diberi nama yang mempunyai fungsi tertentu dan terbatas.
·         Abstraksi data.
Kumpulan data yang bernama yang menggambarkan obyek data.
·         Abstraksi kontrol.
Mengimplikasikan suatu mekanisme kontrol program tanpa menentukan detail-detail internal.















BAB II
PENUTUP
A.    KESIMPULAN
·         Desain Software
 Sejumlah metode desain dapat digunakan untuk menghasilkan desain software:
1)            Desain data: mentransformasi model domain informasi ke struktur data
2)            Desain arsitektur: menggambarkan relasi antar elemen struktural utama program
3)            Desain interface : mendeskripsikan bagaimana software berkomunikasi with user
4)            Desain prosedur: mentransformasikan elemen structural arsitektur program ke sebuah deskripsi prosedur dari komponen software.
·         Proses Desain Rekayasa Perangkat Lunak
Desain adalah langkah pertama dalam fase pengembangan bagi setiap produk atau sistem yang direkayasa. Desain dapat didefinisikan berbagai “proses aplikasi berbagai teknik dan prinsip bagi tujuan pendefinisian suatu perangkat, suatu proses atau sistem dalam detail yang memadai untuk memungkinkan realisasi fisiknya”[TAY59]. Tujuan desainer adalah untuk menghasilkan suatu model atau representasi dari entitas yang kemudian akan dibangun.
·         Karakteristik Perangkat Lunak
Setiap individu menilai perangkat lunak secara berbeda. Ini karena mereka terlibat dengan perangkat lunak dengan cara yang berbeda. Misalnya, pengguna ingin perangkat lunak tampil sesuai dengan kebutuhan mereka. Demikian pula, pengembang (developer) yang terlibat dalam perancangan, pengkodean, dan pemeliharaan perangkat lunak mengevaluasi perangkat lunak dengan melihat karakteristik internalnya, sebelum mengirimkannya ke pengguna. Karakteristik perangkat lunak dikelompokkan menjadi enam komponen utama.





DAFTAR PUSTAKA

Wikipedia, the free encyclopedia - Software engineering .
http://en.wikipedia.org/wiki/Software_engineering.

Komentar