Software Engineering Introduction

37
Unit-1 Software Engineering Part-1 [CS-504] Rahul Hada [email protected]

Transcript of Software Engineering Introduction

Page 1: Software Engineering Introduction

Unit-1Software Engineering

Part-1[CS-504]

Rahul [email protected]

Page 2: Software Engineering Introduction

Alliance University, [email protected] 2

Software ?

● Countries depends on softwares.● Today we are moving foward towards pervasive

computing.● Idea <--> Software● Software contributed in space programs● Sofware delivers the most important product of

our time-”information”.

Page 3: Software Engineering Introduction

Alliance University, [email protected] 3

Pervasive Computing

Page 4: Software Engineering Introduction

Alliance University, [email protected] 4

Social Web of Things

Page 5: Software Engineering Introduction

Alliance University, [email protected] 5

Ideas

Page 6: Software Engineering Introduction

Alliance University, [email protected] 6

Define

● “Software is :– (i) instructions that when executed provide desired

features , function , and performance; – (ii) data structure that enable the program to

adequately manipulate information, and – (iii) description information in both hard copy and

vitual form that describes the operation and use of the programs”

Page 7: Software Engineering Introduction

Alliance University, [email protected] 7

Characteristics of Software

● Differences from hardware

– s/w is developed or engineered, it is not manufactured in the classical sense.

– s/w doesn't “wear out.”

– Re-usability.

“Software is logical rather than a physical system element.”

Page 8: Software Engineering Introduction

Alliance University, [email protected] 8

Fundamental Types

● Fundamental types of software :-– Generic Products

● Stand-alone systems that are produced s/w organization.● Sold on the open market to any customer.

– Customised Products● For particular customer.● Especially developed as per the customer requirement.

● Generic s/w control the s/w specifications.● Organization (buyer) control the s/w specifications

Page 9: Software Engineering Introduction

Alliance University, [email protected] 9

Further Categories● System software

– Used to service other programs/

● Application software– Solve specific business needs.

● Engineering/Scientific software● Embedded software

– Resides within a product

● Product-line software– Specific capability for use by different customers

● Web application– Network centric softwares

● Artifical intelligence software– It includes intelligence ex, robotics , expert systems etc.

Page 10: Software Engineering Introduction

Alliance University, [email protected] 10

Good Software Attributes

● Maintainability– It can evolve to meet the change.

● Dependability and security– It includes reliability , security and safety

● Efficiency– Should not waste system resources (memory and

processor cycles)

● Acceptability– It must be understandable , usable and compatible

Page 11: Software Engineering Introduction

Alliance University, [email protected] 11

Process

Page 12: Software Engineering Introduction

Alliance University, [email protected] 12

Software Process

● Software Process – “It is the set of activities and associated results that

produce a software products”– A framework for the tasks that are required to build

high-quality software.

Page 13: Software Engineering Introduction

Alliance University, [email protected] 13

Software Process

● Software Specification– In this customer and engineers define the software to be

produced and the constraints on its operation.

● Software Development– The software is designed and programmed

● Software Validation– The system is checked to ensure that it is what the customer

requires.

● Software Evolution– The software is modified to adapt it to changing customer and

market requirement.

Page 14: Software Engineering Introduction

Alliance University, [email protected] 14

Page 15: Software Engineering Introduction

Alliance University, [email protected] 15

Page 16: Software Engineering Introduction

Alliance University, [email protected] 16

Issues:Software

● Issues that affect many different types of software:-– Heterogeneity

● Systems are distributed systems which includes different types of computer and mobile devices.

– Business and social change● Change is rapid now a days.● Many traditional software engineering techniques are time

consuming.

– Security and trust● Software is intertwined with all aspects of our lives.

Page 17: Software Engineering Introduction

Alliance University, [email protected] 17

Software Engineering

● What is Software Engineering ?– It is an engineering discipline that is concerned

with all aspects of software production from the early stages of system specifications to maintaining the system after it has gone into use.

Page 18: Software Engineering Introduction

Alliance University, [email protected] 18

Friedrich Bauer (10 June 1924 – 26 March 2015)● He was a german computer scientist and professor● He was first to propose the widely used stack methods

