1-Intro To SE
1-Intro To SE
Engineering
Instructor: Mehroze Khan
•Software is:
(1) instructions (computer programs) that when executed provide desired
What is
features, function, and performance
Software?
(2) data structures that enable the programs to adequately manipulate
information
(3) documentation that describes the operation and use of the programs.
2
Failure Curve for Hardware
3
Software doesn't "wear out“.
Failure Curve for Software But it does deteriorate!
4
Why is SE Needed?
•Computers everywhere
•Toaster, Microwave, Temperature control of
A/C, Router, Surgical Equipment…
•Computers need to be managed
•Software runs on all computers
•Make lives comfortable, efficient, effective…
•SE practices ensure development of good
software to improve our living standard
Why Do We Need to Study SE?
•What could be the benefits?
Solving Problems
• Analysis
Solving Problems (continued)
• Synthesis
Legacy Software
1 2 3 4
software must be software must be software must be software must be
adapted to meet the enhanced to extended to make it re-architected to
needs of new implement new interoperable with make it viable within
computing business other more modern a network
environments or requirements. systems or environment .
technology. databases.
9
Software?
• Engineers’ Job?
• Make things work
• Apply theories, methodologies, tools appropriately
• Provide solutions in absence of applicable theories and methods
• Realize financial and organizational constraints
Aspects of Software Production?
Lifecycle
Requirements Design Coding Testing Deployment Maintenance
Analysis
• Phases
• Requirements analysis and definition
• System (architecture) design
• Program (detailed/procedural) design
• Writing programs (coding/implementation)
• Testing: unit, integration, system
• System delivery (deployment)
• Maintenance
Software Engineers?
• Acceptable Quality
• Usability
• Security
• Reliability
• Performance
Conflicts?
• Cost Effectiveness
• Engineering and operational feasibility
• Limited development budget
• Timely Completion
• Limited time
Manage
Conflicts…
Software Engineering
??
A Systems Approach (Contd.)
• A computer system must also be clearly described: System definition
of a paycheck production
An Engineering Approach
• Idea to build a house
• Asking someone to build the house
• Explaining requirements
• Getting designs
• Modifying + Approving designs
• Inspecting the construction Building a
• Adding new features House
• Testing household components
• Moving in
• Getting issues fixed after moving in
An Engineering Approach
• Determine and Analyze Requirements
• Produce and Document Overall Design
• Produce Detailed Specifications
• Identify and Design Components
• Build Components
• Test Components Building a
• Integrate Components
• Make final modifications after residents move in
House
• Continue Maintenance by the Residents
An Engineering Approach
• Requirement analysis and definition
• System design
• Program design
• Writing the programs
• Unit testing
• Integration testing Building a
• System testing System
• System delivery
• Maintenance
References
Acknowledgement
⚫ A few slides have been reused from UCF slides for the SE course