+ All Categories
Home > Technology > Software engineering

Software engineering

Date post: 11-May-2015
Category:
Upload: nur-aqilah-ahmad-khairi
View: 514 times
Download: 0 times
Share this document with a friend
Popular Tags:
37
AN INTRODUCTION TO SOFTWARE ENGINEERING
Transcript
Page 1: Software engineering

AN INTRODUCTION TO SOFTWARE ENGINEERING

Page 2: Software engineering

CUSTOMER

Sponsors systemdevelopment

USERUsessystem

DEVELOPER

Buildssystem

Contractual

obligation

$$$, needs

Software systemNeeds

Figure 1.7 Participants in software development.

Page 3: Software engineering

Figure1.11 The roles of the development team

Maintenance

System Design

Requirements Analysis and Definition

Program Design

Program Implementation

Unit Testing

Integration Testing

System Testing

System Delivery

SO

FT

WA

RE

DE

VE

LO

PM

EN

T S

TE

PS

DE

VE

LO

PE

R R

OL

ES

ANALYST

DESIGNER

PROGRAMMER

TESTER

TRAINER

Page 4: Software engineering

Figure1.12 The key factors that have changed software development

Time to market

Shifts in economics

Desktop computing

Networking

Object technology Problems with waterfall

User interfaces

CHANGES INSOFTWARE

ENGINEERING

Page 5: Software engineering

OBJECTIVES

Page 6: Software engineering

SOFTWARE ENGINEERING

Page 7: Software engineering

FAQS ABOUT SOFTWARE ENGINEERING

Page 8: Software engineering

FAQS ABOUT SOFTWARE ENGINEERING

Page 9: Software engineering

FAQS ABOUT SOFTWARE ENGINEERING

Page 10: Software engineering

FAQS ABOUT SOFTWARE ENGINEERING

Page 11: Software engineering

WHAT IS SOFTWARE?

Page 12: Software engineering

SOFTWARE PRODUCT DEVELOPED FOR

Page 13: Software engineering

TYPE OF SOFTWARE PRODUCTS

Page 14: Software engineering

CREATING NEW SOFTWARE

Page 15: Software engineering

VARIETY OF SOFTWARE PRODUCTS

Page 16: Software engineering

VARIETY OF SOFTWARE PRODUCTS Real time : air traffic control Embedded systems: digital camera, GPS Data processing : telephone billing,

pensions Information systems : web sites, digital

libraries Sensors : weather data System software : operating systems,

compilers Communications : routers, mobile

telephones Offices : word processing,

video conferences Scientific : simulations, weather

forecasting Graphical : film making, design

Page 17: Software engineering

CATEGORIES OF SOFTWARE PRODUCT

Generic (e.g., Microsoft Excel)

Packages (e.g., Mathematica)

Customized versions of generic packages (e.g., UTeM's payroll system)

Bespoke (customized) (e.g., IRS internal system)

Demonstration, prototype, research, …

Page 18: Software engineering

WHAT IS SOFTWARE ENGINEERING?

Software engineering is an

engineering discipline that is

concerned with all aspects of

software production.

Page 19: Software engineering

WHAT IS SOFTWARE ENGINEERING?

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.

Page 20: Software engineering

Computer Science Customer

Theories

Computer

Functions

Problem

Software Engineering

Tools and Techniques

to Solve Problem

Page 21: Software engineering

SOFTWARE ENGINEERING VS COMPUTER SCIENCE?

Computer science is concerned with theory and fundamentals;

Computer science theories are still insufficient to act as a complete underpinning for software engineering (unlike e.g. physics and electrical engineering).

Software engineering is concerned with the practicalities of developing and delivering useful software.

Computer Science Software Engineering

Page 22: Software engineering

SOFTWARE ENGINEERING VS SYSTEM ENGINEERING?

Concerned with all aspects of computer-based systems development including hardware, software and process engineering.

System engineers are involved in system specification, architectural design, integration and deployment.

concerned with developing the software infrastructure, control, applications and databases in the system.

System engineering Software engineering

Page 23: Software engineering

WHAT IS A SOFTWARE PROCESS?

A set of activities whose goal is the development or evolution of software.

Page 24: Software engineering

WHAT IS A SOFTWARE PROCESS?

Page 25: Software engineering

WHAT IS A SOFTWARE PROCESS?

Page 26: Software engineering

WHAT IS A SOFTWARE PROCESS MODEL?

A simplified representation of a software process,

presented from a specific perspective.

Page 27: Software engineering

EXAMPLE OF PERSPECTIVES

Page 28: Software engineering

GENERIC PROCESS MODELS

Page 29: Software engineering

Human Error Fault Failure

can lead to can lead to

Page 30: Software engineering

SOFTWARE COSTS

Software costs often dominate computer system costs. The costs of software on a PC are often greater than the hardware cost.

Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs.

Software engineering is concerned with cost-effective software development.

Page 31: Software engineering

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.

Page 32: Software engineering

WHAT IS CASE (COMPUTER-AIDED SOFTWARE ENGINEERING) Software systems that are intended to

provide automated support for software process activities.

CASE systems are often used for method support.

Upper-CASE Tools to support the early process activities of

requirements and design; Lower-CASE

Tools to support later activities such as programming, debugging and testing.

Page 33: Software engineering

Figure 1.5 McCall’s quality model.

Correctness

Reliability

Efficiency

Integrity

Usability

Maintainability

Testability

Flexibility

Portability

Reusability

Interoperability

Traceability

Completeness

Consistency

Accuracy

Error Tolerance

Execution Efficiency

Storage efficiency

Access control

Access audit

Operability

Training

Communicativeness

Simplicity

Conciseness

Instrumentation

Self-descriptiveness

Expandability

Generality

Modularity

Software System Independence

Machine Independence

Communications commonality

Data commonality

Page 34: Software engineering

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.

Page 35: Software engineering

WHAT ARE THE KEY CHALLENGES FACING SOFTWARE ENGINEERING? Heterogeneity, delivery and trust. 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 that software can be trusted by its users.

Page 36: Software engineering

KEY POINTS

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

Software products consist of developed programs and associated documentation. Essential product attributes are maintainability, dependability, efficiency and usability.

Page 37: Software engineering

CONTINUE..

• The software process consists of activities that are involved in developing software products. Basic activities are software specification, development, validation and evolution.

• Methods are organised ways of producing software. They include suggestions for the process to be followed, the notations to be used, rules governing the system descriptions which are produced and design guidelines.


Recommended