+ All Categories
Home > Documents > Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web...

Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web...

Date post: 08-Mar-2018
Category:
Upload: phungduong
View: 215 times
Download: 3 times
Share this document with a friend
84
Software Design
Transcript
Page 1: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Software Design

Page 2: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Kata pengantar Definisi design oleh IEEE6 10.12-90 adalah sebagai berikut :

“proses pendefinisian arsitektur, komponen, interface dan karakteristik lain dari sistem atau komponen” dan “ hasil dari proses itu”. Di tampilkan sebagai proses, software design adalah aktivitas terus menerus dari software engineering yang mana software requirements dianalisa dalam rangka untuk menghasilkan deskripsi dari struktur internal software yang berperan sebagai basis untuk konstruksinya. Lebih pastinya, sebuah softaware design (hasilnya) harus dapat mendeskripsikan arsitektur software.Karenanya, bagaimana software dipecah dan disusun menjadi komponen-komponen, dan tampilan antara komponen-komponen tersebut, harus juga dapat mendeskripsikan komponen pada tingkatan detil yang menyediakan konstruksi mereka.

Page 3: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Software design memainkan peranan penting dalam membangun software. Software design mengijinkan software engineers untuk membuat beberapa model yang membentuk sejenis blueprint dari solusi menjadi implementasi.

Page 4: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Aktivitas Software design Dalam daftar standar software life cycle process

seperti pada Software Life Cycle Processes, software design terdiri atas dua aktivitas yang sangat sesuai antara software requirements analysis dan software construction :- Software architectural design(sering disebut toplevel design) : Menggambarkan software’s

top-level structure dan mengorganisasi dan mengidentifikasi berbagai komponen.

- Software detailed design : menggambarkan tiap komponen secara cukup mendetail untuk konstruksinya.

Page 5: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

General Concepts design Software bukan satu-satunya media yang

melibatkan desain. Dalam pemahaman secara umum, kita dapat melihat desain sebagai bentuk pemecahan masalah. Sebagai contoh, kita mengambil konsep dari masalah yang tidak mempunyai solusi nyata, sangat menarik sebagai bagian untuk memahami batasan dari desain. Sejumlah ide dan konsep lain juga menarik untuk memahami desain dalam pemahaman umum : tujuan, batasan, alternatif, representasi dan solusi.

Page 6: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Software Design Process Software design secara umum terdiri atas proses dua

langkah:- Architectural DesignArchitectural design mendeskripsikan bagaimana software dipecah dan disusun menjadi beberapa komponen (the software architecture)- Detailed DesignDetailed design mendeskripsikan perilaku khusus komponen tersebut. Hasil dari proses tersebut merupakan kumpulan dari model-model dan artefak yang merekam keputusan utama yang telah diambil

Page 7: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

1.4. Enabling Techniques Prinsip dari Software design , juga disebut dengan

teknik penyediaan, adalah ide utama berdasarkan pada berbagai pendekatan dan konsep yang berbeda dari software design.

Macam Enabling Techniques sebagai berikut : Abstraction Coupling and cohesion Decomposition and modularization Encapsulation/information hiding Separation of interface and implementation Sufficiency, completeness and primitiveness

Page 8: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

1.4.1 Abstraction

Abstraction adalah karakteristik dasar dari sebuah entitas yang membedakan entitas tersebut dari entitas yang lain

Abstraction mendefinisikan batasan dalam pandangan viewer

Abstraction bukanlah pembuktian nyata,hanya menunjukkan intisari/pokok dari sesuatu

Page 9: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

1.4.2. Coupling and cohesion

Coupling didefinisikan sebagai kekuatan hubungan antara module, sementara cohesion didefinisikan bagaimana elemen-elemen membuat modul tersebut saling berkaitan.

Page 10: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

1.4.3. Decomposition modularization

Pendekomposisian dan pemodularisasian software besar menjadi sejumlah software independen yang lebih kecil, biasanya dengan tujuan untuk menempatkan fungsionalitas dan responsibilitas pada komponen yang berbeda.

