Dokuemen ini merupakan materi ajar matakuliah Rekayasa Perangkat Lunak. Materi ini merupakan materi awal yang berisi:
What is Engineering?
What is Software?
Software Applications
Software—New Categories
A Software Engineering
What is Software Engineering?
A Layered Technology
2. What is Engineering?
Engineering/Rekayasa adalah aplikasi
praktis ilmu pengetahuan dan matematika
untuk memecahkan masalah.
Engineer/Insinyur adalah pemecah
masalah yang ingin bekerja lebih efisien
dan cepat serta lebih murah.
What is
Sw?
3. What is Software?
3
Software is: (1) instructions (computer programs)
that when executed provide desired features,
function, and performance; (2) data structures
that enable the programs to adequately
manipulate information and (3) documentation
that describes the operation and use of the
programs.
Definisi
lain Sw
4. What is software?
Computer programs and associated documentation such as
requirements, design models and user manuals.
Software products may be developed for a particular customer or
may be developed for a general market.
Software products may be
Generic - developed to be sold to a range of different customers e.g. PC
software such as Excel or Word.
Bespoke (custom) - developed for a single customer according to their
specification.
New software can be created by developing new programs,
configuring generic software systems or reusing existing software.
Karakteristik
Sw
5. What is Software?
Software is developed or engineered, it is not
manufactured in the classical sense.
Software doesn't "wear out."
Although the industry is moving toward component-based
construction, most software continues to be custom-built.
5
Jenis Sw
7. Software—New Categories
Open world computing —pervasive, distributed
computing
Ubiquitous computing —wireless networks
Netsourcing —the Web as a computing engine
Open source —”free” source code open to the computing
community (a blessing, but also a potential curse!)
• Data mining
• Grid computing
• Cognitive machines
• Software for nanotechnologies
Also …
7
Computing
8. Computing Science: Definisi
Singkat
Cabang Ilmu Komputasi adalah :
• the systematic study of algorithmic processes
that describe and transform information: their
theory, analysis, design, efficiency,
implementation, and application.
Pertanyaan mendasar dari sebuah
komputasi adalah "What can be
(efficiently) automated?"
Gambaran
SwE
10. What is Software Engineering
Software Engineering: (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 as in (1).
Software engineering is the process of solving customer’s problems by the
systematic development and evolution of large, high-quality software systems
within cost, time, and other constraints. It aims at applying engineering
principles to the entire software life-cycle: requirements analysis, measurement,
design, validation, implementation, testing, documentation, and management .
Rekayasa perangkat lunak (RPL, atau dalam bahasa Inggris: Software Engineering
atau SE) adalah satu bidang profesi yang mendalami cara-cara pengembangan
perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi
pengembanganan perangkat lunak dan manajemen kualitas.
Definisi
SwE other
11. Rekayasa perangkat lunak adalah profesi yang
bersangkutan dengan menciptakan dan memelihara
aplikasi perangkat lunak dengan menerapkan teknologi
dan praktik dari ilmu komputer, manajemen proyek,
rekayasa, domain aplikasi, dan bidang lainnya.
IEEE Computer Society mendefinisikan rekayasa
perangkat lunak sebagai penerapan suatu pendekatan
yang sistematis, disiplin dan terkuantifikasi atas
pengembangan, penggunaan dan pemeliharaan
perangkat lunak, serta studi atas pendekatan-
pendekatan ini, yaitu penerapan pendekatan
engineering atas perangkat lunak.
Definisi SwE
Concl
12. What is software engineering?
Software engineering is an
engineering discipline that is
concerned with all aspects of
software production.
Software engineers should adopt a
systematic and organised
approach to their work and use
appropriate tools and techniques
depending on the problem to be
solved, the development
constraints and the resources
available.
SwE
Activity
13. What is Software
Engineering?
Secara detail, Software engineering/Rekayasa Perangkat Lunak
adalah:
•a modelling activity -- software engineers deal with complexity through
modelling, by focusing at any one time on only the relevant details and
ignoring everything else.
•model -- an abstraction of reality
•analysis -- constructing a model of the problem domain
•design -- constructing a model of the solution domain
•In OO methods, the solution domain model is an extension of the problem
domain model, so that the structure of the software reflects that of the
problem.
•a problem-solving activity -- models are used to search for an acceptable
solution
•driven by experimentation
•reuses pattern solutions
•incremental evolution of the system toward one acceptable to the client
•revised in response to change
SwE
Activity
14. What is Software Engineering?
(lanjutan)
o a knowledge acquisition activity -- in modelling the application and
solution domain, software engineers collect data, organize it into
information, and formalize it into knowledge.
nonlinear -- new information may invalidate previous knowledge
risk-based development -- identify high-risk components to avoid
late surprises
issue-based development -- execute development activities in
parallel, organizing according to issues which still need resolution
iterative development -- design and implement the high-risk
(difficult) parts first
o a rationale-driven activity -- software engineers need to capture the
context in which decisions were made and the rationale behind these
decisions in order to understand the implications of a proposed change
when revisiting a decision.
assists in dealing with changing systems
useful in the maintenance phase
Layered