• Tidak ada hasil yang ditemukan

Rekayasa Perangkat Lunak (Software Engineering)

N/A
N/A
Protected

Academic year: 2019

Membagikan "Rekayasa Perangkat Lunak (Software Engineering)"

Copied!
76
0
0

Teks penuh

(1)

Catatan Kuliah

Rekayasa Perangkat Lunak

(Software Engineering)

(2)

Software Engineering: A Practitioner’s Approach, 6/e

Chapter 8

Pemodelan Analisis

copyright © 1996, 2001, 2005

R.S. Pressman & Associates, Inc.

M. Idham Ananta Timur, S.T., M.Kom

For University Use Only

May be reproduced ONLY for student use at the university level

when used in conjunction with

Software Engineering: A Practitioner's Approach.

(3)

Analisis Kebutuhan

Analisis Kebutuhan

Menentukan karakteristik operasional PL

Menunjukkan antarmuka PL dengan elemen sistem yang lain

Membuat batasan yang harus dipenuhi PL

Analisis Kebutuhan memungkinkan Software Engineer

(disebut analis atau modeler) untuk :

Memperinci kebutuhan dasar yang dibuat kapda rekayasa

kebutuhan sebelumnya

Membangun model yang dapat menggambarkan skenario user,

(4)

Sebuah Jembatan

syste m

de scription

analysis

mode l

(5)

Aturan-Aturan

Model harus fokus pada masalah atau domain bisnis.

Tingkat abstraksinya relatif harus lebih tinggi.

Setiap elemen model analisis sebaiknya memberikan

tambahan pada pemahaman keseluruhan kebutuhan PL dan

menyediakan wawasan pada domain informasi, fungsi dan

perilaku sistem.

Tunda semua konsideran infrastruktur dan model non

fungsional hingga fase desain.

Minimalisasi rangkaian melalui sistem.

Pastikan model analisis menyediakan nilai untuk semua

stakeholder.

(6)

Analisis Domain

Analisis domain PL adalah identifikasi, analisis, dan

spesifikasi kebutuhan umum dari domain aplikasi

tertentu, yang biasanya digunakan kembali pada project

lain di dalam domain aplikasi yang sama

[Analisis domain berorientasi objek adalah] identifikasi,

analisis dan spesifikasi kemampuan umum,

kemampuan digunakan kembali dalam domain tertentu

dalam istilah-istilah objek, class, subassemblies dan

framework umum

(7)

Analisis Domain

Tentukan domain yang ingin diinvestigasi.

Kumpulkan contoh representatif aplikasi pada

domain tersebut.

Analisis setiap aplikasi pada contoh.

(8)

Pemodelan Data

Memeriksa objek data secara

independen terhadap proses

Fokus perhatikan pada domain data

Membuat sebuah model pada abstraksi

level konsumen

Mengindikasikan bagaimana objek data

(9)

What is a Data Object?

Object

something that is described by a set

of attributes (data items) and that will be

manipulated within the software (system)

each instance of an object (e.g., a book)

