PERANCANGAN STRUKTUR PERANGKAT LUNAK

Jurusan Teknik Informatika FTKI - Universitas Nasional

Perancangan Perangkat Lunak Berorientasi pada Fungsi
 Memahami

bentuk dan tools dasar analisis dan perancangan perangkat lunak berbasis Fungsi:
– Teknik Konvensional (DFD, ERD, HIPO, dll.) – Warnier Diagrams, DSSD, Jackson, SADT, Formal, Automasi / CASE.

 Memahami

berbagai teknik pemodulan (modularity), abstraksi, keterkaitan (coupling) dan keterpaduan (cohesion) modul-modul  Mengetahui berbagai metode perancangan dan dapat memilih metode yang sesuai.

Empat Kelompok Metodologi
1.

Functional Decomposition Methodologies
Metodologi ini menekankan pada pemecahan dari sistem ke dalam subsistem-subsistem yang lebih kecil, sehingga akan mudah untuk dipahami, dirancang dan diterapkan. Yang termasuk dalam kelompok metodologi ini: - HIPO (Hierarchy Input-Process-Output) - Iterative Stewise refinement (ISR) - Information hiding.

2.

Data-Oriented Methodologies
Metodologi ini menekankan pada karakteristik dari data yang akan diproses.

a. Data-flow Oriented Methodologies
Metodologi ini secara umum didasarkan pada pemecahan dari sistem kedalam modul-modul didasarkan jenis elemen data dan hubungan antara fungsi modul-modul. Yang termasuk dalam kelompok metodologi ini: - SADT (Structured Analysis and Design Techniques) - Composite Design - SSAD (Structured Systems Analysis and Design)

b. Data Structure Oriented Methodologies
Metodologi ini menekankan struktur dari input dan output di sistem. Hubungan fungsi antar modul atau elemen-elemen sistem dijelaskan dalam struktur sistemnya.

Yang termasuk dalam metodologi ini adalah: - JSD (Jackson’s Systems Development) - W/O (Warnier/Orr)
2.

Object-Oriented Methodologies
Yang termasuk dalam metodologi ini adalah: - OMT (Object Modelling Technique), - OOA/D (Object-Oriented Analysis/Design ), - UML (Unified Modelling Language).

3.

Prescriptive Methodologies
Yang termasuk dalam metodologi ini adalah: - PLEXSYS - PRIDE - SDM/70 (System Development Methodology/70) - SRES (Software Requirment Engineering System)

Software Process
Requirements definition System design Implementation and testing Integration and testing Operation and maintenance

PERANCANGAN PERANGKAT LUNAK
Tiga tahap dasar dalam strategi pengembangan:
Analisis : memahami permasalahan (What) – Conceptual Model, System Requirements. 2. Desain/Perancangan : mengorganisasikan atau menstrukturkan permasalahan (How). System Design, Detailed Design. 3. Implementasi : membuat solusi pemecahan masalah dapat dilaksanakan. Coding - Testing
1.

PERANCANGAN PERANGKAT LUNAK MERUPAKAN BRAINWARE

   

Perancangan merupakan aktivitas otak manusia yang belum dapat diganti secara mekanik oleh mesin. Perancangan memerlukan pengetahuan (knowledge). Perancangan membutuhkan pengalaman/keterampilan (skill). Pengetahuan dan keterampilan tersebut dapat dituntun oleh suatu teknik atau metoda perancangan sehingga menghasilkan suatu kreativitas dan pemikiran inovatif.

OTAK MANUSIA

Penalaran, bahasa, aritmatika dan logika

Kreativitas, seni,

Apa tujuan dari Perancangan
Tujuan dari perancangan adalah untuk menghasilkan suatu model atau gambaran lengkap dari suatu perangkat lunak yang akan dibangun.  Perancangan disini adalah mendekomposisi fungsi program menjadi modul-modul dan kemudian menjelaskan spesifikasi dari setiap modul (data, proses, interface).

Penggunaan Model-model
Dapat dibangun oleh satu orang dan membutuhkan: • Pemodelan Minimal • Proses sederhana • Peralatan sederhana

mnya dibangun oleh suatu tim dan utuhkan: modelan oses yang baik t-alat canggih

Dibangun oleh sejumlah Tim Kontraktor dan membutuhkan: • Model rekayasa • Proses yang terkoordinasi • Mesin-mesin indutri

Apa pentingnya perancangan perangkat lunak ?
   

Pentingnya perancangan perangkat lunak dapat dinyatakan dengan kata tunggal – kualitas. Perancangan adalah tempat dimana kualitas dibangun dalam pengembangan perangkat lunak. Perancangan memberi kita gambaran perangkat lunak yang kualitasnya dapat dinilai. Perancangan adalah satu-satunya cara dimana kita dapat secara akurat menerjemahkan kebutuhan pelanggan ke dalam produk/sistem perangkat lunak. Tanpa rancangan, kita berisiko membangun sistem yang tidak stabil, sulit diuji dan kualitasnya tidak dapat dinilai.

PERANCANGAN PERANGKAT LUNAK
(Menurut ANSI/IEEE Std 729-1983)
Perancangan Perangkat Lunak adalah suatu perioda didalam siklus hidup rekayasa perangkat lunak, mulai dari analisis, dokumentasi, dan pemeriksaan kembali rancangan data, arsitektur, interface dan prosedur perangkat lunak, untuk memenuhi kebutuhan tententu.

Definisi Umum
Perancangan perangkat lunak adalah suatu proses untuk mengubah kebutuhan-kebutuhan (requirements) fungsional menjadi suatu struktur dan prosedur sebelum dilakukan pengkodean atau pemrograman.

Aspek Manajemen dan Aspek Teknis
Hubungan antara aspek-aspek manajemen dengan aspek-aspek teknis dari perancangan Aspek-aspek Manajemen
System Architecture Design (Structure) Detail Design (Procedure) Data Design

Aspek-aspek Teknis

Architectural Design Procedural Design Interface Design

Perancangan perangkat lunak menurut aspek teknis:

