Introduction to Software Engineering - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

Introduction to Software Engineering

Description:

Software design, development, and testing. Communication. Requirements and defect tracking ... Half of the time in the software. development cycle is spent on testing ... – PowerPoint PPT presentation

Number of Views:167
Avg rating:3.0/5.0
Slides: 18
Provided by: GailK9
Category:

less

Transcript and Presenter's Notes

Title: Introduction to Software Engineering


1
Introduction to Software Engineering
  • Chris Murphy
  • Programming Systems Lab

2
How many lines of code?
  • Average CS1004 assignment
  • 200 lines
  • Average CS4115 project
  • 5000 lines
  • Corporate e-commerce project
  • 80,000 lines
  • Microsoft Windows XP
  • 40,000,000 lines

3
What is Software Engineering?
  • The practice of creating and maintaining
    software applications by applying technologies
    and practices from engineering, computer science,
    project management, application domains and other
    fields.
  • -Wikipedia

4
Over 50 of software projects fail
  • Fred Brooks IBMs OS/360 was late, took more
    memory than was planned, costs were several times
    the estimate, and it did not perform very well
    until several releases after the first

5
Why do software projects fail?
Difficult to accurately estimate how long
something will take
6
Why do software projects fail?
Developers typically overestimate/overstate their
productivity
7
Why do software projects fail?
Requirements are not always clearly defined
8
Why do software projects fail?
Requirements are not always realistic
9
Why do software projects fail?
Requirements are always changing
10
Software development tradeoffs
  • Cost vs Scope vs Quality vs Time
  • Security vs Performance
  • Specialization vs Generalization
  • Specificity vs Flexibility

11
Software Engineering
  • Processes
  • Project management (resources, time, etc.)
  • Requirements gathering management
  • Software design architecture
  • Software development
  • Testing and quality assurance
  • Tools
  • Software design, development, and testing
  • Communication
  • Requirements and defect tracking
  • Version control

12
Software Engineering
  • Processes
  • Project management (resources, time, etc.)
  • Requirements gathering management
  • Software design architecture
  • Software development
  • Testing and quality assurance
  • Tools
  • Software design, development, and testing
  • Communication
  • Requirements and defect tracking
  • Version control

13
Software testing is undervalued
  • Software and Cathedrals are much the same
    First we build them, then we pray!!!
  • -Sam Redwine, Jr.

14
Software testing is important
Half of the time in the software development
cycle is spent on testing
15
Types of software testing
  • Unit testing
  • Test the basic pieces, eg methods or functions
  • Integration testing
  • Combinations of units
  • System testing
  • Black-box or acceptance testing
  • Regression testing
  • Make sure changes dont break anything
  • Non-functional testing
  • Performance, security, etc.

16
Other types of testing
  • Obsession testing
  • Ill fix this bug if its the last thing I do.
  • Aggression testing
  • If this doesnt work, Im gonna kill somebody.
  • Depression testing
  • If this doesnt work, Im gonna kill myself.

17
My research
  • In vivo testing
  • Executing tests in the field while the software
    is running
  • Testing machine learning applications
  • Looking for ways to test when the correct outcome
    cannot be known in advance
  • Retina
  • Learning about CS1 students programming habits
  • genSpace
  • Collaboration in computational biology
  • cmurphy_at_cs.columbia.edu
Write a Comment
User Comments (0)
About PowerShow.com