CS 501: Software Engineering Software Engineering as Engineering CS 501 Spring 2002

advertisement
CS 501: Software Engineering
Lecture 27
Software Engineering as Engineering
1
CS 501 Spring 2002
Administration
• Course evaluations at end of class
• No class on Thursday
• Final presentations on Wednesday, Thursday and
Friday
2
CS 501 Spring 2002
Quiz4: Question 2(c)
You have hired two new members of staff.
(i)The first has just graduated from the Cornell M.Eng.
program in computer science, with no work experience.
(ii) The second has five years' experience in developing
advanced Web applications, but has never worked on
hand-held computers.
3
Some of the development tasks are more interesting than
others.
Some tasks are harder than others. Some are more time
critical
than others. What approach would you use in allocating the
tasks to these two new members?
CS 501 Spring 2002
Bad Answers
The Cornell graduate has more expertise to tackle the harder
tasks. What makes you so superior?
The Cornell graduate is used to time-critical tasks (course
assignments). Sorry, that's not for real.
The Cornell graduate should be given interesting work to make
him/her keen to continue with the company. But who cares if you
leave?
A raw graduate is still a trainee -- the most junior person -much to learn -- no experience of production quality
development.
But, hopefully, with great potential!
4
CS 501 Spring 2002
Good Answers
• Both should be "high-quality, highly motivated" with potential to
"produce excellent software under tight time constraints."
• Both new employees need to learn the technical environment.
Expect them both to work slowly until they learn the environment.
• The junior (raw graduate) need mentoring. The senior
(experienced developer) may work independently or lead a team.
• The junior should not be put on time-critical tasks. The
experienced developer can be.
• Both people should be given a mixture of more and less
interesting tasks. Discuss the allocation with them.
5
CS 501 Spring 2002
The Need for Software Engineering
Software as a product:
=> Awkward to use
=> Full of errors
=> No chance to try it out
=> No guarantees
Not much of a product
6
CS 501 Spring 2002
Engineers, Texas and the ACM
• Proposal in the Texas legislature to license
professional engineers in Software Engineering
• What role should the ACM play?
7
CS 501 Spring 2002
From the National Society of
Professional Engineers
• Only a licensed engineer may prepare, sign and seal, and
submit engineering plans ... for public and private clients.
• Licensure for individuals ... is a legal requirement for those
who are in responsible charge of work, ...
• Federal, state, and municipal agencies require that certain
[positions] ... be filled only by licensed professional engineers.
• Many states have been increasingly requiring that those
individuals teaching engineering must be licensed.
• State engineering boards are increasingly ... obtaining the
authority to impose civil penalties against unlicensed
individuals.
8
CS 501 Spring 2002
What is Engineering?
The profession of:
... creating cost-effective solutions ...
... to practical problems ...
... by applying scientific knowledge ...
... and established practices ...
... building things ...
and taking responsibility for them!
9
CS 501 Spring 2002
Crafts, Science, Engineering
Science
Production
Commercial
Professional
Engineering
Craft
10
From: Shaw and Garlan
CS 501 Spring 2002
Crafts, Science, Engineering
algorithms
data structures
Science
Production
software development
methodologies
Commercial
compiler
construction
Professional
Engineering
Craft
11
From: Shaw and Garlan
CS 501 Spring 2002
Software Engineering as Engineering?
• Part craft -- part engineering
•
Embryonic scientific basis
•
Evolving body of expertise
ACM conclusion: Software Engineering is in too
much of a craft, too uncertain, and changing too
much for the apparatus of a profession
• Who has the expertise to define a formal Body of
Knowledge?
• What would be in an accreditation exam?
12
CS 501 Spring 2002
Discussion of Pfleeger, Chapter 13
Format:
State a question.
Ask a member of the class to answer.
(Sorry if I pronounce your name wrongly.)
Provide opportunity for others to comment.
When answering:
Stand up.
Give your name or NetID. Make sure the TA hears it.
Speak clearly so that all the class can hear.
13
CS 501 Spring 2002
Q1: Software Engineering Institute
Capability Maturity Model
1. Initial -- no effective management processes
2. Repeatable -- requirements management, project planning,
scheduling and tracking, quality assurance, configuration
control
3. Defined -- conformity to defined processes, design and code
reviews, communication procedures, personnel development
4. Managed -- software quality management, quantitative process
management
5. Optimizing -- continuous improvement of processes
Question: What is the evidence that the Capability Maturity
Model reflects effective Software Engineering?
14
CS 501 Spring 2002
Q2: Team Productivity
Microsoft is the world's greatest software company, but
Windows 2000 was two years behind schedule.
Question: What impact does each of the following have
on productivity?
•
•
•
•
•
•
15
Staff ability and expertise
Domain expertise
Process quality
Project size / team size
Technology support
Working environment
CS 501 Spring 2002
Q3: Productivity
The usual definition of productivity is:
Productivity = (units of output)
(resources input)
Question: What is the unit of output in software
engineering?
16
CS 501 Spring 2002
Q4: Process Improvement
A software development group has many processes: project
management, scheduling, communications, documentation,
testing, reporting, recruiting, training, etc.
Level 5 of the Capability Maturity Model is continuous
improvement of processes
Question: Is it possible to carry out continuous process
improvement in a quantifiable manner?
17
CS 501 Spring 2002
Q5: Cost Estimation Techniques
The following techniques of cost estimation have
been suggested.
•
Algorithmic cost modeling
•
Expert judgment
•
Estimation by analog
•
Pricing to win
Question: When would you use each of these
techniques? What confidence would you have in
the estimates?
18
CS 501 Spring 2002
The End
• Good process help the development of good software:
the limits of heroic efforts
• Software engineering is a craft, not a fixed procedure
• Minimize risk:
visible process
function v. time v. cost
• The importance of people
If the requirements are not well understood, the system
will fail!
19
CS 501 Spring 2002
Download