4. Software Process (2) Rekayasa Perangkat Lunak Teknik Informatika S1

  Teknik Informatika S1

Rekayasa Perangkat Lunak

  Software Process (2) Disusun Oleh: Egia Rosi Subhiyakto, M.Kom, M.CS Teknik Informatika UDINUS egia@dsn.dinus.ac.id

SILABUS MATA KULIAH

  8. Pembahasan UTS + Tugas SKPL

  9. Presentasi SKPL

  10. Design Engineering + Tugas DPPL

  11. Presentasi DPPL

  12. Software Testing + Quiz

  13. Present Tugas Besar

  14. Present Tugas Besar

  1. Pendahuluan

  2. Introduction to SE

  3. Software Process (1)

  4. Software Process (2)

  5. Requirement Engineering + Quiz

  6. Analysis Modeling (1)

  7. Analysis Modeling (2)

  Review Materi Minggu Lalu

  Characteristics of Maturity levels Level 5 Level 5 Focus on process Level 4 Optimizing Optimizing improvement Level 4 Quantitatively Quantitatively Processes measured and Managed Managed controlled Level 3 Level 3 Processes characterized for organization and is proactive

  Defned Defned (Projects tailor their processes from Level 2 Level 2 organization’s standards)

  Processes characterized for projects and is often reactive Managed Managed Level 1 Level 1 Processes Unpredictable, poorly controlled and reactive Initial

  Planning Planning

  Analysis Analysis

  Design Design

  Implementat ion Implementat ion

  ? Pengertian

Pengertian

  “Sekumpulan Kegiatan dan keterhubungannya satu sama lain untuk mendukung pembangunan dari sebuah perangkat lunak”.

  Pertanyaan Seputar SDLC

  1. Aktifitas mana yang harus dipilih dalam pembangunan perangkat lunak?

  

? Pertanyaan Seputar SDLC

  1. Aktifitas mana yang harus dipilih dalam pembangunan perangkat lunak? SDLC berisi proses yang bukan untuk dipilih tapi untuk dilakukan secara keseluruhan

  Pertanyaan Seputar SDLC 2.

  Hubungan antar aktifitas dalam SDLC?

  ? Pertanyaan Seputar SDLC

  Hasil dari kegiatan sebelumnya mempunyai pengaruh yang sangat besar untuk kegiatan berikutnya

  Pertanyaan Seputar SDLC

  

? Pertanyaan Seputar SDLC

  Penjadwalan kegiatan SDLC dibahas dalam ilmu Manajemen Proyek (Project Management) dan tidak dibahas pada RPL

  Aktivitas Pembangunan Perangkat Lunak (SDLC)

  • Gathering Requirements

  1

  • Analysis

  2

  • Design

  3

  • Coding

  4

  • Testing

  5

  • Documentation

  6

  • Maintenance

  7

  SDLC Processes and Deliverables Process

  Product Planning System Proposal Analysis

  System Specification Design Implementation New System with Testing/ Maintenance Plan SDLC and Deliverables

Planning

  

(System Proposal)

Planning

  

(System Proposal)

Analysis (System Specification) Analysis (System Specification)

  

Design

