Kurva kegagalan actual untuk perangkat lunak

Kurva kegagalan actual untuk perangkat lunak

 

Kurva kegagalan actual untuk perangkat lunak

Desain telah didefinisikan sebagai suatu multistep process yang merepresentasikan struktur data, struktur program, karakteristik interface, dan procedural detail yang berasal dari requirement informasi.

Data Design

Desain data merupakan hal yang pertama (dan yang terpenting) dari empat kegiatan desain yang terjadi selama software engineering. Dampak dari struktur data pada struktur program procedural kasus desain data memiliki pengarauh pada kualitas software.

Proses desain data
Kegiatan utama dari desain data ialah untuk memilih representasi secara logic dari objek data (data struktur) yang diidetifikasi selama definisi requirement dan fase spesifikasi.
Proses yang dipilih dapat melibatkan analisa algoritma dari struktur alternatif untuk menentukan desain yang paling efisien atau hanya melibatkan penggunaan sekumpulan modul (package) yang memberikan operasi sesuai dengan yang diinginkan terhadap representasi dari beberapa objek.

Realsi penting selama kegiatan desain ialah mengidentifikasi modul program yang harus dioperasikan secara langsung logic struktur data.

Prinsip untuk spesifikasi data:
1.    Menerapkan prinsip analisa sistematis pada fungsi dan sifat harus diterapkan data.
2.    Semua struktur data dan operasi-operasi yang akan dijalankan masing-masing harus diidentifikasi.
3.    Sebuah data dictionary harus dibangun dan digunakan untuk mendefinisikan data dan desain program.
4.    Keputusan low-level data design harus dibedakan sampai dengan akhir proses desain.
5.    Representasi struktur data harus diketahui hanya oleh modul yang menggunakan secara langsung data yang terkandung dalam struktur.
6.    Sebuah library struktur data yang berguna  dan opeerasi yang dapat ditereapkan pada struktur data harus dikembangkan.
7.    Sebuah desain software dan bahasa pemrograman  harus mendukung spesifikasi dan realisasi dari tipe data abstrak.

Architectural Design

Tujuan utama dari desain arsitektur ialah untuk mengembangkan sebuah struktur modular program dan merepresentasikan hubungan control antar modul.

Contributors

Desain arsitektur (dan desain software biasanya) memiliki origin pada awal konsep desain yang menekan modularity, top-down desain, dan pemrograman terstruktur.

Area of Application
Tiap design method software memiliki kelebihan dan kekurangan. Salah satu factor penting dalam design method ialah breadth of application yang dapat diterapkan. Karena semua software dapat direpresentasikan oleh diagram data flow, sebuah design method yang menggunakan diagram dapat secara teori diterapkan di semua software development. Sebuah data flow yang berorientasi pada desain biasanya berguna saat informasi diproses secara sekuensial dan adanya hirarki struktur data yang tidak formal,conothnya mikroprosesor kontrol.

The Architectural Design Process

Perubahan dari information flow ke structure diselesaikan dengan lima tahap proses:
1.    Tipe infromasi dibangun
2.    Flow boundaries diindikasikan
3.    DFD dipetakan kedalam struktur program
4.    Hirarki control didefinisikan oleh factoring
5.    Resultant structure didefinisikan menggunakan measurees dan heuristics.

Pemetaan pada langkah ke-3 punya dua tipe flow:

Transform flow
Dalam fundamental system model( level 0 data flow diagram), informasi harus masuk dan keluar software  dalam bentuk sebuah external world. Contoh, tipe data pada keyboard. Sehingga eksternal dat harus dikonversi ke bentuk internal.

Transaction flow
Transaction flow dikarakterisasi oleh data yang bergerak bersama incoming path yang mengkonversi informasi eksternal world ke dalam transaction. Transacton  dievaluasi , dan berdasarkan nilainya, mengalir bersama satu dari sekian banyaknya action path yang dinisialkan.