Perancangan Data (Data Design) Mengubah model domain informasi yang dibuat pada saat analisis menjadi struktur-struktur data. Perancangan Arsitektural (Architectural Design) Mendefiniskan hubungan antara komponen-komponen struktural utama dari program. Perancangan Antarmuka (Interface Design) Memberikan layout dan mekanisme interaksi antara manusia-mesin. Perancangan Prosedural (Procedural Design) Mengubah komponen-komponen struktural menjadi suatu gambaran prosedural dari perangkat lunak.

Hubungan Data Dictionary pada Perancangan Data

 

Data Dictionary adalah sekumpulan metadata yang berisi definisi-definisi dan representasi-representasi dari elemen-elemen data. Metadata adalah data mengenai data. Data adalah fakta, huruf dan angka yang tidak sedang digunakan pada proses keputusan, dan biasanya berbentuk catatan historis atau arsip. METADATA • MARC 21 (2709) • ALD • GILS • FGDC • CDWA • Dublin Core (15) • VRA • RDF • CIMI • EAD

 

Item dari metadata adalah suatu hubungan yang terjadi diantara dua entitas dalam bentuk teks. Pada konteks DBMS, Data Dictionary adalah sejumlah read-only of tables and views, berisi informasi tentang: – Precise definition of data elements – Usernames, roles and privileges – Schema objects – Integrity constraints – Stored procedures and triggers – General database structure – Audit information – Space allocations

Basic Dictionary Objects
 Tables

– koleksi dari rekord-rekord data dalam fields.  Data elements – berisi definisi semantik (gambaran singkat) kalimat dalam suatu field.  Domains – menggambarkan atribut-atribut teknis fields dalam tabel (e.g. field type, length, value range).

Table
Table field

uses

Data element
uses

Domain

File Data Structures

A file: “STUDENT”
ID 3 1 record 2 4 Last

field First Jane Bob Chuck Dan Grade A C B B

Smith Wood Kent Boone

Contoh Data
Course Section Semester Name Su 01 Su 01 Su 01 Fa 01 Fa 01 Rank

MIS 3353 100 MIS 3353 200 MIS 3373 200 MIS 4663 900 MIS 4663 901

Kemp Instr Schwarzkopf Assoc P Kemp Instr Schwarzkopf Assoc P Van Horn Prof

Contoh Metadata
Data Item Name Type Course Char Section Semester Name Rank Value Length Min Max Description 7 Three digit department reference and 4 digit course number Integer 3 001 900 Section number Char 10 Semester and year Char 30 Instructor name Char 10 Instructor rank

Program 1 Program 2 Program 3

DATABASE MetaData Data

Data Dictionary

Apa itu Entity Relationships Diagram ?

Entitas adalah komponen-komponen yang ada dalam sistem yang dijadikan model. Relationship adalah hubungan antara entitas-entitas - One to Many (1:M) – mis: Ibu ke Anak - One to One (1:1) – mis: Tgl. kelahiran ke Tgl. Kematian - Many to Many (M:M) – mis: Produk ke Purchase Order.

Supplier

supplies

Items

Entitas

Relationsh ip

Entitas

Data Modeling
 Data

modeling is a formalism  Entity-Relationship Model (ER) Entity Relationship model:
– a visual model – attempts to capture the structure of data
 Premises

– The real world consists of entities – Entities in one enterprise are related – Database model =
relevant entities + relationships among them

– Entities and relationships have attributes

Database Design

Conceptual design

Entity-Relationship Model

Logical design

Logical Schema

Physical design

Relationship sets
set: a relation among entity sets: – e.g. (Smith,IST210) takes  Relationship sets
 Relationship

– have degree – may have attributes – e.g. final mark attribute for takes relationship

Graphical Elements of the ER Diagram

Its components are:
– rectangles representing entity sets. – ellipses representing attributes. – diamonds representing relationship sets.

Entity

Attribute • id • name

Relationship

• Customers • Accounts

• Customer Account

Basic Symbols

Cardinality Symbology

Entitas adalah komponen-komponen yang ada dalam sistem yang dijadikan model. Relationship adalah hubungan antara entitas-entitas - One to Many (1:M) – mis: Ibu ke Anak - One to One (1:1) – mis: Tgl. kelahiran ke Tgl. Kematian - Many to Many (M:M) – mis: Produk ke Purchase Order.

Supplier

supplies

Items

Entitas

Relationsh ip

Entitas

Relationship

STUDENT

Take

COURSE

   

Connect two or more entity sets Represented by diamonds Think of the “value” of a relationship set as a table One row for each list of entities, one from each set, that are connected by the relationship

Finding Relationships
Often represented by a Verb  allows answers to questions not available through individual entity types

EMPLOYEE

Has

DEPENDENT

Weak Entity

Entity, Attribute, Relationship
Name
Address

Numb CLIENT PASSPORT Exp

ITINERARY

Date

city

• A client must have a passport • Each client has only one passport • A client may have one or more itinerates • An itinerary belongs to one client

Basic relationships
One-to-One
HUSBAND WIFE

• A husband has one wife • A wife has one husband

One-to-Many

TEAM

PARTICIPANT

• A team has many participants • Many participants belong to one team

Many-to-Many

EMPLOYEE

SKILL

• An employee has many skills • Many employees have the same skill

Exercise

Business rules: A university where a student may take many courses employs lecturers. Each lecturer teaches one or more courses but no course is taught by more than one lecturer. Each student has to complete two or three assignments for each course. Requirement: Draw an entity relationship (ER) diagram for the situation described.

Solution

Has Teach

Take

Review
 Use

ER Diagrams to help understand

– – – –

The essential information Visual guide to the organization Plan for how to proceed Improve database design

Apa itu Data Flow Diagram?
Data Flow Diagram (DFD) adalah suatu teknik grafik yang menggambarkan alur informasi dan transformasi menggunakan dekomposisi fungsi terhirarki dari suatu proses dalam suatu sistem

Levelisasi DFD  Diagram Konteks (Level 0) Merupakan data flow diagram level tertinggi dan langkah awal pada sebuah sistem, yang menggambarkan sistem dengan lingkungan luar sistem yang berhubungan secara langsung.  Diagram Level 1 Penguraian dari proses sistem yang ada pada diagram konteks, menggambarkan hubungan proses utama yang ada didalam

