0% found this document useful (0 votes)
12 views23 pages

SE2022_Lecture 01. Introduction_VuNQ_QuestionDrivenTeaching

The document introduces software engineering (SE) by defining software, discussing common errors in software development, and outlining how to build quality software. It emphasizes the need for systematic approaches to address issues like software crises, which include unreliability, high costs, and delays. Software engineering is presented as a disciplined field that combines various knowledge areas to improve software development processes and outcomes.

Uploaded by

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

SE2022_Lecture 01. Introduction_VuNQ_QuestionDrivenTeaching

The document introduces software engineering (SE) by defining software, discussing common errors in software development, and outlining how to build quality software. It emphasizes the need for systematic approaches to address issues like software crises, which include unreliability, high costs, and delays. Software engineering is presented as a disciplined field that combines various knowledge areas to improve software development processes and outcomes.

Uploaded by

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

Topic 1.

Introduction to SE
• With this first topic, we need to discuss and answer the following questions:
- What is Software?
- Why software often has errors?
- How to build a good software?
- What is software engineering?
- And why do we need software engineering?
Topic 1. Introduction to SE
• Question 1: What is Software?
Software has become prevalent in all aspects of our lives
What is (computer) software?
• Software is not just the programs themselves but also all associated documentation, data, libraries, support
websites, and configuration files that are needed to make these programs useful.
Topic 1. Introduction to SE
• Question 2: Why software often has errors?
Nature of software development
• Development, not production.
• Human intensive.
• Engineering, but also social process.
• More and more complex software systems.
• Pervasive in an increasing number of industries.
Nature of software development (cond’t)
• Keep It Simple, Make It Valuable, Build It Piece by Piece
• You need to get value from your software project.
• You need it “free, now, and perfect.”
• We can’t get you there, but we can help you get to “cheaper, sooner, and
better.”
Errors
• Errors are a part of our daily life.
• Humans make errors in their thoughts, actions, and in the products that
might result from their actions.
• Errors occur wherever humans are involved in taking actions and
making decisions.
Software Error,
faults, failures
Everywhere …
Example 1

• Incident: Yahoo! mail doesn’t let me log in


• Failure: The user account cannot be accessed in the user
database.
• Fault: The user database can not be reached.
• Error: There was no backup user database in the system.
Example 2
• Fatal Therac-25 X-ray Radiation
• In 1986, a man in Texas received between 16,500-25,000 radiations
in less than 10 sec, over an area of about 1 cm.
• He passed away 5 months later.
• The root cause of the incident was a SW failure 

• Incident: A patient passed away


• Failure: The device applied higher frequency of radiations than what was safe. Safety range:
[1…10,000 Hz].
• Fault: The software controller of the device did not have a conditional block (if …. else
statements) to perform range checking on the frequency of the radiation to be applied.
• (2) Errors:
• 1. The SW developer of the device controller system had forgotten to include a range
checking conditional block on the frequency of the radiation to be applied.
• 2. The device operator was NOT supposed to enter anything outside [1…10,000 Hz]
range.
Topic 1. Introduction to SE
- Question 3: How to build a good software?
Dealing with SW Faults
Software Quality
Software quality attributes
• Static quality attributes: structured, maintainable, testable code as
well as the availability of correct and complete documentation.
• Dynamic quality attributes: software reliability, correctness,
completeness, consistency, usability, and performance
Software quality attributes (contd.)
• Completeness refers to the availability of all features listed in the requirements,
or in the user manual. An incomplete software is one that does not fully
implement all features required.
• Consistency refers to adherence to a common set of conventions and
assumptions. For example, all buttons in the user interface might follow a
common color coding convention. An example of inconsistency would be when a
database application displays the date of birth of a person in the database
Software quality attributes (contd.)
• Usability refers to the ease with which an application can be used.
This is an area in itself and there exist techniques for usability testing.
• Psychology plays an important role in the design of techniques for
usability testing.
• Performance refers to the time the application takes to perform a
requested task. It is considered as a non-functional requirement. It is
specified in terms such as “This task must be performed at the rate of
X units of activity in one second on a machine running at speed Y,
having Z gigabytes of memory.”
ISO 9126: Evaluation of Software
Quality
Topic 1. Introduction to SE
- Question 4: What is software engineering? And why do we need
software engineering?
Pervasive Problems
• Software is commonly delivered late, way over budget, and of
unsatisfactory quality
• Software validation and verification are rarely systematic and are
usually not based on sound, well-defined techniques
• Software development processes are commonly unstable and
uncontrolled
• Software quality is poorly measured, monitored, and controlled.
• => We need “Software Engineering”
• To solve the problem of “software crisis” (Software Crisis);
• The term “software crisis” is used to describe “Unreliable”- "High cost"; and
“Delay” problems of building large and complex software systems;
Definitions: Software Engineering
• Software engineering (SE) is the application of a systematic, disciplined, quantifiable approach to
the development, operation, and maintenance of software.
• The discipline of software engineering encompasses knowledge, tools, and methods for defining
software requirements, and performing software design, software construction, software testing,
and software maintenance tasks.
• Software engineering draws on knowledge from fields such as computer engineering, computer
science, management, mathematics, project management, quality management, software
ergonomics, and systems engineering.
• The term software engineering was popularized during the 1968 NATO Software Engineering
Conference (held in Garmisch, Germany).
Topic 1. Introduction to SE

You might also like