0% found this document useful (0 votes)
18 views27 pages

Lecture 1 - Intro To SE

The document provides an introduction to software engineering including definitions of key terms like software, software engineering, and the differences between software engineering and computer science as well as system engineering. It also discusses software processes, process models, roles in development teams, and challenges in the field.

Uploaded by

Irfan Naufal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views27 pages

Lecture 1 - Intro To SE

The document provides an introduction to software engineering including definitions of key terms like software, software engineering, and the differences between software engineering and computer science as well as system engineering. It also discusses software processes, process models, roles in development teams, and challenges in the field.

Uploaded by

Irfan Naufal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

BITP 2213

Software Engineering
Lecture 1

An Introduction to Software Engineering

2
CUSTOMER
Sponsors system
development

$$
$ DEVELOPER
Co nee ,
USER ob nt ds
lig rac
Uses at tu
io al Builds
system n
system

Needs
Software system

Figure 1.7 Participants in software development. 3


DEVELOPER ROLES
Requirements Analysis and ANALYST
Definition

System Design
SOFTWARE DEVELOPMENT STEPS

DESIGNER

Program Design PROGRAMMER

Program Implementation

Unit Testing TESTER

Integration Testing

System Testing
TRAINER
System Delivery

Maintenance

Figure1.11 The roles of the development team 4


Object technology Problems with waterfall

CHANGES IN
Desktop computing
SOFTWARE Time to market
ENGINEERING

Shifts in economics Networking


User interfaces

Figure1.12 The key factors that have changed software development 5


Objectives

• To introduce software engineering and to explain its


importance
• To set out the answers to key questions about software
engineering

6
Software engineering

• The economies of ALL developed nations are dependent


on software.
• More and more systems are software controlled
• Software engineering is concerned with theories,
methods and tools for professional software
development.

7
FAQs about software engineering

• What is software?
• What is software engineering?
• What is the difference between software engineering and
computer science?
• What is the difference between software engineering and
system engineering?
• What is a software process?
• What is a software process model?

8
FAQs about software engineering

• What are the costs of software engineering?


• What are software engineering methods?
• What is CASE (Computer‐Aided Software Engineering)
• What are the attributes of good software?
• What are the key challenges facing software engineering?

9
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. 10
Variety of Software Products
Examples
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

11
Categories of Software Product
Categories of client and 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, …

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.

13
Computer Science Customer

Computer
Theories Problem
Functions

Software
Engineering

Tools and
Techniques to
Solve
Problem 14
What is the difference between software
engineering and computer science?

• Computer science is concerned with theory and


fundamentals; software engineering is concerned with the
practicalities of developing and delivering useful software.
• Computer science theories are still insufficient to act as a
complete underpinning for software engineering (unlike e.g.
physics and electrical engineering).

15
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 process concerned with developing the software
infrastructure, control, applications and databases in the
system.
• System engineers are involved in system specification,
architectural design, integration and deployment.

16
What is a software process?

• A set of activities whose goal is the development or evolution


of software.
• Generic activities in all software processes are:
• Specification ‐ what the system should do and its development
constraints
• Development ‐ production of the software system
• Validation ‐ checking that the software is what the customer wants
• Evolution ‐ changing the software in response to changing demands.

17
What is a software process model?

• A simplified representation of a software process,


presented from a specific perspective.
• Examples of process perspectives are
• Workflow perspective ‐ sequence of activities;
• Data‐flow perspective ‐ information flow;
• Role/action perspective ‐ who does what.
• Generic process models
• Waterfall;
• Iterative development;
• Component‐based software engineering.

18
can lead to can lead to

Human Error Fault Failure

19
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.

20
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.

21
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.

22
Traceability
Correctness Completeness

Reliability Consistency
Accuracy

Efficiency Error Tolerance


Execution Efficiency

Integrity Storage efficiency


Access control

Usability Access audit


Operability

Maintainability Training
Communicativeness
Testability Simplicity
Conciseness
Flexibility Instrumentation
Self‐descriptiveness
Portability Expandability
Generality
Reusability Modularity
Software System Independence
Interoperability Machine Independence
Communications commonality
Data commonality
Figure 1.5 McCall’s quality model. 23
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.

24
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.
25
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.

26
Key points

• 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.

27

You might also like