Tujuan Data Flow Diagrams ?
Untuk memperlihatkan:  Empat komponen sistem komputer: input, output, processing, storage.  Bagaimana informasi masuk dan meninggalkan sistem.  Apa saja yang mengubah informasi.  Dimana informasi di simpan.

Mengapa DFD penting:
batas-batas (boundary).  Memeriksa kelengkapan dari suatu analisis.  Sebagai dasar dari spesifikasi program.
 Mendefinisikan

Data Flow Diagram
Didasarkan 4 (empat) komponen sistem komputer: 1. Input (data sources) atau Entity 2. Output (data destinations) 3. Processing (tranformation processes) 4. Storage (data stores)
Input (Source) Data Flow Transform Process Data Flow Output (Destination)

Data Flow Data store

Simple Data Flow Diagram

Common Process Errors on DFDs

SOAL
Buatlah Data Flow Diagram siklus transaksi dari empat siklus aktivitas bisnis yang umum.

Empat Siklus Aktivitas Bisnis yang Umum
1.

2.

3.

4.

Siklus Pendapatan. Kejadian-kejadian yang berkaitan dengan penjualan barang dan jasa dan penagihan hasilhasilnya (pesanan pelanggan, penagihan, piutang dagang dan pelaporan penjualan). Siklus Pengeluaran. Kejadian-kejadian yang berkaitan dengan perolehan barang dan jasa dan pelunasan kewajiban / hutang (pemilihan pemasok, pembelian, hutang dagang dan penggajian). Siklus Produksi. Kejadian-kejadian yang berkaitan dengan manajemen dan pengendalian sumber daya, investasi dan fasilitas (akutansi biaya produksi, pengendalian persediaan dan akutansi kekayaan). Siklus Keuangan. Kejadian-kejadian yang berkaitan dengan perolehan dan manajemen dana-dana modal, termasuk kas (kas, hutang, dan pensiun karyawan).

Kejadiankejadian Ekonomik Transaksitransaksi Siklus Produksi Siklus Keuangan

Siklus Siklus Pendapatan Pengeluaran

Siklus Pelaporan Keuangan

Laporan Keuangan

Apa itu State Transition Diagram ?
State Transition Diagram merepresentasikan perilaku suatu sistem dengan menggambarkan keadaan-keadaannya (states) dan kejadian-kejadian yang dapat membuat sistem berubah keadaan.  Menunjukkan tindakan-tindakan apa yang harus dilakukan sebagai akibat dari kejadian tertentu.  Keadaan adalah mode perilaku yang dapat diamati.

2-state Coffee Maker:

Switch button to on

Idle

Making coffee

Switch button to off

The software design process
Requirements Requirements specification specification

Architectural design

Abstract specification

Interface design

Component design

Data structure design

Algorithm design

System architecture

Software specification

Interface specification

Component specification

Data structure specification

Algorithm specification

DOKUMENTASI PERANCANGAN
I. Ruang Lingkup A. Sasaran Sistem B. Persyaratan Utama Perangkat Lunak C. Batasan-batasan dan Pembahasan Rancangan

II. Rancangan Data A. Objek Data dan Struktur Data B. Struktur File dan Basisdata 1. Struktur File Eksternal 2. Data Global 3. File dan Acuan Lintas Data III. Rancangan Arsitektural A. Kajian Data dan Aliran Kendali B. Struktur Program

IV. Rancangan Interface A. Spesifikasi Interface Manusia-Mesin B. Aturan Rancangan Interface Manusia-Mesin C. Rancangan Interface Eksternal 1. Interface untuk Data Eksternal 2. Interface untuk Sistem/Peralatan Eksternal V. Rancangan Prosedural Untuk masing-masing Modul: A. Naratif Pemrosesan B. Penggambaran Interface C. Penggambaran Bahasa Rancangan D. Modul-modul yang Digunakan E. Struktur Data Internal F. Keterangan/Larangan/Pembatasan VI. Persyaratan Lintas-Acuan

VII. Ketentuan Pengujian 1. Paduan Pengujian 2. Strategi Integrasi 3. Pertimbangan Khusus VIII. Catatan Khusus IX. Lampiran

Pertanyaan
Gambarkan bagan struktur organisasi (Organizational Structure Chart) di tempat kerja saudara dan jelaskan ciricirinya ?

Organizational Structure Chart

Penjelasan
Struktur organisasi di gambarkan dalam suatu arsitektur (bangunan) berupa kotak-kotak untuk menggambarkan satuan dan garis-garis untuk mengambarkan hubungan hirarki antara kotakkotak.  Panah-panah menunjukkan aliran dari kendali terhirarki antara kotak-kotak.  Setiap satuan mempunyai fungsi dan tugas-tugas (tusi) yang diuraikan dalam bentuk wewenang dan tanggung jawab dalam suatu hubungan lini (garis).  Fungsi dijabarkan dalam bentuk perincian kegiatan secara sederhana yang disebut dengan tugas-tugas pekerjaan.

Struktur Perangkat Lunak
 Pendekatan

terstruktur menggambarkan perangkat lunak dalam bentuk sistem yang strukturnya didefinisikan dengan jelas. ini mengenalkan penggunaan alatalat (tools) dan teknik-teknik untuk mengembangkan sistem yang terstruktur.

 Metodologi

Proses Dekomposisi Sistem

Decomposition Diagrams
Decomposition diagram – suatu perangkat yang digunakan untuk menggambarkan dekomposisi dari suatu sistem. Disebut juga hierarchy chart.

Structure Chart

Perangkat utama yang digunakan pada perangcangan tersetruktur adalah Structure Chart. Structure Chart memberi gambaran mengenai modulmodul dalam suatu sistem, bagaimana sistem diorganisasikan menjadi modul-modul yang terkelola, hirarki dari tiap-tiap modul tersebut, dan interface komunikasi antara modul. Structure Chart tidak memperlihatkan prosedur internal yang dilakukan suatu modul atau data internal yang digunakan oleh suatu modul. Structure Chart terdiri dari: (1) Modul-modul individual; (2) Data dari dan ke modul; (3) Kontrol sebagai interface antara modul-modul.

