software engineering csci 4490 1 class 1- introduction/scope of software engineering august 22, 2009
TRANSCRIPT
So
ftw
are
En
gin
eeri
ng
CS
CI 4
49
0
1
Class 1- Introduction/Scope of Software Engineering
August 22, 2009
So
ftw
are
En
gin
eeri
ng
CS
CI 4
49
0
2
Slide CreditsSlide Credits
Much of the material for the course was in some way Much of the material for the course was in some way derived from:derived from: Official textbooks
• Object-Oriented and Classical Software Engineering, 7th 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)
So
ftw
are
En
gin
eeri
ng
CS
CI 4
49
0
3
Role of Software Engineering (Schach Ch1)Role of Software Engineering (Schach Ch1)
Software Engineering's aim: 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 ConferenceHistorical Aspects: 1968 NATO Conference Goal: to solve the “Software Crisis” Overlooked: bridges not same as software
QuestionQuestion: Is "Software Engineering" the : Is "Software Engineering" the same as “Engineering”? How are bridge building and same as “Engineering”? How are bridge building and software development similar, how are they different?software development similar, how are they different?
So
ftw
are
En
gin
eeri
ng
CS
CI 4
49
0
4
**ICE: Building Bridges vs. Building SoftwareICE: Building Bridges vs. Building Software
Issue Bridge Software
Stability/Complexity
(Im)perfect engineering
Maintenance
Collapse
So
ftw
are
En
gin
eeri
ng
CS
CI 4
49
0
6
Recent Studies on the State of Software Engr.Recent Studies on the State of Software Engr.
Standish Study (2000) Standish Study (2000) reviewed reviewed 280,000 projects =>280,000 projects =>Can you guess what the project success rate was?Can you guess what the project success rate was?
So
ftw
are
En
gin
eeri
ng
CS
CI 4
49
0
10
““Classical” Software Life CycleClassical” Software Life Cycle
Series of Development Steps, from Concept Exploration Series of Development Steps, from Concept Exploration through Final Retirement, Broken into 6 Phases:through Final Retirement, Broken into 6 Phases:
Requirements phase Requirements phase (concept explored, includes rapid (concept explored, includes rapid prototyping)prototyping)
Specification/Analysis phaseSpecification/Analysis phase (contract) (contract) Design phase Design phase
• high-level (architectural design => modules)• detailed (design of each module)
Implementation phaseImplementation phase (coding/testing) (coding/testing)• Unit testing• Integration of sub-systems
Maintenance phaseMaintenance phase (any changes after acceptance) (any changes after acceptance) RetirementRetirement
So
ftw
are
En
gin
eeri
ng
CS
CI 4
49
0
11
Where are software development $$$ being spent?Where are software development $$$ being spent?
Where are the majority of software Where are the majority of software development dollars being spent?development dollars being spent?
Requirements phase?Requirements phase?
Specification/Analysis phase?Specification/Analysis phase? (contract) (contract)
Design phase?Design phase?
Implementation phase?Implementation phase? (coding/testing) (coding/testing)
Maintenance phase?Maintenance phase? (any changes after acceptance) (any changes after acceptance)
Retirement?Retirement?
So
ftw
are
En
gin
eeri
ng
CS
CI 4
49
0
12
Where are software development $$$ being spent?Where are software development $$$ being spent?
1976-1981 1992-1998
So
ftw
are
En
gin
eeri
ng
CS
CI 4
49
0
13
*Cost to Detect and Correct a Fault*Cost to Detect and Correct a Fault
So
ftw
are
En
gin
eeri
ng
CS
CI 4
49
0
14
*Cost to Detect and Correct a Fault*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?
So
ftw
are
En
gin
eeri
ng
CS
CI 4
49
0
15
*ICE- Real or Perceived Savings?*ICE- Real or Perceived Savings?
Coding method CMCoding method CMnewnew is 10 percent faster than is 10 percent faster than
currently used method CMcurrently used method CMoldold. Should it be used?. Should it be used?
What is the total cost reduction attributed to reducing What is the total cost reduction attributed to reducing the coding cost by 10%? the coding cost by 10%?
What is the total cost reduction attributed to reducing What is the total cost reduction attributed to reducing postdelivery maintenance cost by 10%? postdelivery maintenance cost by 10%?
So
ftw
are
En
gin
eeri
ng
CS
CI 4
49
0
16
Why Computer Science & Information Why Computer Science & Information Technology?Technology?
1. Software Engineer2. College Professor3. Financial Advisor4. Human Resources Manager5. Physician Assistant6. Market Research Analyst7. Computer IT Analyst8. Real Estate Appraiser9. Pharmacist10. Psychologist
Top 10 Best JobsTop 10 Best JobsConsidering 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 AmericaBy T. Kalwarski, D. Mosher, J. Paskin, and D. Rosato CNNMoney.comMonday December 11, 2006
Best Jobs in AmericaBy T. Kalwarski, D. Mosher, J. Paskin, and D. Rosato CNNMoney.comMonday December 11, 2006
So
ftw
are
En
gin
eeri
ng
CS
CI 4
49
0
17
Why Computer Science & Information Why Computer Science & Information Technology?Technology?
NACE Summer 2009 Salary Survey - Starting Salary
Discipline (bachelor's degree level) Average
Computer ScienceComputer Science $61,407 $61,407 Electrical/ Electronics Engineering $60,125 Mechanical Engineering $58,766 Information Sciences & SystemsInformation Sciences & Systems $52,089 $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
So
ftw
are
En
gin
eeri
ng
CS
CI 4
49
0
18
*Aspects of Team Programming*Aspects of Team Programming Hardware (relatively) inexpensive — lead to increased demand for Hardware (relatively) inexpensive — lead to increased demand for
SW too large for one person to write in available time. SW too large for one person to write in available time. Brooks paper [1975] on the Brooks paper [1975] on the Mythical Man-Month:Mythical Man-Month:
Single Programmer => delivery in 1 year Team of 3 Programmers => delivery in ?
What’s the Difficulty with Teams?What’s the Difficulty with Teams?
So
ftw
are
En
gin
eeri
ng
CS
CI 4
49
0
19
Programmer vs. Software EngineerProgrammer vs. Software Engineer Responsibilities: Responsibilities: Recent Ad for a Software Engineer Recent Ad for a Software Engineer
(MSD, Washington D.C.)(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:Required Skills:
Java/J2EE, JSP, Oracle databases, SQLJava/J2EE, JSP, Oracle databases, SQL Education: Bachelor's degree in a related field from an accredited Education: Bachelor's degree in a related field from an accredited school school Clearance: Secret, existing clearance preferredClearance: Secret, existing clearance preferred
So
ftw
are
En
gin
eeri
ng
CS
CI 4
49
0
20
Homework- Due SOC Monday August 24Homework- Due SOC Monday August 24 Divide into groups and provide presentation on the following Life Cycle Divide into groups and provide presentation on the following Life Cycle
Models:Models: Build and Fix Waterfall Rapid Prototyping Incremental Evolution-Tree Life-cycle Iteration and Incrementation Extreme Programming Spiral
Presentation should include: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