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