• Tidak ada hasil yang ditemukan

Introduction To Software Engineering - Repository UNIKOM

N/A
N/A
Protected

Academic year: 2019

Membagikan "Introduction To Software Engineering - Repository UNIKOM"

Copied!
50
0
0

Teks penuh

(1)

INTRODUCTION TO

SOFTWARE ENGINEERING

Citra Noviyasari, S.Si, MT

1 Rekayasa Perangkat Lunak - Citra N., S.Si,

(2)

What is software ?

Software is a set of items or objects

that form a “configuration” that

includes

• programs

• documents

(3)

What is software?

Definitions:

Computer programs, procedures, and possibly associated

documentation and data

pertaining to the operation of a computer system (IEEE

Standard Glossary of Software Engineering Terminology,

(4)

What is software ?

Software is designed and built by software

engineers.

Software is used by virtually everyone in

society.

Software engineers have a moral

obligation to build reliable software that

does no harm to other people.

Software users are only concerned with

whether or not software products meet

their expectations and make their tasks

easier to complete.

(5)

What is software ?

Software is both a product and a vehicle for

delivering a product (information).

Software is engineered not manufactured.

Software does not wear out, but it does

deteriorate.

Currently, most software is still custom-built.

(6)

Kurva Bahttube

Proses Umur

Perangkat Keras

Proses Umur

Perangkat Lunak

6 Rekayasa Perangkat Lunak - Citra N., S.Si,

MT

W a k t u

T in gk at K eg ag al an

K e m a t i a n

s e g e r a U s a n g

W a k t u

T in gk at K eg ag al an

K u r v a i d e a l K u r v a a k t u a l

p e r u b a h a n

L a j u k e g a g a l a n m e n i n g k a t s e h u b u n g a n d e n g a n e f e k

(7)

Software Applications

Type

System software

Application software

Embedded software

Engineering/Scientific software

Product software

Web Applications

Artificial intelligence software

(8)

New Software Challenges

Ubiquitous computing

 Creating software to allow machines of all sizes to

communicate with each other across vast networks

Netsourcing

 Architecting simple and sophisticated applications

that benefit targeted end-user markets worldwide

Open Source

Distributing source code for computing applications

so customers can make local modifications easily and reliably

New economy

 Building applications that facilitate mass

communication and mass product distribution using evolving concepts

(9)

Legacy Software

Many programs still provide a valuable

business benefit, even though they are one or

even two decades old.

These programs must be maintained and this

creates problems because their design is

often not amenable to change.

(10)

Legacy Software

must be adapted to meet the needs of new

computing environments or technology

must be enhanced to implement new

business requirements

must be extended to make it interoperable

with more modern systems or databases

must be re-architected to make it viable

within a network environment

(11)

Software Evolution

Process by which programs change shape,

adapt to the market place, and inherit

characteristics from preexisting programs

Unified theory for software evolution

(Lehman):

 Law of continuing change

 Law of increasing complexity

 …

(12)

The Cost of Change

Definition Development After release 1x

1.5-6x

(13)

Important Questions for Software

Engineers

Why does it take so long to get software

finished?

Why are development costs so high?

Why can't we find all errors before we give

the software to our customers?

Why do we continue to have difficulty in

measuring progress as software is being

developed?

(14)

Software Myths

Still believed by many

managers and practitioners

Insidious because they do have

elements of truth

Every practitioner and

manager should understand

the reality of the software

business.

(15)

Software Myths:

Clients’ point of view

Myths:

A general statement of

objectives is enough to get going. Fill in the details later.

Project requirements

continually change, but change can be

easily accommodated because software is flexible.

Reality:

Poor up-front

definition of the

requirements is THE

major cause of poor and late software.

Cost of the change to

software in order to fix an error increases

(16)

Software Myths:

Developers’ point of view

Myths:

Once a program is

written and works, the developer's job is done.

Until a program is

running, there is no way to assess its quality.

The only deliverable for a

successful project is a working program.

Reality:

 50%-70% of the effort expended on a program occurs after it is

delivered to the customer.

 Software reviews can be more effective in finding errors than testing for certain classes of errors.

A software configuration

(17)

Software Myths:

Management’s point of view

Myths:

Books of standards

exist in-house so software will be developed

satisfactorily.

Computers and

software tools that are available in-house are sufficient.

We can always add

more programmers if the project gets

behind.

Reality:

Books may exist, but

they are usually not up to date and not used.

CASE(**) tools are needed

but are not usually obtained or used.

"Adding people to a late

(18)

What is Software

Engineering ?

Software engineering is the establishment

and sound engineering principles in order

to obtain economically software that is

reliable and works efficiently on real

machines (Fritz Bauer,1969)

Software engineering is [1] the application

of a systematic, disciplined, quantifiable

approach to the development, operation,

and maintenance of software, and [2] the

study of approaches as in [1] (IEEE,1993)

(19)

Why SE ?

To get the right software and to

make the software right

Complexity of software

 Domain problem: Business Rule  Data size: Digital and Non

Digital

(20)

Why SE ? (2)

Software must be

correct

Software correctness have to be

(21)

How should SE be

applied ?

There are 2 things to be considered in SE:

 Product = Software:

 Programs  Documents  Data

 Process of how the software is build:

(22)

Product of SE

Product is obtained through stages of

development = Software Development Life

Cycle (SDLC)

Examples of life cycles (SDLC):

 Waterfall model

 V model

Spiral model

 Fountain model

(23)

Process of SE

Management process includes:

Project management

 Configuration management

(24)

Process of SE (2)

Technical process, described as methods

to be applied in a particular stage of the

s/w development life-cycle

 Analysis methods

 Design methods

 Programming methods

Testing methods

Technical methods are leading to

(25)

When should SE be

applied ?

Pre-project

Project Initiation

Project Realisation

(26)

Who is involved ?

Manager

 Project Manager

 Configuration Manager

 Quality Assurance Manager

Software Developer:

 Analyst

 Designer

(27)

Who is involved ?

Support

 Administration

 Technical Support for Customer

(28)

What are the costs of software

engineering?

Roughly 60% of costs are development

costs, 40% are testing costs. For custom

software, evolution costs often exceed

development costs.

Costs vary depending on the type of

system being developed and the

requirements of system attributes such as

performance and system reliability.

Distribution of costs depends on the

development model that is used.

(29)

What are software engineering

methods?

Structured approaches to software development which

include system models, notations, rules, design advice and process guidance.

Model descriptions

 Descriptions of graphical models which should be produced;

Rules

 Constraints applied to system models;

Recommendations

 Advice on good design practice;

Process guidance

 What activities to follow.

(30)

What are the attributes of good

software?

The software should deliver the required

functionality and performance to the user and should be maintainable, dependable and

acceptable.

Maintainability

 Software must evolve to meet changing needs;

Dependability

 Software must be trustworthy;

Efficiency

 Software should not make wasteful use of system

resources;

Acceptability

 Software must accepted by the users for which it was

designed. This means it must be understandable, usable and compatible with other systems.

(31)

What are the key challenges facing

software engineering?

Heterogeneity

 Developing techniques for building software

that can cope with heterogeneous platforms and execution environments;

Delivery

 Developing techniques that lead to faster

delivery of software;

Trust

 Developing techniques that demonstrate

(32)

Professional and ethical

responsibility

Software engineering involves wider

responsibilities than simply the

application of technical skills.

Software engineers must behave in an

honest and ethically responsible way if

they are to be respected as professionals.

Ethical behaviour is more than simply

upholding the law.

(33)

Issues of professional

responsibility

Confidentiality

 Engineers should normally respect the

confidentiality of their employers or clients irrespective of whether or not a formal

confidentiality agreement has been signed.

Competence

 Engineers should not misrepresent their

level of competence. They should not

knowingly accept work which is outwith their competence.

(34)

Issues of professional

responsibility

Intellectual property rights

Engineers should be aware of local laws governing

the use of intellectual property such as patents,

copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is protected.

Computer misuse

 Software engineers should not use their technical

(35)

ACM/IEEE Code of Ethics

The professional societies in the US have

cooperated to produce a code of ethical

practice.

Members of these organisations sign up

to the code of practice when they join.

The Code contains eight Principles

related to the behaviour of and decisions

made by professional software engineers,

including practitioners, educators,

managers, supervisors and policy

makers, as well as trainees and students

of the profession.

(36)

Code of ethics - preamble

Preamble

 The short version of the code summarizes aspirations at a

high level of the abstraction; the clauses that are included in the full version give examples and details of how these aspirations change the way we act as software

engineering professionals. Without the aspirations, the details can become legalistic and tedious; without the details, the aspirations can become high sounding but empty; together, the aspirations and the details form a cohesive code.

Software engineers shall commit themselves to making

the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software

engineers shall adhere to the following Eight Principles:

(37)

Code of ethics -

principles

 PUBLIC

Software engineers shall act consistently with the

public interest.

CLIENT AND EMPLOYER

 Software engineers shall act in a manner that is in

the best interests of their client and employer consistent with the public interest.

PRODUCT

Software engineers shall ensure that their products

and related modifications meet the highest professional standards possible.

(38)

Code of ethics -

principles

 JUDGMENT

Software engineers shall maintain integrity and

independence in their professional judgment.

MANAGEMENT

 Software engineering managers and leaders shall

subscribe to and promote an ethical approach to the management of software development and

maintenance.

PROFESSION

Software engineers shall advance the integrity and

reputation of the profession consistent with the public interest.

(39)

Code of ethics -

principles

COLLEAGUES

 Software engineers shall be fair to and

supportive of their colleagues.

SELF

Software engineers shall participate in lifelong

learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

(40)

Ethical dilemmas

Disagreement in principle with the policies of

senior management.

Your employer acts in an unethical way and

releases a safety-critical system without

finishing the testing of the system.

Participation in the development of military

weapons systems or nuclear systems.

(41)
(42)

Atribut Produk

Kinerja

Reliability

Pelayanan

Maintanability

Garansi

Mudah digunakan

Penampilan

Merek

Kemasan

Model terakhir

42 Rekayasa Perangkat Lunak - Citra N., S.Si,

(43)

Definisi

Rekayasa perangkat lunak adalah penetapan dan

penggunaan prinsip-prinsip rekayasa yang tangguh/ teruji dalam upaya memperoleh perangkat lunak secara ekonomis, handal dan bekerja efisien di mesin nyata, dan berkaitan dengan metode dan kaidah yang diperlukan dalam mengembangkan perangkat lunak untuk computer.

Sedangkan pengertian rekayasa perangkat lunak

menurut IEEE :Rekayasa perangkat lunak adalah

pendekatan sistematis untuk pengembangan, operasi, pemeliharaan dan pemberhentian pemakaian perangkat lunak.

43 Rekayasa Perangkat Lunak - Citra N., S.Si,

(44)

Prinsip Perangkat Lunak

Kekakuan (Rigor),

Rekayasa yang dilakukan harus sesuai dengan keinginan user, walupun terkadang diperlukan kreativitas perekayasa untuk membuat perangkat lunak.

Resmi (formal)

Pemilihan salah satu metodologi/pendekatan

perangkat lunak, berdampak pada harus

dilaksanakannya aktivitas rekayasa sesuai

dengan metodologi yang dipilih, serta notasi yang dipilih harus selalu konsisten digunakan

44 Rekayasa Perangkat Lunak - Citra N., S.Si,

(45)

Prinsip Perangkat Lunak

Pemisahan kepentingan

Berkaitan dengan apek-aspek persoalan : melebarnya focus kerja, kompleksitas sistem.

Abstraksi

Menggambarkan keseluruhan sistem dalam bentuk yang sederhana

Modularitas

Mendekomposisikan persoalan menjadi modul-modul independent sehingga memisahkan perhatian mengenai persoalan internal modul dan interaksi modul-modul dengan lingkungan luarnya.

45 Rekayasa Perangkat Lunak - Citra N., S.Si,

(46)

Karakteristik Perangkat

Lunak

Perangkat lunak dibangun dan dikembangkan,

tidak dibuat dalam bentuk yang klasik.

Walaupun perkembangan antara perangkat

keras dan perangkat lunak sangat ekuivalen,

namun aktivitas diantara keduanya sangat

berbeda.

Perangkat lunak tidak pernah usang,

Sebagian besar perangkat lunak dibuat secara

custom built, serta tidak dapat dirakit dari

komponen yang sudah ada

46 Rekayasa Perangkat Lunak - Citra N., S.Si,

(47)

Kurva Bahttube

Proses Umur

Perangkat Keras

Proses Umur

Perangkat Lunak

47 Rekayasa Perangkat Lunak - Citra N., S.Si,

MT

W a k t u

T in gk at K eg ag al an

K e m a t i a n

s e g e r a U s a n g

W a k t u

T in gk at K eg ag al an

K u r v a i d e a l K u r v a a k t u a l

p e r u b a h a n

L a j u k e g a g a l a n m e n i n g k a t s e h u b u n g a n d e n g a n e f e k

(48)

Tahapan Umur Perangkat

Lunak

Periode Simbolisasi Penyebab Solusi

Pembuatan DFR (Decreasing Failure Rate) Defect, rendahnya control kualitas, Quality control, Pengujian penerimaan, Pemakaian CFR (Constant Failure Rate)

Human error Redudancy, User friendly, Kadaluarsa IFR (Increasing Failure Rate) Peningkatan kebutuhan,

prosedur kerja baru,

Teknologi, Modifikasi

48 Rekayasa Perangkat Lunak - Citra N., S.Si,

(49)

Pemodelan Sistem

Asumsi, digunakan untuk mengurangi jumlah kemungkinan (permutasi) dan variasi yang mungkin.  Penyederhanaan, digunakan untuk menciptakan

model dengan waktu yang tepat.

Pembatasan (Boundaries), digunakan untuk membatasi lingkup sistem.

Batasan (Constraint), digunakan untuk menunjukkan cara dimana model tersebut diciptakan dan pendekatan yang dilakukan pada saat model diimplementasikan.

Preferensi, digunakan untuk menunjukkan arsitektur yang dipilih untuk semua data, fungsi dan teknologi.

49 Rekayasa Perangkat Lunak - Citra N., S.Si,

(50)

Maintainability

(dapat dipelihara)

 Software bisa menangani perubahan spek

kebutuhan

Dependability

(dapat diandalkan)

 Aman, selamat, tidak menyebabkan

keruksakan fisik

Efficiency

(Efisien)

 Software mampu mengoptimalkan resource

Acceptability

(Kemampupakaian)

 Software bisa diterima user sebagaimana

rancangan. Mudah dimengerti, digunakan and compatible dengan sistem yang lain

Ciri-ciri software yang baik

50 Rekayasa Perangkat Lunak - Citra N., S.Si,

Referensi

Dokumen terkait

Program KB seharusnya memberikan penanganan masalah unmet need terfokus pada wanita yang tidak pernah berdiskusi dengan suaminya tentang KB, yang tidak pernah

Yustiningrum Wahyu Nurcahya, S351408011, Perlindungan Hukum Terhadap Debitor Dalam Jaminan Fidusia Kendaraan Bermotor Yang Belum Terdaftar (Studi Putusan

Tujuan pembuatan alat belah bambu manual ini adalah merancang alat pembelah bambu yang dioperasikan secara manual untuk membelah bambu gelondong dengan panjang 40 cm

Semakin tinggi posisi piston valve, maka semakin tinggi jarum skep terangkat, karena bentuk jarum yang tirus, maka semakin besar celah antara main jet dengan jarum skep,

yang dilakukan oleh Rosydah (2011) dengan meningkatnya jumlah kitosan, mikropartikel yang terbentuk lebih sferis dengan permukaan yang halus, sedangkan pada penelitian

Selanjutnya, pada halaman sumber yang sama, Field (2004: 63 — 64) mengemukakan bahwa di antara pandangan tentang akuisisi yang dapat dicirikan sebagai “ kognitif ” adalah

Jika ditinjau dari Identitas Nilai dalam pelembagaan partai melalui masing- masing basis sayap, basis sayap merupakan bagian dari gambaran basis sosial pendukung

Untuk mengetahui secara simultan besarnya pengaruh citra merek dan persepsi harga terhadap keputusan pembelian dengan menggunakan teknik analisis statistik yang sudah di