Software Engineering Principles

 
Fundamental Terms / Concepts
Science and Engineering
Discover
Relationships that exist but are not found
Formulas;  chemical composition,  d=r*t;  calories in fats,
carbohydrates, proteins;  experimentation;
Astrophysics – origins of the universe
Build
Apply principles of science and mathematics to real needs,
commodities, structures, products, etc.
Software Engineering;  Software Development
2
Fundamental Concepts
Software Engineering;  Software Development
Job positions:
Software developer
Programmer
Software engineer
Analyst / Programmer
Senior … what have you…
3
What is Software Engineering?
The process of solving customers’ problems by the
systematic development and evolution of large, high-
quality software systems within cost, time and other
constraints
Note:
Process, systematic (not ad hoc), evolutionary…
Constraints:  high quality, cost, time, meets user
requirements
4
Analysis of the Definition:
Systematic development and evolution
An engineering process involves applying 
well understood
techniques
 in a 
organized
 and 
disciplined
 way
Large, high quality software systems
Software engineering techniques are needed because large
systems 
cannot be completely understood
 by one person
Cost, time and other constraints
Finite resources
The benefit must outweigh the cost
5
Best Practices of Software
Engineering
6
D
D
e
e
v
v
e
e
l
l
o
o
p
p
 
 
I
I
t
t
e
e
r
r
a
a
t
t
i
i
v
v
e
e
l
l
y
y
C
C
o
o
n
n
t
t
r
r
o
o
l
l
 
 
C
C
h
h
a
a
n
n
g
g
e
e
s
s
U
U
s
s
e
e
 
 
C
C
o
o
m
m
p
p
o
o
n
n
e
e
n
n
t
t
A
A
r
r
c
c
h
h
i
i
t
t
e
e
c
c
t
t
u
u
r
r
e
e
s
s
M
M
a
a
n
n
a
a
g
g
e
e
 
 
R
R
e
e
q
q
u
u
i
i
r
r
e
e
m
m
e
e
n
n
t
t
s
s
M
M
o
o
d
d
e
e
l
l
 
 
V
V
i
i
s
s
u
u
a
a
l
l
l
l
y
y
 
 
V
V
e
e
r
r
i
i
f
f
y
y
Q
Q
u
u
a
a
l
l
i
i
t
t
y
y
Practice 1: Develop Software Iteratively
Until recently, developed under assumption -   most
requirements can be identified up front.
The research deconstructing this myth includes work by
Capers Jones. (See next slide) In this very large study of 6,700
projects, 
creeping
 
requirements 
— those not anticipated
near the start—are a 
very significant fact of software
development life
, ranging from around 25% on average
projects up to 50% on larger ones.
7
8
 
Look up a definition of ‘Function Points.’
Interestingly,
An initial design will 
likely be flawed
 with respect to its key
requirements.  Requirements rarely 
fully known
 up front!
Late-phase discovery of design defects
 results in costly over-
runs and/or project cancellation
Oftentimes requirements change – even during implementation!
While large projects are more prone to cost overruns,
medium-size/small projects are vulnerable to cancellation.
The key reasons continue to be
poor project planning and management,
shortage of technical and project management expertise,
lack of technology infrastructure,
disinterested senior management, and
inappropriate project teams.”
9
Waterfall Delays Risks
10
 
R
I
S
K
T
 
 
 
I
 
 
 
M
 
 
 
E
I
n
t
e
g
r
a
t
i
o
n
S
y
s
t
e
m
 
T
e
s
t
C
o
d
e
D
e
s
i
g
n
R
e
q
u
i
r
e
m
e
n
t
s
 
W
a
t
e
r
f
a
l
l
 
r
i
s
k
Iterative Development
11
 
  
Earliest iterations address greatest risks
Each iteration produces an executable release
Each iteration includes integration, test, and assessment!
Objective Milestones:  short-term focus;  short term successes!
I
t
e
r
a
t
i
o
n
 
3
 
12
Accelerate Risk Reduction
Accelerate Risk Reduction
I
t
e
r
a
t
i
v
e
T
 
 
 
I
 
 
 
M
 
 
 
E
 Iteration
 Iteration
 Iteration
 Iteration
 Iteration
R
i
s
k
 
r
e
d
u
c
t
i
o
n
R
I
S
K
W
a
t
e
r
f
a
l
l
 