Page 11: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

1.4.4 Encapsulation Encapsulation adalah menyembunyikan

implementasi dari client, sehingga client hanya tergantung pada interface

Page 12: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Ilustrasi Encapsulation

Seorang Professor bisa megajar 4 class pada semester depan

Page 13: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

1.4.5. Separation of interface and implementation Pemisahan interface dan implementasi

melibatkan pendefinisian sebuah komponen melalui penspesifikasian sebuah public interface, diketahui oleh clients, terpisah dari detil bagaimana sebuah komponen direalisasikan.

Page 14: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

1.4.6. Sufficiency, completeness and primitiveness Pencapaian ketercukupan, kelengkapan dan

primitiveness, berarti memastikan bahwa komponen software menangkap semua karakteristik penting dari sebuah abstraksi dan tidak lebih.

Page 15: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification
Page 16: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Key issue in software designAspect adalah bagian dari sebuah program cross cut

Aspect bukan merupakan bagian dari software’s functional decomposition, tetapi hanya sebagai properti.

Key issues mempunyai peran yang penting untuk developer untuk membuat pilihan dan lebih mudah untuk menemukan solusi

Page 17: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

The number of key issues crosscutting Concurrency

Bagaimana software dapat membedakan proses, task,threads, synchronisasi dan scheduling

Control and handling of eventsBagaimana sebuah software dapat mengatur data dan flow control

Distribtions of componentsBagaimana sebuah software dapat didistribusikan dan semua komponen saling berkomunikasi

Page 18: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

The number of key issues crosscutting Error and Exception handling and Fault tolerance

Bagaimana sebuah software dapat mengenali sebuah error dan mengetahui bagaimana cara mengatasinya

Interaction and presentationBagaimana sebuah software dapat berinteraksi dengan user dan dapat menampilkan keinginan user

Data persistenceSeberapa lama data akan disimpan

Page 19: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Software architectureSoftware architecture adalah sebuah desain umum suatu proses pada sebuah software system., meliputi:

Pembagaian software ke dalam subsistemMemutuskan bagaimana saling berhubungan

Menentukan alat penghubung

“The structure of the The structure of the componentscomponents of a program /system, of a program /system, their their interrelationshipsinterrelationships, and , and principles and guidelinesprinciples and guidelines governing their design and devolution over time” (SEI governing their design and devolution over time” (SEI software architecture discussion group)software architecture discussion group)

Page 20: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

The importance of software architecture

Kenapa kita perlu mengembangkan arsitektur: Agar setiap orang bisa mengerti mengenai

sistem yang ada.Untuk membiarkan user bekerja secara

individual terhadap sebuah sistemPersiapan untuk perluasan systemMenyediakan fasilitas reuse and reusability

Page 21: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

3.1 Architectural Structures and view points

View menampilkan aspek aspek yang terdapat pada software architecture yang menunjukan spesifikasi software.

Architectural structures Sebuah sistem famili yag terkait dengan pattern sebuah vocabulary dari komponen dan connector type Suatu batasan dimana dapat dikombinasikan

Architectural structures dapat disebut juga dengan architectural style

Page 22: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification
Page 23: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Architecture view Use Case View

Analisa use case adalah teknik untuk meng-capture proses bisnis dari prespektif user.

Aspek statis di-capture dalam use case diagram Aspek dinamis di-capture dalam interaction diagram,

statechart diagram dan activity diagram Design View

Meliputi class-class, interface, dan collaboration yang mendefinisikan vocabulary system

Mendukung kebutuhan fungsional system Aspek statis di-capture dalam class diagram dan object

diagram Aspek dinamis di-capture dalam interaction diagram,

statechart diagram dan activity diagram

Page 24: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Architecture view Process View

Meliputi thread dan pendefinisian proses-proses concurency dan syncronization

Menunjukkan performance, scalability dan throughput Aspek statis dan dinamis di-capture dengan design view,

tetapi lebih menekankan pada activ class Implementation View

