SlideShare a Scribd company logo
1 of 19
Download to read offline
Pengenalan Software
          Engineering
                Arna Fariza
  Politeknik Elektronika Negeri Surabaya



                                              1
              Rekayasa Perangkat Lunak




             Materi
Apa yang dimaksud Perangkat Lunak?
Apa yang dimaksud Rekayasa Perangkat Lunak?
Apa yang dilakukan Rekayasa Perangkat Lunak
Bagaimana Perangkat Lunak direkayasa
(Proses)?
Software Engineering vs Computer Science




                                              2
              Rekayasa Perangkat Lunak




                                                  1
Apakah Perangkat Lunak itu?
  Perangkat lunak adalah definisi dan organisasi
  dari sekumpulan task dan fungsi yang
  dienkapsulasi dalam bentuk yang dapat di-
  eksekusi oleh komputer
  Beberapa tipe perangkat lunak:
  o Commercial-Off-the-Shelf (COTS)
  o Government-Off-the-Shelf (GOTS)
  o Legacy: ditulis dalam bahasa pemrograman ‘sebelumnya’
       • Cobol, PL/1 (Y2k/SNET), Fortran, etc.
       • C and C++!
  o Customized New Software
  o Client vs. Server Software
  o Database Management Systems/Applications


                                                            3
                            Rekayasa Perangkat Lunak




Apakah Rekayasa Perangkat Lunak itu?
  Rekayasa: aplikasi keilmuan untuk penyelesaian
  permasalahan praktis
  Rekayasa Perangkat Lunak: aplikasi ilmu komputer
  untuk membangun sistem perangkat lunak praktis
  Pemrograman
  o   Individu menulis keseluruhan program
  o   Satu orang, satu komputer
  o   Well-defined Problem
  o   Programming-in-the-Small
  Rekayasa Perangkat Lunak
  o Individu menulis komponen program
  o Tim membangun keseluruhan prgram
  o Programming-in-the-Large


                                                            4
                            Rekayasa Perangkat Lunak




                                                                2
Apakah Rekayasa Perangkat Lunak itu?
  Aplikasi dari merekayasa perangkat lunak
  Wilayah Computer Science Engineering yang
  berhubungan dengan Sistem Perangkat Lunak
  o   Besar dan kompleks
  o   Dibangun oleh tim
  o   Terdapat beberapa versi
  o   Berakhir beberapa tahun
  o   Undergo changes
  Definisi
  o Aplikasi yang menggunakan pendekatan sistematis, disiplin,
    terukur untuk mengembangkan, mengoperasikan dan
    memelihara perangkat lunak (IEEE 1990)
  o Pembangunan oleh banyak orang (multi-person) dari perangkat
    lunak multi-version (Parnas 1978)

                                                                  5
                        Rekayasa Perangkat Lunak




Mengapa Rekayasa Perangkat Lunak?
  Kompleksitas program melebihi programmer individu
  atau sendiri
  Rekayasa perangkat lunak ditarget untuk
  o   Membangun aplikasi perangkat lunak besar
  o   Mendefinisikan permasalahan dengan jelas dan komplit
  o   Perangkat dan teknik untuk mendukung proses
  o   Team-Oriented experience
  Rekayasa perangkat lunak harus berkembang menjadi
  Engineering discipline
  Rekayasa perangkat lunak harus memajukan dan
  mendukung konstruksi multi-person dari perangkat
  lunak multi-version

                                                                  6
                        Rekayasa Perangkat Lunak




                                                                      3
Sejarah RPL
“Early Days”
o Th 1950 programmer menulis program
o Awal 1960 – Pembangunan project software skala sangat besar
  oleh “Expert”
o Pertengahan-Akhir 1960 - muncul aplikasi software komersial
  skala besar
    • Sistem besar melibatkan tim
    • Muncul istilah “Software Engineering
Disiplin RPL
o Induvidu tidak dapat melihat “Big Picture”
o Meningkatnya waktu komunikasi
o Perubahan personal berakibat pada produktifitas
RPL: manajemen, organisasi, perangkat, teori,
metodologi, teknik dll

                                                                7
                       Rekayasa Perangkat Lunak




               Pengaruh RPL
Harga software terus meningkat, membutuhkan
produksi software yang lebih efisien
o Software acquisition vs outsourcing
o Software reuse vs build-from-scratch
Kompleksitas perangkat lunak besar berubah dalam
bentuk perspektif pengembangan
Konsep    Desain        Pengembangan
Integrasi Distribusi         Dokumentasi
Pemeliharaan     Evolusi            Perluasan
Pertumbuhan RPL/Computer Science
o 350.000 pekerjaan teknologi informasi terbuka
o 100.000 pekerjaan baru setiap tahun selama 10 tahun

                                                                8
                       Rekayasa Perangkat Lunak




                                                                    4
Programmer vs RPL
   Individu dengan skill yang baik               Bagian dari tim
   Pemrograman kecil                             Pemrograman skala besar
   Pengetahuan dalam                             Pendekatan desain
    o Struktur data                               o OO, modul dll
    o Algoritma                                   o Top-Down/Bottom-Um
   Menguasai beberapa bahasa                     Menterjemahkan kebutuhan
   pemrograman                                   ke dalam spesifikasi
   Ketiadaan training formal                     Lebih akrab dalam area
   Penggunaan CS minimal                         multiple application
                                                 Berlawanan dengan user
                                                 Melihat “Big picture”
                                                 Dapat memodelkan aplikasi
                                                 Skill komunikasi dan
                                                 interpersonal yang baik

                                                                                 9
                                Rekayasa Perangkat Lunak




        Model Proses Waterfall
Analisa dan
 Spesifikasi                   Apa kekurangan dari sistem ini?
Kebutuhan

               Desain dan
               Spesifikasi


                              Coding dan
                             Testing Modul                                50 %

                                          Integrasi dan
                                         System Testing


                                                           Delivery dan   50 %
                                                           Maintenance
                                                                             10
                                Rekayasa Perangkat Lunak




                                                                                     5
Software Lifecycle dari Model Waterfall
  Analisa dan spesifikasi kebutuhan
  o   Permasalahan apa yang dipecahkan?
  o   Apa yang dibutuhkan/diinginkan Pelanggan?
  o   Interaksi antara SE dan Pelanggan?
  o   Identifikasi dan dokumentasi kebutuhan sistem
  o   Membangkitkan user manual dan test plan
  Desain dan spesifikasi
  o   Bagaimana permasalahan dipecahkan
  o   Desain High-Level
  o   Menentukan komponen/modul
  o   Transisi ke desain secara detil
  o   Fungsional detil dari komponen/modul
                                                      11
                     Rekayasa Perangkat Lunak




