270 likes | 460 Views
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?.
E N D
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
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. Customer communication
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. Problem solving Customer communication
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. Problem solving Customer communication 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. Problem solving Customer communication Detective work 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. Problem solving Customer communication Detective work Getting things to work Exploration, understanding people
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. Problem solving 30% Customer communication 40% Detective work Getting things to work Exploration, understanding people
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. Problem solving 30% Customer communication 30% 40% Detective work Getting things to work Exploration, understanding people
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!