Meliputi komponen dan file yang digunakan untuk menghimpun dan me-release system physic

Menunjukkan configuration management Aspek statis di-capture dalam component diagram Aspek dinamis di-capture dalam interaction diagram,

statechart diagram dan activity diagram

Page 25: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Architecture view Deployment View

Meliputi node yang membentuk topologi hardware system

Menunjukkan pendistribusian, delivery, dan pengistallan

Aspek statis di-capture dalam deployment diagram

Aspek dinamis di-capture dalam interaction diagram, statechart diagram, activity diagram

Page 26: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Architectural Style

Secara umum architectural Style di bedakan menjadi 5 :

1. General Structure contoh : layers , pipes, filters, blackboard

Page 27: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Architectural Style2. Distributed systems

contoh : client server, threetiers, broker

3. Interactive systemscontoh : model view controller

4. Adaptable systemscontoh: micro kernel

5. Othercontoh : batch, interpreters

Page 28: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

3.2 Design pattern Aspects yang berulang dalam desain disebut dengan design

patterns. pattern adalah suatu outline dari permasalahan yang

besar dirubah ke dalam suatu masalah yang lebih khusus, sehingga dapat ditemukan pemecahaanya.

A good pattern sebaiknya Seumum mungkin Mengandung solusi yang telah dibuktikan dan efektif

untuk menyelesaikan masalah Studying patterns is an effective way to learn from the

experience of others

Page 29: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Macam – macam Pattern

Creational patternsmembuat sebuah object berdasarkan prototype yng dibuat terlebih dahulucontoh : builder, factory, prototype, singelton

Structural Patterncontoh : adapter, bridge ,proxy

Behavioral Patterncontoh: command, visitors, iterator

Page 30: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

3.3 Families of programs and Frameworks penggunaan kembali desain dari sebuah perangkat

lunak untuk mendesain families dari perangkt lunak.Hal tersebut disebut juga software product line

Framework adalah suatu sistem perangkat lunak yang lengkap dan dapat diperluas dalam sekejap oleh spesifiksi plug-

insDikenal dengan nama hot spots

Page 31: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

4. Software Design Quality Analysis and Evaluation 4.1. Quality Attributes 4.2. Quality Analysis and Evaluation

Techniques 4.3. Measures (Ukuran )

Page 32: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Quality Attributes

membedakan run-time (performance, security, availability, functionality, usability)

tidak dapat membedakan run-time (modifiability, portability, reusability, integrability and testability)

berhubungan dengan architecture’s qualities (conceptual integrity, correctness and completeness, buildability).

Page 33: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Quality Analysis and Evaluation Techniques

Software design reviews Static analysis Simulation and prototyping

Page 34: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Software design reviews

teknik untuk memverifikasi dan memastikan kualitas dari suatu design artifacts

Page 35: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Static Analysis formal atau semiformal static (non-executable) analysis

yang dapat dipergunakan untuk mengevaluasi suatu design

Menganalisis apa yang program akan lakukan tanpa benar2 mengeksekusinya

Page 36: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Simulation and prototyping

dynamic techniques untuk mengevaluasi suatu design

Dengan cara simulasi atau membuat prototype

Page 37: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Measures (Ukuran)

Function-oriented (structured) design measures - Structure Chart

Object-oriented design measures- Class Diagrams

Page 38: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

5. Software Design Notations 5.1. Structural Descriptions (static view) 5.2. Behavioral Descriptions (dynamic view)

Page 39: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Structural Descriptions (static view)

Architecture description languages (ADLs) Class and object diagrams Component diagrams Collaboration responsibilities cards (CRCs) Deployment diagrams Entity-relationship diagrams (ERDs) Interface description languages (IDLs) Jackson structure diagrams Structure charts

Page 40: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Architecture description languages (ADLs) bahasa yang digunakan untuk

mendeskripsikan suatu software architecture dalam kaitannya dengan komponen dan connector.

Page 41: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Class & Object Diagrams

