software development tools and processes
play

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


  1. Software Development: Tools and Processes Lecture -2: Basic concepts 1

  2. 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 originally -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 2 SEPO-CG p 3 Software Engineering Process Office

  3. 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) 3 8/17/99 p 13 Software Engineering Process Office

  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) 4

  5. To avoid such disasters we should gain expertise in SE 5

  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 6

  7. What do we understand by Body of Knowledge? Stable core of BOK? Stable core of BOK? 7

  8. 8 SWEBOK: Categories of Knowledge

  9. 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 10

  11. Software requirement engineering • Method of requirement gathering • Requirement gathering = elicitation • Documentation of requirements • Analysis of the gathered requirements • Managing the change in requirements 11

  12. Software design • System hi level design – architectural design • System detailed design – Sub division into modules – Definition of interfaces for modules – Algorithms within modules 12

  13. Software construction • Implementation of software – coding • Unit testing by the developers • Performance optimization • Over-lapping areas with design and testing 13

  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 14

  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 15

  16. Software Configuration Management • Identification of the items to be managed through configuration management • Deals with the version control • Deals with the change control 16

  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 17

  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 18

  19. Software engineering process • Activities related to improvement of software development quality • Improvement of productivity • Improvement of project management techniques 19

  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 20

  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 21

  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 22

  23. What is the most difficult task in software engineering ? 23

  24. What is the most important capability of a project manager ? 24

  25. Small Oral Quiz • What is the difference between Skill and knowledge • What do we understand by knowledge management? 25

  26. Professional Growth Model Mastery Competency Skills Knowledge 26

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend