Software Engineering concept

43
Software Engineering Atamjit singh Assistant Professor BCA 4 th semester BCA Department Modern group of Colleges

Transcript of Software Engineering concept

Page 1: Software Engineering concept

Software Engineering

Atamjit singh

Assistant Professor

BCA 4th semester BCA Department Modern group of Colleges

Page 2: Software Engineering concept

Software

Software is

A information transformer – Producing, managing, acquiring, Modifying, displaying or transmitting information that is simple/ complex which is satisfies the users needs & makes the user world better.

A software is either a collection of programs which will transfer the data from one place to another

BCA Department Modern group of Colleges

Page 3: Software Engineering concept

Engineering

It is systematic and technical approach which tells

you the methods to carry out the work.

It can de defined as Applying something technical

method or algorithm in a systematic way.

BCA Department Modern group of Colleges

Page 4: Software Engineering concept

Software Engineering

Software engineering is the establishment and use of

sound engineering principles (applying some software

methods) in order to obtain economically software that is

reliable(not working properly) and works efficiently on real

machines.

Software engineering is a discipline that integrates

process methods and tools for the development of

computer system.

BCA Department Modern group of Colleges

Page 5: Software Engineering concept

Software Engineering Layers

Process layer : It is glue that holds the technology layers

together and enables timely. In other way we can say the

technology we are using produce accurate result.

Methods : Provides the technical (which platform) how-

to’s for building software. It is a set of basic principles

that govern each area of technology.

Tools: Provides automated and semi automated support

for process and method e.g MS excel tool is used to

applying some formula’s.

BCA Department Modern group of Colleges

Page 6: Software Engineering concept

Software characters

Software is developed or engineered, it is not

manufactured in the classical sense.

Software does not wear out. (design and develop is

available every where it is product) car example

Although industry is moving towards component based

assembling most software continues to be custom built.

BCA Department Modern group of Colleges

Page 7: Software Engineering concept

Software Application

System software

Real time software

Business software

Engineering and scientific software e.g CAD, CAM

Embedded software

Personal computer software

Web based software

Artificial intelligence software

BCA Department Modern group of Colleges

Page 8: Software Engineering concept

Software process model

what is software process model ?

A process model describes the sequence of phases for the entire lifetime of a product . Therefore it is sometimes also called product life cycle. This covers everything from the initial commercial ideas until the final DE installation or disassembling of the product after its use

Each process model follows a particular life cycle in order to ensure success in process of software development.

Three main phases

concept phase

implementation phase

maintenance phase

BCA Department Modern group of Colleges

Page 9: Software Engineering concept

Developing model

Linear sequential model

Waterfall model

Prototyping

Prototyping model

Rapid application development RAD model

Evolutionary software process

Spiral model

BCA Department Modern group of Colleges

Page 10: Software Engineering concept

SDLC--Water fall model

Water fall model was the first SDLC approach to be used

widely in SE to ensure the success of the project. The

water fall approaches the whole process of software

development is divided into separate phases.

It is also referred to as a linear sequential life cycle

model.

It is very simple to understand and use.

Each phase is must be completed before the next phase

can begin and there is no overlapping in the phases.

BCA Department Modern group of Colleges

Page 11: Software Engineering concept

Software devolvement life cycle

SDLC is step by process involved in the development of a

software product. The whole process is generally

classified into a set of steps and a specified into a set of

steps and specific operation will be carried out in each of

the steps.

There is no reverse action in this model

BCA Department Modern group of Colleges

Page 12: Software Engineering concept

Phases of Waterfall model SDLC

Planning

Requirement Analysis

Design

Development/coding

Testing

Maintenance

BCA Department Modern group of Colleges

Page 13: Software Engineering concept

Planning

To plan the total project and estimate the merits and demerits of the project

to the developed.

It involves estimation your attempt to determine how much money, how much

effort how many resource and how much time it will take to build a specific

software based system or project.

BCA Department Modern group of Colleges

Page 14: Software Engineering concept

analysis

To perform statistics and requirement gathering.

To know the behavior of the system to be developed.

To understand the specific requirement that must be achieved to build high

quality software.

BCA Department Modern group of Colleges

Page 15: Software Engineering concept

Design

Design begins with the requirement of the customer as a model.

It is a meaning engineering representation of something that is to be built.

Something like you would not attempt to build a house without blueprints.

BCA Department Modern group of Colleges

Page 16: Software Engineering concept

Development

The blue prints is transformed into actual coding by developing or writing

programs in some platform.

That is translating into a machine readable form.

Development includes– structure data, implementation , logic, processing and

produce desired output.

BCA Department Modern group of Colleges