digunakan untuk merepresentasikan satu set class (dan object) dan hubungan timbal-balik diantaranya.

Page 42: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Class Diagrams

RegistrationForm

RegistrationManager

Course

Student

CourseOfferingProfessor

addStudent(Course, StudentInfo)

namenumberCreditsopen()addStudent(StudentInfo)major

locationopen()addStudent(StudentInfo)

tenureStatus

ScheduleAlgorithm

nameRegistrationUser

Page 43: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Object diagrams

a Measurementamount: 80unit: 'bpm'

Billy: Patient a Measurementamount: 5unit: 'ft'

a Measurementamount: 74unit: 'bpm'

John: Patient a Measurementamount: 6unit: 'ft'

pulseRate:PhenomenonType

height:PhenomenonType

Relationship between specific objects

Page 44: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Component DiagramComponent diagrams adalah salah satu macam dari diagram yang memodelkan physical aspek dari suatu object-oriented system. Component diagram menunjukkan ketergantungan diantara satu set komponen.

Course CourseOffering

Student Professor

Course.dllCourse

People.dllUser

Register.exeBilling.exeBillingSystem Registrar.exe

Courses.dllPeople.dll

Page 45: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Collaboration responsibilities cards (CRCs) digunakan untuk menandakan nama dari

suatu komponen (class), responsibilities, dan nama komponen lain yang terkait.

Page 46: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Deployment DiagramDeployment diagram menunjukkan kofigurasi run-time processing nodes dan komponen yang bergantung padanya.

Registration Database

Library

Dorm

Main Building

Page 47: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

ERD Notation

(0, m) (1, 1)

objectobject objectobjectrelationshiprelationship11 22

One common form:One common form:

(0, m)(0, m)

(1, 1)(1, 1)

objectobject11 objectobject22relationshiprelationship

Another common form:Another common form:attributeattribute

Page 48: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

The ERD: An Example

8lokasi

Pegawai Departemen

Proyek

Tanggungan

memimpin

menanggung

bekerjapada

mengatur

(1,1

)(0

,N)mengepalai

bekerjauntuk

Nama

NmDepan Inisial NmBlk

JenisKel

Alamat Gaji

NoKTP

NamaJenisKel TglLahir

Hubungan

Nomor Nama Lokasi

nama nomor

TglMulai

LamaJam

JmlPegawai(1

,1)

Page 49: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Interface description languages (IDLs)

HARUS digunakan oleh Client dan server

Adalah bahasa deskripsi interface, bukan bahasa pemrograman

Page 50: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Jackson structure diagrams digunakan untuk mendeskripsikan data structure

di dalam kaitannya dengan urutan, seleksi/pemilihan, dan iterasi.

Pre-coursereading

Attendexamination

AttendclassesRegister Receive

grade

Attendclass

TutorialLecture Practical

Student

Page 51: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Structure Charts

Hierarchical Decomposition Chart Menggambarkan pengorganisasian code Banyak mengikuti subroutine/function calls

Structure Charts juga terdiri dari : parameters passed in/out of routines loop and condition indications

Page 52: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

A Simple Structure Chart for the Calculate Pay Amounts Module

Page 53: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Behavioral Descriptions (dynamic view) Activity diagrams Collaboration diagrams Data flow diagrams (DFDs) Decision tables and diagrams Flowcharts and structured flowcharts Sequence diagrams State transition and statechart diagrams Formal specification languages Pseudo-code and program design languages (PDLs)

Page 54: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Activity Diagram

Activity diagram di dalam model use case dapat digunakan untuk meng-capture aktivitas-aktivitas dalam sebuah use case

Sebenarnya merupakan flowchart, yang menunjukkan aliran kontrol activity ke activity yang lain

Page 55: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification
Page 56: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Collaboration DiagramSuatu collaboration diagram menekankan hubungan object yang mengambil bagian dari suatu interaksi.Tidak seperti sequence diagram, kita tidak harus menunjukkan lifeline dari suatu object explicitly dalam suatu collaboration diagram. Urutan peristiwa ditandai oleh angka-angka urutan pesan terlebih dahulu.

