0% found this document useful (0 votes)
26 views38 pages

SE - Lecture 1-2

learn software engineering basics

Uploaded by

hashimabbass1355
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)
26 views38 pages

SE - Lecture 1-2

learn software engineering basics

Uploaded by

hashimabbass1355
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/ 38

Software

Engineering

An Introduction

1
Software Engineering

Instructor: Faiza Nawaz


About the Course
Syllabus
• Lecture slides presented in class.
• Books:
1. Software Engineering A practitioner’s approach by Roger S.
Pressman, 7th edition.
2. Object-Oriented & Classical Software Engineering 8th ed. by S.R.
Schach.

2
Grading Scheme

• Four Assignments.
• Four Quiz
• Midterm exam:
• Project:
– Presentation: 10%
– Report: 10%
• Final Exam:

3
4
!"#$%&'()*+),"-./(0

• Complex ≠ complicated
• Complex = composed of many simple parts related to one another
• Complicated = not well understood, or explained

Cutting wood Nailing Painting


Setting posts

Complexity Example: Scheduling Fence Construction Tasks

5
Hutchins, Cognition in the Wild, The MIT Press, 1995.
More Complexity

Suppose today is Tuesday, November 29, 2024

What day will be on January 3, 2025?

Would it rain on January 3, 2025?


Now this is complicated

A self-driving train?
It is a complex problem : it will have many systems on board to open and close
doors, control the temperature inside, detect obstacles, recognize station

Hutchins, Cognition in the Wild, The MIT Press, 1995. [ p. 315 ]


Course Objective
Course Objective:
To provide students with an appreciation for software engineering tools
and methodologies in the construction of computer-based systems.

Course Overview
This course covers a range of Software Engineering (SE) materials. The
emphasis is on the knowledge needed to be able to model, design,
implement and evaluate diverse software systems effectively. The
content starts with development lifecycle models and then continues to
cover requirements specification; the Unified Modeling Language
(UML), software architecture, object-oriented, design patterns and
testing. The students will obtain knowledge about software engineering
concepts such as software processes models, methods and techniques
for architectural design, testing, planning, configuration management
and software quality management. Consequently, students undertake
a substantial group project, working through a number of stages of the
development of a larger software application.

7
Topics to be covered
• Introduction, History and Economics
• Software Life cycle and Documentation Techniques
• Design Techniques and Unified Modeling language
• Estimating, planning and scheduling
• Agile and real-time development
• Software testing, review and estimation strategies
• Software maintenance and configuration management
• Legal aspects of software engineering
• The Future of Software Development

8
What is…..

9
What is a Software

A collection of instructions
that enable the user to
interact with a computer, its
hardware, or perform tasks.

10
What is a Engineering

Engineering is the application of


science and math to solve problems.

Engineers, are people who invent,


design, analyze, build and test
machines, systems, structures and
materials to fulfill objectives

11
What is Software Engineering?

• The art of programming only is no longer sufficient to construct large programs.

• There’re serious problems in the cost, timeliness, maintenance, and quality of many
software products.

• Software engineering has the objective of solving these problems by


– producing good quality,
– maintainable software,
– on time,
– Within budget.
– balance large-scale product development, with safety, reliability and scheduling

12
Software Engineering Definition

The seminal definition:


SE is the establishment and use of sound engineering
principles in order to obtain economical software that is
reliable and works efficiently on real machines.

The IEEE definition:


Software Engineering: (1) The application of a
systematic, disciplined, quantifiable approach to the
development, operation, and maintenance of software;
that is, the application of engineering to software.
(2) The study of approaches as in (1).

Fritz Bauer, at the 1st NATO Conference on Software Engineering, 1969


IEEE Standard Glossary of Software Engineering Terminology,” IEEE std 610.12-1990, 1990
14
!"#$%&'(),'*+*+
• It was in Late 1960’s, Many Software Projects failed.
• Many SW projects were late, over budget , providing
unreliable performance and much expensive to maintain.
• Many projects produced products which did not satisfy the
customers needs and requirements.
• Demand of new software increased faster than the ability
to generate new software.

All the above attributes were called “ software crises” . So the


term “Software Engineering” was introduced in Late 1960’s to
discuss and overcome the Software crisis.

15
Historical Aspects
• In July 1940, construction of a suspension
bridge over the Tacoma Narrows, in
Washington State, was completed. Soon after,
it was discovered that the bridge swayed and
buckled dangerously in windy conditions.
• Approaching cars would alternately disappear
into valleys and then reappear as that part of
the bridge rose again.
• on November 7, 1940, the bridge collapsed in
a 42 mile per hour wind; fortunately, the
bridge had been closed to all traffic some
hours earlier

Video link to bridge collaps


https://upload.wikimedia.org/wikipedia/commons/transcoded/f/f2/Tacoma_Narrows_Bridge_destruction.ogv/Tacoma_Narrows
_Bridge_destruction.ogv.480p.vp9.webm

Stephen, Schach. "Object-Oriented and Classical Software Engineering." (2011) 16


Historical Aspects
• In January 2004. A new bridge was being built over the Upper Rhine River,
to connect Germany and Switzerland. The German half of the bridge was
designed and constructed by a team of German engineers; the Swiss half
by a Swiss team.
• When the two parts were connected, it immediately became apparent
that the German half was some 21 inches (54 centimeters) higher than
the Swiss half. Major reconstruction was needed to correct the problem,
which was caused by wrongly correcting for the fact that “sea level” is
taken by Swiss engineers to be the average level of the Mediterranean
Sea, whereas German engineers use the North Sea.

Stephen, Schach. "Object-Oriented and Classical Software Engineering." (2011) www.alamy.co 17


m
The Mariner 1 Spacecraft, 1962
• A data-gathering space mission by NASA
to explore Venus. It did not go to plan.
• Soon after the rocket was launched, it
veered dangerously off course. Worried
that the rocket was heading towards a
crash-landing on earth, NASA engineers
issued a self-destruct command and
the craft was obliterated about 290
seconds after launch.
• An investigation revealed the cause to
be a very simple software error. A
hyphen was omitted in a line of code,
• The overall cost of the omission was
reported to be more than $18 million at
the time (about $169 million in today’s
world).

18
Historical Aspects
• Despite many software success stories, an unacceptably
large proportion of software products still are being
delivered late, over budget, and with residual faults

19
Project Failure Percentage

• Khan, Ahmed. (2011). Cloud services for collaborative web based project management system. 6. 4. 20
!"#$%&'()123*2(('*23

Software engineering (SE) is the application of engineering to the development of


software in a systematic method

A bridge from customer needs to programming implementation

Programmer
Customer

First law of software engineering


Software engineer is willing to learn the problem domain
(problem cannot be solved without understanding it first)
The Role of Software Engg.

22
4'"3'&--*23)
5'
)!"#$%&'()123*2(('*23
6