Page 17: Software Engineering concept

testing

The testing process focuses on bugs. Software testing is critical element in

development to uncover errors in it.

It is referred as verification and validation.

verification – are we building the product right?

validation – are we building the right product?

BCA Department Modern group of Colleges

Page 18: Software Engineering concept

Maintenance

Software is expected to undergo change in new environment.

Support given after delivering the product to the customer in the original

environment.

Maintenance is accommodating the changes in the software in the external

environment.

BCA Department Modern group of Colleges

Page 19: Software Engineering concept

PROTOTYPING MODEL

The prototyping model begins with requirements

gathered.

Developer and customer meet and define the overall

objectives for the software identity what ever

requirements are know, and a quick design occurs.

(when a customer is not clear or the costumer will know the area of problem but not in the position of

view how he wanted the output or how the result should be like or customer cannot explain the new

product he wants . So customer did not well wise. Customer did not know anything how product should

look like or how to get result in this type the costumer and developer need to be sit and discuss the

requirement gathering and they will discuss the problems now whats developers do he will create a

small program to show ) o

BCA Department Modern group of Colleges

Page 20: Software Engineering concept

Continues……

The construction of this design is called a prototyping.

The prototyping is evaluated by the customer & used to redefined

requirement for the software to be designed.

Iteration occurs as the prototyping is tuned to satisfy the needs of the

customer.

BCA Department Modern group of Colleges

Page 21: Software Engineering concept

Rad Rapid application development

model

It is incremental software development process model emphasis an extremely

short development cycle.

The rad model is a high speed adaptation of the linear sequential model in

which rapid development is achieved by using component based

constructions.

IF requirement are well understood and scope is defined the RAD model

develops the fully functional system in very short period.

BCA Department Modern group of Colleges

Page 22: Software Engineering concept

Rad Rapid application development

model

BCA Department Modern group of Colleges

Page 23: Software Engineering concept

Spiral Model

Spiral model is an evolutionary version of incremental prototyping.

Each iteration of the prototype representation as controlled and systematic

aspect in the cycle of spiral.

The spiral software development model is risk oriented

Spiral model software development model may be applicable to projects

where:

The projects requirement are very difficult.

Where new technologies are used.

BCA Department Modern group of Colleges

Page 24: Software Engineering concept

Evolutionary prototyping

The objectives of evolution prototyping is to deliver a working system to end

users. The development starts with those requirements which are best

understood.

An approach to system development where initial prototype is produced and

refined through a number of stages to the final system

BCA Department Modern group of Colleges

Page 25: Software Engineering concept

Spiral model

BCA Department Modern group of Colleges

Page 26: Software Engineering concept

4G techniques

BCA Department Modern group of Colleges

Page 27: Software Engineering concept

Fourth Generation Techniques

4GT encompasses a broad array of software tools that have one thing in

common: each enables the software engineer to specify some characteristic

of software at a high level, then the tool automatically generates source code

based on the developer's specification.

4GT paradigm focuses on the ability to specify software using specialized

language forms or a graphic notation that describes the problem to be solved

in terms that the customer can understand.

BCA Department Modern group of Colleges

Page 28: Software Engineering concept

Fourth Generation Techniques

A software development environment that supports the 4GT paradigm

includes some or all of the following tools:

nonprocedural languages for database query,

report generation,

data manipulation,

screen interaction and definition,

code generation;

4GT tools have high-level graphics capability; spreadsheet capability, and

automated generation of HTML and similar languages used for Web-site

creation using advanced software tools.

BCA Department Modern group of Colleges

Page 29: Software Engineering concept

Fourth Generation Techniques

4GT begins with a requirements gathering step.

For small applications, it may be possible to move directly from the

requirements gathering step to implementation using a nonprocedural fourth

generation language (4GL) or a model composed of a network of graphical

icons.

For larger efforts, it is necessary to develop a design strategy for the system,

even if a 4GL is to be used. The use of 4GT without design (for large projects)

will cause the difficulties (poor quality, poor maintainability, poor customer

acceptance)

BCA Department Modern group of Colleges

Page 30: Software Engineering concept

Fourth Generation Techniques

To transform a 4GT implementation into a product, the developer must

conduct thorough testing,

develop meaningful documentation, and perform all

other solution integration activities

The 4GT developed software must be built in a manner that enables

maintenance to be performed expeditiously.

BCA Department Modern group of Colleges

Page 31: Software Engineering concept

Concept of Software Project

Management

Software Project

A Software Project is the complete procedure of software development from

requirement gathering to testing and maintenance, carried out according to

the execution methodologies, in a specified period of time to achieve

