Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s....

37
Software Engineering Text Books :1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3. Software Engineering- A Practioner’s approach by Pankaj Jalote 1

description

Introduction to Software 3

Transcript of Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s....

Page 1: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

Software Engineering

Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill

2. Software Engineering Somerville 3. Software Engineering- A Practioner’s approach

by Pankaj Jalote

1

Page 2: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

Unit 1 syllabus• Introduction to Software :

– The evolving role of software– Changing Nature of Software– Software myths.

• Introduction to Software Engineering :– Evolution of SE– SE Challenges

• A Generic view of process : – Software engineering- A layered technology

• Software Quality– Characteristics of good quality s/w

Page 3: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

Introduction to Software

3

Page 4: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

4

What exactly is a Software …..???

Page 5: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

1. Instructions - Programs that when executed provide

desired function 2. Data structures -Enable the programs to adequately manipulate information 3. Associated credentials/documents -Describe the operation and use of the

programs.

5

Page 6: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

Software evolves due to…..

changes

6

Page 7: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

Changes occur due to…..

– Correction

– Adaption

– Enhancement

7

Page 8: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

The Evolving role of software

• Dual role of SoftwareA Product[delivers computing potential] - Information transformer- producing, managing and displayingA medium for delivering a product[ supports or

directly provides system functionality] - Control other programs(operating system) - Communication of information(networks)

- Creation of other programs (s/w tools)

8

Page 9: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

Characteristics of software

• Software is developed or engineered, it is not manufactured in the conventional way.

• Software does not wear out. However it deteriorates due to change.

• Software is custom built rather than assembling existing components.

9

Page 10: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

CHARACTERISTICS OF SOFTWARE

Fig: FAILURE CURVE FOR SOFTWARE

10

Page 11: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

SOFTWARE MYTHS

• Widely held but false view• Propagate misinformation and confusion• Three types of myth - Management myth - Customer myth - Practitioner’s myth

11

Page 12: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

12

Software Myths - Management• "We already have a book that is full of standards and procedures for building

software. Won't that provide my people with everything they need to know?“– The available standards and procedures for software are enough.– Not used, not up to date, not complete, not focused on quality, time, and money

• Each organization feel that they have state-of-art software development tools since they have latest computer.

• "If we get behind, we can add more programmers and catch up"– Adding people to a late software project makes it later– Training time, increased communication lines

• "If I decide to outsource the software project to a third party, I can just relax and let that firm build it"– Software projects need to be controlled and managed

Page 13: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

13

Software Myths - Customer

• "A general statement of objectives is sufficient to begin writing programs – we can fill in the details later"– Ambiguous statement of objectives spells disaster

• "Project requirements continually change, but change can be easily accommodated because software is flexible"– Impact of change depends on where and when it occurs in the

software life cycle (requirements analysis, design, code, test)

Page 14: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

14

Software Myths - Practitioner

• "Once we write the program and get it to work, our job is done"– 60% to 80% of all effort expended on software occurs after it is

delivered• "Until I get the program running, I have no way of assessing its

quality”– Formal technical reviews of requirements analysis documents,

design documents, and source code (more effective than actual testing)

• "The only deliverable work product for a successful project is the working program"– Software, documentation, test drivers, test results

• "Software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down"– Creates quality, not documents; quality reduces rework and

provides software on time and within the budget

Page 15: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

LEGACY SOFTWARE

• Legacy software are older programs that are developed decades ago.

• The quality of legacy software is poor because it has:– inextensible design, convoluted code, poor

and nonexistent documentation, test cases and results that are not achieved.

15

Page 16: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

16

Reasons for Evolving the Legacy Software

• (Adaptive) Must be adapted to meet the needs of new computing environments or more modern systems, databases, or networks

• (Perfective) Must be enhanced to implement new business requirements

• (Corrective) Must be changed because of errors found in the specification, design, or implementation

(Note: These are also the three major reasons for any software maintenance)

Page 17: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

17

Questions About Software Haven't Changed Over the Decades

• Why does it take so long to get software finished?• Why are development costs so high?• Why can't we find all errors before we give the software to our

customers?• Why do we spend so much time and effort maintaining existing

programs?• Why do we continue to have difficulty in measuring progress as

software is being developed and maintained?

Page 18: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

Which leads…………to……..…………..Software Engineering

18

Page 19: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

19

Birth of Software Engineering…..

Complex systems need a disciplined approach for designing,

developing and managing them.

Page 20: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

20

Software Development crisis

Projects were:• Late.

• Over budget.

• Unreliable.

• Difficult to maintain.

• Performed poorly.

Page 21: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

21

Software errors….the cost

Errors in computer software can have devastating effects.

Page 22: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

22

Software Crisis

Example 1: Ariane 5 Explosion

•European Space Agency spent 10 years and $7 billion to produce Ariane 5.