Simbol-simbol Structure Charts
Module

"Lexical inclusion" module

Decisions, embedded with module

Control flow Data flow (data structure or data element) Control flag

 Panah

lingkaran berlubang untuk menggambarkan data yang dipertukarkan antara dua modul  Panah lingkaran solid untuk menggambrakan pesan-pesan (flag) yang dilewatkan antara dua modul. Get
Customer Details Customer Account Number Customer Name Account Number is OK Flag dari pemaggil ke yang dipanggil Data dari pemaggil ke yang dipanggil Flag dari yang dipanggil ke pemanggil Data dari yang dipanggil ke pemaggil

Find Customer Name

Intan : hanya satu modul dibawahnya (subordinate) yang dipanggil.  Kura garis: modul-modul subordinat akan dipanggil secara berulangulang sampai kondisi akhir terpenuhi.

CONTOH SOAL
Buat data flow graph dari ATM (automatic teller machine).

MAIN
tra ne ns w Ac ct

Ac c Rec t #

c Re

t Acc

#

Rp

Rp

Get Account Number

Get Rupiah Amount

Retriev eAccou nt Record

Debit Account

Update Account

Record Transactio n

Contoh Structure Chart
SUMMARIZE PAYMENTS FOR ALL CUSTOMERS
Total for One Customer

Total for One Customer EOTP

Total for All Customers

GET TOTAL PAYMENT FOR ONE CUSTOMER
Valid Customer Record EOVCR

PUT CUSTOMER TOTAL

PUT FINAL TOTAL

GET VALID CUSTOMER RECORD
Customer Record Field

Customer Total Line

Final Total Line

Field Valid

PRINT

READ

EDIT FIELD

Pertanyaan

Buat model struktur data dari suatu bahan pustaka berupa buku perpustakaan dan gambarkan juga dengan diagram W/O ? Dan tentukan kamus datanya (data dictionner).

Model Struktur Diagram Buku header

trn status input right

type publisher Language + personalauthor corporatename* title

book

notes ? bibliographic category + subject descriptor + keyword* abstract* availability

conference* format size isbn notes ?

Diagram W/O Buku Perpustakaan header (1)

trn status input right notes ?

type publisher Language + personalauthor corporatename* title

book

bibliographic (1)

category + descriptor + keyword* abstract*

conference* format size isbn notes ?

subject (1) availability (1)

Prosedur Perangkat Lunak
 Prosedur

Perangkat Lunak lebih menajamkan pada rincian tahap-tahap pemrosesan dari setiap modul secara individual. harus memberikan spesifikasi yang lengkap dari suatu pemrosesan, meliputi urutan-urutan kejadian, titik-titik keputusan yang nyata, operasi-operasi berulang, dan bahkan organisasi dan struktur data.

 Prosedur

Prosedur Perangkat Lunak

Flowcharts
Flowchart adalah teknis analitik digunakan untuk menggambarkan beberapa aspek dari suatu sistem informasi secara logis, jelas, dan konsisten.

Simbol-simbol Flowchart dapat dibagi atas empat kategori: 1 Input/output symbols 2 Processing symbols 3 Storage symbols 4 Flow and miscellaneous symbols

Peta Aliran (Flowchart)
Peta Aliran memperlihatkan alur peta gerakan data masukkan, proses pengolahan, dan keluaran.

Umpan data input/output Input manual Proses Operasi manual Display

Keputusan logika Database On-line storage Dokumen Kendali aliran

PROCESS A

PROGRAM FLOWCHART:
SEQUENCE

PROCESS B

R TRUE PROCESS E

PROCESS D

PROCESS C S

TRUE

SELECTION

ITERATION

KONSTRUKSI FLOWCHARTs

Berurut

Bersyarat

Seleksi

Berulang

SYSTEM FLOWCHART:
HUMAN RESOURCES DATA PAYROLL MASTER

TIME CARDS

LOAD & VALIDATE

PAYROLL SYSTEM
VALID TRANSACTIONS PAYROLL MASTER

COMPARE &

UPDATE

PAYROLL REPORTS & CHECKS

DIRECT DEPOSITS

GENERAL LEDGER

UPDATED PAYROLL MASTER

Pertanyaan
Apa perbedaan antara DFD dengan Flowchart ?

Perbedaan DFD & Flowcharts

Proses pada DFD dapat beroperasi secara parallel (pada waktu yang bersamaan) Proses pada flowcharts dieksekusi satu demi satu. DFD memperlihatkan aliran data melalui suatu sistem Flowcharts memperlihatkan aliran kontrol (sequence & transfer of control) Proses pada DFD dapat memiliki perbedaan waktu yang sangat berbeda (harian, mingguan, sesuai permintaan) Proses pada flowcharts adalah bagian dari suatu program tunggal dengan waktu yang konsisten.

Perbedaan antara DFD dengan Flowchart
 DFD

menekankan pada aliran data, sedangkan Flowchart menekankan pada aliran dokumen atau record yang berisi data. umumnya menggambarkan aliran logika (logical flow) dari data, sedangkan Flowchart menggambarkan aliran fisik dari data.

 DFD

Pertanyaan
Jelaskan tahapan-tahapan yang harus dilalui dalam pengembangan suatu perangkat lunak ? Dan jelaskan pula produk-produk yang dihasilkan dari tiap tahapan tersebut ?

PROSES PENGEMBANGAN
TAHAP
PERENCANAAN

HASIL PRODUKSI
- Penggambaran Masalah. - Rencana Pengembangan PL. - Rencana Pengukuran Kinerja.
-

ANALISIS

Diagram Aliran Data. Spesifikasi Elemen Fungsifungsi. Model Entity-Relationship. Kamus Data Analisis. Rencana Pengujian Terintegrasi. Laporan Kesalahan Analisis.

TAHAP
DISAIN
-

HASIL PRODUKSI
Chart Struktur. Spesifikasi Modul. Tabel Normalisasi dan Jejak Navigasi. Kamus Data Rancangan. Matriks Cross Reference. Rencana Pengujian Terintegrasi Laporan Kesalahan Disain

