0% found this document useful (0 votes)
8 views20 pages

Week 1

The document provides an introduction to software and software engineering, highlighting the distinction between generic and customized software. It discusses the software crisis through examples like the Ariane 5 explosion and the London Ambulance Service failure, emphasizing the importance of a disciplined approach in software engineering. Additionally, it outlines the software development life cycle (SDLC) and various SDLC models, including waterfall, V-shaped, iterative/incremental, and DevOps, along with an assignment for further research on these models.

Uploaded by

hananstemec
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)
8 views20 pages

Week 1

The document provides an introduction to software and software engineering, highlighting the distinction between generic and customized software. It discusses the software crisis through examples like the Ariane 5 explosion and the London Ambulance Service failure, emphasizing the importance of a disciplined approach in software engineering. Additionally, it outlines the software development life cycle (SDLC) and various SDLC models, including waterfall, V-shaped, iterative/incremental, and DevOps, along with an assignment for further research on these models.

Uploaded by

hananstemec
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/ 20

Software

Engineering 1
Week 1
01
Introduction
What is Software ?
● Software is more than just a program code
● Software is the collection of computer programs, data ,procedures rules and associated
documentation
Programs

Software Is Classified into The Following Two Classes: Software


Data Documentation
1. Generic Software:

o Stand-alone systems that are marketed and sold to any customer who wishes to buy them.
• Examples: PC software such as office (word, excel), graphics programs, project management tools .
2. Customized Software (bespoke):

o Software that is commissioned by a specific customer to meet their own needs.


• Examples: embedded control systems, air traffic control software, traffic monitoring systems.
Software Crisis
● Example 1 : Ariane 5 Explosion

European Space Agency spent 10 years and $7


billion to produce Ariane 5.

Crash after 36.7 seconds.

Caused by an overflow error. Trying to store a 64-


bit number into a 16-bit space.
Software Crisis
Example 2 : 1992, London Ambulance Service

• Considered the largest ambulance service in the


world.

• Overloaded problem.

• It was unable to keep track of the ambulances


and their statuses. Sending multiple units to
some locations and no units to other locations.

• Generates many exceptions messages.

• 46 deaths
What is software engineering ?
o Software engineering goes beyond simply writing code. It's a systematic and
disciplined approach for developing, maintaining, and documenting software
systems.
o It encompasses the entire lifecycle of software, from the initial idea to design,
development, testing, deployment, and ultimately, ongoing maintenance

● Complex systems need a disciplined approach for designing,


developing and managing them.
What is difference between software engineering and system engineering ?

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

What is difference between software engineering and computer science?


Myths and misconception about Software engineering

Myth 1: Software engineering Myth 2 Creativity has no place


is all about coding. in software engineering, it's
all about following strict rules

• Reality : While coding is a crucial • Reality : Software engineering


skill, it's only one aspect of software combines structured
engineering. methodologies with creativity,
• It involves the entire software focusing on innovative solutions,
development lifecycle, including user interfaces, and elegant code
design, planning, testing, deploymen structures to solve problems
t, and maintenance
Myths and misconception about Software
engineering

Myth 3: All Projects Should Myth 4: Documentation Is a


Follow the Same Development Waste of Time
Process.

• Reality : Different software projects • Reality : documentation plays a


have unique requirements and critical role in maintaining and
constraints. Choosing the right scaling software systems.
approach for a specific project is • Well-written documentation
crucial for its success improves code comprehension,
facilitates, and assists in
troubleshooting and debugging
Attributes of Good software

• Good software should deliver the required functionality and performance to the
user and should be maintainable, dependable and usable.
o Maintainability: software should be written in such a way that it may evolve to
meet the changing needs of customer.
o Dependability: software dependability has a range of characteristics, including
reliability, security and safety.
o Efficiency: efficiency includes responsiveness, processing time, memory
utilization etc.…
o Usability: it should have an appropriate user interface and
adequate documentation.
Software development
life cycle
• What is Software Development Life Cycle?

• SDLC or the Software Development Life Cycle is a well-structured flow of phases that help
an organization to produce software with the highest quality and lowest cost in the
shortest time possible.

The SDLC Phases

SDLC models
• Is an abstract representation of a process It presents a description of a process from some
particular perspective.
THE MOST COMMON SDLC Models:
The waterfall model represents the oldest, simplest, and most structured
methodology. Each phase depends on the outcome of the previous phase, and
all phases run sequentially.
V-Shaped Model: An extension of the waterfall model, this SDLC
methodology tests at each stage of development. As with waterfall, this process
can run into roadblocks.
Iterative/incremental models: based on repetition Developers create a version
very quickly and for relatively little cost, then test and improve it through rapid
and successive versions.
• The most common example of iterative/incremental SDLC models is agile models.
• The Agile models separate the product into cycles and delivers a working product
very quickly.
• DevOps: a set of practices that aims to improve collaboration and
communication between development and operations teams, with an emphasis
on automating the software delivery process.
Activity
Assignment 1

● Research and compare different SDLC models, identify and explain in detail at least
five advantages and five disadvantages. And which is the most suitable model for
specific scenarios For each model .
● NOTE : Upload your PDF file through this form

● https://forms.gle/MNESHLSKH1FBY3Mv8

You might also like