Software Lifecycle dari Model Waterfall
  Coding dan Testing Modul
  o Menulis kode sesuai spesifikasi desain
    komponen/modul
  o Memisahkan testing modul individu
  o Simulasi perilaku sistem dengan driver dan stub
  Integrasi dan System Testing
  o Integrasi komponen/modul ke dalam sub sistem
  o Integrasi sub sistem ke dalam program akhir
  Delivery dan Maintenance
  o Memberikan sistem ke Konsumen/Market
  o Memperbaiki buk dan version release sepanjang
    waktu
                                                      12
                     Rekayasa Perangkat Lunak




                                                           6
Sejarah Perangkat Lunak
Abstract Data Types (ADTs) – 1970-an
Object-Oriented Paradigm – 1980-an
Component-Based D & D – 1990-an
Web-Based/Distributed Computing – 2000-an




                                                                13
                     Rekayasa Perangkat Lunak




1970 - Abstract Data Types (ADTs)
Diusulkan oleh B. Liskov (MIT) tahun 1975
ADTs mempromosikan pengembangan aplikasi dari
pandangan informasi dan penggunaannya
Prosesn desain ADT
 o Identifikasi “jenis” atau “tipe” informasi
 o Membungkus informasi dan menyediakan public interface dari
   metode
 o Menyembunyikan informasi dan kode metode dalam private
   implementation
ADT berhubungan dengan User-Defined Data Types
Analogi dengan Integer Data Type dan +, -, *, dll


                                                                14
                     Rekayasa Perangkat Lunak




                                                                     7
ADT Stack
                 Public
               Interface      Private Implementation

                              Head: Int;
        User                                                Designer
                              ST: Array[100] of Int;
                  PUSH
                  POP         Push(X Int)
                              …
                  TOP         End;
                  EMPTY
                              Int Pop()
                              …
                              End;



 PUSH
         5                       20 15   10    5
        10                                                      ST
        15        5
                  TOP            20       15       10   5
        20



                                                                       15
                           Rekayasa Perangkat Lunak




1980 - Object-Oriented Paradigm
  Object-Oriented Decomposition
   o Dekomposisi permasalahan ke dalam agen yang
     membentuk operasi
   o Penekanan agen yang menyebabkan aksi
  Agen terdiri dari 2 bagian
   o Hidden Implementation: data dan operasi hanya
     tersedia pada agen
   o Public Interface: operasi tersedia untuk client dari
     agen
  Agen hanya dapat dimodifikasi dengan operasi
  yang ditentukan dengan Hidden Implementation
  atau Public Interface
                                                                       16
                           Rekayasa Perangkat Lunak




                                                                            8
Konsep Object-Oriented
  Class
   o Tipe agen
   o Menggambarkan perilaku
  Object
   o Instance dari class
   o Merepresentasikan data aktual yang dimanipulasi oleh agen
   o Memelihara state dari object
  Method
   o Operasi yang didefinisikan dalam class
   o Operasi terhadap SEMUA instance dari Class
  Message
   o Mengindikasikan bahwa method dari object dikerjakan

                                                                     17
                        Rekayasa Perangkat Lunak




      Contoh Class Employee
   Class Employee                          Main()
    {                                      {
      //Hidden Implementation              //Declare Objects
      Private: //Instance Vars             Employee emp1(Steve,100.0);
        char[30] name;                     Employee emp2(Lois, 120.0);
        float    salary;
     //Public Interface                    //Pass Messages
     Public:                               //Invoke Methods
        void print_name();                 emp1.print_name();
        void print_salary();               emp1.print_salary();
        void update_salary(float i);       emp2.update_salary(10);
        Employee(char *n, float s);        emp2.print_name();
    }                                      emp2.print_salary();
                                           }

Apa Output dari Main()?         Kesimpulan:
      Steve                      Setiap Object (emp1,emp2)
      100.0                      mempunyai Independent State
      Lois                       sendiri yang diakses melalui
      130.0                      Shared Public Interface dari Class
                                                                     18
                        Rekayasa Perangkat Lunak




                                                                          9
Modul vs ADT/Class
Modul
o Menggambarkan baik state dan perilaku
o Modul Employee terdiri dari Instance Variable, Operasi dan
  Program Variable
o Single instance di-share oleh semua user
Class
o Menggambarkan hanya perilaku
o Class Employee mengabaikan Program Variabel
o Multiple Independent Instance membagi deklarasi class yang
  sama tetapi membedakan state
Kunci perbedaan : sifat dinamis class memungkinkan
instance dibuat sesuai kebutuhan


                                                               19
                     Rekayasa Perangkat Lunak




        Konsep Lanjutan OO
Inheritance
o Menggunakan Class bersama-sama dengan Generalisasi dan
  Spesialisasi
o Memperlakukan instance dari class yang berbeda dalam bentuk
  seragam
Polymorphism/Dynamic Binding
o Pemilihan Run-Time dari Method dijalankan berdasarkan tipe
  pemanggilan instance
o Message dilewatkan dalam tipe yang dependent
Generic: A Type Parameterizable Class
o Stack mempunyai parameter untuk tipe elemen
o Pembuatan Program Variable mengikat data dan Method stack
  ke tipe khusus dari elemen
o Stack(Real), Stack(Int), Stack(Employee)

                                                               20
                     Rekayasa Perangkat Lunak




                                                                    10
Contoh inheritance
Specialisasi         Person
                                                Generalisasi
                       Name, SSN
                       Print_Info()


         Employee::Person               Student::Person
           Dept, Salary                   Dorm, GPA
           Update_Salary()                Print_Transcript



 Faculty::Employee           Dean::Employee
   Rank                        School
   Promote_Fac()

  Supertype, Superclass, Parent Class, Base Class
   Subtype, Subclass, Child Class, Derived Class
         Descendants, Ancestors, Siblings                      21
                     Rekayasa Perangkat Lunak




               Keuntungan OO
 Mendukung komponen software yang Reusable
  o Pembuatan dan testing dalam isolasi
  o Integrasi dari komponen yang bekerja
  o Desainer/developer melihat permasalahan pada
    level abstraksi lebih tinggi
 Mengontrol konsistensi informasi
  o Public Interface membatasi akses ke data
  o Private Implementation tidak tersedia
 Mempromosikan/Memfasilitasi Evolusi/Reuse
 software
  o Inheritance ke desain lebih lanjut / Class Library
  o Multiple instance dari Class yang sama
                                                               22
                     Rekayasa Perangkat Lunak




                                                                    11
1990- Component-Based D & D
ADT sebagai unit abstraksi/konseptualisasi
Class adalah OO yang ekuivalen dengan ADT
Tetapi, dalam 10 tahun
 o   Kekuatan komputasi meledak
 o   Kompleksitas aplikasi meningkat
 o   Class adalah bagian dari hirarki inheritance
 o   Hirarki inheritance bagian dari Aplikasi Class Library
Dalam 10 tahun
 o Muncul Java (dan sekarang .NET)
 o Muncul Java Beans
 o Component-Based Development Tools

                                                               23
                       Rekayasa Perangkat Lunak




      Apakah komponen itu?
