software engineering unit 1

25
SOFTWARE ENGINEERING UNIT-I ABHIMANYU MISHRA ASSISTANT PROF.(CSE) JETGI 06/28/2022 1 Abhimanyu Mishra(CSE) JETGI

Upload: abhimanyu-mishra

Post on 20-Jan-2017

18 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 1

SOFTWARE ENGINEERINGUNIT-I

ABHIMANYU MISHRAASSISTANT PROF.(CSE)

JETGI

Page 2: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 2

Introduction of software engineering. Software components. Software characteristics. Software crisis. Software engineering process. Software Quality attributes. SDLC-Types of models

CONTENTS

Page 3: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 3

“Software engineering is the practical application of scientific knowledge in the design and the construction of programs and associated documentation required to develop, operate and maintain them”.

According to Boehm-Software being a commercial products ,calls for engineering approach to ensure that it is design with correct choice of technology.

Introduction of software:

Page 4: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 4

COMPONENT OF SOFTWARE:

Software engineering is concerned with all aspects of computer based development including hardware,software,and process engineering.SET of PROGRAM and SOFTWARE DOCUMENTS are the main component of software. A program is a set of instruction which is developed by individual to solve their day to day simple mathematical and logical problems.

Page 5: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 5

Software industry is a very fast growing dynamic industry, each new day comes with some new invention and introducing new technology, This development force software developer to keep watch on new technology and inventions which makes the work of software developer critical and complex and cause the software crisis. In other words we can say- Software crisis is the set of difficulties and problems encountered while developing software.

Software crisis:

Page 6: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 6

There are various characteristic of software including: Understandability- To what extent is the process explicitly

defined and how easy is to understand the process. Visibility- Do the process activities culminate in clear result so

that the progress of process is visible. Robustness- Can the process continues in spite of unexpected

problems. Acceptability- Is the defined process acceptable to and usable

by engineers responsible for producing software product. Supportability- To what extent CASE tool support the process

activities.

characteristics of software:

Page 7: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 7

“Conformance to explicit stated functional and performance requirments,explicitly documented development standards and implicit characteristic that are expected of all professionally developed software”,

Attributes of software are:

•Correctness-A system is functionally correct if it behave according to its functional requirements.

•Reliability-A system is said to reliable if it gives desired output even in case of change of components.

•Portable-software system portability is the ease with which a software system can be adapted to run on computer other than one for which it was design.

•Efficiency-It is the ability of software system to fulfil its purpose with best possible utilization of necessary resources such as time, transmission channel, peripherals.

Software Quality Attributes:

Page 8: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 8

SDLC:

SDLC stand for “SOFTWARE DEVELOPMENT LIFE CYCLE”.It represents number of identifiable stages under which software goes during its life, It is a diagrammatically representation which also provide description of various phases and their sequence in life cycle of software product. Software undergoes basic stages during its life cycle i.e. requirement analysis and specification, design, coding and maintenance.We have different SDLC models, each one have its own advantage and disadvantage on the basis of:

• Development speed• Product Quality• Project Visibility• Risk Exposure• Administrative overhead

Page 9: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 9

Phases of SDLC:

Requirement definition

System and software design

Implementation & unit testing

Integration & system testing

Operation & Maintenece

Page 10: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 10

Types of SDLC:

There are many software development life-cycle models as there is no general agreement about various phases and their sequence in product life cycle. Some most commonly used life cycles models are given :

i. Water fall model modelii. Prototype modeliii. Spiral modeliv. Evolutionary development modelv. Iterative enhancement model

Page 11: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 11

WATER FALL MODEL-

Water fall model is a theoretical software development model . It is developed by BOEHM in 1970.• It is also known as classical,traditional,conventional or linear segment

model. There are different stages to the development and the output of first stage flow to the next stage and so on. It force on sequential phase development in which no phase can overlap another phase.

• Each phase of this model is well define the starting and ending criteria which is to be documented by which the standard outputs produce by each phase can formulate.

Page 12: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 12

Feasibility study

Requirement analysis &

specification

System and Software Design

Coding and Module Testing

Integration & System Testing

Implementation & Maintenance

Fig-Water Fall Model

Page 13: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 13

Classification of phases of Water Fall Model:

Feasibility study-This phase is used to check whether the new proposed system is economically, technically and operationally feasible or not.Requirement analysis & Specification-This phase give specification about what is the system for. It analyze and specifies the requirement of customer and document them properly.System & Software Designing-In design phase over all structure or architecture is developed which is transformation of requirement specified in SRS. There are two main types of design approach: Traditional design approach Object oriented design

