0% found this document useful (0 votes)
16 views

Lecture 2 (CSC205)

Software engineering is the application of engineering principles to software development to obtain higher quality and precise results. It involves systematic and quantifiable approaches to software development, analysis, design, implementation and maintenance. The key aspects of software engineering are process models, methods and tools which work together to improve productivity, quality and reduce costs and issues. It provides a layered technology framework with quality focus, process layer for effective delivery and methods and tools to support the process.

Uploaded by

zainshah.5109
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

Lecture 2 (CSC205)

Software engineering is the application of engineering principles to software development to obtain higher quality and precise results. It involves systematic and quantifiable approaches to software development, analysis, design, implementation and maintenance. The key aspects of software engineering are process models, methods and tools which work together to improve productivity, quality and reduce costs and issues. It provides a layered technology framework with quality focus, process layer for effective delivery and methods and tools to support the process.

Uploaded by

zainshah.5109
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 27

Software Engineering Concepts

(CSC-205)

BS(SE)/BS(SE)- III gg

Lecture 2
Agenda
• SE: Def
• SE:Objectives
• Layered Technology
• Process vs. Product based

03/21/2024 2
What is Software?

Programs

Software
System
Documentation
Documentatio
Data n
User
Documentation

03/21/2024 3
Common issues
•The final Software doesn´t fulfill the needs of the
customer.

•Hard to extend and improve: if you want to add a


functionality later is mission impossible.

•Bad documentation.

•Bad quality: frequent errors, hard to use, ...

•More time and costs than expected


But

That never happens,

right?
Wrong!
Problems in Software
Development
Limitations of Non-engineered Software

Requirements

Here is the problem!!

Software
Software Production has a Poor Track Record
Example: Space Shuttle Software

• Cost: $10 Billion, millions of dollars more than planned


• Time: 3 years late
• Quality: First launch of Columbia was cancelled because of a
synchronization problem with the Shuttle's 5 onboard computers.
• Error was traced back to a change made 2 years earlier when a
programmer changed a delay factor in an interrupt handler from 50 to 80
milliseconds.
• The likelihood of the error was small enough, that the error caused no
harm during thousands of hours of testing.

03/21/2024 10
Chaos Report
Conclusion
Programming is NOT enough!

It is not enough to do your best: you must


Know what to do, and THEN do your best.
-- W. Edwards Deming
And Since…

A clever person solves a problem.


A wise person avoids it.
- Albert Einstein
Solution
Software Engineering
Engineering

Engineering is a scientific field that involves taking


our scientific understanding of the natural world and
using it to invent, Design, and Build things to solve
problems and achieve practical solutions.

03/21/2024 16
Software Engineering
What is it?

The application of a systematic, disciplined,


quantifiable approach to the development,
operation, and maintenance of software, and
the study of these approaches; that is, the
application of engineering to software.

-IEEE
Software Engineering
• “A systematic approach to the analysis, design, implementation and
maintenance of software.”
(The Free On-Line Dictionary of Computing)
• “ The systematic application of tools and techniques in the development of
computer-based applications.”
(Sue Conger in The New Software Engineering)
• “ Software Engineering is about designing and developing high-quality
software.”
(Shari Lawrence Pfleeger in Software Engineering -- The Production of
Quality Software)
Project-based software engineering

03/21/2024 19

Product-based software engineering


Software Engineering: A Problem-Solving Activity

• Analysis: Understand the nature of the problem and


break the problem into pieces
• Synthesis: Put the pieces together into a large
structure

For problem solving we use


• Techniques (methods):
• Formal procedures for producing results using some well-
defined notation
• Methodologies:
• Collection of techniques applied across software
development and unified by a philosophical approach
• Tools:
• Instrument
Isn’t or automated
there something systems to
more fundamental accomplish
than a technique
03/21/2024
problem “solving”? 20
Why Software Engineering?

• Major Goals:
- To increase software productivity and quality.
- To effectively control software schedule and planning.
- To reduce the cost of software development.
- To meet the customers’ needs and requirements.
- To enhance the conduction of software engineering process.
- To improve the current software engineering practice.
- To support the engineers’ activities in a systematic and efficient manner.
 Software Engineering

 A Layered Technology
tools

methods

process model

a “quality” focus
 Software Engineering
 A Layered Technology
• Any engineering approach must rest on organizational commitment to
quality which fosters a continuous process improvement culture.
• Process layer as the foundation defines a framework with activities for
effective delivery of software engineering technology. Establish the context
where products (model, data, report, and forms) are produced, milestone are
established, quality is ensured and change is managed.
• Method provides technical how-to’s for building software. It
encompasses many tasks including communication, requirement analysis,
design modeling, program construction, testing and support.
• Tools provide automated or semi-automated support for the process and
methods.
 A Software Engineering
Framework
• A quality focus
• Any engineering approach must rest on organizational commitment to quality which
fosters a continuous process improvement culture.
• Process layer
• The foundation for software engineering is the process layer
• Defines a framework that must be established for effective delivery of software
engineering technology
• Establish a context where
• Products (model, data, report, and forms) are produced
• Milestones are established
• Quality is ensured
• Change is managed
 A Software Engineering Framework
• Methods
• Provide the technical how-to for building software
• Methods encompass a broad array of tasks
• Communication , requirements analysis, design modeling, program
construction, testing, and support

• Tools
• Provide automated or semi-automated support for the process and the
methods
• Integrated tools to support software development
• Called computer aided software engineering
Stages for Software Development

Requirements
Analysis

Software Design

Implementation

Testing

Maintenance
03/21/2024 26
SW Eng. vs. System Eng.
Systems Engineering:
 Interdisciplinary engineering field (computer, software, and process
eng.).
 Focuses on how complex engineering projects should be designed
and managed.
Systems Software
Engineering Engineering
• All aspects of • Deals with the
computer-based design,
systems development and
development: HW delivery of SW.
+ SW + Process. • Is part of Systems 03/21/2024 27
• Older than SWE. Engineering.

You might also like