230 likes | 488 Views
Software Engineering & Computer Science. Making the world a better place, one software program at a time!. What do we do?. Determine New Software Requirements Design New Software Develop Computer Software Test Computer Software Work With Customers Support Customer Software and Hardware
E N D
Software Engineering &Computer Science Making the world a better place, one software program at a time!
What do we do? • Determine New Software Requirements • Design New Software • Develop Computer Software • Test Computer Software • Work With Customers • Support Customer Software and Hardware • Assure the Quality of Computer Software
Software Making Us Safer • Airplanes • Cars • Tractors • Power Plants • Satellite tracking and control
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
Software in Medical Field • Software in medical devices • Pace makers, • Implantable defibrillators • Bionic limbs • Medical information systems
Improve the Environment • Carbon Management • Greenhouse Gas Management • Environmental Planning • Ground Water Modeling
Help Us Communicate Better • Web Applications • Email • Facebook • Twitter • Teleconferencing • Cell phones
Improve Business • Web and e-commerce systems • Automated factory & warehouse systems • Insurance software • Banking software
More Fun! • Computer games • PlayStation • Wii • Xbox • Virtual Reality systems • Thousands of Web Games • SW in appliances doubles every 18 months
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
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
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
Placement & Salaries • SE Placement • Near 100% • CS Placement • About 80 - 90% • Salaries • Vary from middle $40K to $90K • Average in low to mid $50K • SE average is higher than CS average • CS & SE among 10 fastest job growth next 10 yrs