Bagaimana aplikasi dikonsepkan?
 o Inheritance Hierarchies Partition Domain
 o Package sebagai kumpulan atau class yang berhubungan
 o Kumpulan class, Package, hirarki inheritance membentuk
   Application Class Library
Bagaimana Class Library dimanfaatkan?
 o   Menggunakan Class individu
 o   Menggunakan Package atau subset dari Package
 o   Menggunakan porsi utama dari hirarki inheritance
 o   Tool menggunakan beberapa Package dan/atau hirarki terpilih
 o   Tool yang menjangkau Application Class merupakan software
     yang didesain dengan jelek


                                                               24
                       Rekayasa Perangkat Lunak




                                                                    12
Konsep Komponen
Komponen terdiri dari satu atau lebih Class (atau
komponen lain) dan diperuntukkan untuk mendukung
Pembentukan unit fungsionalitas
Peruntukkan class dalam multiple component
mempertahankan semantic yang sama dalam semua
keadaan
Contoh komponen
o Graphical User Interface Widget
o Major “Reused” Functionality
   • Algoritma untuk Searching/Sorting
   • Database Connection/Querying
o Aplikasi khusus
   • Komponen Cost Accounting
   • Komponen Computational Fluid Dynamics

                                                    25
                     Rekayasa Perangkat Lunak




        Contoh Komponen
Two Sample Components:
o Komponen Tanggal (selalu tanggal valid)
o Komponen alamat (Konsistensi dalam presentasi)




                                                    26
                     Rekayasa Perangkat Lunak




                                                         13
Komponen vs Object
Komponen                            Object
 o Berorientasi bisnis                o Berorientasi teknologi
 o Bentuk kasar                       o Bentuk halus
 o Berbasis standard                  o Berbasis bahasa
 o Multiple Interfaces                o Single Interface
 o Menyediakan servis                 o Menyediakan operasi
 o Dibungkus penuh                    o Menggunakan inheritance
 o Dimengerti semua orang             o Dimengerti Developer




                                                               27
                    Rekayasa Perangkat Lunak




2000-Web-Based/Distributed Computing

Komputasi/aplikasi terdistribusi adalah …
 o   Sistem dari sistem
 o   Interoperasi dari aplikasi baru dan yang sudah ada
 o   Pewarisan, database, COTS, New Client dll
 o   Network Centric Environment
 o   Multi-Tier Solutions
Aplikasi komputasi terdistribusi harus …
 o Mengatur, mengontrol, mengakses dan memodifikasi
   data
 o Memungkinkan manusia berinteraksi dengan data
 o Menyediakan High-Availability dan Performansi
 o dapat berkembang sepanjang waktu
                                                               28
                    Rekayasa Perangkat Lunak




                                                                    14
Apakah Aplikasi Terdistribusi?
       Sistem dari sistem                 Network Centric Environment
     Hardware                Performansi                      High-Availability
     OS, PLs yang
     heterogen            Legacy            DB Client
                          Client                                  Java
                                    Legacy        Server          Client
                    Database
                                   Server
                    COTS                               Database
                                                                     COTS
                 Java          Legacy        COTS                    Client
Lingkungan       Client

  Dinamis                          Meningkatkan Produktivitas

 Interoperasi yg transparan Penggunaan Informasi
                                baru/inovasi
                                                                                       29
                            Rekayasa Perangkat Lunak




               Realitas Saat ini
    Alasan: Artifact - kumpulan
     o DB, Legacy, COTS, GOTS, Each             Database                    COTS
       w/ API
    Alasan: User                                            Legacy                 Legacy
     o Baru dan sudah ada                                                          Client
     o Memanfaatkan Artifact API               Java
                                               Client
    Aplikasi Terdistribusi                                                             GOTS
     o Artifacts + User                                     NETWORK

    Isu yang terjadi?
     o Bagaimana mereka                                                            GOTS
       berinteraksi?                                                               Client
     o Heterogenitas                            Legacy
                                                                            Database
     o Masalah keamanan
     o Model program yang berbeda
                                                 Database          COTS
     o Dll                                        Client           Client              30
                            Rekayasa Perangkat Lunak




                                                                                              15
CASE
  CASE (Computer-Aided Software Engineering) adalah berbagai
  macam program yang digunakan untuk mendukung semua kegiatan
  perangkat lunak seperti analisa persyaratan, permodelan sistem,
  debugging, dan pengujian.
  CASE bisa terdiri dari
   o Editor untuk notasi yang digunakan,
   o Modul analisis untum memeriksa model sistem dan membuat
     dokumentasinya
  CASE bisa mencakup generator kode, CASE yang hanya terdiri dari
  editor dinamakan Lower-CASE.




                                                                31
                        Rekayasa Perangkat Lunak




 Attribut-Attribut Perangkat Lunak
Perangkat lunak harus:
  memberikan fungsionalitas dan kinerja yang dibutuhkan
  user,
  dapat dipelihara: perangkat lunak dapat diubah sesuai
  perubahan kebutuhan user.
  Dapat diandalkan: perangkat lunak harus memiliki
  keandalan, keamanan dan keselamatan. Perangkat
  lunat yang baik tidak menyebabkan kerusakan fisik atau
  ekonomi bila terjadi kegagalan sistem
  Dapat digunakan: perangkat lunak harus memiliki user
  interface yang baik dan dokumentasi yang mencukupi



                                                                32
                        Rekayasa Perangkat Lunak




                                                                     16
Macam-Macam Perangkat Lunak
  Perangkat Lunak Berdasarkan Pemakai
  o Generik: Perangkat lunak yang bisa digunakan secara
    umum
  o Spesifik: Perangkat lunak yang dibuat berdasarkan
    pesanan
  Perangkat Lunak Berdasarkan Fungsional
  o   Interfacing
  o   Operating System
  o   Perangkat Lunak Aplikasi
  o   CASE Tools



                                                                    33
                        Rekayasa Perangkat Lunak




Perangkat Lunak Berdasarkan Pemakai
  Generik: Perangkat lunak yang digunakan secara
  umum. Sebagai contoh:
  o   operating system seperti Microsoft Windows,
  o   Word processing seperti Microsoft Word, WordPad
  o   Spreadsheet seperti Microsoft Excell
  o   Beberapa aplikasi khusus bisa dibuat menjadi generik dengan
      membuatnya general dan mudah digunakan siapa saja seperti
      aplikasi akuntansi, aplikasi sekolah dan lain-lain
  Spesifik: Perangkat lunak yang dibuat berdasarkan
  pesanan. Banyak Software House yang menghasilkan
  perangkat lunak ini berdasarkan proyek/pesanan
  tertentu. Sebagai contoh aplikasi Rumah Sakit, aplikasi
  Pendidikan, Aplikasi Kesehatan dan lain-lain.


                                                                    34
                        Rekayasa Perangkat Lunak




                                                                         17
Perangkat Lunak Berdasarkan
          Fungsionalnya
INTERFACING: Perangkat lunak ini
menghubungkan suatu perangkat keras
tertentu, seperti hardware driver,
interfaces dengan perangkat keras lain.
Contoh:
o Driver untuk Kamera, Handphone datau
  perangkat keras lainnya
