25
CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1

CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

CHAPTER 1:

INTRODUCTION

TO SOFTWARE

ENGINEERING

DKT 311

SOFTWARE

ENGINEERING

1

Page 2: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

Prayer

Allahumma Ya Alim Ya Hakim Ya Rashid,

kurniakanlah kami dengan ilmu,

kepintaran dan kebijaksanaan kepada

kami supaya kami dapat menggunakan

ilmuMu ke arah kebaikan.

Allahumma Ya Ba’its, kurniakan kami

dengan semangat untuk menuntut

ilmuMu

DKT 311 : SOFTWARE ENGINEERING 2

Page 3: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

Attendance & Class

implementation

Compulsory for every class & lab session

Online either synchronous or asynchronous

Asynchronous – guided lesson using Google

Classroom

DKT 311 : SOFTWARE ENGINEERING 3

Page 4: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

Coursework

Assignment – 10%

Laboratory Task / Report – 20%

UMLet

Mid-term Examination – 20%

DKT 311 : SOFTWARE ENGINEERING 4

Page 5: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

Course Outcome

Define and describes the software engineering terms and concepts

Explain the software process, management, validation and verification

Analyze the problem based on software engineering process models and specification document

Apply software engineering techniques for engineering problem

DKT 311 : SOFTWARE ENGINEERING 5

Page 6: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

Lab

Install : UMLet software

Implementation : online via Google meet

(for the tutorial/assist the lab report)

6

Page 7: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

Discussion / consultation

We can set a meeting via Google meet /

WA call / message

7

Page 8: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

8

INTRODUCTION TO SOFTWARE ENGINEERING

Page 9: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

9

What is software?

Computer programs and associated

documentation

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

Bespoke (custom) - developed for a single customer

according to their specification

DKT 311 : SOFTWARE ENGINEERING

Page 10: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

What is Engineering?

More explanation in the video

https://youtu.be/bipTWWHya8A

Engineering discipline

Using appropriate theories and methods to

solve problems bearing in mind

organizational and financial constraints

11

Page 11: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

12

What is software engineering?

Software engineering is an engineering discipline which is concerned with all aspects of software production

Software engineers should adopt:

a systematic and organized approach to their work

use appropriate tools and techniques depending on the problem to be solved

Engineers make thing work, they apply theories, methods and tools where these are appropriate.

DKT 311 : SOFTWARE ENGINEERING

Page 12: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

13

Software engineering is: the systematic use of

many disciplines, tools, and resources for the

practical application.

Engineering is the art and science of managing

engines for practical application.

To manage these engines, we have to consider

all aspects of the intended applications, such

as operational concepts, requirements, design, development, and maintenance.

What is software engineering?

DKT 311 : SOFTWARE ENGINEERING

Page 14: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

15

Back in 1970 less than 1 % of the public could

have intelligently described what computer

software meant.

Today most of the public at large feel that they

understand software. But do they?

In order to answer this question we need to

examine the characteristics of software:

1. software is developed or engineered, it is not

manufactured

2. software does not wear out.

Why we need Software Engineering?

DKT 311 : SOFTWARE ENGINEERING

Page 15: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

16

Not like hardware which exhibits relatively

high failure rate early in its life, then defects

are corrected and failure rate drops to a

steady level then later on the failure rates rise

again as the hardware components suffer

from the cumulative affect of dust, vibration

…etc.

The software on the other hand, the failure

rates is due to side effects to changes and

modifications.

Why we need Software Engineering?

DKT 311 : SOFTWARE ENGINEERING

Page 16: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

17

Finally even the industry is moving toward

component based assembly, most

software continues to be custom built.

Why we need Software Engineering?

DKT 311 : SOFTWARE ENGINEERING

Page 17: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

18

What are the key challenges facing in software engineering?

Coping with legacy systems ( old, valuable systems must be maintained and updated), coping with increasing diversity and coping with demands for reduced delivery times.

Heterogeneity, systems are required to operate as distributed across networks that include a different type of hardware and software

Delivery, there is increasing pressure for faster delivery of software

DKT 311 : SOFTWARE ENGINEERING

Page 18: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

Software engineering diversity

