Software Engineering

25
Software Engineering What is Software Engineering? Clearly: developing software But what software? Obvious: PCs, phones … but not all computers have keyboards & displays

description

Software Engineering. What is Software Engineering? Clearly: developing software But what software? Obvious: PCs, phones … but not all computers have keyboards & displays. Software Systems. Software Systems. Software Systems. How big are these systems?. - PowerPoint PPT Presentation

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

SoftwareSystems

SoftwareSystems

SoftwareSystems

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

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

Review

• SE: systems development in the whole• Tasks: requirements, design, test, implement

• Implementation less than 30% of total effort

• Areas @ UWP: Embedded systems, Controls, Management

• Wide variety of careers available

• Solving real problems for real people!