o Program interface seperti sensor suhu dengan
  LM555, PPI 8255, Komunikasi Serial RS232.



                                                                 35
                    Rekayasa Perangkat Lunak




     Perangkat Lunak Berdasarkan
           Fungsionalnya
OPERATING SYSTEM: Perangkat lunak yang menjalankan
sistem komputer dan merupakan interface dari sistem
komputer dan program aplikasi yang berjalan di
atasnya.
Beberapa OS yang dikenal secara luas:
o Windows
o Linux dan variansnya, seperti Redhat, Suse, Mandrake, Debian
  dll.
o Unix
o FreeBSD
o Machintos (Apple)




                                                                 36
                    Rekayasa Perangkat Lunak




                                                                      18
Perangkat Lunak Berdasarkan
            Fungsionalnya
PROGRAM APLIKASI, program ini digunakan untuk
keperluan tertentu, yang tujuan membantu pekerjaan
manusia menjadi lebih mudah. Progranm ini yang
banyak dibahas dalam pembuatan perangkat lunak.
Program Aplikasi ini tergantung pada kebutuhan dari
program itu sendiri, seperti
o   Program Office
o   Program Graphics Design
o   Program Multimedia
o   Dan Lain-lain




                                                      37
                     Rekayasa Perangkat Lunak




                                                           19

More Related Content

What's hot (19)

Gis Bab9
Gis Bab9Gis Bab9
Gis Bab9
 
C7 Integrating SQA to PLC
C7 Integrating SQA to PLCC7 Integrating SQA to PLC
C7 Integrating SQA to PLC
 
Soal RPL Pertemuan 1
Soal RPL Pertemuan 1Soal RPL Pertemuan 1
Soal RPL Pertemuan 1
 
rekayasa perangkat lunak
rekayasa perangkat lunakrekayasa perangkat lunak
rekayasa perangkat lunak
 
Modul rekayasa-perangkat-lunak-lunak-ver-1
Modul rekayasa-perangkat-lunak-lunak-ver-1Modul rekayasa-perangkat-lunak-lunak-ver-1
Modul rekayasa-perangkat-lunak-lunak-ver-1
 
Soal RPL Pertemuan 2
Soal RPL Pertemuan 2Soal RPL Pertemuan 2
Soal RPL Pertemuan 2
 
Rpl 2- sw process model
Rpl 2- sw process modelRpl 2- sw process model
Rpl 2- sw process model
 
Kd 1 lengkap + kd 2 pertemuan 1
Kd 1 lengkap + kd 2 pertemuan 1Kd 1 lengkap + kd 2 pertemuan 1
Kd 1 lengkap + kd 2 pertemuan 1
 
Persyaratan sistem dan dokumen perangkat lunak
Persyaratan sistem dan dokumen perangkat lunakPersyaratan sistem dan dokumen perangkat lunak
Persyaratan sistem dan dokumen perangkat lunak
 
Rpl 2017 b_k02_t04_a
Rpl 2017 b_k02_t04_aRpl 2017 b_k02_t04_a
Rpl 2017 b_k02_t04_a
 
Rekayasa perangkat lunak
Rekayasa perangkat lunakRekayasa perangkat lunak
Rekayasa perangkat lunak
 
Sistem informasi sdlc
Sistem informasi sdlcSistem informasi sdlc
Sistem informasi sdlc
 
Materi ppl
Materi pplMateri ppl
Materi ppl
 
Soal RPL Pertemuan 4
Soal RPL Pertemuan 4Soal RPL Pertemuan 4
Soal RPL Pertemuan 4
 
Soal RPL Pertemuan 3
Soal RPL Pertemuan 3Soal RPL Pertemuan 3
Soal RPL Pertemuan 3
 
Modul rekayasa-perangkat-lunak
Modul rekayasa-perangkat-lunakModul rekayasa-perangkat-lunak
Modul rekayasa-perangkat-lunak
 
Perkuliahan 02 Model software engginer
Perkuliahan 02 Model software engginerPerkuliahan 02 Model software engginer
Perkuliahan 02 Model software engginer
 
Rekayasa perangkat lunak (dha3)
Rekayasa perangkat lunak (dha3)Rekayasa perangkat lunak (dha3)
Rekayasa perangkat lunak (dha3)
 
Tugas 1-rpl
Tugas 1-rplTugas 1-rpl
Tugas 1-rpl
 

Viewers also liked

Decreto del Poder Ejecutivo sobre autos usados.
Decreto del Poder Ejecutivo sobre autos usados.Decreto del Poder Ejecutivo sobre autos usados.
Decreto del Poder Ejecutivo sobre autos usados.Luis Noguera
 
Nuevas especies de lagartijas
Nuevas especies de lagartijas Nuevas especies de lagartijas
Nuevas especies de lagartijas Luis Noguera
 
Informe de inflación de febrero de 2016
Informe de inflación de febrero de 2016Informe de inflación de febrero de 2016
Informe de inflación de febrero de 2016Luis Noguera
 
Examen carlos hidalgo 2 fima a
Examen carlos hidalgo 2 fima aExamen carlos hidalgo 2 fima a
Examen carlos hidalgo 2 fima achidalgorodriguez
 
1 แนะนำวิชา และความรู้เบื่องต้นทฤษฎีความรู้
1 แนะนำวิชา และความรู้เบื่องต้นทฤษฎีความรู้1 แนะนำวิชา และความรู้เบื่องต้นทฤษฎีความรู้
1 แนะนำวิชา และความรู้เบื่องต้นทฤษฎีความรู้Knoty Fc
 
BlackboardEats Media Kit
BlackboardEats Media KitBlackboardEats Media Kit
BlackboardEats Media Kithallroyce
 
1 ux בשירות הממסד הפיננסי
1 ux בשירות הממסד הפיננסי1 ux בשירות הממסד הפיננסי
1 ux בשירות הממסד הפיננסיAlonbennunn
 
Katie ehle going mobile
Katie ehle going mobileKatie ehle going mobile
Katie ehle going mobilektehle
 
Indice Global de Generosidad 2015
Indice Global de Generosidad 2015Indice Global de Generosidad 2015
Indice Global de Generosidad 2015Luis Noguera
 
Industrial Marketing 2011 English
Industrial Marketing 2011 EnglishIndustrial Marketing 2011 English
Industrial Marketing 2011 EnglishFM fabriziomonaci
 
Effective communication
Effective communicationEffective communication
Effective communicationHicham Boudjit
 

Viewers also liked (20)

Decreto del Poder Ejecutivo sobre autos usados.
Decreto del Poder Ejecutivo sobre autos usados.Decreto del Poder Ejecutivo sobre autos usados.
Decreto del Poder Ejecutivo sobre autos usados.
 
Nuevas especies de lagartijas
Nuevas especies de lagartijas Nuevas especies de lagartijas
Nuevas especies de lagartijas
 
