Lect 1 2 Introduction
Lect 1 2 Introduction
SOFTWARE
ENGINEERING
• EMBEDDED SOFTWARE-:
EMBEDDED SOFTWARE RESIDES IN READ-ONLY
MEMORY AND IS USED TO CONTROL PRODUCTS
AND SYSTEMS FOR THE CONSUMER AND
INDUSTRIAL MARKETS. IT HAS VERY LIMITED AND
ESOTERIC FUNCTIONS AND CONTROL CAPABILITY.
Requirements
Here is the problem!!
Software
• ONE OF THE PROBLEMS WITH COMPLEX SYSTEM DESIGN IS THAT
YOU CANNOT FORESEE THE REQUIREMENTS AT THE BEGINNING OF
THE PROJECT. IN MANY CASES, WHERE YOU THINK YOU CAN START
WITH A SET OF REQUIREMENTS, THAT SPECIFIES THE COMPLETELY THE
PROPERTIES OF YOUR SYSTEM YOU END UP WITH....
SOFTWARE PRODUCTION HAS A POOR
TRACK RECORD
EXAMPLE: SPACE SHUTTLE SOFTWARE
• COST: $10 BILLION, MILLIONS OF DOLLARS MORE THAN PLANNED
• TIME: 3 YEARS LATE
• QUALITY: FIRST LAUNCH OF COLUMBIA WAS CANCELLED BECAUSE OF A
SYNCHRONIZATION PROBLEM WITH THE SHUTTLE'S 5 ONBOARD
COMPUTERS.
• ERROR WAS TRACED BACK TO A CHANGE MADE 2 YEARS EARLIER WHEN A
PROGRAMMER CHANGED A DELAY FACTOR IN AN INTERRUPT HANDLER FROM 50
TO 80 MILLISECONDS.
• THE LIKELIHOOD OF THE ERROR WAS SMALL ENOUGH, THAT THE ERROR CAUSED
NO HARM DURING THOUSANDS OF HOURS OF TESTING.
- IN A WELL-DEFINED PROCESS
(E.G. USING ORGANIZATIONAL STANDARDS FOR INTERPROCESS COMMUNICATION, DATA
FORMATS, ERROR HANDLING ETC.)
NOTE: THE “INPUTS” AND “OUTPUTS” MOST OFTEN REFER TO REQUIREMENTS, SOFTWARE
SPECIFICATIONS, THE SOFTWARE ITSELF, DOCUMENTATION, TEST INPUTS/OUTPUTS AND SIMILAR
SOFTWARE ARTIFACTS.
BACK
BY “QUANTİFİABLE” WE MEAN:
• THE SİZE AND EXTENT OF THE REQUİRED EFFORT
23
Software Engineering
Objective
To produce software that is:
Customer Interview
BASIC REQUIREMENTS:
Feasibility
Scalability
Hardware
Input
Out
Interface
Fast Speed
User Friendly
ANALYSIS:
❖Objective
❖Criteria
❖Review
❖Approval
DESIGN:
Understandable Interface.
User Friendly/Easy to Use.
Fast Speed.
CODING:
It is the logical part of the development process. In this
phase lots of brains are working for coding and get the
final successful result for the software. In this A team of
programmers is assigned by the company to work on the
software.
C++
Java
C#
TESTING:
Dynamic
Static
Errors
IMPLEMENTATION:
This is the final phase of the software
development life cycle. In this stage, if the
software runs on various systems by users or
buyers. If it runs smoothly on these systems
without any error, then it is considered ready to be
launched.
ADVANTAGE:
➢Requirements Gathering.
➢Analysis.
➢Design.
SDLC MODELS
TO HELP UNDERSTAND AND IMPLEMENT
THE SDLC PHASES VARIOUS SDLC
MODELS HAVE BEEN CREATED BY
SOFTWARE DEVELOPMENT EXPERTS,
UNIVERSITIES, AND STANDARDS
ORGANIZATIONS.
WHY USING SDLC
•
MODLES
Provides basis for project planning,
estimating & scheduling
• Provides framework for standard set
of terminologies, activities &
deliverables
• Provides mechanism for project tracking
& control
• Increases visibility of project progress to
all stakeholders
ADVANTAGES
• Increased development speed
• Increased product quality ‘
• Improved tracking & control
• Improved client relations
• Decreased project risk
• Decreased project management overhead
COMMON LIFE CYCLE MODELS
• Waterfall
• Spiral/Iterative
• Agile
WA T E R F A L L MODEL
Analysis
Design
Development
Testing
Deployment
Maintenance
CONTD..
Requirements Design
Gathering
R e p e at
Enhancement
Maintenance
Iterative
Development
Quality
Deployment Assurance
SPIRAL MODEL
Discover
Test
Design Discover
Develop
Test
Design Discover
Develop
Test
Design
Develop
AGILE MODEL
……..1……..
CODE!!!
3. Implementation
Code!!!
……….4……….