MODUL-MODUL
Perangkat Lunak yang akan dibangun umumnya besar, kompleks, jangka waktu yang panjang dan melibatkan banyak pihak.  Sistem terdiri dari elemen-elemen, dan elemenelemen utama dalam perangkat lunak disebut modul.  Berapa jumlah, besar dan kompleksitas suatu modul yang harus dibuat dari suatu perangkat lunak.  Modul-modul tersebut akan saling berinteraksi, dan bagaimana meminimalkan interaksi antara modul (low coupling).

MODULARITY
 Modul

adalah bagian dari suatu program yang dapat dipisah secara logika yaitu dapat berupa suatu paket, proses, prosedur, subrutin, fungsi atau makro. memungkinkan program dapat dikelola secara lebih mudah dan lebih cerdas. C(x) adalah suatu fungsi yang menentukan kompleksitas suatu masalah x dan E(x) adalah fungsi yang menentukan usaha atau waktu yang dibutuhkan untuk menyelesaikan masalah x. suatu masalah p1 dan p2 , jika C(p1) > C(p2) E(p1) > E(p2) Maka biasanya

 Modularity  Misal

 Untuk

 Artinya

diperlukan lebih banyak waktu untuk menyelesaikan masalah yang lebih kompleks

Sifat menarik lainnya dari pemecahan masalah oleh manusia adalah: C(p1 + p2) > C(p1) + C(p2) Artinya kompleksitas suatu masalah yang merupakan gabungan dari p1 dan p2 adalah lebih besar dari pada kompleksitas memecahkan masalah secara terpisah atau sendiri-sendiri. Sifat menarik lainnya dari pemecahan masalah oleh manusia adalah: E(p1 + p2) > E(p1) + E(p2) KESIMPULAN adalah lebih mudah menyelesaikan suatu masalah kompleks jika masalah tersebut dapat dipecah menjadi bagian-bagian yang terkelola

Keuntungan melakukan pemodulan:
1.

Modul dapat lebih mudah untuk dipahami dan dijelaskan, sehingga pendokumentasiannya lebih cepat. Lebih mudah untuk diprogram karena setiap kelompok bebas dapat bekerja pada modulmodul secara terpisah dengan sedikit melakukan komunikasi. Lebih mudah untuk di test, karena masingmasing dapat diuji secara terpisah kemudian diintegrasikan dan diuji lagi secara bersama. Jika suatu modul tidak tergantung pada yang lain, maka akan lebih mudah pemeliharaannya.

2.

3.

4.

Suatu Rancangan Sistem harus:
menunjukan suatu organisasi terhirarki yang dapat mengendalikan komponen-komponen perangkat lunak.  modular artinya perangkat lunak harus dapat dibagi secara logika kedalam komponen-komponen yang membentuk fungsi-fungsi atau sub-sub fungsi tertentu.  memberikan penggambaran yang jelas dan terpisah dari data dan prosedur.  Menuju kepada modul (subroutine atau procedure). mempunyai sifat-sifat fungsional yang independent.  Membentuk antarmuka-antarmuka yang mengurangi kerumitan hubungan antara modul-modul dan dengan lingkungan luar.

Perinsip Dasar Perancangan Sistem
 Kriteria

apa yang dapat digunakan untuk membagi perangkat lunak menjadi komponenkomponen individual atau modul-modul ? fungsi dan rincian struktur data dipisahkan dari gambaran konsepsual perangkat lunak ? ada keseragaman kriteria yang mendefinisikan kualitas teknik dari rancangan perangkat lunak ?

 Bagaimana

 Apakah

M

Usaha (biaya) untuk mengembangkan modul perangkat lunak secara individual akan berkurang dengan bertambahnya jumlah total dari modul tersebut.

M

Jumlah modul yang membesar berarti ukuran modul secara individu mengecil.  Sebaliknya, kenaikan jumlah modul menyebabkan usaha (biaya) yang berhubungan dengan antarmuka (interfacing) antara modulmodul meningkat.  Dengan optimasi akan diperoleh suatu jumlah modul M yang memberikan biaya pengembangan

What is the "right" number of modules for a specific software design ?
module development cost

module integration cost

optimal number of modules

number of modules

Perancangan dihadirkan pada tingkat abstraksi
Requirement s Analysis
Customer Order Product
Customer

Systems Design

Software Implementation
Forms
Product

ERD
O rder Salesperson

Spec

Scheduled Delivery

Schedu led Delivery

Salesperson

Architecture
Update Marketing Authorize Credit

Order Entry

Tables VB Code VC++ Code

Bill Customer

Schedule Delivery Inventory

Knowledge about world Abstraksi memungkinkan konsentrasi masalah pada tingkat umum tanpa harus memikirkan rincian tingkat rendah yang tidak relevan.

Abstractions Abstractions Operations about world about on system system

ABSTRAKSI
 Abstraksi

adalah suatu perangkat yang sangat penting dalam pengembangan perangkat lunak .  Abstraksi memungkinkan perancang untuk memusatkan suatu masalah pada tingkat abstrak lebih umum tanpa harus tahu rincianrincian dari komponen yang diimplementasikan pada tingkat lebih rendah yang tidak relevan .  Artinya penggunaan abstraksi memungkinkan perancang bekerja dengan konsep-konsep dan istilah-istilah yang telah dikenal tanpa harus mengubah suatu lingkungan masalah menjadi suatu struktur yang tidak dikenal.

Perancangan harus menggambarkan masalah abstraksi pada tingkat terendah:  Abstraksi fungsional  Abstraksi data.  Abstraksi kontrol

Dua kategori abstraksi dalam perancangan

1. Abstraksi Fungsional Dalam abstraksi fungsional suatu modul dicirikan dari fungsi yang dibentuknya. Abstraksi ini berhubungan dengan metodologi perancangan struktural Misalnya suatu modul untuk menghitung nilai sinus dapat diberi abstrak yang digambarkan sebagai fungsi sinus.

