SE - L01 - Software and Software Engineering
SE - L01 - Software and Software Engineering
SE - L01 - Software and Software Engineering
SOFTWARE
SOFTWARE
ENGINEERING
ENGINEERING
(UNDERGRADUATE)
CSC 3114
M. MAHMUDUL HASAN
ASSISTANT PROFESSOR, CS, AIUB
(UNDERGRADUATE) http://www.dit.hua.gr/~m.hasan
Slide-2
WHY SYSTEM FAILS?
The system fails to meet the business requirements for which it was developed. The system is either
abandoned or expensive adaptive maintenance is undertaken.
There are performance shortcomings in the system, which make it inadequate for the users’ needs.
Again, it is either abandoned or amended incurring extra costs.
Errors appear in the developed system causing unexpected problems. Patches have to be applied at
extra cost.
Users reject the implemented system, lack of involvement in its development or lack of commitment to
it.
Systems are initially accepted but over time become un-maintainable and so pass into disuse.
MMH
Slide - 2
SCOPE OF SOFTWARE ENGINEERING
MMH
Slide - 3
SOFTWARE CHARACTERISTICS
MMH
Slide - 4
GOAL: COMPUTER SCIENCE VS. SOFTWARE ENGINEERING
CS: to investigate a variety of ways to produce S/W, some good and some bad
SE: to be interested in only those techniques that make sound economic sense
MMH
Slide - 5
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)
1. Requirements Analysis
2. Designing/Modeling
3. Coding /Development
4. Testing
5. Implementation/Integration phase
6. Operation/Maintenance
7. Documentation
MMH
Slide - 6
GOOD & BAD SOFTWARE
MMH
Slide - 7
FAULTS IN SOFTWARE DEVELOPMENT PHASES
60 to 70 percent of faults are specification and design faults
MMH
Slide - 9
COST OF DETECTION & CORRECTION OF A FAULT
MMH
Slide - 10
COST OF CHANGE
60-100x
1.5-6x
1x
MMH
Slide - 11
PRODUCT BATHTUB CURVE MODEL
“Infant Mortality” --
due to design or
Failure Rate manufacturing defects
“deteriorating” --
due to cumulative
affects of environments
Time
MMH
Slide - 12
SOFTWARE IDEALIZED CURVE
Failure Rate
Idealized Curve
Time
MMH
Slide - 13
SOFTWARE ACTUAL FAILURE CURVE
Actual Curve
Time
MMH
Slide - 14
WHAT IS SOFTWARE ENGINEERING?
Technologies that make it easier, faster, and less expensive to build high-quality computer
programs
A discipline aiming to the production of fault-free software, delivered on time and within
budget, that satisfies the users’ needs
MMH
Slide - 15
SOFTWARE APPLICATION
MMH
Slide - 16
SOFTWARE MYTHS (MANAGEMENT)
Myth1: We already have a book that’s full of standards and procedures for building s/w,
won’t that provide my people with everything they need to know?
Myth2: My people have state-of-the-art software development tools, after all, we buy them
the newest computers.
Myth3: If we get behind schedule, we can add more programmers and catch up.
Myth4: If I decide to outsource the software project to a third party, I can just relax and
let that firm build it.
MMH
Slide - 17
SOFTWARE MYTHS (CUSTOMER)
Myth2: Project requirements continually change, but change can be easily accommodated
because software is flexible.
MMH
Slide - 19
SOFTWARE MYTHS (PRACTITIONER)
Myth1: Once we write the program and get it to work, our job is done.
Fact: the sooner you begin writing code, the longer it will take you to get done.
Myth2: Until I get the program “running,” I have no way of assessing its quality.
Myth3: The only deliverable work product for a successful project is the working program.
MMH
Slide - 20
REFERENCES
R.S. Pressman & Associates, Inc. (2010). Software Engineering: A Practitioner’s Approach.
Kelly, J. C., Sherif, J. S., & Hops, J. (1992). An analysis of defect densities found during software
inspections. Journal of Systems and Software, 17(2), 111-117.
Bhandari, I., Halliday, M. J., Chaar, J., Chillarege, R., Jones, K., Atkinson, J. S., & Yonezawa, M.
(1994).
In-process improvement through defect data interpretation. IBM Systems Journal, 33(1), 182-214.