Software Development: Tools and Processes Lecture -2: Basic - - PowerPoint PPT Presentation

software development tools and processes
SMART_READER_LITE
LIVE PREVIEW

Software Development: Tools and Processes Lecture -2: Basic - - PowerPoint PPT Presentation

Software Development: Tools and Processes Lecture -2: Basic concepts 1 The Software Engineering Crisis Nearly 1/3 of information technology (computer and software) projects were cancelled before completion Average overrun of project


slide-1
SLIDE 1

1

Software Development: Tools and Processes

Lecture -2: Basic concepts

slide-2
SLIDE 2

2

Software Engineering Process Office

SEPO-CG p 3

The Software Engineering Crisis

  • Nearly 1/3 of information technology (computer and software) projects

were cancelled before completion

  • Average overrun of project budgets was 189%
  • The average schedule overrun for projects that were in difficulty was

222%

  • On average, the delivered product contained only 61% of the
  • riginally -specified features.
  • Only 16% (1of 6) software projects were completed on time, on budget

“Charting the Seas of Technology: The CHAOS Study” The Standish Group, January 1995

  • CrossTalk, October 1997
slide-3
SLIDE 3

3

Software Engineering Process Office

8/17/99 p 13

Percent Rework on Projects

At TRW 30%

(Boehm, 1987)

At NASA Software Engr. Lab 40%

(McGarry, 1987)

At Hewlett-Packard 33%

(Duncker, 1992)

At Raytheon 41%

(Dion, 1993)

From SEI study:

  • Rework is 40% - 50% of project costs
  • High-maturity organizations can get rework to <10%

(Paulk, 1999)

slide-4
SLIDE 4

4

Software project statistics

  • A (US) Government Study Of nine federal

software projects with a total cost of $6.8M

  • - $3.2M worth were delivered but not used
  • $2M worth were paid for but not delivered
  • $1.3M worth were abandoned or reworked
  • $0.2M worth were used after substantial

modification

  • $0.1M was used as delivered (one project)
slide-5
SLIDE 5

5

To avoid such disasters we should gain expertise in SE

slide-6
SLIDE 6

6

Basic Concepts: Acquiring Expertise

  • How can one acquire expertise?

– Concept of information chunking – by George A. Miller – All information should be presented in small digestible units – the limit is 7 + 2 – One can become expert after acquiring 50,000 chunks of information – This usually takes 10 years – Which information chunks should be acquired? – To become software engineering expert - SWEBOK

slide-7
SLIDE 7

7

What do we understand by Body

  • f Knowledge?

Stable core of BOK? Stable core of BOK?

slide-8
SLIDE 8

8

SWEBOK: Categories of Knowledge

slide-9
SLIDE 9

9

SWEBOK: Sources of Knowledge

slide-10
SLIDE 10

10

Basic Concepts: Software Engineering BOK There are 10 areas of Swebok

– Software requirement engineering – Software design – Software construction – Software Testing – Software Evolution and Maintenance – Software Configuration Management – Software Quality Engineering – Software Engineering Management – Software Engineering Infrastructure – Software engineering process

slide-11
SLIDE 11

11

Software requirement engineering

  • Method of requirement gathering
  • Requirement gathering = elicitation
  • Documentation of requirements
  • Analysis of the gathered requirements
  • Managing the change in requirements
slide-12
SLIDE 12

12

Software design

  • System hi level design

– architectural design

  • System detailed design

– Sub division into modules – Definition of interfaces for modules – Algorithms within modules

slide-13
SLIDE 13

13

Software construction

  • Implementation of software – coding
  • Unit testing by the developers
  • Performance optimization
  • Over-lapping areas with design and testing
slide-14
SLIDE 14

14

Software Testing

  • Black box and white box testing
  • Execution of software for finding defects
  • It includes all artifacts related to testing

– Test plans – Test cases – Unit tests – Integration tests – Stress tests

slide-15
SLIDE 15

15

Software Evolution and Maintenance

  • Carrying out changes in the software after

deployment

  • This is necessary to keep the software

running under dynamic business environment

  • Related documentation and artifacts

should be reviewed and updated

slide-16
SLIDE 16

16

Software Configuration Management

  • Identification of the items to be managed

through configuration management

  • Deals with the version control
  • Deals with the change control
slide-17
SLIDE 17

17

Software Quality Engineering

  • Coordinate activities for developing the

software which satisfies the required quality criteria

  • It includes activities like

– Quality planning – Quality measurement – Testing – Reviews

slide-18
SLIDE 18

18

Software Engineering Infrastructure

  • This includes the support of tools

– CASE tools – PM tools – SCM tools – QA tools

  • Methodologies

– Formal methods – Code reuse libraries – Practices for disseminating tools and methods

slide-19
SLIDE 19

19

Software engineering process

  • Activities related to improvement of

software development quality

  • Improvement of productivity
  • Improvement of project management

techniques

slide-20
SLIDE 20

20

Software engineering code of ethics

  • Code of ethics is defined by IEEE & ACM
  • This includes

– Public interest – Client and employer – Product standards – Professional judgment – Reputation of profession – Fairness to colleagues – Life long learning of profession

slide-21
SLIDE 21

21

Benefits of Code of Ethics

  • Helps avoid death march projects
  • Helps avoid Low-ball bidding
  • Helps avoid code and fix development
  • Helps avoid knowledge stagnation
slide-22
SLIDE 22

22

Three Ps of Software Engineering

  • Processes

– create discipline in development – build on past experience

  • People

– Get the best out of people. How?

  • Product

– Specs and testing – feature creep

slide-23
SLIDE 23

23

What is the most difficult task in software engineering ?

slide-24
SLIDE 24

24

What is the most important capability of a project manager ?

slide-25
SLIDE 25

25

Small Oral Quiz

  • What is the difference between Skill and

knowledge

  • What do we understand by knowledge

management?

slide-26
SLIDE 26

26

Professional Growth Model

Knowledge Mastery Competency Skills