An Introduction to
By: M. B Suratkar, Dept. of Computer Science
Bangurnagar Degree College, Dandeli
1. To identify the scope and necessity of software
2. To know the terms of software, software engineering and
to explain why it is important
3. To know the terms of software product and the attributes
of good software
4. To know the Software process model,
Introduction: The main objective of software engineering is to
produce software products. Software Engineering is concerned with
the methods, tools and techniques which are needed to develop
and managing the process of creating and evolving the software
Software engineering is an engineering approach for software
development. Various methodologies and guidelines adopted to
develop the software.
A small program can be written without using software engineering
principles. But if one wants to develop a large software product,
then software engineering principles are essential to achieve a good
quality software cost effectively.
Why software engineering?
1) In the late 1960’s hardware price were falling but software price
2) Many software projects failed.
3) Large software project required large development
4) Many software project late and over budget.
5) Complicity of software project is increased.
6) Demand for new software on the market.
1. To acquire skills to develop large programs.
2. Ability to solve complex programming problems.
3. Learn techniques of specification design.
4. Higher productivity.
5. Better quality programmers.
Why study software engineering?
• Computer programs and associated documentation
such as requirements, design models and user
• Software products may be developed for a particular
customer or may be developed for a general market.
What is software?
1. Generic - developed to be sold to a range of different
customers e.g. PC software such as Excel or Word.
2. Bespoke (custom) - developed for a single customer
according to their specification.
New software can be created by developing new
programs, configuring generic software systems or
reusing existing software.
Difference between system engineering and system engineering
• System engineering is concerned with all aspects of computer-based
systems [CBSE] development including hardware, software and
process engineering. Software engineering is part of this process
concerned with developing the software infrastructure, control,
applications and databases in the system.
• System Engineers are involved in system specification,
architectural design, integration and deployment.
Program & Engineering
1) Small project.
3) One product.
5) Few sequential
1) large product
3) family of product
5) Many parallel changes.
What is Software process ?
The software process is the set of activities and associated results which
produce a software product. These activities are mostly carried out by
software engineers. CASE tools may be used to help with some process
There are four fundamental process activities which are common to all
software processes. The activities are:
1. Software spacification - what the system should do and its
2. Software development - production of the software system
3. Software validation - checking that the software is what the customer
4. Software evolution - changing the software in response to changing
What are software process attributes or characteristics
1. Understandability To what extent is the process defined and how
easy is it understand the process definition
2. Visibility Making process visible
3. Supportability Process activities must be supported by CASE
4. Acceptability Acceptable by engineers and responsible for
producing software product
5. Reliability Process errors are avoided
6. Robustness Process continue in spite of unexpected problems
7. Maintainability Process evolve to reflect changing organisational
8. Rapidity How fast can the process of the delivering a
system from a given specification be completed?
Software processes are complex and involve a very large number
of activities. Like product, processes, requirements specification,
software design, software implementation, software testing etc.
following software process models is used for practical systems
1) Waterfall model
2) Evolutionary development model
3) Bohemia’s spiral model
SOFTWARE PROCESS MODEL
This model offers the sequential development process. Because of
the cascade from one phase to another this model is called as
waterfall model. (Software life cycle)
1. Requirements: During this phase research is being
conducted which includes brainstorming about the
software, what it is going to be and what purpose is it
going to fulfil. In this phase system user study system’s
services, constraints and goals.
2. System and software design: If the first phase gets
successfully completed and a well thought out plan for
the software development then the next step involves
formulating the basic design of the software on paper.
This phase involves representing the software system
functions in a form that may be transformed into one or
more executable programs.
3. Implementation: During this stage, the software
design is realized as a set of programs or program unit.
In this phase the source code of the programs is written.
Unit test involves verifying that each unit meets its
4. Integration/system testing: The individual programs units or
programs are integrated and tested as a complete system to
ensure that all the software requirements. After testing, the
software system is delivered to the customer. The company puts it
in use after the system has been successfully tested.
5. Operation and maintenance: this is the longest life cycle
phase. The system is installed and put into practical use.
Maintenance involves correcting errors which were not discovered
in earlier stages of the life cycle. Improving the implementation of
system units and enhancing the system services as new
requirements are discovered.
CONCLUSION OF WATERFALL MODEL :
• Stages overlap and feed information to each other.
• During design problems with requirements are identified;
• During coding, design problems are found.
• The software process model but involves a sequences of
iterations of the development activities.
• Modifications are necessary for the software