Informe de inflación de febrero de 2016
Informe de inflación de febrero de 2016Informe de inflación de febrero de 2016
Informe de inflación de febrero de 2016
 
Examen carlos hidalgo 2 fima a
Examen carlos hidalgo 2 fima aExamen carlos hidalgo 2 fima a
Examen carlos hidalgo 2 fima a
 
1 แนะนำวิชา และความรู้เบื่องต้นทฤษฎีความรู้
1 แนะนำวิชา และความรู้เบื่องต้นทฤษฎีความรู้1 แนะนำวิชา และความรู้เบื่องต้นทฤษฎีความรู้
1 แนะนำวิชา และความรู้เบื่องต้นทฤษฎีความรู้
 
BlackboardEats Media Kit
BlackboardEats Media KitBlackboardEats Media Kit
BlackboardEats Media Kit
 
1 ux בשירות הממסד הפיננסי
1 ux בשירות הממסד הפיננסי1 ux בשירות הממסד הפיננסי
1 ux בשירות הממסד הפיננסי
 
Mapa mental
Mapa mentalMapa mental
Mapa mental
 
Swimming 1
Swimming 1Swimming 1
Swimming 1
 
Katie ehle going mobile
Katie ehle going mobileKatie ehle going mobile
Katie ehle going mobile
 
шаповалов а.г
шаповалов а.гшаповалов а.г
шаповалов а.г
 
E book marketing-capovolto
E book marketing-capovoltoE book marketing-capovolto
E book marketing-capovolto
 
Portraits
PortraitsPortraits
Portraits
 
Drag racing in uae
Drag racing in uaeDrag racing in uae
Drag racing in uae
 
Ensayo individual
Ensayo individualEnsayo individual
Ensayo individual
 
Indice Global de Generosidad 2015
Indice Global de Generosidad 2015Indice Global de Generosidad 2015
Indice Global de Generosidad 2015
 
Figura[1]
Figura[1]Figura[1]
Figura[1]
 
Industrial Marketing 2011 English
Industrial Marketing 2011 EnglishIndustrial Marketing 2011 English
Industrial Marketing 2011 English
 
Marketing industriale 2012b
Marketing industriale 2012bMarketing industriale 2012b
Marketing industriale 2012b
 
Effective communication
Effective communicationEffective communication
Effective communication
 

Similar to RPL

Lanjutan Pert 2.pptx
Lanjutan Pert 2.pptxLanjutan Pert 2.pptx
Lanjutan Pert 2.pptxmerisipahutar
 
pengenalan_rekayasa_perangkat_lunak.ppt
pengenalan_rekayasa_perangkat_lunak.pptpengenalan_rekayasa_perangkat_lunak.ppt
pengenalan_rekayasa_perangkat_lunak.pptAgiHusni
 
Perangkat lunak dan rekayasa perangkat lunak - Andini Izza Safitri
Perangkat lunak dan rekayasa perangkat lunak - Andini Izza SafitriPerangkat lunak dan rekayasa perangkat lunak - Andini Izza Safitri
Perangkat lunak dan rekayasa perangkat lunak - Andini Izza SafitriSandra Vio
 
1 pengenalanrpl
1 pengenalanrpl1 pengenalanrpl
1 pengenalanrplmamas12
 
Chapt 5. interface design principles
Chapt 5. interface design principlesChapt 5. interface design principles
Chapt 5. interface design principlesIbnu Dzakwan
 
Produk Rekasaya Perangkat Lunak
Produk Rekasaya Perangkat LunakProduk Rekasaya Perangkat Lunak
Produk Rekasaya Perangkat LunakLusiana Diyan
 
REKAYASA PERANGKAT LUNAK - MInggu 1 - 2022.pdf
REKAYASA PERANGKAT LUNAK - MInggu 1 - 2022.pdfREKAYASA PERANGKAT LUNAK - MInggu 1 - 2022.pdf
REKAYASA PERANGKAT LUNAK - MInggu 1 - 2022.pdfKemahasiswaanITATS
 
Rekayasa perangkat lunak
Rekayasa perangkat lunakRekayasa perangkat lunak
Rekayasa perangkat lunakWandi Parlente
 
Materi knm,nmjnm,,,mbnkjbmnmm,n,m1 RPL.pdf
Materi knm,nmjnm,,,mbnkjbmnmm,n,m1 RPL.pdfMateri knm,nmjnm,,,mbnkjbmnmm,n,m1 RPL.pdf
Materi knm,nmjnm,,,mbnkjbmnmm,n,m1 RPL.pdfmerinovamarito7
 
Persyaratan sistem dan dokumen perangkat lunak
Persyaratan sistem dan dokumen perangkat lunakPersyaratan sistem dan dokumen perangkat lunak
Persyaratan sistem dan dokumen perangkat lunakarfianti
 
Pertemuan 2 pemrograman mobile.pptx
Pertemuan 2 pemrograman mobile.pptxPertemuan 2 pemrograman mobile.pptx
Pertemuan 2 pemrograman mobile.pptxTaufikIqbalR1
 

Similar to RPL (20)

rpl-2-1.pptx
rpl-2-1.pptxrpl-2-1.pptx
rpl-2-1.pptx
 
Perkuliahan 1 RPL
Perkuliahan 1 RPLPerkuliahan 1 RPL
Perkuliahan 1 RPL
 
Pengenalan RPL
Pengenalan RPLPengenalan RPL
Pengenalan RPL
 
Lanjutan Pert 2.pptx
Lanjutan Pert 2.pptxLanjutan Pert 2.pptx
Lanjutan Pert 2.pptx
 
pengenalan_rekayasa_perangkat_lunak.ppt
pengenalan_rekayasa_perangkat_lunak.pptpengenalan_rekayasa_perangkat_lunak.ppt
pengenalan_rekayasa_perangkat_lunak.ppt
 
Perangkat lunak dan rekayasa perangkat lunak - Andini Izza Safitri
Perangkat lunak dan rekayasa perangkat lunak - Andini Izza SafitriPerangkat lunak dan rekayasa perangkat lunak - Andini Izza Safitri
Perangkat lunak dan rekayasa perangkat lunak - Andini Izza Safitri
 
1 pengenalanrpl
1 pengenalanrpl1 pengenalanrpl
1 pengenalanrpl
 
Chapt 5. interface design principles
Chapt 5. interface design principlesChapt 5. interface design principles
Chapt 5. interface design principles
 
Produk Rekasaya Perangkat Lunak
Produk Rekasaya Perangkat LunakProduk Rekasaya Perangkat Lunak
Produk Rekasaya Perangkat Lunak
 
11122636 (5).ppt
11122636 (5).ppt11122636 (5).ppt
11122636 (5).ppt
 
Konsep Rekayasa Perangakat Lunak
Konsep Rekayasa Perangakat LunakKonsep Rekayasa Perangakat Lunak
Konsep Rekayasa Perangakat Lunak
 