: Registrar

course form : CourseForm

theManager : CurriculumManageraCourse :

Course

1: set course info2: process

3: add course

4: new course

Page 57: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Data flow diagrams (DFDs)

Data flow diagram (DFD) – suatu model proses yang digunakan untuk melukiskan alir data melalui suatu sistem dan pekerjaan atau pengolahan yang dilakukan oleh sistem itu. Atau yang biasa disebut juga dengan bubble chart, transformation graph, and process model.

Page 58: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Simple Data Flow Diagram

Page 59: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Decision tables and diagrams

digunakan untuk merepresentasikan kombinasi complex dari suatu kondisi dan aksi.

Page 60: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Flowcharts and structured flowcharts

Penyajian berbagai program komputer, file, database, dan hubungan proses manual yang menjadikannya lengkap.

menguraikan organisasi subsistem ke dalam komponen automated dan manual

Page 61: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Common System Flowchart Symbols

Page 62: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Sequence DiagramSequence diagram adalah suatu diagram interaksi yang menekankan pada time ordering (waktu) pesan. Ini menunjukkan satu set object dan pesan yang diterima dan dikirim oleh object itu.

Sequence diagram adalah tabel yang menunjukkan object pesan di sepanjang sumbu X, dan time ordering-nya (waktu pemesanan) di sepanjang sumbu Y.

Page 63: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Sequence Diagram

: Student registration form

registration manager math 101

1: fill in info

2: submit

3: add course(Sue, math 01)4: are you open?

5: are you open?6: add (Sue)

7: add (Sue)

math 101 section 1

Page 64: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Statechart Diagram

Cancelled

Initialization Open

Closed

Add student / Set count = 0

Add student[ Count < 10 ]

Cancel course

Cancel course

[ Count = 10 ] ^CourseReport.Create report

Page 65: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Formal Specification Language

Mathematical formal yang didasarkan pada logika dengan pendukungan beberapa bahasa pemrograman (e.g. type system and parameterization)

Merupakan non-executable models Dirancang untuk menetapkan apa yang akan

dihitung dan bukan bagaimana perhitungan harus terpenuhi

Bahasa formal didasarkan pada axiomatic set theory atau logika higher-order.

Page 66: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Program Design Language (PDL)

if-then-else

if condition x then process a; else process b; endif

PDL

easy to combine with source code machine readable, no need for graphics input graphics can be generated from PDL enables declaration of data as well as procedure easier to maintain

Page 67: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

3.6 Software Design Strategies and Methods General Strategies Function-oriented (structured) Design Object-oriented Design Data-structure Centered Design Component-based Design (CBD) Other Methods

Page 68: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

General Strategies

Beberapa contoh dari kegunaan strategi umum dalam proses desain adalah divide-and-conquer and stepwise refinement, top-down vs bottom-up strategies, data abstraction and information hiding, use of heuristics, use of patterns and pattern languages, use of an iterative and incremental approach.

Page 69: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Data Abstractiondoor

implemented as a data structure

manufacturermodel numbertypeswing directioninsertslights type numberweightopening mechanism

Page 70: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Procedural Abstraction

open

implemented with a "knowledge" of the object that is associated with enter

details of enter algorithm

Page 71: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Stepwise Refinementopenopen

walk to door;walk to door;reach for knob;reach for knob;

open door;open door;

walk through;walk through;close door.close door.

repeat until door opensrepeat until door opensturn knob clockwise;turn knob clockwise;if knob doesn't turn, thenif knob doesn't turn, then take key out;take key out; find correct key;find correct key; insert in lock;insert in lock;endifendifpull/push doorpull/push doormove out of way;move out of way;end repeatend repeat

Page 72: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Top-down and bottom-up designing

Top-down design Start at the highest level (user interface). Work down to lower levels one-by-one. Do detailed decisions last (e.g., data formats,

particular algorithms). Bottom-up design

