100 likes | 310 Views
Outline. What is Engineering?Where does software stand as an engineering discipline?
E N D
1. Prospects for an Engineering Discipline of Software Mary Shaw
Presented by: Lihua Xu
2. Outline What is Engineering?
Where does software stand as an engineering discipline?
Software engineering is not yet a true engineering discipline, but it has the potential to become one.
Older engineering fields suggest the character software engineering might have.
3. What is engineering The disciplined application of scientific knowledge to resolve conflicting constraints and requirements for problems of immediate, practical significance.
Creating cost-effective solutions
To practical problems
By applying scientific knowledge
To building things
In the service of mankind Current software practice
Reuse? X
Reference? X
4. Routine and Innovative Design Routine Design
Solving familiar problems
Reusing prior solutions
Innovative Design
Unfamiliar problems
Rarely needed
Most engineering disciplines capture, organize, and share design knowledge to make routine design simpler.
e.g. handbooks, manuals
Current software design
Original in most application domain
Not adequate communications of experience
5. Evolution model for engineering discipline Management and production techniques enable routine production
The problems of routine production stimulate the development of a supporting science
6. Examples from traditional engineering Civil engineering: a basis in theory
Rooted in two scientific theories
An irresistible transition from a traditional craft, concerned with tangible fashioning, towards an abstract science, based on mathematical calculation
Chemical engineering: a basis in practice
Rooted in empirical observation
The basis of ChE is a pragmatically determined collection of very high-level functions that adequately and appropriately describe the processes to be carried out
7. Software Engineering Creating cost-effective solutions
To practical problems
In the service of mankind
the practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate, and maintain them. Barry Boehm, 1976
Life-cycle models, routine methodologies, cost-estimation techniques, documentation frameworks, configuration-management tools, quality-assurance techniques, and software management.
8. Evolution of Software Technology Information processing as an economic force
Growing role of software in critical applications
Maturity of development techniques
Programming-any-which-way
Programming-in-the-small
Programming-in-the-large
Scientific basis for engineering practice
Maturity of supporting science
Interaction between science & engineering
9. Evolution of Software Engineering
10. Steps to True engineering discipline Understand the nature of expertise
Specific contents about implications and appropriate use
Recognize different ways to get information
Creating the materials required to organize information, especially reference material for practitioners.
Encourage routine practice
Reference materials and case studies
Expect professional specializations
Explicit recognition of specialties
Improve the coupling between science and commercial practice
Research and production communications should be nurtured
11. Things to Discuss
Where are we in the evolution model?
Foundation is not adequate yet
Big gap between industry & research
Will be based in computer science?
Progress was not slowed by problems in formulating science notations
E.g. UML
What are the duties for software engineer? Are we doing it?