of expression evalution.● In 1968 , he coined the term “Software Engineering”

Page 19: Software Engineering Introduction

Alliance University, [email protected] 19

Software Process

Page 20: Software Engineering Introduction

Alliance University, [email protected] 20

Software Process● A common process framework

is established

● Define small number of framework activities

● A number of task sets – (SE tasks , milestones , work products , SQA points)

● Umberalla Activities

– Software Quality Assurance

– Software Configuration Management (tracking and controlling changes)

Page 21: Software Engineering Introduction

Alliance University, [email protected] 21

Software Process Activities

● Software Specification– In this customer and engineers define the software to be

produced and the constraints on its operation.

● Software Development– The software is designed and programmed

● Software Validation– The system is checked to ensure that it is what the customer

requires.

● Software Evolution– The software is modified to adapt it to changing customer and

market requirement.

Page 22: Software Engineering Introduction

Alliance University, [email protected] 22

Software Process Model

● It is a simplified description of a software process that presents one view of the process.

● It includes activities , software products and the roles of people

Page 23: Software Engineering Introduction

Alliance University, [email protected] 23

Ex:Workflow Model

● Sequence of activities in the process along with their inputs , outputs and dependencies.

● The activities in this model resent human actions.

Page 24: Software Engineering Introduction

Alliance University, [email protected] 24

Page 25: Software Engineering Introduction

Alliance University, [email protected] 25

Ex:Dataflow/Activity Model

● Represents the process as a set of activities , each of which carries out some data transformation.

● It shows how the input to the process , such as specification , is transformed to an output , such as a design.

● Can be carried by people or by computers.

Page 26: Software Engineering Introduction

Alliance University, [email protected] 26

Page 27: Software Engineering Introduction

Alliance University, [email protected] 27

Ex:Role/Action Model

● This represents the roles of the people involved in the software process and the activities for which they are responsible

Page 28: Software Engineering Introduction

Alliance University, [email protected] 28

Page 29: Software Engineering Introduction

Alliance University, [email protected] 29

Software Life Cycle

● Classic Life Cycle– Analysis --> Design --> Coding --> Testing & Support

Page 30: Software Engineering Introduction

Alliance University, [email protected] 30

Software Process Model:Approach

● Waterfall approach– Takes activities and represents them as separate

process phases (as analysis , designing , development , testing etc.)

– After each stage is defined it is “signed-off”

● Iterative development● Component-based software engineering (CBSE)

Page 31: Software Engineering Introduction

Alliance University, [email protected] 31

Waterfall

● Waterfall approach– Takes activities and represents them as separate process

phases (as analysis , designing , development , testing etc.)

– After each stage is defined it is “signed-off”

Page 32: Software Engineering Introduction

Alliance University, [email protected] 32

Iterative Approach

● Iterative Approach

– An initial system is rapidly developed from very abstract specifications

– Then refine with customer input

Page 33: Software Engineering Introduction

Alliance University, [email protected] 33

CBSE Approach● CBSE Approach

– It assumes that parts of the system already exist

– Focus on integrating these parts rather developing from scratch

Page 34: Software Engineering Introduction

Alliance University, [email protected] 34

Activity Cost

Page 35: Software Engineering Introduction

Alliance University, [email protected] 35

Page 36: Software Engineering Introduction

Alliance University, [email protected] 36

Software Engineering Ethics

● Confidentiality– Employers or clients

● Competence– No misrepresent your level of competence

● Intellectual property rights– Take case of patents and copyright.

● Computer misuse– No misuse other people’s computer.

Page 37: Software Engineering Introduction

Alliance University, [email protected] 37

ACM/IEEE-CS Joint Task Force on Software Engineering Ethics

● Eight Principles– PUBLIC

● Act in public interest

– CLIENT and EMPLOYER– PRODUCT

● Highest professional standards

– JUDGMENT● Maintain integrity and independence in their professional judgment

– MANAGEMENT● Maintain ethical approach of management

– PROFESSION● Advance the integrity and reputation of the profession consistent

– COLLEAGUES● Fair and supportive of their colleagues

– SELF● Maintain lifelong learning