0% found this document useful (0 votes)
6 views28 pages

Introduction to Software Engineering Concepts

The document provides an overview of software engineering, emphasizing its importance following the Ariane flight failure due to an uncaught software exception. It defines software, software systems, and software products, and discusses the characteristics of good software, including maintainability, dependability, efficiency, and usability. Additionally, it outlines the software development process, models, and the significance of requirement engineering in bridging the gap between customers and developers.

Uploaded by

Hossainy
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)
6 views28 pages

Introduction to Software Engineering Concepts

The document provides an overview of software engineering, emphasizing its importance following the Ariane flight failure due to an uncaught software exception. It defines software, software systems, and software products, and discusses the characteristics of good software, including maintainability, dependability, efficiency, and usability. Additionally, it outlines the software development process, models, and the significance of requirement engineering in bridging the gap between customers and developers.

Uploaded by

Hossainy
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

Software Engineering

Introduction
Introduction to Software Engineering

In 04.06.1996 the Ariane’s maiden flight ends


with explosion 40 seconds after departure.
The material costs were around 500 Mio. US
Dollar and it was a project which was being
worked on for 10 years with a budget of about 7
Billion US Dollar for developing.
The reason was an Uncaught software
exception.

2
Introduction to Software Engineering

3
Introduction to Software Engineering

5
Introduction to Software Engineering

As a result:

Software developers have to bear a lot of responsibilities


Each software project is unique.
The developing process has to be planned and should
be controllable
Variables are: complexity, resources, quality and time

6
Introduction to Software Engineering

Software definition:

Software is a synonymous to computer
program

Software means:

computer program

suitable documentation

related configuration files to run the program

7
Introduction to Software Engineering
software systems definition:

Software system is a synonymous to several computer
programs

Software Systems normally consist of:

several computer programs

several configuration files

a system documentation, describing the system’s
structure

an end user documentation, describing the handling
of the system

a website or repository for system updates
8
Introduction to Software Engineering
software products definition:
Software products can be divided into:

General Products

Independent Software Systems developed by an certain
organization

Available at the market depending on the related licenses

Requirements and specifications are defined by the
developing organization

Customized or Requested Products

Requested by a certain customer

These products often support specific business processes

Requirements and specifications are defined by
9 the customer
Introduction to Software Engineering

Today, that strict classification begins to


disappear.
Today Software Products:

Development of a basic and general system

Development of individual and problem specific
add-ons

Offering user specific adaptations

Integration of customer specific business processes

10
Introduction to Software Engineering

Software Engineering Definition:



Software Engineering is a technical discipline
that covers all aspects of software
development, from the early phases of
creating the system’s specification to
maintaining the running system

11
Introduction to Software Engineering

Definition - technical discipline



Finding solutions for a given problem

Using known theories, methods and tools

Also try to find solutions if there are no theories,
methods and tools yet

Accepting organizational and financial limitations

Searching for solution regarding the given conditions

12
Introduction to Software Engineering

Aspects of SW development:

Software Engineering is more than the technical
discipline

Besides the technical discipline the following
topics are also part of software engineering:

Software Project Management

Development of theories, methods and tools to
support the software development

13
Introduction to Software Engineering

Characteristics of good software:



Characteristics besides the provided functionality

So called “non-functional” characeristcs

Independent of the software’s properly intention

Relevant for program’s behavior during execution

Relevant for structure and organization of source
code and documentation

14
Introduction to Software Engineering
Non-functional Characteristics:
Maintainability:

Changes are unavoidable in dynamic business environments

Allow further development to fulfill specific customer requests
Dependability:

Reliability, Access protection, operating safety

Do not cause physical or economical damage
Efficiency:

Do not waste system resources (memory, CPU)
Usability:

Provide a suitable and intuitive user interface
15

Provide adequate documentation
Introduction to Software Engineering
Software process Definition:

Set of activities to develop a software product

Activities can be classified in four basic process activities
1. Software specification - Definition of the software
product and related conditions
2. Software development - Design and development of the
software product
3. Software validation - Testing the software product
concerning the defined specifications
4. Software evolution - Further development to fulfill
changed requirements
16
Introduction to Software Engineering
Process models:
Each process model is based on one of the three following
general models of software development:

Waterfall

Iterative

Component based

17
Introduction to Software Engineering
Process models

Waterfall Lifecycle Approach
 Activities (requirement specification, software design,
implementation, testing, etc.) are represented as
independent phases
 Each phase will be completed totally before going on
with the next phase

18
Introduction to Software Engineering
Process models

Waterfall Life cycle Approach

19
Introduction to Software Engineering
Process models

Iterative Development Approach:
 Combining specification, implementation and validation
processes in interations
 Starting with abstract specifications to be able to
provide a basic prototype very soon
 Based on this prototype and customer requests, the
product will be improved in next iteration
 Each iteration will provide a running system (getting
closer to the customers specifications)

20
Introduction to Software Engineering
Process models

Iterative Development Approach:

21
Introduction to Software Engineering
Requirement Engineering Definition:

Consists of two parts:
 Requirement Elicitation: Creating a system’s
specification that is understandable for the customer
(Creating System Specification)
 Requirement Analysis: Creating a clearly defined
model for involved developers based on the System
Specification
(Creating Analysis Model)

22
Introduction to Software Engineering
Requirement Elicitation - The Task

Have a dialog with customer and/or users

Identify functional requirements of the system to
create

Actual requirements: How things are done, now

Visionary requirements: How things could be done, in
future

Create a understandable specification of the system
(contract)

23
Introduction to Software Engineering
Requirement Elicitation - The Problem

The customer is an expert in a special domain
(i.e. financial processes)

The developer is an expert in Information Technologies

The customer exactly knows what kind of software he
wants to have

The developer exactly knows how to implement
software products

How to close the gap between customer and
developer?
24
Introduction to Software Engineering

25
Introduction to Software Engineering
Requirement Elicitation - The Solution
How to close the gap between customer and developer:

We can use scenarios to describe an exemplary but
concrete usage of the system

Interactions between actors and the system

We use use cases to describe a class of certain similar
scenarios

Use Cases are abstractions of scenarios

Both (scenarios and use cases) use common speech
to be understandable
26
Introduction to Software Engineering
Requirement Elicitation - The Solution
Solution: Scenario based requirement elicitation

Identify actual scenarios in dialog with the customer/user

Create visionary scenarios to describe new
functionalities

Identify quality requirements (non-functional)

System validation, checking the scenarios in dialog

Create a prototype (without implemented functionalities)

Requirement Specification: List of functional and non-
functional requirements, scenarios and use cases
27
Introduction to Software Engineering
Requirement Elicitation
Customer, Developer and User should define the systems
specification altogether in dialog ...
If not:

No understanding of opposite individual needs

A system that is hard (or absolutely not) to handle

There will be a lot of mistakes / misunderstandings in
the specification

These mistakes normally will be noticed only in late
project phases. Correction is very cost-intensive
28
Introduction to Software Engineering
UML:

UML stands for “Unified Modeling Language”

UML is the standard language for all the aspects of
software systems:

Functional requirements view

Static structural view

Dynamic behavior view

Specification, Visualization and Construction

Documentation

29

You might also like