Professional Documents
Culture Documents
Unit No 1 Slides
Unit No 1 Slides
Unit No 1 Slides
Distribution of Marks:
Component Marks Number of Duration Scheduled Date Scheduled Time
Questions
Quiz – I 10 50 MCQ 30 Mins 11 September 2021 3:00 to 3:30 PM
Quiz – II 10 50 MCQ 30 Mins 30 September 2021 8:00 to 8:30 PM
Quiz – III 10 50 MCQ 30 Mins 30 October 2021 3:00 to 3:30 PM
Quiz – IV 10 50 MCQ 30 Mins 20 November 2021 3:00 to 3:30 PM
Running Quiz
12 1-3 (MCQ) in a class 15-20 Secs each Any time during any class
(Surprise)
End Semester
48 5 (Descriptive) 125 mins To be Announced Later
Examination
Total Marks 100
Software Engineering
Course Outline:
Aim
Develop a software
- OF HIGH QUALITY
- OF LOW COST
- ON SCHEDULE
That is, the “mantra” is to develop a software of high quality, low cost
and on time.
System
A collection of elements related in a way that allows the
accomplishment of some tangible object.
Hardware Software
Hardware Trade-offs Software
Engineering Engineering
Software
A software is thought of as either
• A collection of programs.
OR
• Instructions which when executed provide desired functions and
performance.
OR
• Data structures that enable the program to adequately manipulate
information.
OR
• Documents that describe the operations and use of the programs.
This definition clearly states that software is not just programs but
includes all the associated data and documentation.
Characteristics of Software
• Is a logical or conceptual entity rather than a physical system
element.
• Is intangible.
• Is developed or engineered not manufactured.
• Does not wear out (due to excessive use or environmental hazards).
Instead it fails or deteriorates.
• Is built rather than assembled.
• Does not have spare parts.
Evolution of Software
The role of computer software has undergone significant change through
the 2nd half of the 20th century,
USER – wants the software product to be reliable, efficient and easy to use.
PRODUCER – wants it to be verifiable, maintainable, portable and extensible.
MANAGER – wants the process of software development to be productive and easy to control.
• User Interface
Verifiability
• If its properties can be verified easily.
• Through Formal Analysis Methods or Testing.
Maintainability
• Modifications made to a software system after its initial release.
Corrective Maintenance
Adaptive Maintenance
Perfective Maintenance
Maintainability
• Software Crisis
• Requires:
• Careful scheduling,
• accurate work estimation, and
• clearly specified and verifiable milestones.
Visibility
• Visible – if all of its steps and its current status are documented clearly.
Discussed Software Qualities
• Correctness, Reliability and Robustness
• Performance
• User Friendliness
• Verifiability
• Maintainability
• Reusability
• Portability
• Understandability
• Interoperability
• Productivity
• Timeliness
• Visibility
Software Quality Life Cycle
Try This…..
Internal External Product-Related Process-Related
Correctness, Reliability and Robustness
Performance
User Friendliness
Verifiability √ √
Maintainability √ √
Reusability
Portability
Understandability
Interoperability
Productivity
Timeliness √ √
Visibility
Software Problems / Challenges
Software Problems (contd.)
Software is Expensive
Over the past decade, with the advancement of technology, the cost
of hardware has consistently decreased. On the other hand, the cost
of software is increasing.
Software Problems (contd.)
Late, Costly, and Unreliable
Maintenance Phase
Maintenance involves:
• Understanding the existing software.
• Understanding the effects of change.
• Making the changes.
• Testing the new parts.
• Retesting the old parts.
Problems / Challenges
Software Engineering Problems
Problem of Scale (contd.)
Portability
Maintainability
Reusability
Product Operation Understandability
Verifiability
Interoperability
Product Transition
Better Management
Achieve Consistency
Lower Cost
Feasibility Study
Software Development Methodologies
Requirement Specification
Plan a SOLUTION.
First step in moving from the “Problem Doman” to “Solution Domain”.
System Design
What components are needed i.e., identifying the modules,
its specifications & how they interact.
Detailed Design
How the components can be implemented in software.
Software Development Methodologies
Unit Testing
Integration Testing
System Testing
Acceptance Testing
Software Development Methodologies
Corrective
Adaptive
Perfective