Rekayasa Perangkat Lunak - Model Pengembangan Sistem
Rekayasa Perangkat Lunak - Model Pengembangan SistemRekayasa Perangkat Lunak - Model Pengembangan Sistem
Rekayasa Perangkat Lunak - Model Pengembangan Sistem
 
REKAYASA PERANGKAT LUNAK - MInggu 1 - 2022.pdf
REKAYASA PERANGKAT LUNAK - MInggu 1 - 2022.pdfREKAYASA PERANGKAT LUNAK - MInggu 1 - 2022.pdf
REKAYASA PERANGKAT LUNAK - MInggu 1 - 2022.pdf
 
Rekayasa perangkat lunak
Rekayasa perangkat lunakRekayasa perangkat lunak
Rekayasa perangkat lunak
 
Sim
SimSim
Sim
 
Materi knm,nmjnm,,,mbnkjbmnmm,n,m1 RPL.pdf
Materi knm,nmjnm,,,mbnkjbmnmm,n,m1 RPL.pdfMateri knm,nmjnm,,,mbnkjbmnmm,n,m1 RPL.pdf
Materi knm,nmjnm,,,mbnkjbmnmm,n,m1 RPL.pdf
 
Persyaratan sistem dan dokumen perangkat lunak
Persyaratan sistem dan dokumen perangkat lunakPersyaratan sistem dan dokumen perangkat lunak
Persyaratan sistem dan dokumen perangkat lunak
 
Pertemuan 2 pemrograman mobile.pptx
Pertemuan 2 pemrograman mobile.pptxPertemuan 2 pemrograman mobile.pptx
Pertemuan 2 pemrograman mobile.pptx
 
Power poin modul 4
Power poin modul 4Power poin modul 4
Power poin modul 4
 
Power poin modul 4
Power poin modul 4Power poin modul 4
Power poin modul 4
 