2. Abstraksi Data Dalam abstraksi data, data diperlakukan seperti suatu obyek dengan beberapa operasi yang ditentukan sebelumnya untuk data-data tersebut. Bentuk abstraksi ini merupakan dasar metodologi perancangan berorientasi obyek.

Suatu modul yang mengendalikan modul modul yang lain disebut superodinate terhadap modul tersebut.  Sedangkan suatu modul yang dikendalikan modul lain disebut subordinate terhadap modul tersebut

Menurut struktur perangkat lunak, suatu modul dapat dikategorikan sebagai:

Modul berurutan (sequential module) yaitu diacu dan dieksekusi tanpa adanya interupsi oleh perangkat lunak aplikasi. Misalnya subprogram konvensional, subroutine, functions atau procedures. Module bertambah (incremental module) yaitu dapat diinterupsi sebelum menyelesaikan seluruh tugasnya oleh perangkat lunak aplikasi dan sesudah itu melanjutkan kembali dari titik yang terinterupsi Sering disebut dengan coroutines. Modul paralel yang melaksanakan secara simultan dengan modul lain dalam lingkungan multiprosesor yang bekerja secara paralel. Modul-modul paralel disebut conroutines

KUALITAS PERANCANGAN
(MODULE INDEPENDENCE )
Modul Mandiri dapat tercapai jika mengembangkan modul dengan suatu fungsi tunggal dan tidak terlampau banyak berinteraksi dengan modul-modul yang lain.

Dua kategori untuk mengukur kualitas kemandirian yaitu:  Keterkaitan harus rendah (Low Coupling). adalah ukuran saling ketergantungan relatif antara modul-modul atau interaksi diantara modul kecil.

Keterpaduan harus tinggi (High Cohesion). adalah ukuran kekuatan fungsional relatif dari suatu modul dimana interaksi internalnya sangat

Coupling & Cohesion
coupling antara module

cohesion didalam module

Bagaimana terjadinya interaksi antara modulmodul ?
Jawab: 1. Mengaktifkan kode modul yang lain. 2. Melompat atau bercabang ke suatu tempat lain. 3. Mengakses data bersama modul yang lain. 4. Data yang bisa dipergunakan bersama 5. Prosedur panggilan dengan suatu sakelar sebagai parameter. 6. Prosedur panggilan dengan data murni sebagai parameter. 7. Melewatkan arus data serial dari satu modul ke modul lain.

COUPLING
 Coupling

(keterkaitan) adalah ukuran bagaimana modul-modul saling berhubungan dan saling bergantungan.  Modul yang tidak tergantung dari modul yang lain mempunyai derajat coupling rendah.

Object-Oriented Design

Jenis Coupling dan Derajadnya
Jenis Coupling Jenjan g
Data coupling Stamp coupling Control coupling External coupling Common coupling Content coupling 1 2 3 4 5 6 Tinggi Terjelek

Derajad Kualitas
Rendah Terbaik

1. No direct coupling Modul 1 dan modul 2 adalah subordinate terhadap modul-modul yang berbeda. Sehingga masing-masing tidak berhubungan dan tidak ada penggandengan langsung yang terjadi antara keduanya.

2. Data coupling Dua buah modul dari sistem mempunyai data coupling jika komunikasi dari modul-modul ini dilakukan lewat suatu data. Data dapat berupa sebuah item data tunggal atau elemen dari suatu larik (array).

3. Stamp coupling Dua buah modul dikatakan stamp coupling jika kedua modul ini berkomunikasi lewat suatu kelompok item data. Kelompok item data dapat berupa suatu record yang terdiri dari beberapa field atau larik yang terdiri dari beberapa elemen.

Module 1

Module 2

4. Control coupling Control coupling ditandai dengan adanya jalur kendali antara modul. Modul satu mengendalikan aliran data di modul yang lain, kendali dilakukan melalui flag yang mengontrol logika intern modul yang lain.

5. External coupling Tingkat coupling yang terjadi bila modulmodul terikat pada lingkungan luar (external) dari perangkat lunak.

6. Common coupling Modul-modul dikatakan common coupling jika modoul-modul tersebut menggunakan data yang disimpan di area memori yang sama.

7. Content coupling Content coupling terjadi jika suatu modul menggu-nakan data atau mengendalikan informasi dari modul yang lain tanpa berhubungan lewat suatu parameter. Content coupling dapat juga terjadi jika percabangan dilakukan ke tengah-tengah suatu modul yang lain

Isi Jenis informasi komunika si
Low coupling (terbaik) Data coupling
Stamp coupling Control coupling Common coupling Content coupling

Jenis hubungan
Koneksi normal dengan parameter

Sederhana, jelas

Data

High coupling (terjelek)

Rumit, Tidak jelas

Kontrol

Pathalogical, tidak dengan parameter

Exercise: Classify the Couplings
p 1 q 3 r 5 t 6 u 4 s 2
Numbe r 1 2 3 4 In Aircraft type List of parts Functio n code List of parts Part numbe r Part numbe Out Status flag Part manufacture r Part

5

p, t, u access the same database in update mode
6

KEPADUAN (COHESION)
Cohesion adalah ukuran keterpaduan dimana hubungan antara elemen-elemen dalam suatu modul jelas dan terstruktur, sehingga modul dapat dipandang sebagai suatu unit dengan fungsi tunggal (functionally cohesive).

Ada beberapa tingkat dari keterpaduan : (1) Coincidental, (2) Logical, (3) Temporal, (4) Procedural, (5) Communicational, (6) Sequential, (7) Functional.

1. Coincidental cohesion jika modul terdiri dari beberapa fungsi tetapi tidak terdapat hubungan yang berarti antara elemen-elemen dari modul tersebut. Suatu kejadian dimana secara kebetulan saja bahwa elemenelemen berada dalam tempat yang sama. Coincidental adalah tingkat terendah dari kepaduan.

2. Suatu modul memiliki logical cohesion jika terdiri dari beberapa fungsi yang mempunyai tugas serupa atau melakukan fungsi-fungsi yang masuk dalam kelas logika yang sama.

