Saturday, May 4, 2013

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, aktivitas fungsional, class masalah dan relasinya, sistem dan perilaku class, dan aliran data ketika ditransformasikan.
Sebuah Jembatan
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.
Jaga model sesederhana mungkin.
Analisis Domain
Analisis Domain
Tentukan domain yang ingin diinvestigasi.
Kumpulkan contoh representatif aplikasi pada domain tersebut.
Analisis setiap aplikasi pada contoh.
Kembangkan model analisis untuk objek.
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 berhubungan satu dengan yang lain
What is a Data Object?
Objek-Objek Umum
Objek Data dan Atribut
Apakah Relationship?
Relationship – menandakan kaitan, sebuah fakta yang harus diingat oleh sistem, tidak dikomputasi atau diturunkan secara mekanis
several instances of a relationship can exist
objects can be related in many different ways
Notasi ERD
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 atribut yang menyediakan informasi yang lebih mendalam
ERD: sebuah contoh
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
Inheritance
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 spesifik dari class tersebut dapat diidentifikasi
Membangun Class
Apakah Class?
Enkapuslasi/Penyembunyian
Hierarki Class
Method
(Operasi, Layanan)
Model berbasis Scenario
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 peran dalam sebuah skenario yang ditentukan
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 yang tidak tersangka?
Use-Case Diagram
Activity Diagram
Swimlane Diagrams
Pemodelan berorientasi aliran
Model Aliran
Notasi Model Aliran
Entitas Eksternal
Proses
Aliran Data
Menyimpan Data
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
Selalu berinama panah aliran data
Jangan menampilkan prosedur logika
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)
Membuat level 0 DFD
Contoh Level 0 DFD
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
Gunakan rasio 1:5 (perkiraan)
Hierarki Aliran Datang
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 meningkatnya level (data dictionary menyediakan informasi ini)
Spesifikasi Proses (PSPEC)
Setelah DFD?
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 pada narasi proses, mereview semua “item kendali” sebagai input/output CSPEC.
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
Aliran kendali tidak secara fisik mengaktifkan/menonaktifkan proses, hal ini dilakukan melalui CSPEC
Control Flow Diagram
Control Specification (CSPEC)
Panduan Membangun CSPEC
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 tersebut
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.
Struktur (contoh : sensor, kendaraan 4WD, komputer) yang terdiri dari beberapa objek class atau objek-objek class yang terkait
Kriteria memilih class
Class Diagram
Class Diagram
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 informasi atau permintaan beberapa aksi/operasi.
Pemodelan CRC
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;
Validasi data yang dikomunikasikan antara user dan aplikasi.
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 classes, when appropriate.
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
has-knowledge-of relationship
depends-upon relationship
Composite Aggregate Class
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 dapat mengakomodasi use-case, modifikasi dilakukan pada kartu tersebut.
Hal ini termasuk definisi class baru (dan kartu index CRC) atau spesifikasi baru atau revisi mengenai tanggung jawab, atau kolaborasi kartu yang sudah ada.
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 suatu cara dan relasi dependensi terjadi
Multiplicity
Dependencies
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 paket yang berada di dalam paket tersebut.
Analysis Packages
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.
Review model behavioral untuk memverifikasi akurasi dan konsistensi
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 pada objek tersebut ketika menjalankan transformasi atau proses.
State Diagram for the ControlPanel Class
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 konsekuensi membuat transisi
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
Menggambar sebuah state diagram atau sequence diagram
Sequence Diagram
Menulis Spesifikasi PL
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
Kompleksitas kasus

Panduan Spesifikasi
Panduan Spesifikasi
Panduan Spesifikasi



No comments:

Post a Comment