410 likes | 547 Views
Introduction. The increasing popularity and importance of software, e.g.,? Automatic bank tellers? Airline reservation systems? Air traffic control systems? Financial investment systems. Introduction. Early Stage of Software Development? Programs were fairly small. ? A Program was written by
E N D
1. Software Engineering ECE473/573
Class notes
2. Introduction The increasing popularity and importance of software, e.g.,
– Automatic bank tellers
– Airline reservation systems
– Air traffic control systems
– Financial investment systems
3. Introduction Early Stage of Software Development
– Programs were fairly small.
– A Program was written by a single
programmer.
– The programmer was the user of the program.
– Software development was considered an art.
4. Introduction Current Stage of Software Development
– Programs are fairly large, e.g. Programs are fairly large, e.g.
• The UNIX Operating System comprises 3.7 million lines of code.
• The NASA Space shuttle software comprises 40 million lines of object code.
– Programs are being developed by teams that collaborate over periods spanning several years.
5. Introduction – Programmers are not the users of the system they develop, and they have no
expert knowledge of the application system they develop.
• Software development has become an
Engineering discipline.
6. Software Engineering Software engineering is the systematic approach to the development, operation, maintenance, and retirement of software
(IEEE standard glossary).
7. The SEI Levels of Maturity
8. Towards a Disciplined Realistic Software Development Process<Common Programming Practice> conceptualize: think about the problem
write code: express your ideas directly in programming form
debug: execute and modify the code until it does what you want
9. Idealized Software Development Process
10. More Realistic Process
11. Concepts to be developed
12. Software Life Cycle From initial development to release, running and maintenance, the software
life span is divided into different phases.
Each phase has a milestone product.
13. Software Life Cycle
14. The Waterfall Life Cycle Model
15. The Waterfall Life Cycle Model
16. The Waterfall Life Cycle Model
17. Prototyping Life Cycle Model
18. Incremental Life Cycle Model
19. Incremental Life Cycle Model
21. The Spiral Model
22. Full Spiral Model
23. Full Spiral Model (contd)
24. Analysis of the Spiral Model
25. Criteria for deciding on a model
26. Coordination in Team-based Software Development: Role of the “Blueprint”
27. Team Work: The Need for Coordination
28. Two Forms of OrganizationDemocratic, Hierarchical
29. Software Blueprint: A Mediating Element For Team Coordination.
30. Software Blueprint as a contract between designer, implementer and tester
32. Gantt Chart
33. PERT Chart
34. Software Cost Estimation
35. Source Lines of Code
36. The Scale Drivers
37. COCOMO II Effort Equation