3. Temporal cohesion jika modul terdiri dari beberapa fungsi dan suatu fungsi atau elemen-elemen dalam modul membentuk fungsi-fungsi yang berhubungan dengan waktu atau dieksekusi pada satu titik waktu tertentu.

4. Procedural cohesion yaitu modul terdiri dari beberapa fungsi, walaupun elemen-elemen dalam modul kurang berhubungan tetapi pemrosesannya harus dilaksanakan dalam suatu urutan tertentu.

5. Communicational cohesion yaitu jika modul terdiri dari beberapa fungsi dan elemen-elemen dalam modul beroperasi dengan menggunakan arus data yang sama.

6. Sequential cohesion jika keluaran dari suatu elemen merupakan masukan untuk elemen yang lain secara berurutan. Modul terdiri dari beberapa fungsi dimana elemen dalam modul bertindak sebagai suatu himpunan urutan aksiaksi atau fungsi-fungsi sangat berikatan.

Compute square root

Sort the array

7.

Functional cohesion yaitu bila seluruh elemen dari modul terkait hanya melakukan suatu fungsi tunggal yang terdefinisi dengan baik, tanpa tergantung pada implementasi modul-modul yang lain. Modul yang berisi beberapa fungsi bukan functional cohesion.

UMUMNYA YANG BAIK ADALAH
 Low

coupling  High cohesion.

Bagaimana meminimalkan interaksi antara modul (low coupling) dengan meningkatkan interkasi internal di dalam modul itu sendiri sehingga dapat melakukan sutu fungsi tunggal yang terpadu (high cohesion).

Soal
Misal suatu modul untuk mendukung file ditulis dalam bahasa Pascal seperti dibawah ini: procedure file (file_ptr, file_name, op_name); begin case op_name of “open”: membentuk aktivitas membuka file. “close”: membentuk aktivitas menutup file. “print”: mencetak file. end case end Cohesion jenis apa yang terjadi pada modul ini ? Bagaimana kita mengubah modul untuk menambah cohesion.

 Procedural

cohesion  Agar menjadi functional cohesion modul harus dibagi menjadi tiga modul:
1) procedure open_file (file_ptr, file_name); begin “open”: membentuk aktivitas membuka file. end 2) procedure close_file (file_ptr, file_name); begin “close”: membentuk aktivitas menutup file. end 3) procedure print_file (file_ptr, file_name); begin “print”: mencetak file end

Buat struktur dan flowchart dari program dibawah ini program abc (input, output) var x , y : integer; procedure hitung1; x := x + y; y := y + 5; end; procedure hitung2; x := x + 5; y := y + x; hitung1; end; begin x := 0; y := 0; hitung1; hitung2; end;

Jawab
Struktur Informasi abc

Flowchart

Input Inisialisasi x = 0, y = 0 x=x+y y=y+5

hitung1

x, y

hitung2
x=x+5 y=y+x x=x+y y=y+5 Output

b.

c. d.

Jelaskan jenis coupling apa yang terjadi dan modifikasi program diatas untuk memperbaiki struktur programnya sehingga coupling menjadi lebih rendah. Jenis Content coupling Modifikasi menjadi data coupling dengan menghilangkan pemanggilan modul hitung 1 pada modul hitung 2

Otomatisasi Sistem Manual Terdefinisi Baik

DETAILED DESIGN TOOLS

Graphical tools. Rincian prosedur digambarkan dalam bentuk bangunan logika dalam bentuk gambar-gambar khusus. - Flowchart. - Diagram Kotak (Box Diagram). Tabular tools. Rincian prosedur direpresentasikan dalam bentuk tabel yang menggambarkan aksi-aksi, kondisi-kondisi dan alternatif-alternatif yang menghu-bungan informasi masukan, pengolahan, dan keluaran . - Tabel Keputusan (Decision Tables). Language tools. Rincian prosedur digambarkan dalam suatu pseudocode yang sangat menyerupai suatu bahasa pemrograman. - Program Design Language (PDL)

Pertanyaan
Apa perbedaan antara arus informasi (information flow) dengan struktur informasi (information structure) ?. Apakah ada sistem yang tidak memiliki information flow ? Apakah ada sistem yang tidak memiliki information structure?.

ANALISIS STRUKTUR
(Information Description)
Struktur Analisis adalah suatu arus informasi dan teknik pemodelan isi (content). Informasi diubah kedalam bentuk alirannya pada sistem berbasis komputer. 1. Data Flow Diagrams. 2. Data Structure Representation. 3. Data Dictionary. 4. System Interface Description. 5. Internal Interfaces

Data Flow Diagram
(Diagram Aliran Data)
Data Flow Diagram adalah suatu teknik grafik yang menggambarkan alur informasi dan transformasi menggunakan dekomposisi fungsi terhirarki dari suatu proses dalam suatu sistem.

Apa sebagai masukan.  Apa sebagai keluaran.  Bagaimana terjadi proses perubahan didalamnya

Simbol-simbol Diagram Aliran Data

File eksternal Satuan Aliran data Proses Penyimpan data

Label

Aturan-aturan Diagram Aliran Data

Aliran informasi dari sistem manual, otomatis, hibrid, dapat digambarkan dengan jelas. Setiap gagasan membutuhkan penyempurnaan untuk memberikan pengertian yang lengkap. Aliran data diberi tekanan lebih dari pada aliran kendali. Satuan eksternal dan manusia tidak dimodelkan dalam Diagram Aliran Data. Setiap panah diberi label. Panah yang membawa data, tidak punya

 

Contoh DFD

Konteks DFD

Hierarchy of DFDs
 Context

Diagram (Level 0 DFD)

– Terminology not consistent
 High-level

DFD (Level 1) presents the overview of the system
– shows major processes / functions / subsystems in the system, and has the same number of external entities as in the Context Diagram

 Lower-level

DFD expands each higher level process into more detailed processes

Level 0 DFD (Context Diagram)
 Level

0 DFD

– Shows system boundaries – External entities that interact with the system – Major information flows between entities and system

Defines the scope and boundary of the system

Diagram Level 0

DIAGRAM KOTAK
Diagram kotak disusun untuk mengembangkan suatu perangkat rancangan grafik yang tidak membolehkan adanya pelanggaran konsutriksi struktur

