3. Desain Perangkat Lunak dan Rekayasa Perangkat Lunak
Desain Data mentransformasi model domain informasi yang dibuat selama
analisis ke dalam struktur data yang akan diperlukan untuk mengimplementasikan
perangkat lunak.
Desain Arsitektur menentukan hubungan diantara elemen-elemen struktur
utama dari program
Desain Interface menggambarkan bagaimana perangkat lunak berkomunikasi
dalam dirinya sendiri dengan system yang berinteroperasi dengannya dan dengan
manusia yang menggunakannya
Desain Prosedural mentransformasi elemen-elemen structural dari arsitektur
program ke dalam suatu deskripsi procedural dari komponen-komponen perangkat
lunak.
4.
5. PRINSIP-PRINSIP RANCANGAN
The design process should not suffer from ‘tunnel vision.’ harus ada pendekatan-
pendekatan alternative dan menilai masing-masing pendekatan berdasarkan
persyaratan masalah.
The design should be traceable to the analysis model.
The design should not reinvent (menciptakan kembali) the wheel. tidak boleh
berulang
The design should “minimize the intellectual distance”(meminimalkan kesenjangan
intelektual) [DAV95] between the software and the problem as it exists in the real
world.
The design should exhibit uniformity (memperlihatkan kesatuan) and integration.
The design should be structured to accommodate change. (terstruktur untuk
mengakomodasi perubahan)
The design should be structured to degrade gently, even when aberrant
(menyimpang dari kebiasaan) data, events, or operating conditions are encountered.
Design is not coding, coding is not design.
The design should be assessed (diperkirakan / ditaksir) for quality as it is being
created, not after the fact.
The design should be reviewed to minimize conceptual (semantic) errors.
6. KONSEP YANG MENDASAR
• Abstraction—data, procedure, control
• Refinement (penyaringan) —elaboration of detail for all abstractions
• Modularity— atribut tunggal dari perangkat lunak yang memungkinkan sebuah
program untuk dikelola secara intelektual) compartmentalization of data and
function
• Architecture—overall structure of the software
o Structural properties
o Extra-structural properties
o Styles and patterns
• Procedure—the algorithms that achieve function
• Hiding—controlled interfaces
8. LANGKAH-LANGKAH
Open
walk to the door;
reach for knob;
open the door;
walk through;
close the door.
Repeat until door open
turn knob clockwise;
if knob doesn’t turn,
then;
turn key out;
find correct key;
insert in lock;
endif;
pull/push door;
move out of way;
end repeat.
11. ARSITEKTUR
“The overall structure of the software and the ways in which that structure
provides conceptual integrity for a system.” (struktur keseluruhan
perangkat lunak dan cara dimana struktur memberikan integrasi konseptual
bagi suatu system) [SHA95a]
Structural properties. This aspect of the architectural design representation
defines the components of a system (e.g., modules, objects, filters) and the
manner in which those components are packaged and interact with one
another. For example, objects are packaged to encapsulate both data and
the processing that manipulates the data and interact via the invocation of
methods .
Extra-functional properties. The architectural design description should
address how the design architecture achieves requirements for
performance, capacity, reliability, security, adaptability, and other system
characteristics.
Families of related systems. The architectural design should draw upon
repeatable patterns that are commonly encountered in the design of
families of similar systems. In essence, the design should have the ability to
reuse architectural building blocks (polanya dapat diulangi yang umumnya
ditentukan dalam desain dari keluarga system yang sama)
12. HIRARKI KONTROL
• Represents the organization of program components & implies a
hierarchy of control (merepresentasikan organisasi komponen program
dan mengimplikasikan suatu hirarki control)
• Tapi tidak merepresentasikan (Does not represent) :
Procedural aspect of SW such as sequence, order, repetition (aspek
prosedur dari perangkat lunak seperti urutan proses, kejadian /
urutan dari suatu keputusan dan pengulangan operasi)
Applicability to all architectural styles
13.
14. CATATAN UNTUK DIAGRAM DI ATAS
o Depth and width provide an indication of the number of levels of control and
overall span of control, respectively
o Fan-out is a measure of the number of modules that are directly controlled by
another module
o Fan-in indicates how many modules directly control a given modules
o A module that control another module is said to be super-ordinate to it
o A module controlled by another is said to be subordinate to the controller
o Eg. M is super-ordinate to a, b & c
o Eg. h is subordinate to e & ultimately to M
PEMBAGIAN STRUKTUR
Pembagian secara Horizontal
Pembagian secara Vertical (factoring)
15. STRUKTUR DATA
A representation of the logical relationship among individual elements of
data
• Scalar item
• Sequential vector
• N-dimensional space (array)
• Linked list
Hierarchical data structure – multi linked list
Different level of abstraction, eg. Stack
16.
17. MENGAPA (PERLU) INFORMATION HIDING ?
• reduces the likelihood of “side effects”
• limits the global impact of local design decisions
• emphasizes communication through controlled interfaces
• discourages the use of global data
• leads to encapsulation—an attribute of high quality design
• results in higher quality software
DESIGN HEURISTICS
Reduce coupling, improve cohesion
Minimize fan-out, strive for fan-in
Keep the scope of effect within the scope of control
Evaluate module interface to reduce complexity and redundancy and improve
consistency
Function is predictable, but not overly restrictive
Strive for “controlled entry” modules by avoiding “pathological connection”
18.
19. DOKUMENTASI RANCANGAN
Scope of design effort, yang mencakup :
• Sasaran system
• Persyaratan utama perangkat lunak
• Batasan-batasan dan pembatasan desain
Data design, yang mencakup :
• Objek data dan struktur data resultan
• Struktur file dan database
Struktur file eksternal
a. Struktur logis
b. Deskripsi record logis
c. Metode akses
Data global
File dan referensi lintas data
Architectural design, yang mencakup :
• Kajian data dan aliran control
• Struktur program yang diperoleh
Interfaces, yang meliputi :
• Spesifikasi antarmuka manusia - mesin
• Aturan desain antarmuka manusia-mesin
20. • Desain antarmuka eksternal
o Interface untuk data eksternal
o Interface untuk system atau peralatan eksternal
Components
o Narasi
o Deskripsi
o Bahasa
o Modul yang digunakan
o Struktur data internal
o Ketentuan / larangan
Cross reference
Test plan yang meliputi :
Panduan pengujian
Strategi integrasi
Pertimbangan khusus
constraints
Supplementary data