SE Lec 1
SE Lec 1
Resource Person:
Muhammad Nadem,
Email: Muhammad.Nadeem@umt.edu.pk
Why Software Engineering is
Important?
◦ Financial, security, and safety critical systems rely
on software
◦ The economies of all developed nations are
dependent on software
◦ There is an increasing need to cost effectively
develop high-quality software
Motivation and need of software
engineering:
1.Higher rate of change in user requirements
2.Environment on which the software is
working.
3.Large software
4.Scalability
5.Cost
6.Dynamic Nature
7.Quality Management
Motivation and need of
software engineering:
To predict time, effort, and cost
To improve software quality
To improve maintainability
To meet increasing demands
To lower software costs
To successfully build large, complex
software systems
To facilitate group effort in developing
software
So what is Software
Engineering?
The branch of engineering associated with
the development of software product using
well-defined scientific principles, methods
and procedures is called software
engineering.
The outcome of software engineering is an
awareness, ..
Hardware Costs vs Software
Costs
Why is software so
expensive?
Hardware has made great advances
But, software has made great advances ...
We do the least understood tasks in
software.
◦ When task is simple & understood, encode it in
hardware
◦ Why?
Demand more and more of software
◦ Consider your cell phone
Size of programs continues to
grow
Trivial (small): 1 month, 1 programmer, 500
LOC,
◦ Intro programming assignments
Very small: 4 months, 1 programmer, 2000
LOC
◦ Course project
Medium: 3 years, 10s of programmers, 100K
LOC
◦ Optimizing compiler
Large: 5 years, 100s of programmers, 1M LOC
◦ MS Word, Excel
Very large: 10 years, 1000s of programmers, 10M
LOC
◦ Air traffic control,
◦ Telecommunications, space shuttle
Very, Very Large: 15+ years, 1000s programmers,
35M LOC
◦ W2K
Ultra-Large Scale: ? years, ? developers distributed,
1000s of sensors, decision units, heterogeneous
platforms, decentralized control Intelligent
transportation systems; healthcare systems
Whatʼs the problem?
Software cannot be built fast enough to
keep up with
◦ H/W advances
◦ Rising expectations
◦ Feature explosion
Increasing need for high reliability software
Whatʼs the problem?
(cont)
Software is difficult to maintain “aging
software”
Difficult to estimate software costs and
schedules
Too many projects fail
Why ?
Why is software development so
difficult?
Communication
◦ Between customer and developer
Poor problem definition is largest cause of
failed software projects
Within development team
More people = more communication
New programmers need training
Why is software development so
difficult? (cont)
Project characteristics
◦ Novelty
◦ Changing requirements
5 x cost during development up to 100 x
cost during maintenance
◦ Hardware/software conjuration
◦ Security requirements
◦ Real time requirements
◦ Reliability requirements
Why is software development so
difficult? (cont)
Personnel characteristics
◦ Ability
◦ Prior experience
◦ Communication skills
◦ Team cooperation
◦ Training
Why is software development so
difficult? (cont)
Facilities and resources
◦ Identification
◦ Acquisition
Challenges of building
Software System:
Management issues
◦ Realistic goals
◦ Cost estimation
◦ Scheduling
◦ Resource allocation
◦ Quality assurance
◦ Version control
◦ Contracts
Muhammad Nadeem, muhamma
d.nadeem@pucit.edu.pk
Importance of Building
Software Systems:
Promote your business
Improves sales and service
Direct communication
Increases customers’ engagement
Helps in marketing your business
solution.
Software does not wear-out but it is
deteriorate or decline.
Advice: if you want to reduce software
software systems
Key points