23
Core steps to build a Restaurant App

24
Core steps to build a Restaurant App

4. Define Specs.

25
HR requirement
To implement such a project, you will need a
team of at least 5 specialists:

• Designer
• iOS developer
• Android developer
• Backend developer
• QA specialist
• Project manager to coordinate the teamwork
(Optional but recommended)

26
Why Software Engineering?

What do software engineers


do?

Non-productive
Activities
30%

Interaction
Work alone 50%
20%

programming ≠ software engineering


personal activity team activity
small, clear problem large problem
27
A productive and non productive day for a sw Engineer

https://searchsoftwarequality.techtarget.com/photostory/4500271451/Measuring-software-developer-productivity-one-task-at-a-time/3/Whats-good-for-software- 28
development-productivity-and-whats-not
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC) is a process used by the
software industry to design, develop and test high quality software.

The SDLC aims to produce a high-quality software that meets or exceeds


customer expectations, reaches completion within times and cost
estimates.

The life cycle defines a methodology for improving the quality of software and the
overall development process.

29
The six phases of the classical SW life-cycle

SDLC Models
1. Waterfall Model
2. Iterative Model
3. Spiral Model
4. V-Model

Davis, Alan M., Edward H. Bersoff, and Edward R. Comer. "A strategy for comparing alternative software development life cycle 30
models." IEEE Transactions on software Engineering 14.10 (1988): 1453-1461.
Classical View of Maintenance

The solid line is the best


fit for the data relating to
the larger software
projects, and the dashed
line is the best fit for the
smaller software
projects.

31
Barry Boehm, Software Engineering Economics, © 1981, p. 40. Adapted by permission of Prentice Hall, Inc., Englewood Cliffs, NJ.
789)!7)&2:)!1)*+);-."'$&2$6
• The economies of ALL developed nations are dependent on software.

• More and more systems are software controlled ( transportation, medical,


telecommunications, military, industrial, entertainment,)

• Software engineering is concerned with theories, methods and tools for


professional software development.

• Expenditure on software represents a


significant fraction of GNP in all developed countries

32
Questions
Q01. S/W engineering aims to develop software
A. On time and within budget.
B. which is fault-free.
C. which meets the client’s needs.
D. All of A–C.

33
Q03. The analysis phase of Software engineering

A. Determines what the program will do


B. Determines how the program will work
C. Determines whether or not the program
works
D. Adds new features to the delivered program

34
Q04: SDLC means

A. Software Development life cycle


B. System development life cycle
C. Simple development learning cycle
D. None of the above

35
Q05: The individual or organization who wants a
product to be developed is known as the:

A. Developer
B. User
C. Contractor
D. Initiator
E. Client.
36
37
38

You might also like