1
Software Development: Tools and Processes Lecture -2: Basic - - PowerPoint PPT Presentation
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
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
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)
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)
5
To avoid such disasters we should gain expertise in SE
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
7
What do we understand by Body
- f Knowledge?
Stable core of BOK? Stable core of BOK?
8
SWEBOK: Categories of Knowledge
9
SWEBOK: Sources of Knowledge
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
11
Software requirement engineering
- Method of requirement gathering
- Requirement gathering = elicitation
- Documentation of requirements
- Analysis of the gathered requirements
- Managing the change in requirements
12
Software design
- System hi level design
– architectural design
- System detailed design
– Sub division into modules – Definition of interfaces for modules – Algorithms within modules
13
Software construction
- Implementation of software – coding
- Unit testing by the developers
- Performance optimization
- Over-lapping areas with design and testing
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
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
16
Software Configuration Management
- Identification of the items to be managed
through configuration management
- Deals with the version control
- Deals with the change control
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
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
19
Software engineering process
- Activities related to improvement of
software development quality
- Improvement of productivity
- Improvement of project management
techniques
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
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
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
23
What is the most difficult task in software engineering ?
24
What is the most important capability of a project manager ?
25
Small Oral Quiz
- What is the difference between Skill and
knowledge
- What do we understand by knowledge
management?
26
Professional Growth Model
Knowledge Mastery Competency Skills