Basics of software engineering

22
An Introduction to Software Engineering By: M. B Suratkar, Dept. of Computer Science Bangurnagar Degree College, Dandeli www.bndc.co.in

Transcript of Basics of software engineering

Page 1: Basics of software engineering

An Introduction to Software

EngineeringBy: M. B Suratkar, Dept. of Computer Science

Bangurnagar Degree College, Dandeliwww.bndc.co.in

Page 2: Basics of software engineering

Lecture 1

Objectives:

1. To identify the scope and necessity of software

engineering

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,

Page 3: Basics of software engineering

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 products.  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.

Introduction

Page 4: Basics of software engineering

Software Engineering

Methods Techniques

Tools Programs

Page 5: Basics of software engineering

Why software engineering?

1) In the late 1960’s hardware price were falling but software price

rising.

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.

Page 6: Basics of software engineering

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?

Page 7: Basics of software engineering

• Computer programs and associated documentation

such as requirements, design models and user

manuals.

• Software products may be developed for a particular

customer or may be developed for a general market.

What is software?

Page 8: Basics of software engineering

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.

Software products

Page 9: Basics of software engineering

GOOD SOFTWARE

Maintainability

Dependability

Efficiency

Acceptability

Attributes of good software

Page 10: Basics of software engineering

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.

Page 11: Basics of software engineering

Program & Engineering

Program Engineering

1) Small project.2) You 3) One product.4) Cheap 5) Few sequential changes.

1) large product 2) team3) family of product4) costly5) Many parallel changes.

Page 12: Basics of software engineering

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 activities.

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

development constraints

2. Software development - production of the software system

3. Software validation - checking that the software is what the customer

wants

4. Software evolution - changing the software in response to changing

customer needs

Page 13: Basics of software engineering

What are software process attributes or characteristics

Process characteristics

Description

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 tools

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 requirements/improvements

8. Rapidity How fast can the process of the delivering a system from a given specification be completed?

Page 14: Basics of software engineering

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

development.

1) Waterfall model

2) Evolutionary development model

3) Bohemia’s spiral model

SOFTWARE PROCESS MODEL

Page 15: Basics of software engineering

WATERFALL 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)

Page 16: Basics of software engineering

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.

Page 17: Basics of software engineering

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.

Page 18: Basics of software engineering

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

specification.

Page 19: Basics of software engineering

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.

Page 20: Basics of software engineering

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.

Page 21: Basics of software engineering

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