Download presentation
Presentation is loading. Please wait.
1
Informatics 43 – March 31, 2016
2
What is Software Engineering?
3
What is Software Engineering? Software –
Code Documentation, user manuals Designs, specifications Test cases Plans and schedules
4
What is Software Engineering? Software –
Code Documentation, user manuals Designs, specifications Test cases Plans and schedules Skill and knowledge Application of scientific principles Trade-offs, cost / benefit analysis
5
From the textbook What is Software Engineering?
The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and works on real machines. The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.
7
What is Software Engineering?
David Parnas and Brian Randell: “The multi-person development of multi-version programs.”
8
What is Software Engineering?
An important component of your future career. Developer of software Co-worker with software developers Manager of software developers User of developed software Payer for developed software
9
What is Software Engineering?
Informatics 43: The process of constructing software. Phases of development other than programming. Principles and qualities of enduring value.
10
What is Software Engineering?
Informatics 43: The process of constructing software. Phases of development other than programming. Principles and qualities of enduring value. Also of (lesser) interest (in this course): Managing & scheduling software development teams. Making money – business models. Software’s impact on users, organizations, and society.
11
What is Software Engineering?
The process of constructing software.
12
What is Software Engineering?
Phases of development other than programming. Design:
13
Correctness! MODULARITY
What is Software Engineering? Principles and qualities of enduring value. Correctness! MODULARITY
15
No Silver Bullet – Essence and Accident in Software Engineering,
by Frederick Brooks A software project can become a monster of missed schedules, blown budgets, and flawed products.
16
No Silver Bullet The difficulties of software… Essence: “difficulties inherent in the nature of software” Accident: “difficulties that today attend its production but are not inherent” – for example, the representation of the essence in a programming language
17
No Silver Bullet – the essence of a software entity:
“a construct of interlocking concepts: data structures and classes, algorithms, function calls.” “the hard part of building software is the specification, design, and testing of the conceptual construct – not the programming and testing of the code.”
18
Inherent properties of the essence – Complexity
Software entities are complex. “No two parts are alike.” Nonlinear increase of complexity with size difficulty of communication among team members unreliability hard to use difficulty of extending security trapdoors
19
Inherent properties of the essence– Conformity
Software must conform to human institutions and systems. No way to “simplify out” this complexity by redesigning the software alone.
20
Inherent properties of the essence– Changeability
“All successful software gets changed.” Pressures for extended function. Software can be changed more easily. Successful software survives beyond the life of the hardware for which it was written.
21
Inherent properties of the essence– Invisibility
Software is unvisualizable. “The reality of software is not inherently embedded in space.” Hinders both understanding and communication among minds.
22
No Silver Bullet – Past Breakthroughs
Most fruitful steps (as of mid 1980s) High-level languages. Time-sharing. Unified programming environments.
23
No Silver Bullet – Hopes for the Silver
Ada and other high level languages. Object-oriented programming. Artificial intelligence. Expert systems. “Automatic” programming. Graphical programming. Program verification. Environments and tools. Workstations.
24
No Silver Bullet – Promising Attacks
Buy versus build. Requirements refinement and rapid prototyping. Incremental development—grow, not build software. Great designers. “The central question of how to improve the software art centers, as always, on people.”
25
To do: Readings for discussion tomorrow Think about the “root” causes of software project failures… “Creeping user requirements” What Brooks says What Ortiz says Castro says
26
Feature Creep
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.