RPL

  • 1. Pengenalan Software Engineering Arna Fariza Politeknik Elektronika Negeri Surabaya 1 Rekayasa Perangkat Lunak Materi Apa yang dimaksud Perangkat Lunak? Apa yang dimaksud Rekayasa Perangkat Lunak? Apa yang dilakukan Rekayasa Perangkat Lunak Bagaimana Perangkat Lunak direkayasa (Proses)? Software Engineering vs Computer Science 2 Rekayasa Perangkat Lunak 1
  • 2. Apakah Perangkat Lunak itu? Perangkat lunak adalah definisi dan organisasi dari sekumpulan task dan fungsi yang dienkapsulasi dalam bentuk yang dapat di- eksekusi oleh komputer Beberapa tipe perangkat lunak: o Commercial-Off-the-Shelf (COTS) o Government-Off-the-Shelf (GOTS) o Legacy: ditulis dalam bahasa pemrograman ‘sebelumnya’ • Cobol, PL/1 (Y2k/SNET), Fortran, etc. • C and C++! o Customized New Software o Client vs. Server Software o Database Management Systems/Applications 3 Rekayasa Perangkat Lunak Apakah Rekayasa Perangkat Lunak itu? Rekayasa: aplikasi keilmuan untuk penyelesaian permasalahan praktis Rekayasa Perangkat Lunak: aplikasi ilmu komputer untuk membangun sistem perangkat lunak praktis Pemrograman o Individu menulis keseluruhan program o Satu orang, satu komputer o Well-defined Problem o Programming-in-the-Small Rekayasa Perangkat Lunak o Individu menulis komponen program o Tim membangun keseluruhan prgram o Programming-in-the-Large 4 Rekayasa Perangkat Lunak 2
  • 3. Apakah Rekayasa Perangkat Lunak itu? Aplikasi dari merekayasa perangkat lunak Wilayah Computer Science Engineering yang berhubungan dengan Sistem Perangkat Lunak o Besar dan kompleks o Dibangun oleh tim o Terdapat beberapa versi o Berakhir beberapa tahun o Undergo changes Definisi o Aplikasi yang menggunakan pendekatan sistematis, disiplin, terukur untuk mengembangkan, mengoperasikan dan memelihara perangkat lunak (IEEE 1990) o Pembangunan oleh banyak orang (multi-person) dari perangkat lunak multi-version (Parnas 1978) 5 Rekayasa Perangkat Lunak Mengapa Rekayasa Perangkat Lunak? Kompleksitas program melebihi programmer individu atau sendiri Rekayasa perangkat lunak ditarget untuk o Membangun aplikasi perangkat lunak besar o Mendefinisikan permasalahan dengan jelas dan komplit o Perangkat dan teknik untuk mendukung proses o Team-Oriented experience Rekayasa perangkat lunak harus berkembang menjadi Engineering discipline Rekayasa perangkat lunak harus memajukan dan mendukung konstruksi multi-person dari perangkat lunak multi-version 6 Rekayasa Perangkat Lunak 3
  • 4. Sejarah RPL “Early Days” o Th 1950 programmer menulis program o Awal 1960 – Pembangunan project software skala sangat besar oleh “Expert” o Pertengahan-Akhir 1960 - muncul aplikasi software komersial skala besar • Sistem besar melibatkan tim • Muncul istilah “Software Engineering Disiplin RPL o Induvidu tidak dapat melihat “Big Picture” o Meningkatnya waktu komunikasi o Perubahan personal berakibat pada produktifitas RPL: manajemen, organisasi, perangkat, teori, metodologi, teknik dll 7 Rekayasa Perangkat Lunak Pengaruh RPL Harga software terus meningkat, membutuhkan produksi software yang lebih efisien o Software acquisition vs outsourcing o Software reuse vs build-from-scratch Kompleksitas perangkat lunak besar berubah dalam bentuk perspektif pengembangan Konsep Desain Pengembangan Integrasi Distribusi Dokumentasi Pemeliharaan Evolusi Perluasan Pertumbuhan RPL/Computer Science o 350.000 pekerjaan teknologi informasi terbuka o 100.000 pekerjaan baru setiap tahun selama 10 tahun 8 Rekayasa Perangkat Lunak 4
  • 5. Programmer vs RPL Individu dengan skill yang baik Bagian dari tim Pemrograman kecil Pemrograman skala besar Pengetahuan dalam Pendekatan desain o Struktur data o OO, modul dll o Algoritma o Top-Down/Bottom-Um Menguasai beberapa bahasa Menterjemahkan kebutuhan pemrograman ke dalam spesifikasi Ketiadaan training formal Lebih akrab dalam area Penggunaan CS minimal multiple application Berlawanan dengan user Melihat “Big picture” Dapat memodelkan aplikasi Skill komunikasi dan interpersonal yang baik 9 Rekayasa Perangkat Lunak Model Proses Waterfall Analisa dan Spesifikasi Apa kekurangan dari sistem ini? Kebutuhan Desain dan Spesifikasi Coding dan Testing Modul 50 % Integrasi dan System Testing Delivery dan 50 % Maintenance 10 Rekayasa Perangkat Lunak 5
  • 6. Software Lifecycle dari Model Waterfall Analisa dan spesifikasi kebutuhan o Permasalahan apa yang dipecahkan? o Apa yang dibutuhkan/diinginkan Pelanggan? o Interaksi antara SE dan Pelanggan? o Identifikasi dan dokumentasi kebutuhan sistem o Membangkitkan user manual dan test plan Desain dan spesifikasi o Bagaimana permasalahan dipecahkan o Desain High-Level o Menentukan komponen/modul o Transisi ke desain secara detil o Fungsional detil dari komponen/modul 11 Rekayasa Perangkat Lunak Software Lifecycle dari Model Waterfall Coding dan Testing Modul o Menulis kode sesuai spesifikasi desain komponen/modul o Memisahkan testing modul individu o Simulasi perilaku sistem dengan driver dan stub Integrasi dan System Testing o Integrasi komponen/modul ke dalam sub sistem o Integrasi sub sistem ke dalam program akhir Delivery dan Maintenance o Memberikan sistem ke Konsumen/Market o Memperbaiki buk dan version release sepanjang waktu 12 Rekayasa Perangkat Lunak 6
  • 7. Sejarah Perangkat Lunak Abstract Data Types (ADTs) – 1970-an Object-Oriented Paradigm – 1980-an Component-Based D & D – 1990-an Web-Based/Distributed Computing – 2000-an 13 Rekayasa Perangkat Lunak 1970 - Abstract Data Types (ADTs) Diusulkan oleh B. Liskov (MIT) tahun 1975 ADTs mempromosikan pengembangan aplikasi dari pandangan informasi dan penggunaannya Prosesn desain ADT o Identifikasi “jenis” atau “tipe” informasi o Membungkus informasi dan menyediakan public interface dari metode o Menyembunyikan informasi dan kode metode dalam private implementation ADT berhubungan dengan User-Defined Data Types Analogi dengan Integer Data Type dan +, -, *, dll 14 Rekayasa Perangkat Lunak 7
  • 8. ADT Stack Public Interface Private Implementation Head: Int; User Designer ST: Array[100] of Int; PUSH POP Push(X Int) … TOP End; EMPTY Int Pop() … End; PUSH 5 20 15 10 5 10 ST 15 5 TOP 20 15 10 5 20 15 Rekayasa Perangkat Lunak 1980 - Object-Oriented Paradigm Object-Oriented Decomposition o Dekomposisi permasalahan ke dalam agen yang membentuk operasi o Penekanan agen yang menyebabkan aksi Agen terdiri dari 2 bagian o Hidden Implementation: data dan operasi hanya tersedia pada agen o Public Interface: operasi tersedia untuk client dari agen Agen hanya dapat dimodifikasi dengan operasi yang ditentukan dengan Hidden Implementation atau Public Interface 16 Rekayasa Perangkat Lunak 8
  • 9. Konsep Object-Oriented Class o Tipe agen o Menggambarkan perilaku Object o Instance dari class o Merepresentasikan data aktual yang dimanipulasi oleh agen o Memelihara state dari object Method o Operasi yang didefinisikan dalam class o Operasi terhadap SEMUA instance dari Class Message o Mengindikasikan bahwa method dari object dikerjakan 17 Rekayasa Perangkat Lunak Contoh Class Employee Class Employee Main() { { //Hidden Implementation //Declare Objects Private: //Instance Vars Employee emp1(Steve,100.0); char[30] name; Employee emp2(Lois, 120.0); float salary; //Public Interface //Pass Messages Public: //Invoke Methods void print_name(); emp1.print_name(); void print_salary(); emp1.print_salary(); void update_salary(float i); emp2.update_salary(10); Employee(char *n, float s); emp2.print_name(); } emp2.print_salary(); } Apa Output dari Main()? Kesimpulan: Steve Setiap Object (emp1,emp2) 100.0 mempunyai Independent State Lois sendiri yang diakses melalui 130.0 Shared Public Interface dari Class 18 Rekayasa Perangkat Lunak 9
  • 10. Modul vs ADT/Class Modul o Menggambarkan baik state dan perilaku o Modul Employee terdiri dari Instance Variable, Operasi dan Program Variable o Single instance di-share oleh semua user Class o Menggambarkan hanya perilaku o Class Employee mengabaikan Program Variabel o Multiple Independent Instance membagi deklarasi class yang sama tetapi membedakan state Kunci perbedaan : sifat dinamis class memungkinkan instance dibuat sesuai kebutuhan 19 Rekayasa Perangkat Lunak Konsep Lanjutan OO Inheritance o Menggunakan Class bersama-sama dengan Generalisasi dan Spesialisasi o Memperlakukan instance dari class yang berbeda dalam bentuk seragam Polymorphism/Dynamic Binding o Pemilihan Run-Time dari Method dijalankan berdasarkan tipe pemanggilan instance o Message dilewatkan dalam tipe yang dependent Generic: A Type Parameterizable Class o Stack mempunyai parameter untuk tipe elemen o Pembuatan Program Variable mengikat data dan Method stack ke tipe khusus dari elemen o Stack(Real), Stack(Int), Stack(Employee) 20 Rekayasa Perangkat Lunak 10
  • 11. Contoh inheritance Specialisasi Person Generalisasi Name, SSN Print_Info() Employee::Person Student::Person Dept, Salary Dorm, GPA Update_Salary() Print_Transcript Faculty::Employee Dean::Employee Rank School Promote_Fac() Supertype, Superclass, Parent Class, Base Class Subtype, Subclass, Child Class, Derived Class Descendants, Ancestors, Siblings 21 Rekayasa Perangkat Lunak Keuntungan OO Mendukung komponen software yang Reusable o Pembuatan dan testing dalam isolasi o Integrasi dari komponen yang bekerja o Desainer/developer melihat permasalahan pada level abstraksi lebih tinggi Mengontrol konsistensi informasi o Public Interface membatasi akses ke data o Private Implementation tidak tersedia Mempromosikan/Memfasilitasi Evolusi/Reuse software o Inheritance ke desain lebih lanjut / Class Library o Multiple instance dari Class yang sama 22 Rekayasa Perangkat Lunak 11
  • 12. 1990- Component-Based D & D ADT sebagai unit abstraksi/konseptualisasi Class adalah OO yang ekuivalen dengan ADT Tetapi, dalam 10 tahun o Kekuatan komputasi meledak o Kompleksitas aplikasi meningkat o Class adalah bagian dari hirarki inheritance o Hirarki inheritance bagian dari Aplikasi Class Library Dalam 10 tahun o Muncul Java (dan sekarang .NET) o Muncul Java Beans o Component-Based Development Tools 23 Rekayasa Perangkat Lunak Apakah komponen itu? Bagaimana aplikasi dikonsepkan? o Inheritance Hierarchies Partition Domain o Package sebagai kumpulan atau class yang berhubungan o Kumpulan class, Package, hirarki inheritance membentuk Application Class Library Bagaimana Class Library dimanfaatkan? o Menggunakan Class individu o Menggunakan Package atau subset dari Package o Menggunakan porsi utama dari hirarki inheritance o Tool menggunakan beberapa Package dan/atau hirarki terpilih o Tool yang menjangkau Application Class merupakan software yang didesain dengan jelek 24 Rekayasa Perangkat Lunak 12
  • 13. Konsep Komponen Komponen terdiri dari satu atau lebih Class (atau komponen lain) dan diperuntukkan untuk mendukung Pembentukan unit fungsionalitas Peruntukkan class dalam multiple component mempertahankan semantic yang sama dalam semua keadaan Contoh komponen o Graphical User Interface Widget o Major “Reused” Functionality • Algoritma untuk Searching/Sorting • Database Connection/Querying o Aplikasi khusus • Komponen Cost Accounting • Komponen Computational Fluid Dynamics 25 Rekayasa Perangkat Lunak Contoh Komponen Two Sample Components: o Komponen Tanggal (selalu tanggal valid) o Komponen alamat (Konsistensi dalam presentasi) 26 Rekayasa Perangkat Lunak 13
  • 14. Komponen vs Object Komponen Object o Berorientasi bisnis o Berorientasi teknologi o Bentuk kasar o Bentuk halus o Berbasis standard o Berbasis bahasa o Multiple Interfaces o Single Interface o Menyediakan servis o Menyediakan operasi o Dibungkus penuh o Menggunakan inheritance o Dimengerti semua orang o Dimengerti Developer 27 Rekayasa Perangkat Lunak 2000-Web-Based/Distributed Computing Komputasi/aplikasi terdistribusi adalah … o Sistem dari sistem o Interoperasi dari aplikasi baru dan yang sudah ada o Pewarisan, database, COTS, New Client dll o Network Centric Environment o Multi-Tier Solutions Aplikasi komputasi terdistribusi harus … o Mengatur, mengontrol, mengakses dan memodifikasi data o Memungkinkan manusia berinteraksi dengan data o Menyediakan High-Availability dan Performansi o dapat berkembang sepanjang waktu 28 Rekayasa Perangkat Lunak 14
  • 15. Apakah Aplikasi Terdistribusi? Sistem dari sistem Network Centric Environment Hardware Performansi High-Availability OS, PLs yang heterogen Legacy DB Client Client Java Legacy Server Client Database Server COTS Database COTS Java Legacy COTS Client Lingkungan Client Dinamis Meningkatkan Produktivitas Interoperasi yg transparan Penggunaan Informasi baru/inovasi 29 Rekayasa Perangkat Lunak Realitas Saat ini Alasan: Artifact - kumpulan o DB, Legacy, COTS, GOTS, Each Database COTS w/ API Alasan: User Legacy Legacy o Baru dan sudah ada Client o Memanfaatkan Artifact API Java Client Aplikasi Terdistribusi GOTS o Artifacts + User NETWORK Isu yang terjadi? o Bagaimana mereka GOTS berinteraksi? Client o Heterogenitas Legacy Database o Masalah keamanan o Model program yang berbeda Database COTS o Dll Client Client 30 Rekayasa Perangkat Lunak 15
  • 16. CASE CASE (Computer-Aided Software Engineering) adalah berbagai macam program yang digunakan untuk mendukung semua kegiatan perangkat lunak seperti analisa persyaratan, permodelan sistem, debugging, dan pengujian. CASE bisa terdiri dari o Editor untuk notasi yang digunakan, o Modul analisis untum memeriksa model sistem dan membuat dokumentasinya CASE bisa mencakup generator kode, CASE yang hanya terdiri dari editor dinamakan Lower-CASE. 31 Rekayasa Perangkat Lunak Attribut-Attribut Perangkat Lunak Perangkat lunak harus: memberikan fungsionalitas dan kinerja yang dibutuhkan user, dapat dipelihara: perangkat lunak dapat diubah sesuai perubahan kebutuhan user. Dapat diandalkan: perangkat lunak harus memiliki keandalan, keamanan dan keselamatan. Perangkat lunat yang baik tidak menyebabkan kerusakan fisik atau ekonomi bila terjadi kegagalan sistem Dapat digunakan: perangkat lunak harus memiliki user interface yang baik dan dokumentasi yang mencukupi 32 Rekayasa Perangkat Lunak 16
  • 17. Macam-Macam Perangkat Lunak Perangkat Lunak Berdasarkan Pemakai o Generik: Perangkat lunak yang bisa digunakan secara umum o Spesifik: Perangkat lunak yang dibuat berdasarkan pesanan Perangkat Lunak Berdasarkan Fungsional o Interfacing o Operating System o Perangkat Lunak Aplikasi o CASE Tools 33 Rekayasa Perangkat Lunak Perangkat Lunak Berdasarkan Pemakai Generik: Perangkat lunak yang digunakan secara umum. Sebagai contoh: o operating system seperti Microsoft Windows, o Word processing seperti Microsoft Word, WordPad o Spreadsheet seperti Microsoft Excell o Beberapa aplikasi khusus bisa dibuat menjadi generik dengan membuatnya general dan mudah digunakan siapa saja seperti aplikasi akuntansi, aplikasi sekolah dan lain-lain Spesifik: Perangkat lunak yang dibuat berdasarkan pesanan. Banyak Software House yang menghasilkan perangkat lunak ini berdasarkan proyek/pesanan tertentu. Sebagai contoh aplikasi Rumah Sakit, aplikasi Pendidikan, Aplikasi Kesehatan dan lain-lain. 34 Rekayasa Perangkat Lunak 17
  • 18. Perangkat Lunak Berdasarkan Fungsionalnya INTERFACING: Perangkat lunak ini menghubungkan suatu perangkat keras tertentu, seperti hardware driver, interfaces dengan perangkat keras lain. Contoh: o Driver untuk Kamera, Handphone datau perangkat keras lainnya o Program interface seperti sensor suhu dengan LM555, PPI 8255, Komunikasi Serial RS232. 35 Rekayasa Perangkat Lunak Perangkat Lunak Berdasarkan Fungsionalnya OPERATING SYSTEM: Perangkat lunak yang menjalankan sistem komputer dan merupakan interface dari sistem komputer dan program aplikasi yang berjalan di atasnya. Beberapa OS yang dikenal secara luas: o Windows o Linux dan variansnya, seperti Redhat, Suse, Mandrake, Debian dll. o Unix o FreeBSD o Machintos (Apple) 36 Rekayasa Perangkat Lunak 18
  • 19. Perangkat Lunak Berdasarkan Fungsionalnya PROGRAM APLIKASI, program ini digunakan untuk keperluan tertentu, yang tujuan membantu pekerjaan manusia menjadi lebih mudah. Progranm ini yang banyak dibahas dalam pembuatan perangkat lunak. Program Aplikasi ini tergantung pada kebutuhan dari program itu sendiri, seperti o Program Office o Program Graphics Design o Program Multimedia o Dan Lain-lain 37 Rekayasa Perangkat Lunak 19