can be identified uniquely (e.g., ISBN #)

each plays a necessary role in the system

i.e., the system could not function without

access to instances of the object

(10)

Objek-Objek Umum

Entitas eksternal (printer, user, sensor)

Sesuatu

(laporan, display, sinyal)

Kejadian atau event (interupsi, alarm)

orang

(manager, engineer, salesperson)

Unit organisasi

(divisi, tim)

tempat (lantai pabrik)

(11)

Objek Data dan Atribut

Sebuah objek data terdiri dari sekumpulan

atribut yang bertindak sebagai aspek,

kualitas, karakteristik, atau penjelas objek

object: automobile

attributes:

make

model

body type

price

(12)

Apakah Relationship?

Relationship

menandakan kaitan, sebuah

fakta yang harus diingat oleh sistem, tidak

dikomputasi atau diturunkan secara mekanis

(13)

Notasi ERD

(0, m)

(1, 1)

object

relationship

object

1

2

Satu bentuk umum:

(0, m)

(1, 1)

object

1

relationship

object

2

Bentuk Umum yang lain:

(14)

Membangun Sebuah ERD

Level 1

modelkan semua objek data (entitas) dan

koneksinya dengan yang lain

Level 2

modelkan semua entitas dan relasi

Level 3

modelkan semua entitas, relasi, dan

(15)

ERD: sebuah contoh

(1,1)

places

(1,m)

Customer

request

for service

generates

(1,n)

task table

(16)

Konsep Object-Oriented

Harus dipahami untuk menerapkan elemen

berbasis class pada model analisis

Konsep-konsep kunci:

Classes dan objects

Attributes dan operations

Encapsulation dan instantiation

(17)

Class

Pemikiran object-oriented dimulai dengan

sebuah class, sering didefinisi sebagai :

template

deskripsi umum

―blueprint‖ ... Menggambarkan sekelompok item

yang mirip

sebuah

metaclass

(sering disebut

superclass

)yang membangun hierarki semua

class yang ada

Sekali sebuah class item ditentukan, instance

(18)
(19)

Apakah Class?

external entities

things

occurrences

roles

organizational units

places

structures

class name

attributes:

(20)

Enkapuslasi/Penyembunyian

Objek mengenkapsulasi

Baik data dan prosedur

Logis yang dibutuhkan

Untuk manipulasi

data

(21)

Hierarki Class

Chair

Table

Desk

”Chable"

instances of Chair

PieceOfFurniture (superclass)

(22)

Method

(Operasi, Layanan)

Prosedur yang terenkapsulasi

pada sebuah class dan

didesain untuk beroperasi pada

satu atau lebih atribut data

yang ditentukan sebagai

bagian dari class.

(23)

Model berbasis Scenario

―[Use

-cases] adalah bantuan untuk mendefinisikan apa

yang ada pada sistem (aktor) dan apa yang harus

dilakukan sistem (use-

cases).‖ Ivar Jacobson

(1) Apa yang harus ditulis?

(2) Berapa banyak kita harus menulisnya?

(3) Sedetail apa gambaran kita ?

(24)

Use-Cases

Sebuah skenario yang menggambarkan

rangkaian kegunaan pada sistem

actors mewakili peran orang atau piranti yang

dimaikan ketika sistem berfungsi

users dapat berperan sebagai lebih dari satu

(25)

Mengembangkan Use-Case

Apa tugas atau fungsi utama yang harus dilakukan aktor ?

Sistem Informasi seperti apa yang diperlukan, dihasilkan

atau diubah oleh aktor ?

Apakah aktor harus menginformasikan sistem tentang

perubahan dalam lingkungan eksternal?

Informasi apa yang diharapkan aktor dari sistem?

Apakah aktor menginginkan diberitahu tentang perubahan

(26)

Use-Case Diagram

homeowner

Access camera surveillance via t he

Int ernet

Conf igure Saf eHome syst em paramet ers

Set alarm

cameras

(27)

Activity Diagram

Melengkapi use-case dengan menyediakan representasi diagram

dari aliran prosedural.

ent er password and user ID

selec t major f unc t ion

valid passwor ds/ ID

prompt f or reent ry

invalid passwor ds/ ID

(28)

Swimlane Diagrams

Memungkinkan untuk menampilkan aliran aktivitas yang digambarkan oleh use-case, dan di

saat yang sama mengindikasikan aktor yang mana, atau class analisis yang mempunyai

tanggungjawab terhadap tindakan yang digambarkan oleh kotak aktivitas

ent er pas sword

select surveillance

(29)

Pemodelan berorientasi aliran

Menampilkan bagaimana objek data ditransformasi ketika

mereka bergerak di dalam sistem

Sebuah

data flow diagram (DFD)

merupakan bentuk

diagram yang digunakan

Walaupun dianggap pendekatan kuno, pemodelan

berorientasi aliran menyediakan pandangan unik

(30)

Model Aliran

Setiap sistem berbasis komputer

Adalah sebuah transformasi informasi

computer

based

system

(31)

Notasi Model Aliran

Entitas Eksternal

proses

Aliran data

(32)

Entitas Eksternal

Produsen atau konsumen sebuah data

Contoh : seseorang, piranti, sensor

Contoh lain : sistem berbasis komputer

(33)

Proses

Sebuah transformer data

(mengubah input menjadi output)

Contoh: menghitung pajak, menentukan luas,

Memformat laporan, menampilkan grafik

(34)

Aliran Data

Data mengalir melalui sebuah sistem dimulai

Sebagai input dan ditransformasi menjadi

output

compute

triangle

area

base

height

(35)

Menyimpan Data

Data disimpan untuk digunakan lagi.

look-up

sensor

data

sensor #

report required

sensor #, type,

location, age

sensor data

sensor number

type,

(36)

Petunjuk menggambar DFD

Semua icon harus diberi nama yang

bermakna jelas

DFD berkembang dalam beberapa

tingkatan

Selalu dimulai dengan sebuah context

level diagram (level 0)

Selalu menunjukkan entitas eksternal

pada level 0

(37)

Membangun sebuah DFD

I

Mereview model data untuk mengisolasi objek

data dan gunakan parsing gramatikal untuk

menentukan ―Operasi‖

Menentukan entitas eksternal (produsen dan

konsumen data)

(38)

Contoh Level 0 DFD

user

processing

request

video

source

video signal

NTSC

digital

video

processor

requested

video

signal

(39)

Membangun DFD

II

Tulis sebuah narasi yang menggambarkan

transformasi

Parsing untuk menentukan transformasi

tingkat berikutnya

―seimbangkan‖ aliran untuk menjaga aliran

data

Bangun level 1 DFD

(40)
(41)

Catatan untuk DFD

Setiap lingkaran harus dipecah hingga

dia hanya melakukan hanya SATU hal

Rasio ekspansi menurun sesuai dengan

jumlah level yang meningkat

Kebanyakan sistem membutuhkan

antara 3 hingga level 7 untuk model

aliran yang cukup.

Sebuah item aliran data (panah) dapat

dikembangkan seiring dengan

(42)

Spesifikasi Proses (PSPEC)

PSPEC

naratif

pseudocode (PDL)

persamaan

tabel

Diagram dan atau grafik

(43)

Maps into

Setelah DFD?

analysis model

(44)

Control Flow Diagram

Menggambarkan ―

events

‖ dan proses yang mengelola

event

Sebuah ―event‖ adalah kondisi boolean yang dipastikan

dengan :

Mendaftar semua sensor yang dibaca oleh software.

Mendaftar semua kondisi interupsi.

Mendaftar semua "switches" yang dipicu oleh sebuah operator.

Mendaftar semua kondisi data.

Memanggil kembali parser kata benda/kerja yang diaplikasikan

(45)

Model Kendali

• control flow diagram berada ―di atas‖ DFD dan menunjukkan event yang

mengendalikan proses-proses yang terdapat pada DFD

Aliran kendali

event dan item kendali

ditandai dengan panah putus-putus

Sebuah tiang vertikal menggambarkan input menuju atau output dari

sebuah control spec (CSPEC)

spesifikasi terpisah yang menggambarkan

bagaimana kendali ditangani

Sebuah panah putus-putus memasuki tiang vertikal adalah input menuju

CSPEC

Sebuah panah putus-putus meninggalkan proses menggambarkan kondisi

data

Sebuah panah putus-patas memasuki sebuah proses menggambarkan

sebuah kendali input yang dibaca langsung oleh proses

(46)

Control Flow Diagram

read

operator

input

manage

copying

display panel enabled

beeper on/off

start

(47)

Control Specification (CSPEC)

CSPEC dapat berupa:

state diagram

(sequential spec)

state transition table

decision tables

activation tables

(48)

Panduan Membangun CSPEC

Lihat semua sensor yang ―dibaca‖ oleh PL

Lihat semua kondisi interupsi

Lihat semua "switches" yang diaktifkan oleh operator

Lihat semua kondisi data

Melihat parsing kata benda/kerja yang diterapkan pada

Statemen software atau lingkupnya, mereview semua item kendali

Sebagai input/output CSPEC yang mungkin

Menggambarkan perilaku sebuah sistem dengan identifikasi

Keadaan; menentukan bagaimana setiap keadaan mencapai dan

Menentukan transisi antar keadaan

(49)

Pemodelan berbasis Class

Tentukan analisis class dengan memeriksa

pernyataan masalah(problem statement)

Gunakan parsing gramatikal untuk memilah class

potensial

Kenali atribut tiap class

Kenali operasi yang memanipulasi atribut-atribut

(50)

Class Analisis

Entitias external

(contoh : sistem lain, piranti, orang) yang menghasilkan

atau menggunakan informasi yang digunakan oleh sistem berbasis

komputer.

Benda

(contoh : laporan, display, surat, sinyal) yang merupakan bagian

dari domain informasi untuk masalah.

Kejadian atau event

(contoh : transfer properti atau pelengkapan urutan

gerakan robot) yang terjadi di dalam konteks sistem operasi.

Peran

(contoh : manajer, insinyur, sales) yang diperankan orang yang

berinteraksi dengan sistem.

Unit Organisasi

(contoh : divisi, kelompok, tim) yang relevan terhadap

aplikasi.

Tempat

(contoh : lantai pabrik, pelabuhan muatan) yang membangun

konteks masalah dan fungsi keseluruhan sistem.

(51)

Kriteria memilih class

Layanan yang dibutuhkan

Beberapa atribut

Atribut umum

Operasi umum

(52)

Class Diagram

verific ationPhoneNumber sy stemStatus

delayTime telephoneNumber mas terPassw ord temporaryPass word numberTries

Class name

attributes

(53)

Class Diagram

is placed wit hin

(54)

Pemodelan CRC

Class-

class analisis memiliki ―tanggung

-

jawab‖

Tanggungjawab

adalah atribut-atribut dan operasi-operasi yang

terenkapsulasi oleh class

Class-class analisis berkolaborasi satu dengan yang lain

Collaborators

adalah class-class yang dibutuhkan untuk

menyediakan sebuah class dengan informasi yang dibutuhkan

untuk memenuhi tanggung jawabnya.

Secara umum, sebuah kolaborasi berakibat permintaan

(55)

Pemodelan CRC

Clas s:

Description:

Re sponsibility:

Collaborator:

Clas s:

Description:

Re sponsibility:

Collaborator:

Clas s:

Description:

Re sponsibility:

Collaborator:

Clas s:

FloorPlan

Description:

Re sponsibility:

Collaborator:

incorporates w alls, doors and w indow s show s position of video cameras defines floor plan name/type manages floor plan positioning scales f loor plan for display scales f loor plan for display

(56)

Tipe-tipe Class

Class entitas

, sering disebut class model atau bisnis, yang

diekstrak langsung dari statemen permasalahan (contoh :

Sensor).

Class perbatasan

digunakan untuk membuat interface

(contoh : layar interaktif, atau laporan cetak) dimana user

melihat dan berinteraksi dengannya selama PL digunakan

.

Class kendali

mengelola “unit kerja

[UML03] dari awal

sampai akhir. Class kendali dapat didesain mengelola :

Pembuatan atau update objek entitas;

Inisiasi objek perbatasan sebagaimana mereka mendapatkan

informasi dari objek entitas;

Komunikasi kompleks antara sekumpulan objek;

(57)

Responsibilities

System intelligence should be distributed across classes

to best address the needs of the problem

Each responsibility should be stated as generally as

possible

Information and the behavior related to it should reside

within the same class

Information about one thing should be localized with a

single class, not distributed across multiple classes.

Responsibilities should be shared among related

(58)

Kolaborasi

Class memenuhi tanggung jawabnya dengan satu diantara dua cara

:

Sebuah class dapat menggunakan operasinya sendiri untuk

memanipulasi atributnya masing-masing atau

Sebuah class dapat berkolaborasi dengan class lainnya.

Kolaborasi membuat relasi antara class

Kolaborasi dapat diidentifikasi dengan menentukan apakah sebuah

class dapat memenuhi tanggung jawabnya masing-masing

Tiga relasi umum yang berbeda antar class [WIR90]:

is-part-of

relationship

(59)

Composite Aggregate Class

Player

(60)

Review model CRC

Semua peserta dalam review (model CRC) diberikan sebuah subset dari

kartu index model CRC.

Kartu yang berkolaborasi harus terpisah (tidak boleh ada reviewer yang memiliki

dua kartu yang berkolaborasi).

Semua skenario use-case (dan diagram use case terkait) harus diorganisasi

dalam kategori-kategori

.

Pemimpin review membaca use-case secara hati-hati

.

Ketika pemimpin review sampai pada objek, dia akan memberi tanda kepada

person yang memegang kartu index class yang terkait.

Ketika tanda dikirimkan, pemilik kartu class diminta untuk menggambarkan

tanggung jawab yang tertulis di kartu tersebut.

Kelompok menentukan satu (atau lebih) tanggung jawab yang memenuhi

kebutuhan use-case.

Jika tanggung jawab dan kolaborasi yang tertera pada kartu index tidak

(61)

Asosiasi dan Dependensi

Dua class analisis sering berhubungan satu dengan

yang lain dalam beberapa pola

Dalam UML relasi ini sering disebut

asosiasi

Asosiasi dapat didapatkan dengan mengenali

multiplicity

(istilah

cardinality

digunaikan dalam pemodelan data

Dalam banyak instans, relasi client-server ada diantara

dua class analisis.

Dalam kasus ini, class client tergantung pada class server dalam

(62)

Multiplicity

WallSegm ent Window Door Wall

is used to build is used to build

is used to build 1..*

1 1 1

(63)

Dependencies

Camera

Displa yWindow

{passw ord}

(64)

Analisis Paket

Beberapa model analisis (use-case, class analisis) dikategorisasi

dalam sebuah pola yang mempaketkan mereka dalam kelompok

Tanda plus di dalam nama class analisis dalam setiap paket

menandakan bahwa class-class tersebut mempunyai visibilitas

publik dan karena itu dapat diakses dari paket lain.

Simbol lain dapat mendahului elemen di dalam paket. Tanda minus

menandakan bahwa elemen disembunyikan dari semua paket, dan

tanda # menandakan bahwa elemen hanya dapat diakses oleh

(65)
(66)

Pemodelan Perilaku

Model perilaku menggambarkan bagaimana PL merespon event

atau stimulan eksternal. Untuk model tersebut, analis harus

melakukan langkah-langkah berikut :

Evaluasi semua use-case untuk mendapatkan pemahaman menyeluruh

tentang urutan interaksi di dalam sistem.

Mengenali event yang mengendalikan urutan interaksi dan

memahamibagaimana event mempunyai relasi terhadap objek spesifik.

Membuat urutan untuk setiap use-case.

Membangun state diagram untuk sistem.

(67)

Representasi Keadaan

Dalam konteks pemodelan perilaku, dua karakter

keadaan harus diperhatikan :

Keadaan setiap class ketika sistem menjalankan fungsinya, dan

Keadaan sistem ketika diobservasi dari luar sebagaimana sistem

menjalankan fungsinya.

Keadaan class mengambil baik karakter aktif maupun

pasif [CHA93].

Sebuah

keadaan pasif

adalah status saat ini dari semua atribut

objek.

Keadaan aktif

dari sebuah objek menggambarkan status saat ini

(68)

State Diagram for the ControlPanel Class

password = incorrect & numberOfTries < maxTries

password = correct

act iv at ion successful key hit

do: validat ePassw ord

numberOfTries > maxTries t imer < lockedTime

(69)

Keadaan-Keadaan Sistem

state

sekumpulan keadaan

terobservasi yang menggambarkan

perilaku sistem pada satu waktu

state transition

perubahan dari satu

keadaan ke keadaan yang lain

event

sebuah kejadian yang

menyebabkan sistem melakukan

perilaku yang sudah diprediksi

sebelumnya

action

proses yang terjadi sebagai

(70)

Pemodelan Perilaku

Membuat daftar keadaan sistem yang

berbeda (Bagaimana perilaku sistem ?)

Menggambarkan bagaimana sistem

membuat transisi dari satu keadaan ke

keadaan yang lain.indicate how the system

makes a transition from one state to another

(Bagaimana sistem mengubah keadaan?)

mengenali event

Mengawali action

(71)

Sequence Diagram

select in g t imer > lo cked Time

A A

Figure 8 .2 7 Sequence diagram (part ial) f or Saf eHome securit y f unct ion

(72)

Menulis Spesifikasi PL

Setiap orang harus

tahu pasti apa yang

harus dilakukan hingga

seseorang

(73)

Tugas

Buatlah sebuah paper yang menjelaskan tentang UML

beserta contoh kasusnya, minimal 15 halaman, spasi

1.5, kertas Quarto, sampul mika biru tua.

Kriteria penilaian :

Validitas/kebenaran

Kelengkapan

(74)

Panduan Spesifikasi

use a layered format that provides increasing detail

as the "layers" deepen

use consistent graphical notation and apply textual

terms consistently (stay away from aliases)

be sure to define all acronyms

be sure to include a table of contents; ideally,

include an index and/or a glossary

write in a simple, unambiguous style (see "editing

suggestions" on the following pages)

(75)

Panduan Spesifikasi

Be on the lookout for persuasive connectors, ask why?

keys:

certainly, therefore, clearly, obviously, it follows that ...

Watch out for vague terms

keys:

some, sometimes, often, usually,ordinarily, most, mostly ...

When lists are given, but not completed, be sure all items are understood

keys:

etc., and so forth, and so on, such as

Be sure stated ranges don't contain unstated assumptions

e.g.,

Valid codes range from 10 to 100.

Integer? Real? Hex?

Beware of vague verbs such as

handled, rejected, processed, ...

Beware "passive voice" statements

e.g.,

The parameters are initialized.

By what?

Beware "dangling" pronouns

(76)

Panduan Spesifikasi

When a term is explicitly defined in one place, try

substituting the definition forother occurrences of the term

When a structure is described in words, draw a picture

When a structure is described with a picture, try to redraw

the picture to emphasize different elements of the structure

When symbolic equations are used, try expressing their

meaning in words

When a calculation is specified, work at least two

examples

Look for statements that imply certainty, then ask for proof

keys; always, every, all, none, never

Gambar

tabel  Diagram dan atau grafik
Figure 8 .2 7   Sequence diagram (partial) for SafeHome  security function

Referensi

Dokumen terkait

Program KB seharusnya memberikan penanganan masalah unmet need terfokus pada wanita yang tidak pernah berdiskusi dengan suaminya tentang KB, yang tidak pernah

Yustiningrum Wahyu Nurcahya, S351408011, Perlindungan Hukum Terhadap Debitor Dalam Jaminan Fidusia Kendaraan Bermotor Yang Belum Terdaftar (Studi Putusan

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

Berdasarkan hasil penelitian dan pembahasan yang telah dijabarkan, maka dapat ditarik kesimpulan bahwa Ada hubungan positif yang sangat signifikan antara persepsi

pengendalian pencemaran air secara terpadu yang dilakukan dengan cara optimasi pemanfaatan airnya dengan sistem yang terkoordinasi secara baik dalam melibatkan berbagai

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

Tujuan pembuatan alat belah bambu manual ini adalah merancang alat pembelah bambu yang dioperasikan secara manual untuk membelah bambu gelondong dengan panjang 40 cm

Penelitian ini didasarkan pada metode deskriptif kualitatif dan kuantitatif, yang bertujuan untuk mengumpulkan data siswa agar dapat Mengetahui kemampuan siswa