1.pengertian software: Disebut juga dengan perangkat lunak, merupakan kumpulan beberapa perintah yang dieksekusi oleh mesin komputer dalam menjalankan pekerjaannya. perangkat lunak ini merupakan catatan bagi mesin komputer untuk menyimpan perintah, maupun dokumen serta arsip lainnya.
2.software engenering:Software engineering didefinisikan oleh Fritz Bauer sebagai: penerapan dan penggunaan prinsip-prinsip engineering yang baik dalam rangka menghasilkan software yang ekonomis, reliable, dan bekerja secara efisien pada komputer sungguhan. Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.
Sementara itu IEEE mendefinisikan software engineering sebagai: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches in (1). 3.perbedaan keduanya:
Software(S): perangkat lunak,kumpulan dari beberapa perintah yang sudah dapat dieksukusi oleh mesin computer sehingga dapatĀ dikatakan berupa suatu progam yang dapat dijalankan oleh manusia sesuai dengan kebutuhan dalam bidang software . Contoh perangkat lunak: program akuntansi, program MS Office,powerdesigner,jCreator dsb
sedangkan Software Engineering(SE): mempelajari antara lain tentang bagaimana merancang-bangun dan memelihara sebuah sistem software yang reliabel, efisien, efektif serta mudah dikembangkan dan dapat memenuhi kebutuhan dari kustomer atau pengguna sehingga dapat menjadi software/program.dan biasanya berhubungan dengan bahasa mesin.
4.komponen dan aktivitas pengembangan software:
| Algoritma dan Struktur Data (Algorithms and Data Structures) |
Bahasa Pemrograman (Programming Languages) |
| Arsitektur (Architecture) |
Sistem Operasi dan Jaringan (Operating Systems and Networks) |
| Software Engineering | Database dan Sistim Retrieval Informasi (Database and Information Retrieval Systems) |
| Artificial Intelligence dan Robotik (Artificial Intelligence and Robotics) |
Grafik (Graphics) |
| Human Computer Interaction | Ilmu Komputasi (Computational Sciences) |
| Organizational Informatics | BioInformatik (BioInformatics) |
| Teori | Abstraksi | Desain | |
|---|---|---|---|
| Algoritma dan Struktur Data | Teori Komputabilitas | Algoritma Paralel dan Terdistribusi | Program Aplikasi |
| Teori Komputasi Kompleks | |||
| Komputasi Paralel | Algoritma Efisien dan Optimal | ||
| Teori Graf | |||
| Kriptografi | |||
| Algoritma dan Teori Probabilistik | |||
| Bahasa Pemrograman | Bahasa Formal dan Automata | BNF | Bahasa Pemrograman |
| Turing Machines | |||
| Metode Parsing, Compiling, Interpretation | |||
| Formal Semantics | Translator, Kompiler, Interpreter | ||
| Arsitektur | Aljabar Boolean | Arsitektur Nueman | Produk Hardware (PC, Superkomputer, Mesin Von Neumann) |
| Teori Coding | Hardware Reliability | ||
| Teori Switching | Finite State Machine | Sistem CAD dan Simulasi Logika | |
| Teori Finite State Machine | Model Sirkuit, Data Path, Struktur Kontrol | ||
| Sistem Operasi dan Jaringan | Teori Concurrency | Manajemen Memori, Job Scheduling | Produk OS (UNIX, Windows, Mach, dsb) |
| Teori Scheduling | Model Komputer Terdistribusi | File dan File Sistem | |
| Teori Manajemen Memori | Networking (Protokol, Naming, dsb) | Pustaka untuk Utilities (Editor, Formatter, Linker, dsb) | |
| Software Engineering | Teori Reliability | Metode Spesifikasi | Bahasa Spesifikasi |
| Program Verification and Proof | Metode Otomatisasi Pengembangan Program | Metodologi Pengembangan Software | |
| Temporal Logic | Tool Pengembangan Software | Tool untuk Pengembangan Software | |
| Database dan Sistim Retrieval Informasi | Relational Aljabar dan Kalkulus | Data Model | Teknik Pendesainan Database (Relational, Hierarchical, Network, dsb) |
| Teori Dependency | |||
| Teori Concurrency | Skima Database | Teknik Pendesainan Database Sistem (Ingres, Dbase, Oracle, dsb) | |
| Performance Analysis | |||
| Sorting dan Searching | Representasi File untu Retrieval | Hypertext System | |
| Statistical Inference | |||
| Artificial Intelligence dan Robotik | Teori Logika | Knowledge Representation | Logic Programming (Prolog) |
| Semantik dan Sintatik Model untuk Natural Language | Metode Pencarian Heuristic | Neural Network | |
| Conceptual Dependency | Model Reasoning dan Learning | Sistem Pakar | |
| Kinematics and Dynamics of Robot Motion | Model Memori Manusia, Autonomous Learning | Teknik Pendesaian Software untuk Logic Programming | |
| Grafik | Teori Grafik dan Warna | Algoritma Komputer Grafik | Pustaka untuk Grafik |
| Geometri Dimensi Dua atau Lebih | Model untuk Virtual Reality | Grafik Standar | |
| Teori Chaos | Metode Komputer Grafik | Image Enhacement System | |
| Human Computer Interaction | Risk Analysis | Pattern Recognition | Flight Simulation |
| Cognitive Psychology | Sistem CAD | Usability Engineering | |
| Ilmu Komputasi | Number Theory | Discrete Approximations, Fast Fourier Transform and Poisson Solvers | Pustaka dan Paket untuk Tool Penelitian (Chem, Macsyma, Mathematica, Maple, Reduce, dsb) |
| Binary Representation | Backward Error Propagation | ||
| Teori Quantum | Finite Element Models, | ||
| Organizational Informatics | Organizational Science | Model dan Simlasi berhubungan dengan organizational informatics | Management Information Systems |
| Decision Support Systems | |||
| Decision Sciences | |||
| Organizational Dynamics | |||
| Bioinformatik | Teori Komputasi | Model Komputasi DNA Kimia | Organic Memory Devices |
| Ilmu Biologi | Protipe Retina dari Silikon | Proyek Database Genom Manusia | |
| Medicine | Model Database Genom Manusia | Analisa Komputer Terhadap Struktur Enzim untuk Kesehatan |
-
Teori: adalah berlandaskan pada pendekatan matematika, dimana untuk mendapatkan suatu teori yang valid, harus melalui proses-proses sbb:
- pendefinisian (definition)
- pembuatan teorema (theorema)
- pembuktian (proof)
- penginterpretasian hasil (interpret result)
-
Abstraksi: atau pemodelan (modeling), adalah berlandaskan pada metode eksperimen ilmiah, dimana dalam melakukan invesitigasi terhadap suatu fenomena, harus melalui proses-proses sbb:
- membentuk hipotesa (form a hypothesis)
- membuat suatu model dan melakukan prediksi (construct a model and make a predition)
- mendesain eksperimen dan mengumpulkan data (design an experiment and collect data)
- menganalisa hasil (analyze hasil)
-
Desain: adalah berlandaskan pada pendekatann engineering (teknik), dimana pada saat mendesain sebuah sistem atau device untuk memecahkan masalah, harus melalui proses-proses sbb:
- menyatakan requirement (state requirements),
- menyatakan spesifikasi (state specifications)
- melakukan desain dan implementasi sistem (design and implement the system)
- melakukan pengetesan terhadap sistem (test the system)