(System

  

Design

(System

  Implementation (New System) Implementation (New System)

Process Flow

  1. Linear Process

  1. Linear Process

  2. Iterative Process

  2. Iterative Process

  3. Evolutionary Process

  3. Evolutionary Process

  1. Linear Process

  1. Linear Process System/ Information Engineering Analysi s Analysi s Design Design Code Code Test Test

  2. Iterative Process

  2. Iterative Process Communicatio Communicatio n n Planning Planning

Modeling

Modeling

Construction Construction Deployment Deployment

  3. Evolutionary Process

  3. Evolutionary Process Communication Communication Planning Planning Modeling Modeling Construction Construction Deployment Deployment

  1. Linear Sequential Model 1. Linear Sequential Model Software Process Model 3. RAD Model 2. V Model1. Waterfall Model 3. Evolutionary Model 3. Evolutionary Model 2. Prototyping Model

  2. Prototyping Model

  • 2. Spiral Model 3. Component Assembly Model1. Incremental Model
  • 4. Formal Method 4. Formal Method4. Concurrent Development Model 6. 4GT Model 6. 4GT Model 5. Unifed Process

      5. Unifed Process

       Sebuah pendekatan pengembangan perangkat lunak yang sistematik dan sekuensial.

       Disebut juga ‘Classic Life Cycle’.

       Paradigma yang sudah lama sekali, tetapi masih banyak yang memakai karena dianggap masih sesuai dengan keadaan sekarang.

      Setiap tahap menghasilkan dokumen di akhir tahapnya 1.

      Tidak ada overlapping pada setiap tahapnya 2.

      Setiap tahapan akan punya pengaruh besar pada hasil 3. di tahap berikutnya Memerlukan biaya besar jika melakukan rework 4.

      Menghasilkan mature process pada setiap tahapnya 1.

      Mudah untuk diaplikasikan pada sebuah proyek 2.

      Menghasilkan sistem yang terstruktur dengan baik 3.

      Memiliki tingkat visibilitas yang tinggi (setiap tahap 4. mempunyai dokumen yang jelas)

      Ketidak fleksibelan antar tahapan 1.

      Susah dalam merespon perubahan kebutuhan 2. customer

    Model ini hanya cocok jika: 3

      a. Kebutuhan customer sudah sangat jelas

      b. Perubahan kebutuhan dibatasi

      (M.Kochanski) Sashimi

      (M.Kochanski) Waterfall with Spiral Introduction

      (M.Kochanski) Waterfall with Subprojects

      RAD = Rapid Application Development

       Adaptasi dari waterfall model yang:

       menekankan siklus pengembangan perangkat lunak

    • yang sangat pendek;

      menggunakan pendekatan konstruksi berbasis

    • komponen.

      Menciptakan sistem fungsional yang utuh dalam waktu

       60-90 hari. b u s i n e s s m o d e l i n g d a t a m o d e l i n g p r o c e s s m o d e l i n g a p p l i c a t i o n g e n e r a t i o n t e s t i n g & t u r n o v e r b u s i n e s s m o d e l i n g d a t a m o d e l i n g p r o c e s s m o d e l i n g a p p l i c a t i o n g e n e r a t i o n t e s t i n g & t u r n o v e r b u s i n e s s m o d e l i n g d a t a m o d e l i n g p r o c e s s m o d e l i n g a p p l i c a t i o n g e n e r a t i o n t e s t i n g & t u r n o v e r t e a m # 1 t e a m # 2 t e a m # 3

      Business Modelling

      

    Memodelkan fungsi-fungsi bisnis untuk menjawab pertanyaan-

    pertanyaan: Informasi apa yang mengendalikan proses bisnis ? Informasi apa

    • yang dimunculkan? Ke mana infomasi itu pergi? Siapa yang memprosesnya?

      Data Modelling

       Aliran informasi yang didefinisikan pada fase business modelling ditransformasikan ke dalam serangkaian obyek data.

      Process Modelling

       Mentransformasikan obyek data pada suatu fungsi yang menghasilkan aliran informasi yang dibutuhkan.

      Application Generation

       Mengkonstruksi perangkat lunak dengan memakai komponen yang ada (bila memungkinkan) atau menciptakan komponen yang dapat dipakai lagi.

      Testing and Turnover  Membantu software engineer untuk mendapatkan kebutuhan berupa feedback cepat dari customer

      1. Prototyping

      1. Prototyping Dipakai jika:

      1. Sistem mempunyai resiko tinggi tidak jelas permasalahannya

    • 2. Lebih fokus pada perancangan dialog user komputer (Sistem

      dengan User)

    bagaimana membuat dialog yang baik, ramah, mudah ?

    • 3. Sistem diminati oleh banyak pemakai

      1. Prototyping

      1. Prototyping

      4. User ingin cepat selesai

    • user tidak sabar menunggu
    • prototipe segera memperlihatkan bentuk kerja sistem

      5. Masa pakai singkat

    • sistem hanya dipakai beberapa kali saja

      6. Ingin menunjukkan inovasi

    • pengembang dapat menunjukkan kecanggihan

      7. Kebutuhan berubah-ubah

      1. Prototyping

      1. Prototyping

      1. Evolutionary prototyping

      2. Throw-away prototyping Type of Prototyping

      Evolutionary Prototyping

    Requirements

    Prototype

    Programming

    Prototype

    Reviews

      Validates?

    Release

      Release System Testing System Programming Reviews Validates? Prototype Programming Prototype Requirements Reviews

    Validates?

    Throw-away Prototyping

    • Frekuensi komunikasi user – developer meningkat

      o pengembang akan selalu meminta pendapat user dalam

    • Membantu analis

      o menentukan kebutuhan user yang sebenarnya o meminimalkan salah persepsi

    • Peran user meningkat

      o evaluasi oleh user berkali-kali o user bisa memberikan masukan setiap saat

    • Pengembangan lebih cepat

      o program bisa langsung dibuat o user melihat perkembangan tahap demi tahap

    • Implementasi mudah

      o user sudah mengenal perangkat lunak yang dikembangkan o user tidak akan merasa asing o sejak awal user sudah merasa memiliki

    • User sibuk

      o user & pengembang harus sama-sama memiliki komitmen menyediakan waktu untuk bertemu.

    • User sulit melakukan evaluasi

      o bentuk prototipe sering berubah, disesuaikan dengan kebutuhan user.

    • User ingin cepat selesai o bentuk program sudah terlihat sejak awal.

      o user merasa tidak akan lama lagi selesai.

    • User berharap terlalu banyak

      o keseringan evaluasi & komunikasi membuat user menjadi berubah keinginan dan tidak pasti dengan kebutuhan.

    • Prototipe bekerja tidak efisien o lebih mementingkan keberhasilan.

      Incremental Model Incremental Model

       Incremental Model merupakan gabungan antara model linier sekuensial dan prototyping.

       Setiap linier sekuen menghasilkan produk yang deliveriables.

       Increment pertama merupakan produk inti (core), yang mengandung persyaratan/kebutuhan dasar.

       Penambahan dilakukan pada increment-increment

      Incremental Model Incremental Model

      2. Spiral Model

      2. Spiral Model

      Digunakan software engineer skala besar. Growing of software menjadi ide dari model proses ini

      2. Spiral Model

      2. Spiral Model

       Evolutionary process (pengembangan bertingkat)

       Menggabungkan keunggulan prototyping dan waterfall

       Memungkinkan dikembangkannya perangkat lunak secara bertahap (incremental) dan cepat.

       Terbagi atas 6 tahapan:

    • customer communication
    • planning
    • risk analysis
    • engineering

      2. Spiral Model

      2. Spiral Model Planning analisa resiko Integration and test plan development plan Risk Analysis analisa resiko user berdasarkan evaluasi batasan sistem tujuan, alternatif, menentukan dan budget Requirements development plan berdasarkan kebutuhan awal Communication Customer Engineering prototipe awal Entry Point Project berikutnya prototipe tingkat produk-jadi Evaluation Customer Construction

      3. Component Assembly Model

      3. Component Assembly Model engineering risk analysis Engineering, customer evaluation entry point identify candidate components look up components in library extract components if available build components if unavailable put new components in library construct n- th iteration of system Customer communication contruction & release

      4. Conccurent Model

      4. Conccurent Model

      Model proses yang memungkinkan perubahan keadaan dari under development ke awaiting change (berhenti sementara) ketika terjadi perubahan kebutuhan

      4. Conccurent Model

      4. Conccurent Model none Under development A waiting changes Under revision Under review baselined

      Analysis activity done

      4. Conccurent Model

      4. Conccurent Model

       Aktivitas sistem dan komponen yang berlangsung secara

      simultan dan dapat dimodelkan dengan menggunakan

      pendekatan orientasi keadaan;

       Aplikasi klien/server khusus yang diimplementasikan dengan banyak komponen yang masing-masing bisa dirancang dan direalisasikan secara konkuren.

       Mencakup sekumpulan aktivitas yang membawa kepada

      spesifikasi matematis perangkat lunak komputer;

       Memungkinkan software engineer untuk mengkhususkan, mengembangkan, dan mem- verifikasi sistem berbasis komputer dengan menggunakan notasi matematis yang tepat;

       Variasi dari pendekatan ini disebut clean-room software engineering.

      Model proses yang menggabungkan beberap konsep unggulan

       dari model proses lainnya.

      Penekanan pada model proses ini, yaitu:

       1. Komunikasi dengan customer secara intens (streamlined)

      2. Arsitektur yang reusable dan terbuka pada perubahan kebutuhan

      3. Alur proses yang iterative atau incremental

       Terkait dengan penggunaan tools.

       Pengembang software mendefinisikan karakteristik software secara 'high level'; tool secara otomatis akan membangkitkan kode.

       4GT mempercepat proses pengembangan perangkat lunak.

       Proses perancangan dan dokumentasi baik.

       Masih dipertanyakan beberapa pihak: efisiensi kode yang dihasilkan, kemudahan (relatif).

      requirements gathering design strategy implementation using 4GL testing Model proses yang menekankan pada fast delivery dari setiap poin aktivitas dalam rangka memperpendek jangka waktu proyek pembangunan perangkat lunak.

       Just a few rules that are easy to learn and follow

       Streamline the SDLC

    • Eliminate much of the modeling and documentation
    • Emphasize simple, iterative application development

       Examples include:

    • Extreme Programming (XP)
    • Scrum
    • Dynamic Systems Development Model (DSDM)

      “ Core Values” of XP 1.

      Communication – All to All 2.

      Simplicity – refactoring 3.

      Feedback – Embrace Change 4.

      Courage – Quality First, test and efficient coding User Stories about system do 1.

      Code small program using defined standards 2.

      Naming conventions

    • Coding practices
    • User Feedback 3.

      Repeat 4.

    Latihan

      Chelsea Outlet merupakan outlet yang bergerak di bidang penjualan jersey khusus Chelsea. Seiring perkembangan outlet yang semakin maju diikuti persaingan dengan outlet lain. Pengolahan data penjualan di Chelsea outlet masih kurang efektif karena transaksi belum terkomputerisasi. Chelsea outlet memerlukan sebuah perangkat lunak untuk mengolah data penjualan dan laporannya. Perangkat yang dibuat harus sesuai dengan sarana komputer yang ada di Chelsea outlet.

      

    Model Proses apakah yang tepat digunakan untuk kasus di