Make decisions about reusable low-level features first.

Decide how these will be put together to create high-level constructs.

Page 73: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Information Hiding

A useful definition of information hiding:

Potentially changeable design decisions are isolated (i.e., “hidden”) to minimize the impact of change.

- David Parnas

Page 74: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Information Hiding

modulemodulecontrolledcontrolledinterfaceinterface

"secret""secret"

• • algorithmalgorithm

• • data structuredata structure

• • details of external interfacedetails of external interface

• • resource allocation policyresource allocation policy

clientsclients

a specific design decisiona specific design decision

Page 75: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Function-oriented (structured) Design

Desain dengan unit fungsional yang mengubah input menjadi output

Page 76: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Function-Oriented (structured) Design

Secara tidak resmi dipraktekkan sejak pemrograman dimulai

Ribuan sistem telah dikembangkan dengan pendekatan ini

Didikukung oleh sebagian besar bahasa pemrograman

Page 77: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

A Function-oriented view of design

F2F1 F3

F4 F5

Shared memory

Page 78: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

A function-oriented view of design

Merupakan Top-down design strategy atau desain terstruktur.

Detail algoritma tersembunyi dalam sebuah fungsi, tetapi informasi state nya tidak. Jadi sebuah fungsi dapat mengganti state pada satu waktu tanpa mengganggu fungsi lain.

Tidak umum bagi seseorang untuk sepenuhnya mengetahui bagaimana bagian-bagian berbeda dari sebuah program berinteraksi.

Page 79: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Object-oriented Design Banyak metode desain perangkat lunak yang

berdasar pada object diusulkan. Bidang ini berkembang dari awal desain berbasis objek pertengahan tahun 1980an(kata benda = objek, kata kerja = metode, kata sifat = atribut) sampai desain berorientasi objek, dimana pewarisan dan polymorphism memainkan peran kunci, ke bidang desain berbasis komponen, dimana meta-information dapat didefinisikan dan diakses (melalui refleksi, sebagai contohnya).

Page 80: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Characteristics of OOD

Mengijinkan desainer untuk berpikir tentang interacting object yang memelihara state mereka sendiri dan menyediakan operasi-operasi pada state tersebut daripada sekumpulan fungsi yang beroperasi pada data yang di share.

Objek hide information tentang representasi state, oleh karena itu aksesnya terbatas

Objek mungkin terdistribusi dan dapat bekerja secara sekuensial ataupun paralel

Page 81: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Advantages of OOD

Mudah pemeliharaannya. Objek dikenali sebagai entitas tersendiri.

Objek adalah penggunaan kembali komponen-komponen.

For some systems, there is an obvious mapping from real world entities to system objects.

Page 82: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Data-structure Centered Design Desain struktur data terpusat (contohnya, Jackson

Warnier-Orr) mulai dari data menyusun manipulasi program lebih baik daripada yang dilakukan fungsi tersebut. Perencana software pertama-tama mendeskripsikan input dan output struktur data dan kemudian mengembangkan struktur kontrol program berdasar pada diagram struktur datanya. Bermacam-macam heuristik diusulkan penyelesaian dengan kasus tertentu – sebagai contoh, saat terdapat mismatch antara input dan output sturktur.

Page 83: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Component-based Design (CBD)

Sebuah komponen perangkat lunak adalah suatu unit yang independen, mempunyai definisi interface yang baik dan dependensi yang dapat disusun dan disebarkan secara independen. Desain berbasis komponen mengalamatkan isu yang terangkai dengan providing, developing, dan integrating seperti komponen untuk memperbaiki reuse.

Page 84: Software Design - Muhammad Yusuf Officially Blog | My Journal · PPT file · Web view · 2011-03-22Don’t be alarmed if students take exception to some of the oversimplification

Component-based Design (CBD)

Tujuan : Memungkinkan untuk meletakkan software dalam skala besar secara bersamaan.

Contoh : Web browser plug-in, GUI builder


Recommended