Software Engineering Software engineering is concerned with the

  • Slides: 9
Download presentation
Software Engineering • Software engineering is concerned with the production of large scale software

Software Engineering • Software engineering is concerned with the production of large scale software artifacts by teams of individuals • Software engineering is the application of science and mathematics by which the capabilities of computer equipment are made useful to man via computer programs, procedures, and associated documentation -- B. Boehm • Software engineering. . . is the part of computer science that is too difficult for the computer scientists -- F. L. Bauer ã 2007, Spencer Rugaber 1

What is a Process? ã 2007, Spencer Rugaber 2

What is a Process? ã 2007, Spencer Rugaber 2

What is a Process? • A series of activities with a means for determining

What is a Process? • A series of activities with a means for determining progress ã 2007, Spencer Rugaber 3

Software Process • The related set of activities and processes that are involved in

Software Process • The related set of activities and processes that are involved in developing and evolving a software system -- Summerville • Process assessment – ISO 9000 – Capability Maturity Model (CMM) • Software process improvement – Software Process Improvement Networks (SPIN) – Software Engineering Process Groups (SEPGs) ã 2007, Spencer Rugaber 4

Why Use a Process? ã 2007, Spencer Rugaber 5

Why Use a Process? ã 2007, Spencer Rugaber 5

Why Use a Process? • Management control • Reuse of tools, education and artifacts

Why Use a Process? • Management control • Reuse of tools, education and artifacts • Repeatable quality and productivity ã 2007, Spencer Rugaber 6

Increase in Cost-to-Fix or Change Software throughout the Life Cycle 1000 500 200 IBM-SSD

Increase in Cost-to-Fix or Change Software throughout the Life Cycle 1000 500 200 IBM-SSD GTE 100 50 20 80% Median (TRW survey) 20% SAFEGUARD 10 5 Smaller software projects 2 [Boehm, 1980] (Source : Software Engineering Economics - Boehm) 1 Requirements Design Code Development Acceptance ã 2007, Spencer test Rugaber test Operation Phase in which error was detected and corrected 7

Real World Software Process 1. 2. 3. 4. 5. 6. Order the T-shirts for

Real World Software Process 1. 2. 3. 4. 5. 6. Order the T-shirts for the development team Announce product availability Write the code Write the manual Hire a product manager Spec the software (writing the specs after the code helps to ensure that the software meets the specifications) 7. Ship 8. Test (the customers are a big help here) 9. Identify bugs as potential enhancements 10. Announce the upgrade program ã 2007, Spencer Rugaber 8

Popular Processes 1. Waterfall 2. Personal Software Process (PSP) / Team Software Process (TSP)

Popular Processes 1. Waterfall 2. Personal Software Process (PSP) / Team Software Process (TSP) 3. Unified Software Process (USP) / Rational Unified Process (RUP) 4. Cleanroom Software Engineering 5. Extreme Programming (XP) / Agile Methods ã 2007, Spencer Rugaber 9