•Crash after 36.7 seconds.

•Caused by an overflow error.  Trying to store a 64-bit number into a 16-bit space.

Page 23: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

23

Software Crisis

Example 2: 1992, London Ambulance

Service

•Considered the largest ambulance service in the world.

•Overloaded problem.

•It was unable to keep track of the ambulances and their statuses. Sending multiple units to some locations and no units to other locations.

•Generates many exceptions messages.

•46 deaths.

Page 24: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

24

Therefore…A well-disciplined approach to

software development and management is/was necessary.

Page 25: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

What is Software Engineering…??

• Engineering -Application of science, tools and methods to

find cost effective solution to problems

• SOFTWARE ENGINEERING

- SE is defined as systematic, disciplined and quantifiable approach for the development, operation and maintenance of software

25

Page 26: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

What are the key challenges facing software engineering?

• Heterogeneity, delivery and trust.• Heterogeneity

– Developing techniques for building software that can cope with heterogeneous platforms and execution environments;

• Delivery– Developing techniques that lead to faster delivery of software; i.e

delivered in shorter time without compromising quality.

• Trust– Developing techniques that demonstrate that software can be

trusted by its users. As Software is a part of many aspects of our lives (work, study, leisure).

Page 27: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

SE- A LAYERED TECHNOLOGY

27

Fig: Software Engineering-A layered technology

Page 28: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

SOFTWARE ENGINEERING-A LAYERED TECHNOLOGY

• Quality focus - Bedrock that supports software Engineering.• Process - Foundation for software Engineering[Identifies a number of framework activities] applicable to all software projects. • Methods - Provide technical How-to’s for building software• Tools - Provide semi-automatic and automatic support

to methods

28

Page 29: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

What are the attributes of Quality software?

• The software should deliver the required functionality and performance to the user and should be maintainable, dependable,efficient and acceptable.

• Maintainability– Software must evolve to meet changing needs;

• Dependability– Software must be trustworthy;

• Efficiency– Software should not make wasteful use of system resources;

• Acceptability– Software must accepted by the users for which it was designed.

This means it must be understandable, usable and compatible with other systems.

Page 30: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

Welcome 2 Software Engineering

30

Page 31: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

Definition• SE:-The computer science discipline concerned with developing large

applications. Software engineering covers not only the technical aspects of building software systems, but also management issues, such as directing programming teams, scheduling, and budgeting.

31

Page 32: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

S/W Evolution..???

• Software evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing software initially, then repeatedly updating it for various reasons.

32

Page 33: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

• In fact, Agile methods stem from maintenance like activities in and around web based technologies, where the bulk of the capability comes from frameworks and standards.

• Software maintenance address bug fixes and minor enhancements and software evolution focus on adaptation and migration.

33

Page 34: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

Assignment 2b submitted

• Over 90% of the costs of a typical system arise in the maintenance phase, and that any successful piece of software will inevitably be maintained…

• Ref: Fred Brooks, in his key book The Mythical Man-Month

34

Page 35: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

Impact• The aim of software evolution would be implementing (and revalidate) the possible

major changes to the system without being able a priori to predict how user requirements will evolve.

• The existing larger system is never complete and continues to evolve. As it evolves, the complexity of the system will grow unless there is a better solution available to solve these issues.The main objectives of software evolution are ensuring the reliability and flexibility of the system.

• During the 20 years past, the lifespan of a system could be on average 6–10 years. However, recently found that a system should be evolved once few months to ensure it is compromised to the real-world environment. This is due to the rapid growth of World Wide Web and Internet Resources that make users easier to find related information.

• The idea of software evolution leads to open source development as anybody could download the source codes and hence modify it. The positive impact in this case is large amounts of new ideas would be discovered and generated that aims the system to have better improvement in variety choices. However, the negative impact is there is no copyright if a software product has been published as open source.

35

Page 36: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

Changes in software evolution models and theories

• Over time, software systems, programs as well as applications, continue to develop. These changes will require new laws and theories to be created and justified. Some models as well would require additional aspects in developing future programs. Innovations and improvements do increase unexpected form of software development. The maintenance issues also would probably change as to adapt to the evolution of the future software. Software process and development are an ongoing experience that has a never-ending cycle. After going through learning and refinements, it is always an arguable issue when it comes to matter of efficiency and effectiveness of the programs.

36

Page 37: Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

Types of maintenance• Corrective maintenance: Reactive modification of a software product

performed after delivery to correct discovered problems;• Adaptive maintenance: Modification of a software product performed after

delivery to keep a software product usable in a changed or changing environment;

• Perfective maintenance: Modification of a software product after delivery to improve performance or maintainability;

• Preventive maintenance: Modification of a software product after delivery to detect and correct latent faults in the software product before they become effective faults.

• All of the preceding take place when there is a known requirement for change.

37