intended software product.

BCA Department Modern group of Colleges

Page 32: Software Engineering concept

Need of software project management

BCA Department Modern group of Colleges

Page 33: Software Engineering concept

Software Management Activities

Software project management comprises of a number ofactivities, which contains planning of project, deciding scopeof software product, estimation of cost in various terms,scheduling of tasks and events, and resource management.Project management activities may include:

•Project Planning•Scope Management•Project Estimation

BCA Department Modern group of Colleges

Page 34: Software Engineering concept

Project planning

Software project planning is task, which is performed

before the production of software actually starts. It is

there for the software production but involves no

concrete activity that has any direction connection with

software production; rather it is a set of multiple

processes, which facilitates software production.

BCA Department Modern group of Colleges

Page 35: Software Engineering concept

Project Scope management

It defines the scope of project; this includes all the activities, process need to be done in order to make a deliverable software product. Scope management is essential because it creates boundaries of the project by clearly defining what would be done in the project and what would not be done. This makes project to contain limited and quantifiable tasks, which can easily be documented and in turn avoids cost and time overrun. During project scope management, it is necessary to

Define the scope

Decide its verification and control

Divide the project into various smaller parts for ease of management.

Verify the scope

Control the scope by incorporating changes to the scope

BCA Department Modern group of Colleges

Page 36: Software Engineering concept

Project Estimation

For an effective management accurate estimation of various measures isa must. With correct estimation managers can manage and control theproject more efficiently and effectively.

Project estimation may involve the following:

• Software size estimation Software size may be estimated either interms of KLOC (Kilo Line of Code) or by calculating number offunction points in the software. Lines of code depend upon codingpractices and Function points vary according to the user or softwarerequirement.

BCA Department Modern group of Colleges

Page 37: Software Engineering concept

Effort estimation

The managers estimate efforts in terms of personnel requirement and man-hour required to produce the software. For effort estimation software size should be known. This can either be derived by managers’ experience, organization’s historical data or software size can be converted into efforts by using some standard formulae.

BCA Department Modern group of Colleges

Page 38: Software Engineering concept

Time estimation

Once size and efforts are estimated, the time required to producethe software can be estimated. Efforts required is segregated intosub categories as per the requirement specifications andinterdependency of various components of software. Software tasksare divided into smaller tasks, activities or events by WorkBreakthrough Structure (WBS). The tasks are scheduled on day-to-day basis or in calendar months.

• The sum of time required to complete all tasks in hours or days is thetotal time invested to complete the project.

BCA Department Modern group of Colleges

Page 39: Software Engineering concept

Cost estimation

This might be considered as the most

difficult of all because it depends on more elements than any of

the previous ones. For estimating project cost, it is required to consider -

• Size of software

• Software quality

• Hardware

• Additional software or tools, licenses etc.

• Skilled personnel with task-specific skills

• Travel involved

• Communication

• Training and support

BCA Department Modern group of Colleges

Page 40: Software Engineering concept

Project Estimation Techniques

We discussed various parameters involving project estimation such as size,

effort, time and cost.

Decomposition Technique

This technique assumes the software as a product of various compositions.

There are two main models -

Line of Code Estimation is done on behalf of number of line of codes in the

software product.

Function Points Estimation is done on behalf of number of function points in

the software product.

BCA Department Modern group of Colleges

Page 41: Software Engineering concept

Empirical Estimation Technique

This technique uses empirically derived formulae to make estimation.

These formulae are based on LOC or FPs.

COCOMOCOCOMO stands for COnstructive COst MOdel, developed by Barry W.

Boehm. It divides the software product into three categories of software:

organic, semi-detached and embedded.

BCA Department Modern group of Colleges

Page 42: Software Engineering concept

Project Risk Management

Risk management involves all activities pertaining to identification, analyzing

and making provision for predictable and non-predictable risks in the project.

Risk may include the following:

Experienced staff leaving the project and new staff coming in.

Change in organizational management.

Requirement change or misinterpreting requirement.

Under-estimation of required time and resources.

Technological changes, environmental changes, business competition.

BCA Department Modern group of Colleges

Page 43: Software Engineering concept

Risk Management Process

There are following activities involved in risk management process:

Identification - Make note of all possible risks, which may occur in the

project.

Categorize - Categorize known risks into high, medium and low risk intensity

as per their possible impact on the project.

Manage - Analyze the probability of occurrence of risks at various phases.

Make plan to avoid or face risks. Attempt to minimize their side-effects.

Monitor - Closely monitor the potential risks and their early symptoms. Also

monitor the effects of steps taken to mitigate or avoid them.

BCA Department Modern group of Colleges