Page 14: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 14

Coding & Module Testing-

In this phase system design is translated into source code also called program code. The programming for different module is done in selected programming language. End product of coding phase is module testing in which each module is tested individually whether they are working properly or not.Integration & system Testing-Individually tested module integrated have according to planned system to develop the system. There are two main testing: Alpha Testing Beta TestingImplementation & maintenance-In this phase system is installed at the user end and it is checked if there is any upgradation required in hardware and software elements at use rend as per our software so that is made available.

Page 15: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 15

PROTOTYPE MODEL:

• The prototype model firstly a working prototype developed instead of developing actual software.

• This is developed according to available requirements which basically have limited functions, low reliability while it passes through all stages of development.

• This model is used by developer and given to user for review which help the user to better understand his needs and requirement and then feedback from users.

Page 16: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 16

Outline Requirements

Evolutionary Prototype

Throw-away prototype

Delivered System

Execution Prototype

Fig- Prototype Model

Page 17: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 17

Classification of Prototype Model:

Evolutionary Prototype-In this type of prototyping the main objective is to work with user to explore their requirements and deliver them a final system. The stage of Exploratory prototype are: Gather the requirements. Develop a working prototype on basis of initial requirements. Handover to user to the working prototype and get the feedback. Make changes and add new requirements according to user feedback in

working prototype.Throw-away prototype-Throw away prototype is concentrate on less well understood requirements of user. The prototype is developed on less well requirements its main aim is that when user will use this ,its shortcoming will help to understand the requirements more accurately.

Page 18: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 18

SPIRAL MODEL:

• In 1987 the BOEHM proposed a model for development of sotware known as “Boehm Spiral Life cycle Model”.

• According to its name the activity of this modelare organize like spiral that has many circles whose number depends on software requirements.

• The radial dimension of this model, the cumulative cost for accomplishing different stages and angular dimension show the progressin completing each cycle of the spiral.

• The main objective of this model is to minimiza the RISK through the use of prototype.

Page 19: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 19

SPIRAL DIAGRAM

Page 20: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 20

Advantage of Spiral Model-

This model tries to resolved all possible risk involved in the project starting with the highest risk.

User can see the product early in the life cycle. It is very flexible model. It can cope with changing user requirements.

Disadvantage of spiral model-

The model required experts for risk management. This model is not suitable for small projects. This is time consuming model. The cost of risk analysis is high it makes the model costly. The model is not widely used because it is relatively new.

Page 21: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 21

• This model is also known as Evolutionary Prototyping ,Simulated, Rapid Delivery cycle.

• This model have many similarities with iterative enhancement model only one and most important difference is that it does not require a usable product at end of each cycle.

• In this model it is not necessary that all end products should be usable as a particular software application can also be release in parts whose all parts when combined then only it work.

• FOR EXAMPLE: First cycle implementation GUI. Second cycle implement file manipulation. Third develop queries.

EVOLUTIONARY DEVELOPMENT MODEL:

Page 22: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 22

Outline Description

Initial version

Intermediate version

Final version

Specification

Development

Validation

Fig-Evolutionary Model

Page 23: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 23

Advantage of Evolutionary Developmet-

Early delivery of partial system. Suitable for project using of new technology. One time delivery of all functionality of complex project whose requirement

are not clear at beginning and requirements are not stable.

Disadvantage of Evolutionary Development-

Longer elapse time for project if the requirements gathering is done before each increment.

Difficulty in estimation of cost and schedule at start of project. Time apparently gained on the front end of a project because early release may

be lost later because of need for network resulting.

Page 24: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 24

ITERATIVE ENHANCEMENT MODEL:

• Iterative model is developed to overcome the draw back of water fall model.• It is a combination of benefits of water fall model and prototype model. Very

popular i.e. used by industries.• In this model software is developed in increments each increments add some

functional capability to the system until full system is developed.• It provide better testing after each increment is easy as compare to entire model

testing of water fall model and prototype .• In this model partial product is developed on few easily understandable

requirements of overall requirements.

Page 25: Software Engineering Unit 1

05/01/2023 Abhimanyu Mishra(CSE) JETGI 25

Integrate increment

Define outline requirements

Assign requiremen

ts to increment

Design system

architecture

Develop system

incrementValidate

increment

Validate System

System incomplete

Final System

Fig-Iterative Enhancement Model