1-Software Engineering IT 501/601
1-Software Engineering IT 501/601
SOFTWARE ENGINEERING
IT 501/601
INTRODUCTION
SOFTWARE:
Software is a generic term for organized collections of
computer data and instructions.
System software is responsible for controlling, integrating,
and managing the individual hardware components of a
computer system.
Operating system, disk formatters, file
managers, display managers, text editors, user
authentication (login) and management tools, and
networking and device control software.
Application software is used to accomplish specific tasks
other than just running the computer system.
Microsoft Office - word processor, spreadsheet,
database, etc. DBMS – SQL, DDL, DML, TCL
Introduction to Software Engineering1 2
• Software is developed or engineered, it is not
manufactured in the classical sense.
• Software doesn’t wear out.
Increased failure rate
due to side effect
Infant mortality
Change
Failure rate
Failure rate
Wear out
Time Time
HARDWARE SOFTWARE
Technology
an art to an Craf Systematic use of past experience
Engineering Unorganized use of past experience
discipline in
last 50 yrs.
Esoteric use of past experience
Art
Time
Exploratory programming: earlier style, own intuitions, whims
and fancies, art is guided by
intuitions. Secrecy in programs.
Craftsmanship: Tradesman sharing his knowledge with the
apprentices and growing of knowledge pool.
Engineering: Systematic organization of knowledge, use of
scientific tools and SW engineering techniques.
Introduction to Software Engineering1 8
Sofware Crisis
1. Software products became larger
2. More professionals got involved
3. Cost escalation, Time overrun
4. More resources (time, budget, HW…)
5. Complexity of project (modularization, integration)
6. Difficulty in debugging, handling errors, altering
7. Skill shortage 8. Low
productivity 9. Lack
of documentation 10. Frequent
crashing, late delivery, project failures
1. Cheap to buy
2. Easy to learn
3. Easy to use
4. Solves the problem
5. Reliable
6. Powerful
7. Fast
8. Flexible
9. Available
1. Cheap to produce
2. Quick to produce
3. Well-defined behavior
4. Easy to "sell"
5. Easy to maintain
6. Reliable
7. Easy to use
8. Flexible
a. Quality Focus
Organizational Commitment to Quality
b. Process
Foundation of Software Engineering
c. Methods
Technical ‘How-To’s
d. Tools
(Semi-) Automated Support for Process and
Methods
1. Definition Phase
Key Requirements are identified Major Tasks
System or Information Engineering Software Project
Planning & Management Requirements
Analysis
2. Development Phase
Focuses on ‘How’. Major Tasks Software Design
Code Generation Software Testing