Software Engineering
-
Upload
roanna-barnett -
Category
Documents
-
view
19 -
download
0
description
Transcript of Software Engineering
Software Engineering
• What is Software Engineering?• Clearly: developing software• But what software?• Obvious: PCs, phones• … but not all computers have keyboards &
displays
How big are these systems?
• SW in consumer appliances doubles every 18 months• TV: 1,000,000 lines of code• DVDRW: 2,500,000 lines of code• Most consumer devices, washing-machines and so on have a
few K of software.
• F/A-22 (Raptor) fighter: 1.7 million lines of code• Avionics for Boeing 787 Dreamliner: 6.5 million lines
Embedded Systems• Note many of these have no keyboard, display
• Known as embedded systems• Low-end automobiles: 20 to 30 microprocessors
• High end: 100 million lines of code• Going to 200-300 million• Next generation air bags: predict who injured and where
How these systems work
• Alice: programming• Properties: information• Methods: actions
• “Real” programming• Same concepts: sequence, if, repetition• Most languages: objects = properties + methods• Generally pure text:
graphics.draw_rectangle(1, 1, 200, 400);
• But programming isn’t the whole story!
Software Engineering
Software Engineering: the application of sound engineering principles and techniques to
• gather and analyze the requirements for,• design/architect, • develop,• test, and• maintain
software systems.
Software Engineering
Software Engineering: the application of sound engineering principles and techniques to
• gather and analyze the requirements for,• design/architect, • develop,• test, and• maintain
software systems.
Just one part of a project!
Software Engineering
Software Engineering: the application of sound engineering principles and techniques to
• gather and analyze the requirements for,• design/architect, • develop,• test, and• maintain
software systems.
Software Engineering
Software Engineering: the application of sound engineering principles and techniques to
• gather and analyze the requirements for,• design/architect, • develop,• test, and• maintain
software systems.
Problemsolving
Software Engineering
Software Engineering: the application of sound engineering principles and techniques to
• gather and analyze the requirements for,• design/architect, • develop,• test, and• maintain
software systems.
Problemsolving
Getting things to
work
Software Engineering
Software Engineering: the application of sound engineering principles and techniques to
• gather and analyze the requirements for,• design/architect, • develop,• test, and• maintain
software systems.
Problemsolving
Getting things to
work
Software Engineering
Software Engineering: the application of sound engineering principles and techniques to
• gather and analyze the requirements for,• design/architect, • develop,• test, and• maintain
software systems.
Problemsolving
Getting things to
work
Software Engineering
Software Engineering: the application of sound engineering principles and techniques to
• gather and analyze the requirements for,• design/architect, • develop,• test, and• maintain
software systems.
Problemsolving
40%30%
Getting things to
work
Software Engineering: the application of sound engineering principles and techniques to
• gather and analyze the requirements for,• design/architect, • develop,• test, and• maintain
software systems.
Software Engineering
Problemsolving
40%30%30%
Getting things to
work
CS vs. SE
• Computer Science• Applying scientific method to study of computation
& computers• Developing new domains, new technologies
• Software Engineering • Applying best practices to solve real problems• Often: safety critical areas, large teams
Why large teams?
• Most software systems are extremely complex• Often: over 100,000,000 lines of code• Thousands of person-years!
• Must have a solid design, architecture and plan before programming starts
Job Prospects
• Bureau of Labor Statistics 2008-2018 Employment Projections for STEM:
• SE: 19%• 1 SE for every other engineer
• More recently:• 30% growth over 2010-2020
Skills needed
• Solid math skills• More importantly: creative problem-solving
• Requirements: what does the customer need?• Design: satisfying the need• Development: infinite ways to implement any design – want
one that is clear, maintainable• Testing: finding errors
• Other great things• Flexible – many telecommute; set hours (within limits)• New technologies, languages• Learn lots about different areas
SE @ UWP
• Focus on creating• safe, reliable, & usable systems• built by large teams• on time and within budget
• Emphases:• Engineering management, user interfaces
• Industrial Engineering• Embedded systems: real-time, control
• Electrical or Mechanical Engineering
What UWP SE gradsare doing
• Many industries, both within WI and around the world:• Mission critical avionics systems for military, Boeing 777 and 787,
and Airbus 340 and 380 aircraft• Automated warehouse control systems• Virtual reality systems for large construction equipment
What UWP SE gradsare doing
• Intelligent farm equipment• auto-piloted tractors• implements that dynamically adjust to the field
• Medical devices• pacemakers, implantable defibrillator• bionic limbs
• Satellite tracking and control software • Medical information systems