Software Engineering CSCI Class 1- Introduction/Scope of Software Engineering August 22, 2009
Software Engineering CSCI Slide Credits Much of the material for the course was in some way derived from: Official textbooks Object-Oriented and Classical Software Engineering, 7 th Edition, Stephen R. Schach (Copyright 2007 McGraw Hill) Core Java 2, Volume I-Advanced Features, 8th Ed., C. S. Horstmann and G. Cornell, Prentice Hall, 2008 Core Java 2, Volume II-Fundamentals, 8th Ed., C. S. Horstmann and G. Cornell, Prentice Hall, 2008 Prof. Don Needham (USNA) Prof. Lori DeLooze (USNA) Prof. David Coppit (W&M)
Software Engineering CSCI Role of Software Engineering (Schach Ch1) Software Engineering's aim: produce fault-free SW that meets user's needs delivered on time/in budget Easy to modify when user's needs change Historical Aspects: 1968 NATO Conference Goal: to solve the “Software Crisis” Overlooked: bridges not same as software Question: Is "Software Engineering" the same as “Engineering”? How are bridge building and software development similar, how are they different?
Software Engineering CSCI *ICE: Building Bridges vs. Building Software IssueBridgeSoftware Stability/ Complexity (Im)perfect engineering Maintenance Collapse
Software Engineering CSCI *ICE: Building Bridges vs. Building Software
Software Engineering CSCI Recent Studies on the State of Software Engr. Standish Study (2000) reviewed 280,000 projects => Can you guess what the project success rate was?
Software Engineering CSCI Recent Studies on the State of Software Engr. Standish Study (2000) reviewed 280,000 projects =>
Software Engineering CSCI Recent Studies on the State of Software Engr. Standish Study (2004 update) reviewed 9,236 projects =>
Software Engineering CSCI 4490 Cutter Study (2002) : 78% of projects have been involved in disputes ending in litigation: In 67% of the disputes, functionality of delivered information system did not meet claims of developers In 45% of the disputes, defects were so severe that system was unusable In 56% of the cases, not delivered on schedule 9 Recent Studies on the State of Software Engr. Standish Study (2004 update) reviewed 9,236 projects =>
Software Engineering CSCI “Classical” Software Life Cycle Series of Development Steps, from Concept Exploration through Final Retirement, Broken into 6 Phases: Requirements phase (concept explored, includes rapid prototyping) Specification/Analysis phase (contract) Design phase high-level (architectural design => modules) detailed (design of each module) Implementation phase (coding/testing) Unit testing Integration of sub-systems Maintenance phase (any changes after acceptance) Retirement
Software Engineering CSCI Where are software development $$$ being spent? Where are the majority of software development dollars being spent? Requirements phase? Specification/Analysis phase? (contract) Design phase? Implementation phase? (coding/testing) Maintenance phase? (any changes after acceptance) Retirement?
Software Engineering CSCI Where are software development $$$ being spent?
Software Engineering CSCI *Cost to Detect and Correct a Fault
Software Engineering CSCI *Cost to Detect and Correct a Fault ICE: Using 1980 data, if it costs $8400 to fix a fault after delivery, how much would it have cost to fix if the fault had been detected during implementation?
Software Engineering CSCI *ICE- Real or Perceived Savings? Coding method CM new is 10 percent faster than currently used method CM old. Should it be used? What is the total cost reduction attributed to reducing the coding cost by 10%? What is the total cost reduction attributed to reducing postdelivery maintenance cost by 10%?
Software Engineering CSCI Why Computer Science & Information Technology? 1. Software Engineer 2. College Professor 3. Financial Advisor 4. Human Resources Manager 5. Physician Assistant 6. Market Research Analyst 7. Computer IT Analyst 8. Real Estate Appraiser 9. Pharmacist 10. Psychologist Top 10 Best Jobs Considering growth, pay, stress levels and other factors $80,427 $81,491 $122,460 $73,731 $75,117 $82,317 $83,427 $66,216 $91,998 $66,359 Best Jobs in America By T. Kalwarski, D. Mosher, J. Paskin, and D. Rosato CNNMoney.com Monday December 11, 2006 Best Jobs in America By T. Kalwarski, D. Mosher, J. Paskin, and D. Rosato CNNMoney.com Monday December 11, 2006
Software Engineering CSCI Why Computer Science & Information Technology? NACE Summer 2009 Salary Survey - Starting Salary Discipline (bachelor's degree level) Average Computer Science $61,407 Electrical/ Electronics Engineering $60,125 Mechanical Engineering $58,766 Information Sciences & Systems $52,089 Civil Engineering $52,048 Economics $49,829 Accounting $48,993 History $37,861 English $34,704 Summer 2009 Salary Survey National Association of Colleges and Employers
Software Engineering CSCI *Aspects of Team Programming Hardware (relatively) inexpensive — lead to increased demand for SW too large for one person to write in available time. Brooks paper [1975] on the Mythical Man-Month: Single Programmer => delivery in 1 year Team of 3 Programmers => delivery in ? What’s the Difficulty with Teams?
Software Engineering CSCI Programmer vs. Software Engineer Responsibilities: Recent Ad for a Software Engineer (MSD, Washington D.C.) Designs and develops new systems and system enhancements based on defined requirements Adheres to industry development standards Designs and develops maintenance releases for existing systems based on defined needs and/or change requests. Provides input to technical documentation related to design, development, and implementation of systems. Works in an integrated team environment to provide high- quality products in a time efficient manner. Required Skills: Java/J2EE, JSP, Oracle databases, SQL Education: Bachelor's degree in a related field from an accredited school Clearance: Secret, existing clearance preferred
Software Engineering CSCI Homework- Due SOC Monday August 24 Divide into groups and provide presentation on the following Life Cycle Models: Build and Fix Waterfall Rapid Prototyping Incremental Evolution-Tree Life-cycle Iteration and Incrementation Extreme Programming Spiral Presentation should include: An overview/description of the main features of the model, including illustrations to depict its functionality A list of the Advantages and Disadvantages of the model Application instance/area where use of the model is appropriate Application instance/area where use of the model in inappropriate