Unit 1 - Introduction to Software Engineering
Unit 1 - Introduction to Software Engineering
Software
Engineering
What is Software?
Software has a dual role. It is a product, but also a vehicle for delivering a
product.
Internet Software :
Programs that support internet accesses and applications. For example,
search engine, browser, e-commerce software, authoring tools.
Software Engineering
Software methods:
Software engineering methods provide the technical “how to’s” for
building software.
Software process:
Software engineering process is the glue that holds:
- technology together
- enables rational and timely development of computer
software.
Software engineering process is a framework of a set of key process
areas.
It forms a basis for:
- project management, budget and schedule control
- applications of technical methods
- product quality control
What is Software Engineering?
Software tools:
- programs provide automated or semi-automated support for the
process and methods.
- programs support engineers to perform their tasks in a systematic
and/or automatic manner.
Why Software Engineering?
Objectives:
Major Goals:
- To increase software productivity and quality.
- To effectively control software schedule and planning.
- To reduce the cost of software development.
- To meet the customers’ needs and requirements.
- To enhance the conduction of software engineering process.
- To improve the current software engineering practice.
- To support the engineers’ activities in a systematic and efficient
manner.
A Process Framework
Process Framework Activities
Communication
Planning
Modeling
Construction
Deployment
Umbrella Activities
Waterfall
model
Incremental process models
– Incremental model
– RAD model
Evolutionary Process Models
– Prototyping model
– Spiral model
Object oriented process model
WATERFALL MODEL
a.k.as Linear life cycle model or
COMMUNICATION
Project initiation
classic life cycle model
Req. gathering
PLANNING
Estimating
Scheduling
tracking
MODELLING
Analysis
design
CONSTRUCTION
Code
Test
DEPLOYMENT
Delivery
Support
feedback
WATERFALL MODEL
Deployment
– System Delivered to Customer/Market
– Bug Fixes and Version Releases Over Time
Strengths
Easy to understand, easy to use
Provides structure to inexperienced staff
Milestones are well understood
Sets requirements stability
Good for management control (plan, staff, track)
Works well when quality is more important than cost or schedule
Waterfall Drawbacks