Transform Mapping
Transform mapping merupakan sekumpulan langkah-langkah desain yang memungkinkan DFD dengan karakteristik transform flow dipetakan ke dalam sebuah predifined templae untuk struktur program. Dalam bagian transform ini mapping digambarkan dengan menerapkan design steps pada sebuah example system.

Design step-nya:
1.    Review fundamental system model
2.    Review dan refine diagram data flow software
3.    Menetukan apakah DFD memiliki karakteristik transform atau transaction flow
4.    Mengisolasi transform center dengan menspesifikasikan batasan incomin dan outgoing
5.    Melakukan first-level factoring. Yaitu dengan merepresentasikan struktur program dengan kontrol secara top-down distribution. Dan hasil factoring yang berupa top-level modul melakukan decision making, mid-level modul melakukan beberapa kontrol dan me-moderate sejumlah tugas, low-level modul melakukan input, komputasi, dan output.
6.    Melakukan second-level factoring. Yaitu dicapai dengan mapping individual transform (bubbles) sebuah DFD pada modul yang sesuai dalam struktur program.
7.    Refine first iteration struktur program menggunakan desain heuristics untuk meningkatkan kualitas software.

Tujuan menjalankan tujuh langkah tersebut ialah untuk mengembangkan representasi software secara global.

Transaction Mapping

Di banyak software aplikasi, sebuah singgle data item mentrigger satu atau beberapa information flow yang menyebabkan sebuah fungsi diimplied karena mentrigger data item(transaction).

Design step-nya:
1.    Review fundamental system model
2.    Refiew and refine data flow diagram for the software
3.    Determine whether the DFD has transform or transactin flow characteristics
4.    Identify the transaction center and the flow characteristics along each of action paths
5.    Map the DFD in a program structure amenable to transaction processing
6.    Factor and refine the transaction structure and the structure of each action path
7.    Refine the first iteration program structure using design heuristics for improved software quality

Design Postprocessing

Aplikasi yang sukses melakukan transform atau transaction mapping dibantu oleh tambahan dokumentsi yang dibutuhkan sebagai bagian dari desain arsitektur. Setelah struktur dikembangkan dan di refine, beberapa tugas harus diselesaikan:
–    Aprocessing narrative must be developed for each module
–    An interface description is provided for each module
–    Local and global data structures are defined
–    All design restrictions/limitations are noted
–    A design review is conducted
–    “Optimization” is considered (if required and justified)

Architectural Design Optimization

Aplikasi performance-critical perlu untuk dioptimize selama design iterasi, dan kemungkinan selama coding.
Pendekatan untuk performance-critical software:
1.    Develop and refine program structure without concern for performance-critical optimization.
2.    Use case tool that simulate run-time performance toisolate area inefficientcy.
3.    During later design iterations, select modules that are suspect “time hogs” and carefully develop procedures (algorithms) for time efficiency.
4.    Code in an appropriate programming language.
5.    Instrument the software to isolate module that account for heavy processor utilization.
6.    If necessary, redesign or recode in machine dependent language to improve efficincy.

Interface Design

Interface design terfokus pada tiga area yaitu:
1.    design interface antar software module.
2.    design interface antara software dan prosedur nonhuman serta informasi customer.
3.    design interface antara manusia (user) dan komputer.

Internal dan eksternal interface design
Internal program interface, kadang disebut intermodular interface design, berasal dari data yang harusnya mengalir antara module dan karakteristik bahasa pemrograman yang softwarenya diimplementasikan.
Eksternal interface muali dengan sebuah evaluasi setiap eksternal entity yang direpresentasi dalam DFD analysis model. Data dan kontrol requirement eksternal entity ditentukan dan eksternal interface didesain.

Internal dan Eksternal interface harus dipasangkan dengan validasi data dan algoritma error handling  dalam sebuah modul. Karena efek samping propagasi melalui program interface, Hal ini penting untuk mengecek semua data yang mengalir dari modul ke modul (atau ke dunia luar) untuk memastikan data conform ke bounds dibangun sewaktu requirement analysis.

Sumber : https://sam-worthington.net/