Diagran N-S charts (Nassi-Shneiderman charts) 1. Domain fungsional didefinisikan dengan baik

2. 3. 4.

dan terlihat jelas sebagai suatu representasi piktorial. Perpindahan kendali yang berubah-ubah tidak dimungkinkan. Batasan dari data lokal dan/atau global dapat dengan mudah ditentukan. Pengulangan dapat dengan mudah

DIAGRAM KOTAK

Berurut

Bersyarat

Seleksi

Berulang

DIAGRAM KOTAK
1. 2. 3.

4.

5.

Elemen utama dari diagram adalah suatu kotak. Untuk menggambarkan suatu urutan, dua atau lebih kotak dihubungkan dari atas ke bawah. Untuk menggambarkan if-then-else, suatu kotak kondisional diikuti dengan suatu kotak bagian then dan suatu kotak bagian else. Pengulangan digambarkan dengan suatu pola keliling yang melingkari proses (bagian do-while atau bagian repeat-until) yang diulang. Seleksi digambarkan menggunakan bentuk kotak pilihan.

TABEL KEPUTUSAN
Tabel keputusan (decision tables) adalah suatu perangkat yang menerjemahkan aksi-aksi dan kondisi-kondisi dalam bentuk tabular

Garis tebal membagi tabel menjadi empat bagian :  Seperempat bagian kiri-atas berisi daftar dari segala kondisi-kondisi.  Seperempat bagian kiri-bawah berisi daftar dari seluruh aksi-aksi yang mungkin berdasarkan kombinasi dari kondisi diatas.  Bagian kanan berbentuk matriks menunjukkan kombinasi kondisi dan aksi-aksi berhubungan yang akan terjadi untuk suatu kombinasi tertentu.  Setiap kolom matriks dapat dinterpretasikan sebagai suatu aturan pengolahan (processing rule).

Untuk mengembangkan tabel keputusan dilakukan langkah-langkah berikut: :  Daftar seluruh tindakan/aksi yang dapat dihubungkan dengan suatu prosedur tertentu.  Daftar seluruh kondisi (atau keputusan yang dibuat) selama pelaksanaan prosedur .  Satukan sejumlah kondisi tertentu dengan aksi-aksi tertentu yang menghapuskan kombinasi-kombinasi yang tidak mungkin; kemungkinan lain, kembangkan setiap permutasi kondisi-kondisi yang mungkin.  Tentukan aturan-aturan ( rules) dengan menunjukkan aksi apa yang dapat terjadi

TABEL KEPUTUSAN

IPO CHARTS

IPO CHARTS

Input-processing-output (IPO) charts adalah suatu perancangan perangkat lunak dan teknik dokumentasi yang dikembangkan oleh IBM.

Ciri yang paling penting dari IPO chart adalah kemampuannya untuk menggambarkan hubungan antara data input/output dan prosedur perangkat lunak

IPO CHARTS

IPO CHARTS

Prosedur ditentukan dalam suatu kotak pengolah pusat dan hubungannya dengan input, output dan informasi database. Hal ini memungkinkan perancang secara eksplisit menghubungkan arus informasi dengan arus prosedural. Pengolahan (processing) secara khusus ditentukan dengan suatu daftar langkah-langkah, tetapi dapat diwakilkan juga dengan suatu flowchart, box diagram atau bahasa perancangan.

PROGRAM DESIGN LANGUAGE

Program design language (PDL) disebut juga pseudocode adalah suatu bahasa perancangan yang umum dipakai dengan menggunakan perbendaha-raan kata dan sintaks bahasa Inggris (bahasa Inggris terstruktur). PDL terlihat sama dengan PL/1, PASCAL atau ALGOL. Perbedaan antara PDL dengan bahasa pemrograman tingkat tinggi diatas adalah penggunaan teks narasi yang tertanaman secara langsung didalam pernyataanpernyataan PDL.

Suatu bahasa perancangan harus memiliki sifat sebagai berikut :

Fixed syntax dari KEYWORDS yang diberikan untuk seluruh struktur konstruksi, deklarasi data dan karakteristik modularitas. Free syntax dari suatu bahasa alamiah yang memberi-kan ciri-ciri pengolahan. Fasilitas deklarasi data, termasuk struktur data sederhana (skalar dan array) dan struktur data kompleks (linked atau hirarchical). Definisi Subprogram dan teknik pemanggilan yang mendukung berbagai model deskripsi interface.

PROGRAM DESIGN LANGUAGE
Bahasa perancangan tidak tergantung pada bahasa pemrograman, dimana bentuk dasar PDL meliputi: • • • • • • •

Deklarasi Data Teknik penstrukturan blok. Konstruksi Kondisi Konstruksi Pengulangan (Repetition) Definisi Subprogram Penggambaran Interface Konstruksi I/O

PROGRAM DESIGN LANGUAGE
Contoh: PDL untuk kendali pintu Lift (IEEE CSP).

Apa itu CASE ? (Computer-Aided Software Engineering)
Sistem pererangkat lunak yang dibuat untuk memberikan dukungan otomatis pada proses kegiatan perangkat lunak seperti: analisis kebutuhan, pemodelan sistem, debugging dan pengujian.

Upper-CASE
– Perangkat untuk mendukung proses kegiatan awal dari analisis kebutuhan dan perancangan.

Lower-CASE
– Perangkat untuk mendukung kegiatan akhir seperti pemrograman, debugging and pengujian.

Siklus Hidup Pengembangan Sistem Tradisional dengan Sistem CASE

 Perangkat

CASE membantu mengkaji dan merancang perangkat lunak, secara otomatis membangkitkan kode-kode komputer sesuai dengan model yang telah dibuat.  CASE mewujudkan empat tahap pengembangan perangkat lunak:
1. Analisis (gambaran apa yang akan dibangun, fase pemodelan). 2. Disain (gambaran bagaimana membangunnya). 3. Implementasi (program untuk dijalankan, fase pengkodean). 4. Test dan integrasi (meyakinkan semua berjalan baik).

Sign up to vote on this title
UsefulNot useful