There are many different types of software

system and there is no universal set of

software techniques that is applicable to

all of these.

The software engineering methods and

tools used depend on the type of

application being developed, the

requirements of the customer and the

background of the development team.

Chapter 1 Introduction 19

Page 19: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

Users

Those who use the software

Customers

Those who pay for the software

Software developers

Those who develop, design and implement the

software / codes.

Development Managers

Those who govern the software’s project

management

All four roles can be fulfilled by the same

person

Software Engineering Stakeholder

DKT 311 : SOFTWARE ENGINEERING

Page 20: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

Usability Users can learn it and fast and get their job done easily

Efficiency

It doesn’t waste resources such as CPU time and memory

Reliability It does what it is required to do without failing

Maintainability It can be easily changed

Reusability

Its parts can be used in other projects, so reprogramming is not needed

Software Engineering Quality

DKT 311 : SOFTWARE ENGINEERING

Page 21: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

BUT; The different qualities can conflict Increasing efficiency can reduce

maintainability or reusability

Increasing usability can reduce efficiency

Setting objectives for quality is a key

engineering activity design to meet the objectives

Avoids ‘over-engineering’ which wastes money

Optimizing is also sometimes necessary

E.g. obtain the highest possible reliability

using a fixed budget

Software Engineering Quality

DKT 311 : SOFTWARE ENGINEERING

Page 22: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

Confidentiality respect the confidentiality of your employers or

clients(agreement)

Competence should not knowingly accept work that is outside your

competence.

Intellectual property rights be aware the use of intellectual property such as patents and

copyright.

ensure that the intellectual property of employers and clients is protected.

Computer misuse not use your technical skills to misuse other people’s computers.

Computer misuse ranges from relatively trivial (game playing on an employer’s machine) to extremely serious (dissemination of viruses or other malware).

Software Engineering Ethics

DKT 311 : SOFTWARE ENGINEERING

Page 23: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

Software crisis; Poor software design.

Doesn't meet their expectations.

Never delivered or late delivered.

Over budget.

Software bugs.

Software engineering methods is to; To meet expectations.

Avoid crisis.

Software Engineering Problems

DKT 311 : SOFTWARE ENGINEERING

Page 24: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

Frequently asked questions about

software engineering Question Answer

What is software? Computer programs and associated documentation.

Software products may be developed for a particular

customer or may be developed for a general market.

What are the attributes of good software? Good software should deliver the required functionality

and performance to the user and should be

maintainable, dependable and usable.

What is software engineering? Software engineering is an engineering discipline that is

concerned with all aspects of software production.

What are the fundamental software

engineering activities?

Software specification, software development, software

validation and software evolution.

What is the difference between software

engineering and computer science?

Computer science focuses on theory and fundamentals;

software engineering is concerned with the practicalities

of developing and delivering useful software.

What is the difference between software

engineering and system engineering?

System engineering is concerned with all aspects of

computer-based systems development including

hardware, software and process engineering. Software

engineering is part of this more general process.

DKT 311 : SOFTWARE ENGINEERING 25

Page 25: CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING · 2020. 8. 25. · CHAPTER 1: INTRODUCTION TO SOFTWARE ENGINEERING DKT 311 SOFTWARE ENGINEERING 1 . Prayer ... depending on the problem

Frequently asked questions

about software engineering Question Answer

What are the key challenges facing

software engineering?

Coping with increasing diversity, demands for reduced

delivery times and developing trustworthy software.

What are the costs of software

engineering?

Roughly 60% of software costs are development costs,

40% are testing costs. For custom software, evolution

costs often exceed development costs.

What are the best software engineering

techniques and methods?

While all software projects have to be professionally

managed and developed, different techniques are

appropriate for different types of system. For example,

games should always be developed using a series of

prototypes whereas safety critical control systems require

a complete and analyzable specification to be developed.

You can’t, therefore, say that one method is better than

another.

What differences has the web made to

software engineering?

The web has led to the availability of software services

and the possibility of developing highly distributed service-

based systems. Web-based systems development has led

to important advances in programming languages and

software reuse.

DKT 311 : SOFTWARE ENGINEERING 26