r
i
s
k
Walker Royce, 1995
Summary
Much more about iteration and iteration planning
later
You will see some of these again – and, more
importantly, 
use
 this information in your own iteration
planning.
13
 TEXT BOOKS
1. Richard Fairley, “Software Engineering Concepts”,
Tata McGraw Hill, 1997.
2. Roger S. Pressman, “Software Engineering - A
Practitioner’s Approach”,6th Ed., McGraw Hill
International, 2005.
Books for reference
1. Ian Sommerville, “Software Engineering”, Addition
Wesely, Singapore,2002
2. K.K.Agarwal&Yogesh Singh, “Software Engineering”,
New Age Intl.Publishers, Revised 2nd Ed., 2005.
14
 
THANK YOU
15
Slide Note
Embed
Share

Discover the fundamental terms and concepts in science and engineering to uncover relationships, without relying solely on formulas, and delve into software engineering by exploring job positions, defining software engineering, analyzing its principles, and highlighting best practices. Learn about iterative software development and the importance of managing requirements effectively.

  • Software engineering
  • Science
  • Engineering
  • Principles
  • Development

Uploaded on Oct 10, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Fundamental Terms / Concepts Science and Engineering Discover Relationships that exist but are not found Formulas; chemical composition, d=r*t; calories in fats, carbohydrates, proteins; experimentation; Astrophysics origins of the universe Build Apply principles of science and mathematics to real needs, commodities, structures, products, etc. Software Engineering; Software Development 2

  2. Fundamental Concepts Software Engineering; Software Development Job positions: Software developer Programmer Software engineer Analyst / Programmer Senior what have you 3

  3. What is Software Engineering? The process of solving customers problems by the systematic development and evolution of large, high- quality software systems within cost, time and other constraints Note: Process, systematic (not ad hoc), evolutionary Constraints: high quality, cost, time, meets user requirements 4

  4. Analysis of the Definition: Systematic development and evolution An engineering process involves applying well understood techniques in a organized and disciplined way Large, high quality software systems Software engineering techniques are needed because large systems cannot be completely understood by one person Cost, time and other constraints Finite resources The benefit must outweigh the cost 5

  5. Best Practices of Software Engineering Develop Iteratively Use Model Visually Verify Quality Manage Requirements Component Architectures Control Changes 6

  6. Practice 1: Develop Software Iteratively Until recently, developed under assumption - most requirements can be identified up front. The research deconstructing this myth includes work by Capers Jones. (See next slide) In this very large study of 6,700 projects, creeping requirements those not anticipated near the start are a very significant fact of software development life, ranging from around 25% on average projects up to 50% on larger ones. 7

  7. Look up a definition of Function Points. 8

  8. Interestingly, An initial design will likely be flawed with respect to its key requirements. Requirements rarely fully known up front! Late-phase discovery of design defects results in costly over- runs and/or project cancellation Oftentimes requirements change even during implementation! While large projects are more prone to cost overruns, medium-size/small projects are vulnerable to cancellation. The key reasons continue to be poor project planning and management, shortage of technical and project management expertise, lack of technology infrastructure, disinterested senior management, and inappropriate project teams. 9

  9. Waterfall Delays Risks R Requirements I Design S Code Waterfall risk K Integration System Test T I M E 10

  10. Iterative Development Iteration 1 Iteration 3 Iteration 2 Earliest iterations address greatest risks Each iteration produces an executable release Each iteration includes integration, test, and assessment! Objective Milestones: short-term focus; short term successes! 11

  11. Accelerate Risk Reduction Walker Royce, 1995 R I Risk reduction S Waterfall risk Iterative K Iteration Iteration Iteration Iteration Iteration T I M E 12

  12. Summary Much more about iteration and iteration planning later You will see some of these again and, more importantly, use this information in your own iteration planning. 13

  13. TEXT BOOKS 1. Richard Fairley, Software Engineering Concepts , Tata McGraw Hill, 1997. 2. Roger S. Pressman, Software Engineering - A Practitioner s Approach ,6th Ed., McGraw Hill International, 2005. Books for reference 1. Ian Sommerville, Software Engineering , Addition Wesely, Singapore,2002 2. K.K.Agarwal&Yogesh Singh, Software Engineering , New Age Intl.Publishers, Revised 2nd Ed., 2005. 14

  14. THANK YOU 15

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#