pemodelan analisis
TRANSCRIPT
Chapter 5
Analysis Modelling
Overview Software design
Engineering representation of software product to be built
Design can be traced to the customerrsquos requirements and can be assessed for quality
During the design process analysis model is transformed into design models
Continue Overview
Design models describe the data structures system architecture interface and components
Each design product is reviewed for quality before moving to the next phase of software development
Analisis Model Elements Model analisis harus dapat mencapai
tiga sasaran utama yakni untuk bull Menggambarkan apa yang dibutuhkan
untuk pelangganbull Membangun dasar bagi pembuatan
desain perangkat lunakbull Membatasi serangkaian persyaratan
yang dapat divalidasi begitu perangkat lunak dibangun
Design Specification Models
Design Specification Models
Data design transforming the analysis data model (data dictionary amp ERD) into data structures required to implement the software
Architectural design ndash defines the relationship among the major structural elements of software Derived from DFD
Design Specification Models Interface design ndash describe how software
elements communicate each other (other systems and human users)
Component-level design ndash transforming the structural elements defined by the software architecture into procedural descriptions of software components (from PSPEC CPSEC and STD)
Continue elements model Data Dictionary
Penyimpanan yang berisi deskripsi dari semua obyek data yang dikonsumsi atau diproduksi oleh perangkat lunak
Entity Relationship Diagram (ERD)Menggambarkan hubungan antara obyek data
Data Flow Diagram (DFD)o Memberikan indikasi mengenai bagaiman data ditransformasi pada saat data bergerak melalui sistemo Menggambarkan fungsi-fungsi (dan sub fungsi) yang mentransformasikan aliran data
State Transition DiagramMenunjukkan bagaimana sistem bertingkah laku sebagai akibat dari kejadian eksternal
Control Specification (CSPEC)Informasi tambahan mengenai aspek kontrol dari perangkat lunak
Process Specification (PSPEC)Isi Deskripsi setiap fungsi yang disajikan pada DFD
Data Modelling
Untuk dapat menjawab sebagai berikut bull Bagaimana komposisi dari masing-masing obyek data dan atribut apa yang menggambarkan obyek tersebutbull Dimana obyek saat ini beradabull Bagaimana hubungan antara masing-masing obyek data dan obyek lainnyabull Bagaimana hubungan antara obyek dengan proses yang mentransformasikannyaDigunakan Entity Relational Diagram (ERD)
ERD hanya berfokus pada data dengan menunjukkan ldquojaringan datardquo yang ada untuk suatu sistem yang diberikan
continue
Komponen ERD
Entity Relationship Attribute Kardinality Modality
Entitas Sebuah barangobjek yang dapat dibedakan dari objek
lain
Contoh Individu pegawai pelanggan mahasiswa dosen Tempat ruang kelas kantor kampus Objek buku motor produk software monitor Peristiwa pendaftaran pembelian penjualan
penagihan Konsep rekening kualifikasi
Relasi
Atribut
Properti yang dimiliki setiap entitas yang akan disimpan datanyaContohAtribut Pegawai
No_pegNamaAlamat
Kardinalitas relasi Angka yang menunjukkan banyaknya
kemunculan suatu objek terkait dengan kemunculan objek lain pada suatu relasi
Kombinasi yang mungkin 11 1N MN
Contoh dari kardinalitas Satu ke satu (11)
Misalnya seorang suami hanya dapat memiliki satu istri dan seorang istri hanya mempunyai satu suami
Satu ke banyak (1N)Misalnya seorang ibu dapat memiliki banyak anak tetapi seorang anak hanya dapat memiliki satu ibu
Banyak ke banyak (MN)Misalnya seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Overview Software design
Engineering representation of software product to be built
Design can be traced to the customerrsquos requirements and can be assessed for quality
During the design process analysis model is transformed into design models
Continue Overview
Design models describe the data structures system architecture interface and components
Each design product is reviewed for quality before moving to the next phase of software development
Analisis Model Elements Model analisis harus dapat mencapai
tiga sasaran utama yakni untuk bull Menggambarkan apa yang dibutuhkan
untuk pelangganbull Membangun dasar bagi pembuatan
desain perangkat lunakbull Membatasi serangkaian persyaratan
yang dapat divalidasi begitu perangkat lunak dibangun
Design Specification Models
Design Specification Models
Data design transforming the analysis data model (data dictionary amp ERD) into data structures required to implement the software
Architectural design ndash defines the relationship among the major structural elements of software Derived from DFD
Design Specification Models Interface design ndash describe how software
elements communicate each other (other systems and human users)
Component-level design ndash transforming the structural elements defined by the software architecture into procedural descriptions of software components (from PSPEC CPSEC and STD)
Continue elements model Data Dictionary
Penyimpanan yang berisi deskripsi dari semua obyek data yang dikonsumsi atau diproduksi oleh perangkat lunak
Entity Relationship Diagram (ERD)Menggambarkan hubungan antara obyek data
Data Flow Diagram (DFD)o Memberikan indikasi mengenai bagaiman data ditransformasi pada saat data bergerak melalui sistemo Menggambarkan fungsi-fungsi (dan sub fungsi) yang mentransformasikan aliran data
State Transition DiagramMenunjukkan bagaimana sistem bertingkah laku sebagai akibat dari kejadian eksternal
Control Specification (CSPEC)Informasi tambahan mengenai aspek kontrol dari perangkat lunak
Process Specification (PSPEC)Isi Deskripsi setiap fungsi yang disajikan pada DFD
Data Modelling
Untuk dapat menjawab sebagai berikut bull Bagaimana komposisi dari masing-masing obyek data dan atribut apa yang menggambarkan obyek tersebutbull Dimana obyek saat ini beradabull Bagaimana hubungan antara masing-masing obyek data dan obyek lainnyabull Bagaimana hubungan antara obyek dengan proses yang mentransformasikannyaDigunakan Entity Relational Diagram (ERD)
ERD hanya berfokus pada data dengan menunjukkan ldquojaringan datardquo yang ada untuk suatu sistem yang diberikan
continue
Komponen ERD
Entity Relationship Attribute Kardinality Modality
Entitas Sebuah barangobjek yang dapat dibedakan dari objek
lain
Contoh Individu pegawai pelanggan mahasiswa dosen Tempat ruang kelas kantor kampus Objek buku motor produk software monitor Peristiwa pendaftaran pembelian penjualan
penagihan Konsep rekening kualifikasi
Relasi
Atribut
Properti yang dimiliki setiap entitas yang akan disimpan datanyaContohAtribut Pegawai
No_pegNamaAlamat
Kardinalitas relasi Angka yang menunjukkan banyaknya
kemunculan suatu objek terkait dengan kemunculan objek lain pada suatu relasi
Kombinasi yang mungkin 11 1N MN
Contoh dari kardinalitas Satu ke satu (11)
Misalnya seorang suami hanya dapat memiliki satu istri dan seorang istri hanya mempunyai satu suami
Satu ke banyak (1N)Misalnya seorang ibu dapat memiliki banyak anak tetapi seorang anak hanya dapat memiliki satu ibu
Banyak ke banyak (MN)Misalnya seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Continue Overview
Design models describe the data structures system architecture interface and components
Each design product is reviewed for quality before moving to the next phase of software development
Analisis Model Elements Model analisis harus dapat mencapai
tiga sasaran utama yakni untuk bull Menggambarkan apa yang dibutuhkan
untuk pelangganbull Membangun dasar bagi pembuatan
desain perangkat lunakbull Membatasi serangkaian persyaratan
yang dapat divalidasi begitu perangkat lunak dibangun
Design Specification Models
Design Specification Models
Data design transforming the analysis data model (data dictionary amp ERD) into data structures required to implement the software
Architectural design ndash defines the relationship among the major structural elements of software Derived from DFD
Design Specification Models Interface design ndash describe how software
elements communicate each other (other systems and human users)
Component-level design ndash transforming the structural elements defined by the software architecture into procedural descriptions of software components (from PSPEC CPSEC and STD)
Continue elements model Data Dictionary
Penyimpanan yang berisi deskripsi dari semua obyek data yang dikonsumsi atau diproduksi oleh perangkat lunak
Entity Relationship Diagram (ERD)Menggambarkan hubungan antara obyek data
Data Flow Diagram (DFD)o Memberikan indikasi mengenai bagaiman data ditransformasi pada saat data bergerak melalui sistemo Menggambarkan fungsi-fungsi (dan sub fungsi) yang mentransformasikan aliran data
State Transition DiagramMenunjukkan bagaimana sistem bertingkah laku sebagai akibat dari kejadian eksternal
Control Specification (CSPEC)Informasi tambahan mengenai aspek kontrol dari perangkat lunak
Process Specification (PSPEC)Isi Deskripsi setiap fungsi yang disajikan pada DFD
Data Modelling
Untuk dapat menjawab sebagai berikut bull Bagaimana komposisi dari masing-masing obyek data dan atribut apa yang menggambarkan obyek tersebutbull Dimana obyek saat ini beradabull Bagaimana hubungan antara masing-masing obyek data dan obyek lainnyabull Bagaimana hubungan antara obyek dengan proses yang mentransformasikannyaDigunakan Entity Relational Diagram (ERD)
ERD hanya berfokus pada data dengan menunjukkan ldquojaringan datardquo yang ada untuk suatu sistem yang diberikan
continue
Komponen ERD
Entity Relationship Attribute Kardinality Modality
Entitas Sebuah barangobjek yang dapat dibedakan dari objek
lain
Contoh Individu pegawai pelanggan mahasiswa dosen Tempat ruang kelas kantor kampus Objek buku motor produk software monitor Peristiwa pendaftaran pembelian penjualan
penagihan Konsep rekening kualifikasi
Relasi
Atribut
Properti yang dimiliki setiap entitas yang akan disimpan datanyaContohAtribut Pegawai
No_pegNamaAlamat
Kardinalitas relasi Angka yang menunjukkan banyaknya
kemunculan suatu objek terkait dengan kemunculan objek lain pada suatu relasi
Kombinasi yang mungkin 11 1N MN
Contoh dari kardinalitas Satu ke satu (11)
Misalnya seorang suami hanya dapat memiliki satu istri dan seorang istri hanya mempunyai satu suami
Satu ke banyak (1N)Misalnya seorang ibu dapat memiliki banyak anak tetapi seorang anak hanya dapat memiliki satu ibu
Banyak ke banyak (MN)Misalnya seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Analisis Model Elements Model analisis harus dapat mencapai
tiga sasaran utama yakni untuk bull Menggambarkan apa yang dibutuhkan
untuk pelangganbull Membangun dasar bagi pembuatan
desain perangkat lunakbull Membatasi serangkaian persyaratan
yang dapat divalidasi begitu perangkat lunak dibangun
Design Specification Models
Design Specification Models
Data design transforming the analysis data model (data dictionary amp ERD) into data structures required to implement the software
Architectural design ndash defines the relationship among the major structural elements of software Derived from DFD
Design Specification Models Interface design ndash describe how software
elements communicate each other (other systems and human users)
Component-level design ndash transforming the structural elements defined by the software architecture into procedural descriptions of software components (from PSPEC CPSEC and STD)
Continue elements model Data Dictionary
Penyimpanan yang berisi deskripsi dari semua obyek data yang dikonsumsi atau diproduksi oleh perangkat lunak
Entity Relationship Diagram (ERD)Menggambarkan hubungan antara obyek data
Data Flow Diagram (DFD)o Memberikan indikasi mengenai bagaiman data ditransformasi pada saat data bergerak melalui sistemo Menggambarkan fungsi-fungsi (dan sub fungsi) yang mentransformasikan aliran data
State Transition DiagramMenunjukkan bagaimana sistem bertingkah laku sebagai akibat dari kejadian eksternal
Control Specification (CSPEC)Informasi tambahan mengenai aspek kontrol dari perangkat lunak
Process Specification (PSPEC)Isi Deskripsi setiap fungsi yang disajikan pada DFD
Data Modelling
Untuk dapat menjawab sebagai berikut bull Bagaimana komposisi dari masing-masing obyek data dan atribut apa yang menggambarkan obyek tersebutbull Dimana obyek saat ini beradabull Bagaimana hubungan antara masing-masing obyek data dan obyek lainnyabull Bagaimana hubungan antara obyek dengan proses yang mentransformasikannyaDigunakan Entity Relational Diagram (ERD)
ERD hanya berfokus pada data dengan menunjukkan ldquojaringan datardquo yang ada untuk suatu sistem yang diberikan
continue
Komponen ERD
Entity Relationship Attribute Kardinality Modality
Entitas Sebuah barangobjek yang dapat dibedakan dari objek
lain
Contoh Individu pegawai pelanggan mahasiswa dosen Tempat ruang kelas kantor kampus Objek buku motor produk software monitor Peristiwa pendaftaran pembelian penjualan
penagihan Konsep rekening kualifikasi
Relasi
Atribut
Properti yang dimiliki setiap entitas yang akan disimpan datanyaContohAtribut Pegawai
No_pegNamaAlamat
Kardinalitas relasi Angka yang menunjukkan banyaknya
kemunculan suatu objek terkait dengan kemunculan objek lain pada suatu relasi
Kombinasi yang mungkin 11 1N MN
Contoh dari kardinalitas Satu ke satu (11)
Misalnya seorang suami hanya dapat memiliki satu istri dan seorang istri hanya mempunyai satu suami
Satu ke banyak (1N)Misalnya seorang ibu dapat memiliki banyak anak tetapi seorang anak hanya dapat memiliki satu ibu
Banyak ke banyak (MN)Misalnya seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Design Specification Models
Design Specification Models
Data design transforming the analysis data model (data dictionary amp ERD) into data structures required to implement the software
Architectural design ndash defines the relationship among the major structural elements of software Derived from DFD
Design Specification Models Interface design ndash describe how software
elements communicate each other (other systems and human users)
Component-level design ndash transforming the structural elements defined by the software architecture into procedural descriptions of software components (from PSPEC CPSEC and STD)
Continue elements model Data Dictionary
Penyimpanan yang berisi deskripsi dari semua obyek data yang dikonsumsi atau diproduksi oleh perangkat lunak
Entity Relationship Diagram (ERD)Menggambarkan hubungan antara obyek data
Data Flow Diagram (DFD)o Memberikan indikasi mengenai bagaiman data ditransformasi pada saat data bergerak melalui sistemo Menggambarkan fungsi-fungsi (dan sub fungsi) yang mentransformasikan aliran data
State Transition DiagramMenunjukkan bagaimana sistem bertingkah laku sebagai akibat dari kejadian eksternal
Control Specification (CSPEC)Informasi tambahan mengenai aspek kontrol dari perangkat lunak
Process Specification (PSPEC)Isi Deskripsi setiap fungsi yang disajikan pada DFD
Data Modelling
Untuk dapat menjawab sebagai berikut bull Bagaimana komposisi dari masing-masing obyek data dan atribut apa yang menggambarkan obyek tersebutbull Dimana obyek saat ini beradabull Bagaimana hubungan antara masing-masing obyek data dan obyek lainnyabull Bagaimana hubungan antara obyek dengan proses yang mentransformasikannyaDigunakan Entity Relational Diagram (ERD)
ERD hanya berfokus pada data dengan menunjukkan ldquojaringan datardquo yang ada untuk suatu sistem yang diberikan
continue
Komponen ERD
Entity Relationship Attribute Kardinality Modality
Entitas Sebuah barangobjek yang dapat dibedakan dari objek
lain
Contoh Individu pegawai pelanggan mahasiswa dosen Tempat ruang kelas kantor kampus Objek buku motor produk software monitor Peristiwa pendaftaran pembelian penjualan
penagihan Konsep rekening kualifikasi
Relasi
Atribut
Properti yang dimiliki setiap entitas yang akan disimpan datanyaContohAtribut Pegawai
No_pegNamaAlamat
Kardinalitas relasi Angka yang menunjukkan banyaknya
kemunculan suatu objek terkait dengan kemunculan objek lain pada suatu relasi
Kombinasi yang mungkin 11 1N MN
Contoh dari kardinalitas Satu ke satu (11)
Misalnya seorang suami hanya dapat memiliki satu istri dan seorang istri hanya mempunyai satu suami
Satu ke banyak (1N)Misalnya seorang ibu dapat memiliki banyak anak tetapi seorang anak hanya dapat memiliki satu ibu
Banyak ke banyak (MN)Misalnya seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Design Specification Models
Data design transforming the analysis data model (data dictionary amp ERD) into data structures required to implement the software
Architectural design ndash defines the relationship among the major structural elements of software Derived from DFD
Design Specification Models Interface design ndash describe how software
elements communicate each other (other systems and human users)
Component-level design ndash transforming the structural elements defined by the software architecture into procedural descriptions of software components (from PSPEC CPSEC and STD)
Continue elements model Data Dictionary
Penyimpanan yang berisi deskripsi dari semua obyek data yang dikonsumsi atau diproduksi oleh perangkat lunak
Entity Relationship Diagram (ERD)Menggambarkan hubungan antara obyek data
Data Flow Diagram (DFD)o Memberikan indikasi mengenai bagaiman data ditransformasi pada saat data bergerak melalui sistemo Menggambarkan fungsi-fungsi (dan sub fungsi) yang mentransformasikan aliran data
State Transition DiagramMenunjukkan bagaimana sistem bertingkah laku sebagai akibat dari kejadian eksternal
Control Specification (CSPEC)Informasi tambahan mengenai aspek kontrol dari perangkat lunak
Process Specification (PSPEC)Isi Deskripsi setiap fungsi yang disajikan pada DFD
Data Modelling
Untuk dapat menjawab sebagai berikut bull Bagaimana komposisi dari masing-masing obyek data dan atribut apa yang menggambarkan obyek tersebutbull Dimana obyek saat ini beradabull Bagaimana hubungan antara masing-masing obyek data dan obyek lainnyabull Bagaimana hubungan antara obyek dengan proses yang mentransformasikannyaDigunakan Entity Relational Diagram (ERD)
ERD hanya berfokus pada data dengan menunjukkan ldquojaringan datardquo yang ada untuk suatu sistem yang diberikan
continue
Komponen ERD
Entity Relationship Attribute Kardinality Modality
Entitas Sebuah barangobjek yang dapat dibedakan dari objek
lain
Contoh Individu pegawai pelanggan mahasiswa dosen Tempat ruang kelas kantor kampus Objek buku motor produk software monitor Peristiwa pendaftaran pembelian penjualan
penagihan Konsep rekening kualifikasi
Relasi
Atribut
Properti yang dimiliki setiap entitas yang akan disimpan datanyaContohAtribut Pegawai
No_pegNamaAlamat
Kardinalitas relasi Angka yang menunjukkan banyaknya
kemunculan suatu objek terkait dengan kemunculan objek lain pada suatu relasi
Kombinasi yang mungkin 11 1N MN
Contoh dari kardinalitas Satu ke satu (11)
Misalnya seorang suami hanya dapat memiliki satu istri dan seorang istri hanya mempunyai satu suami
Satu ke banyak (1N)Misalnya seorang ibu dapat memiliki banyak anak tetapi seorang anak hanya dapat memiliki satu ibu
Banyak ke banyak (MN)Misalnya seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Design Specification Models Interface design ndash describe how software
elements communicate each other (other systems and human users)
Component-level design ndash transforming the structural elements defined by the software architecture into procedural descriptions of software components (from PSPEC CPSEC and STD)
Continue elements model Data Dictionary
Penyimpanan yang berisi deskripsi dari semua obyek data yang dikonsumsi atau diproduksi oleh perangkat lunak
Entity Relationship Diagram (ERD)Menggambarkan hubungan antara obyek data
Data Flow Diagram (DFD)o Memberikan indikasi mengenai bagaiman data ditransformasi pada saat data bergerak melalui sistemo Menggambarkan fungsi-fungsi (dan sub fungsi) yang mentransformasikan aliran data
State Transition DiagramMenunjukkan bagaimana sistem bertingkah laku sebagai akibat dari kejadian eksternal
Control Specification (CSPEC)Informasi tambahan mengenai aspek kontrol dari perangkat lunak
Process Specification (PSPEC)Isi Deskripsi setiap fungsi yang disajikan pada DFD
Data Modelling
Untuk dapat menjawab sebagai berikut bull Bagaimana komposisi dari masing-masing obyek data dan atribut apa yang menggambarkan obyek tersebutbull Dimana obyek saat ini beradabull Bagaimana hubungan antara masing-masing obyek data dan obyek lainnyabull Bagaimana hubungan antara obyek dengan proses yang mentransformasikannyaDigunakan Entity Relational Diagram (ERD)
ERD hanya berfokus pada data dengan menunjukkan ldquojaringan datardquo yang ada untuk suatu sistem yang diberikan
continue
Komponen ERD
Entity Relationship Attribute Kardinality Modality
Entitas Sebuah barangobjek yang dapat dibedakan dari objek
lain
Contoh Individu pegawai pelanggan mahasiswa dosen Tempat ruang kelas kantor kampus Objek buku motor produk software monitor Peristiwa pendaftaran pembelian penjualan
penagihan Konsep rekening kualifikasi
Relasi
Atribut
Properti yang dimiliki setiap entitas yang akan disimpan datanyaContohAtribut Pegawai
No_pegNamaAlamat
Kardinalitas relasi Angka yang menunjukkan banyaknya
kemunculan suatu objek terkait dengan kemunculan objek lain pada suatu relasi
Kombinasi yang mungkin 11 1N MN
Contoh dari kardinalitas Satu ke satu (11)
Misalnya seorang suami hanya dapat memiliki satu istri dan seorang istri hanya mempunyai satu suami
Satu ke banyak (1N)Misalnya seorang ibu dapat memiliki banyak anak tetapi seorang anak hanya dapat memiliki satu ibu
Banyak ke banyak (MN)Misalnya seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Continue elements model Data Dictionary
Penyimpanan yang berisi deskripsi dari semua obyek data yang dikonsumsi atau diproduksi oleh perangkat lunak
Entity Relationship Diagram (ERD)Menggambarkan hubungan antara obyek data
Data Flow Diagram (DFD)o Memberikan indikasi mengenai bagaiman data ditransformasi pada saat data bergerak melalui sistemo Menggambarkan fungsi-fungsi (dan sub fungsi) yang mentransformasikan aliran data
State Transition DiagramMenunjukkan bagaimana sistem bertingkah laku sebagai akibat dari kejadian eksternal
Control Specification (CSPEC)Informasi tambahan mengenai aspek kontrol dari perangkat lunak
Process Specification (PSPEC)Isi Deskripsi setiap fungsi yang disajikan pada DFD
Data Modelling
Untuk dapat menjawab sebagai berikut bull Bagaimana komposisi dari masing-masing obyek data dan atribut apa yang menggambarkan obyek tersebutbull Dimana obyek saat ini beradabull Bagaimana hubungan antara masing-masing obyek data dan obyek lainnyabull Bagaimana hubungan antara obyek dengan proses yang mentransformasikannyaDigunakan Entity Relational Diagram (ERD)
ERD hanya berfokus pada data dengan menunjukkan ldquojaringan datardquo yang ada untuk suatu sistem yang diberikan
continue
Komponen ERD
Entity Relationship Attribute Kardinality Modality
Entitas Sebuah barangobjek yang dapat dibedakan dari objek
lain
Contoh Individu pegawai pelanggan mahasiswa dosen Tempat ruang kelas kantor kampus Objek buku motor produk software monitor Peristiwa pendaftaran pembelian penjualan
penagihan Konsep rekening kualifikasi
Relasi
Atribut
Properti yang dimiliki setiap entitas yang akan disimpan datanyaContohAtribut Pegawai
No_pegNamaAlamat
Kardinalitas relasi Angka yang menunjukkan banyaknya
kemunculan suatu objek terkait dengan kemunculan objek lain pada suatu relasi
Kombinasi yang mungkin 11 1N MN
Contoh dari kardinalitas Satu ke satu (11)
Misalnya seorang suami hanya dapat memiliki satu istri dan seorang istri hanya mempunyai satu suami
Satu ke banyak (1N)Misalnya seorang ibu dapat memiliki banyak anak tetapi seorang anak hanya dapat memiliki satu ibu
Banyak ke banyak (MN)Misalnya seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Data Modelling
Untuk dapat menjawab sebagai berikut bull Bagaimana komposisi dari masing-masing obyek data dan atribut apa yang menggambarkan obyek tersebutbull Dimana obyek saat ini beradabull Bagaimana hubungan antara masing-masing obyek data dan obyek lainnyabull Bagaimana hubungan antara obyek dengan proses yang mentransformasikannyaDigunakan Entity Relational Diagram (ERD)
ERD hanya berfokus pada data dengan menunjukkan ldquojaringan datardquo yang ada untuk suatu sistem yang diberikan
continue
Komponen ERD
Entity Relationship Attribute Kardinality Modality
Entitas Sebuah barangobjek yang dapat dibedakan dari objek
lain
Contoh Individu pegawai pelanggan mahasiswa dosen Tempat ruang kelas kantor kampus Objek buku motor produk software monitor Peristiwa pendaftaran pembelian penjualan
penagihan Konsep rekening kualifikasi
Relasi
Atribut
Properti yang dimiliki setiap entitas yang akan disimpan datanyaContohAtribut Pegawai
No_pegNamaAlamat
Kardinalitas relasi Angka yang menunjukkan banyaknya
kemunculan suatu objek terkait dengan kemunculan objek lain pada suatu relasi
Kombinasi yang mungkin 11 1N MN
Contoh dari kardinalitas Satu ke satu (11)
Misalnya seorang suami hanya dapat memiliki satu istri dan seorang istri hanya mempunyai satu suami
Satu ke banyak (1N)Misalnya seorang ibu dapat memiliki banyak anak tetapi seorang anak hanya dapat memiliki satu ibu
Banyak ke banyak (MN)Misalnya seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
continue
Komponen ERD
Entity Relationship Attribute Kardinality Modality
Entitas Sebuah barangobjek yang dapat dibedakan dari objek
lain
Contoh Individu pegawai pelanggan mahasiswa dosen Tempat ruang kelas kantor kampus Objek buku motor produk software monitor Peristiwa pendaftaran pembelian penjualan
penagihan Konsep rekening kualifikasi
Relasi
Atribut
Properti yang dimiliki setiap entitas yang akan disimpan datanyaContohAtribut Pegawai
No_pegNamaAlamat
Kardinalitas relasi Angka yang menunjukkan banyaknya
kemunculan suatu objek terkait dengan kemunculan objek lain pada suatu relasi
Kombinasi yang mungkin 11 1N MN
Contoh dari kardinalitas Satu ke satu (11)
Misalnya seorang suami hanya dapat memiliki satu istri dan seorang istri hanya mempunyai satu suami
Satu ke banyak (1N)Misalnya seorang ibu dapat memiliki banyak anak tetapi seorang anak hanya dapat memiliki satu ibu
Banyak ke banyak (MN)Misalnya seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Komponen ERD
Entity Relationship Attribute Kardinality Modality
Entitas Sebuah barangobjek yang dapat dibedakan dari objek
lain
Contoh Individu pegawai pelanggan mahasiswa dosen Tempat ruang kelas kantor kampus Objek buku motor produk software monitor Peristiwa pendaftaran pembelian penjualan
penagihan Konsep rekening kualifikasi
Relasi
Atribut
Properti yang dimiliki setiap entitas yang akan disimpan datanyaContohAtribut Pegawai
No_pegNamaAlamat
Kardinalitas relasi Angka yang menunjukkan banyaknya
kemunculan suatu objek terkait dengan kemunculan objek lain pada suatu relasi
Kombinasi yang mungkin 11 1N MN
Contoh dari kardinalitas Satu ke satu (11)
Misalnya seorang suami hanya dapat memiliki satu istri dan seorang istri hanya mempunyai satu suami
Satu ke banyak (1N)Misalnya seorang ibu dapat memiliki banyak anak tetapi seorang anak hanya dapat memiliki satu ibu
Banyak ke banyak (MN)Misalnya seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Entitas Sebuah barangobjek yang dapat dibedakan dari objek
lain
Contoh Individu pegawai pelanggan mahasiswa dosen Tempat ruang kelas kantor kampus Objek buku motor produk software monitor Peristiwa pendaftaran pembelian penjualan
penagihan Konsep rekening kualifikasi
Relasi
Atribut
Properti yang dimiliki setiap entitas yang akan disimpan datanyaContohAtribut Pegawai
No_pegNamaAlamat
Kardinalitas relasi Angka yang menunjukkan banyaknya
kemunculan suatu objek terkait dengan kemunculan objek lain pada suatu relasi
Kombinasi yang mungkin 11 1N MN
Contoh dari kardinalitas Satu ke satu (11)
Misalnya seorang suami hanya dapat memiliki satu istri dan seorang istri hanya mempunyai satu suami
Satu ke banyak (1N)Misalnya seorang ibu dapat memiliki banyak anak tetapi seorang anak hanya dapat memiliki satu ibu
Banyak ke banyak (MN)Misalnya seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Relasi
Atribut
Properti yang dimiliki setiap entitas yang akan disimpan datanyaContohAtribut Pegawai
No_pegNamaAlamat
Kardinalitas relasi Angka yang menunjukkan banyaknya
kemunculan suatu objek terkait dengan kemunculan objek lain pada suatu relasi
Kombinasi yang mungkin 11 1N MN
Contoh dari kardinalitas Satu ke satu (11)
Misalnya seorang suami hanya dapat memiliki satu istri dan seorang istri hanya mempunyai satu suami
Satu ke banyak (1N)Misalnya seorang ibu dapat memiliki banyak anak tetapi seorang anak hanya dapat memiliki satu ibu
Banyak ke banyak (MN)Misalnya seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Atribut
Properti yang dimiliki setiap entitas yang akan disimpan datanyaContohAtribut Pegawai
No_pegNamaAlamat
Kardinalitas relasi Angka yang menunjukkan banyaknya
kemunculan suatu objek terkait dengan kemunculan objek lain pada suatu relasi
Kombinasi yang mungkin 11 1N MN
Contoh dari kardinalitas Satu ke satu (11)
Misalnya seorang suami hanya dapat memiliki satu istri dan seorang istri hanya mempunyai satu suami
Satu ke banyak (1N)Misalnya seorang ibu dapat memiliki banyak anak tetapi seorang anak hanya dapat memiliki satu ibu
Banyak ke banyak (MN)Misalnya seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Kardinalitas relasi Angka yang menunjukkan banyaknya
kemunculan suatu objek terkait dengan kemunculan objek lain pada suatu relasi
Kombinasi yang mungkin 11 1N MN
Contoh dari kardinalitas Satu ke satu (11)
Misalnya seorang suami hanya dapat memiliki satu istri dan seorang istri hanya mempunyai satu suami
Satu ke banyak (1N)Misalnya seorang ibu dapat memiliki banyak anak tetapi seorang anak hanya dapat memiliki satu ibu
Banyak ke banyak (MN)Misalnya seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Contoh dari kardinalitas Satu ke satu (11)
Misalnya seorang suami hanya dapat memiliki satu istri dan seorang istri hanya mempunyai satu suami
Satu ke banyak (1N)Misalnya seorang ibu dapat memiliki banyak anak tetapi seorang anak hanya dapat memiliki satu ibu
Banyak ke banyak (MN)Misalnya seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Contoh
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
lanjutan
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Modalitas relasi Partisipasi sebuah entitas pada suatu relasi
0 jika partisipasi bersifat rdquooptionalrdquo1 jika partisipasi bersifat rdquototalrdquo
contohpartisipasi total
setiap monitor memiliki layarpartisipasi optional
tidak semua mahasiswa memiliki komputer
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Contoh
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Strongweak entity
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Best data modelling
Sederhana Tidak ada duplikasi data (redundant) Fleksibel dan mudah beradaptasi
dengan perkembangan
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Pemodelan Fungsional dan Aliran Informasi
Informasi ditransformasikan pada saat dia mengalir melalui sebuah sistem berbasis komputer
Sistem tersebut menerima input dengan berbagai cara dan menghasilkan suatu output
Akibatnya kita dapat menciptakan suatu model aliran bagi setiap sistem berbasis komputer tanpa melihat ukuran dan kompleksitasnya
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Diagram Aliran Data Data Flow Diagram (DFD)
Merupakan sebuah teknik grafis yang menggambarkan aliran informasi dan transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
Dikenal juga dengan sebutan grafik aliran data atau buble chart
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Model aliran informasi
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Komponen-komponen DFD
Proses External entity Data Flow Data Store
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Proses
Simbol proses adalah Proses menunjukkan apa
yang dikerjakan oleh sistem
Setiap proses memiliki nama yang unik dan nomor yang ditempatkan dalam simbol
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
File atau Data Store
Simbol File atau Data Store adalah tempat
penyimpanan data Proses dapat menempatkan data ke
dalam data store atau mengambil mendapatkan data store
Setiap data store mempunyai nama yang unik
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
External Entity
Simbol External entity adalah di luar sistem
tetapi mereka merupakan salah satu bagian yang memberikan input data ke dalam sistem atau digunakan oleh output sistem
Source External entity yang memberikan input data ke dalam sistem
Sinks External entity yang menggunakan data sistem
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Data Flow
Simbol 1048790 anak manah menunjukkan arah aliran
Aliran data pada sistem antara dua proses dari sebuah data store ke sebuah proses dari sebuah proses ke sebuah data store dari sebuah source ke sebuah proses dari sebuah proses ke sebuah sink
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Design Guidelines
Exhibit good architectural structure Modular Contain distinct representations of
data architecture interfaces and components (modules)
Lead to data structures that appropriate for the objects to be implemented
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Design Guidelines Lead to components that exhibit
independent functional characteristics Lead to interfaces that reduce the
complexity of connections between modules and with the external environment
Derived using a reputable method that is driven by information obtained during software requirements analysis
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Design Principles Process should not suffer from tunnel vision
(consider alternative approaches) Should be traceable to the analysis model Should minimize intellectual distance
between the software and problem as it exist in the real world
Should exhibit uniformity and integration Should be structured to accomodate
change
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Design Principles
Should be structured to degrage gently even with bad data events or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Fundamental Software Design Concepts Abstraction ndash allows designers to focus on
solving a problem without being concerned about irrelevant lower level details 1 Procedural abstraction named sequence of events2 Data abstraction named collection of data objects3 Control abstraction program control mechanism without specifying internal details
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Fundamental Software Design Concepts
Refinement process of elaboration where the designer provides successively more detail for each design component
Modularity the degree to which software can be understood by examining the components independently of one another
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Fundamental Software Design Concepts
Software architecture Hierarchical structure of program components (modules)
Control hierarchy or program structure represents the module organization and implies hierarchy of control (does not represent the procedural aspects of the software )
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Fundamental Software Design Concepts
Structrual partitioning Horizontal partitioning defines three partitions (input data transformations and output) Vertical partitioning (factoring) distributes control in a top-down manner (control decisions in top level modules and processing work in the lower level modules)
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Fundamental Software Design Concepts Data structure representation of the
logical relationship among individual data elements
Software procedure precise specification of processing (event sequences decision points repetitive operations data organizationstructure)
Information hiding information (data and procedure) contained within a module is inaccessible to modules that have no need for such information
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Modular Design Methods Modular decomposability provides
systematic means for breaking problem into subproblems
Modular composability supports reuse of existing modules in new systems
Modular understandability module can be understood as a stand-alone unit
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Modular Design Methods
Modular continuity side-effects due to module changes minimized
Modular protection side-effects due to processing errors minimized
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Effective Modular Designs Cohession qualitative indication of
the degree to which a module focuses on just one thing
Coupling qualitative indication of the degree to which a module is connected to other modules and to the outside world
Functional independence modules have high cohesion and low coupling
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Design Documentation Data Design database structure external
fileinternal data structures cross reference that connects data object to specific files
Architectural Design structure charts used to represent the module hierarchy
Interface Design detail design of humanmachine interface (prototype GUI)
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual
Design Documentation Component Design elements of
software (subroutines functions or procedures) initially using narrative texts
Design Specification design constraints suplementary data algorithm descriptions alternative procedures tabular data preliminary operationsinstallation manual