Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina,...

53
Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department iversity of North Carolina, Wilmington [email protected] Presentation to ISIS Research Group @UNCW on 7/12/2011. ing Software Engineerin g

Transcript of Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina,...

Page 1: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 1

Dr. Devon M. SimmondsComputer Science Department

University of North Carolina, [email protected]

Presentation to ISIS

Research Group

@UNCW on 7/12/2011.

Understanding

Software Engineerin

g

Page 2: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 2

University of Technology, Jamaica

Ph.D. Colorado State University

My Story

United States

Page 3: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 3

3

• Computer science - solving problems with the aid of a computer

Motivation

Computers are everywhere!

Page 4: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 4

4

• Computer are everywhere!

Page 5: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 5

5

• And there are good computer jokes!

Motivation

“Witness testifies on Software Security”

Page 6: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 6

6

• And there are good computer jokes!

Motivation

“Witness testifies on Software Speed”

Page 7: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 7

7

• Solving problems with the aid of a computer• We want to instruct the computer to perform tasks.• Humans communicate through natural languages: English, Spanish, French,

etc.• The computer has its own language!

– Bits and bytes, 0’s and 1’s – machine language• So humans and computers speak different languages!

• 1st Problem: – How do we give instructions to a computer to do what we want it to

do if we speak different languages?

Problems in Computer Science

???

A communication problem

Page 8: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 8

8

Employ an Interpreter

How do we solve the communication problem?

• What language should the interpreter speak?– Human & machine language

• 2nd Problem:– Human language is ambiguous!

Problems in Computer Science

Page 9: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 9

9

Motivation

Interpreter

• The process of writing instructions for a computer to execute is called programming.

• The written instructions is called a program or software.

Programming language

Machine language

How do we solve the problem of language

ambiguity?

Machine language

Page 10: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 10

10

Writing Programs

Translation

Programming language

Machine language

PEOPLE COMPUTER

0100 10000000 10100000 01010000 0001

105Add

0100 10000000 10100000 01010000 0001

105Add

Push

Div

Mult

Subtract

Add

Assembly Instructions

Push

Div

Mult

Subtract

Add

Assembly InstructionsHigh-level Program

for(int i=0; i<10; i++) System.out.println(list[i]);

Large software systems: 4 x 106 – 100 x 106

Page 11: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 11

11

Hardware vs. Software

• The early decades (40s – 60s)

– Main focus of attention - computer hardware. • Building faster, simpler, and, more efficient

machines.

ENIAC I - 1946 Modern Supercomputer

Page 12: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 12

12

Software problems

• Inability to predict time, effort, and costs.– Projects were often late and ran over

budget because there was little experience on which to base predictions

• Inability to deliver quality software.– Customers and developers accept that

software will always have defects– Software products are released with known

“list of bugs”

• Lack of enough competent software developers

Page 13: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 13

13

Rising software complexity!

• Complex, critical systems are pervasive!– Quality of life issues

• Consequences of errors are far-reaching– Consequences of errors are far-reaching

• Consequences of errors are far-reaching

network

A

B C

Wilmington

Chapel HillCharlotte

Page 14: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 14

14

Long-distance phone traffic routing software

Result: Loss of long-distance service in NE USACost of approx. $800 M (1990)

Missing break statement

…switch (caseIndex) {

case‘A’: route = routeA;…

break;…

case‘M’: route = routeM;

case‘N’: route = routeN;…

break;…}

Complexity + Non-rigorous Development

Mishaps

Page 15: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 15

15

• Problem:– Patients were given massive overdoses of radiation

• Cause:• Safety of software not considered• Software reused without testing• No architectural model.

• Result: at least 5 deaths!

The radiation therapy: Therac 25 Machine

Complexity + Non-rigorous Development

Mishaps

Page 16: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 16

16

Help! Help! Solution? – Engineer Software!!

Page 17: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 17

17

What is engineering?

– The application of scientific principles and methods to the construction of useful structures & machines

• Examples– Mechanical engineering– Civil engineering– Chemical engineering– Electrical engineering– Nuclear engineering– Aeronautical engineering

Page 18: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 18

18

What is Software engineering?

• The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.

Bauer/Pressman

Page 19: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 19

19

• Computer science - solving problems with the aid of a computer

• Artificial intelligence• Database management systems• Distributed systems• Computer graphics• Operating systems• Biometrics

• Software engineering

Engineering Software

Page 20: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 20

FAQs about software engineering

1. What is the process used to build software?2. What is the role of models in engineering

software?3. What are the costs of software engineering?4. What are the attributes of good software?5. What are the key challenges facing software

engineering?6. What are the prospects for employment in SE?

Page 21: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 21

21

The Software Engineering Lifecycle

• The process/activities of developing and evolving software

Systems Engineering

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

1. What is the process used to build software?

Page 22: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 22

22

• Systems Engineering– Identify needs/problems– Allocation of roles

• Hardware• Procedures• Software

– Feasibility studies

Systems Engineering

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

The Software Engineering Lifecycle

1. What is the process used to build software?

Page 23: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 23

23

The Software Engineering Lifecycle

• Requirements Analysis– Define goals, objectives, features of target software

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

Systems Engineering

Identify needs, problems and allocate roles

1. What is the process used to build software?

Page 24: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 24

24

The Software Engineering Lifecycle

• Software design– Creating a blueprint for building the software

• Architectural design• Subsystem design• Detailed design• Procedural Design• User Interface Design• Database Design• Data Structures Design• Test case design

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

Systems Engineering

Identify needs, problems and allocate roles

Define software features

1. What is the process used to build software?

Page 25: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 25

25

The Software Engineering Lifecycle

• Implementation– Creating the finished product – the program

• Coding – Writing code for the classes and operations

• Generate object code• Create Test cases• Create user manuals

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

Systems Engineering

Identify needs, problems and allocate roles

Define software features

Create blueprint

1. What is the process used to build software?

Page 26: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 26

26

The Software Engineering Lifecycle

• Testing– Determining if the software has errors/fulfils its requirements

• Test planning• Unit testing• Subsystem testing• Integration testing• Regression testing• Test case design

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

Systems Engineering

Identify needs, problems and allocate roles

Define software features

Create blueprint

Create code

1. What is the process used to build software?

Page 27: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 27

27

The Software Engineering Lifecycle

• Deployment– Making the software available for use

• Deployment/installation planning• Develop documentation• Hardware configuration• Installation• Software distribution• Training

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

Systems Engineering

Identify needs, problems and allocate roles

Define software features

Create blueprint

Create code

Uncovering errors

1. What is the process used to build software?

Page 28: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 28

28

The Software Engineering Lifecycle

• Evolution– Managing the software

• Configuration management– Controlling change as software evolves

• Technical support• Software lifecycle activities

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

Systems Engineering

Identify needs, problems and allocate roles

Define software features

Create blueprint

Create code

Uncover errors

Make software

available for use

1. What is the process used to build software?

Page 29: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 29

29

The Software Lifecycle

• General activities– Project management– Software estimation & scheduling– Training– Configuration management

Requirements Analysis

Software Design

Implementation

Testing

Deployment

Evolution

Systems Engineering

1. What is the process used to build software?

Page 30: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 30

FAQs about software engineering

1. What is the process used to build software?2. What is the role of models in engineering

software?3. What are the costs of software engineering?4. What are the attributes of good software?5. What are the key challenges facing software

engineering?6. What are the prospects for employment in SE?

Page 31: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 31

31

Models in Engineering

• Benefits of models– Help us understand and manage complex systems

– Communicate understanding

– Drive implementation

– Save resources

Engineering is a Model-Driven Discipline!

A - Making a V-cut. B - Receiving Inside Hand-off.

Roy Williams

Page 32: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 32

32

Model-Driven Development (MDD)

CodeCodeCodeCode

CreateCreateModelModel

ModelModel of the Program of the ProgramModelModel of the Program of the Program

AAAA

BBBBCCCC

SC_MODULE(producer){sc_outmaster<int> out1;sc_in<bool> start; // kick-startvoid generate_data (){for(int i =0; i <10; i++) {out1 =i ; //to invoke slave;}}SC_CTOR(producer){SC_METHOD(generate_data);sensitive << start;}};SC_MODULE(consumer){sc_inslave<int> in1;int sum; // state variablevoid accumulate (){sum += in1;cout << “Sum = “ << sum << endl;}

Using modelinglanguage

CompileCompileModelModel

Need modelcompiler

CompileCompileCodeCode

Binary instructionsBinary instructionsBinary instructionsBinary instructionsSC_MODULE(producer){sc_outmaster<int> out1;sc_in<bool> start; // kick-startvoid generate_data (){for(int i =0; i <10; i++) {out1 =i ; //to invoke slave;}}SC_CTOR(producer){SC_METHOD(generate_data);sensitive << start;}};SC_MODULE(consumer){sc_inslave<int> in1;int sum; // state variablevoid accumulate (){sum += in1;cout << “Sum = “ << sum << endl;}

Code-centric Development

ManuallyManually

Create CodeCreate Code

Using programming

language

• Realizing the dream – MDD challenges– Abstraction: specifying models– Model Transformation: creating new models from existing models– Code Generation: generating code from models, i.e. compiling models– Managing middleware: supporting model portability, reusability, etc.– Analysis: determining properties of models

Page 33: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 33

33

Model-Driven Development (MDD)

CodeCodeCodeCode

CreateCreateModelModel

ModelModel A AModelModel A A

AAAA

BBBBCCCC

SC_MODULE(producer){sc_outmaster<int> out1;sc_in<bool> start; // kick-startvoid generate_data (){for(int i =0; i <10; i++) {out1 =i ; //to invoke slave;}}SC_CTOR(producer){SC_METHOD(generate_data);sensitive << start;}};SC_MODULE(consumer){sc_inslave<int> in1;int sum; // state variablevoid accumulate (){sum += in1;cout << “Sum = “ << sum << endl;}

CompileCompileModelModel

CompileCompileCodeCode

Binary instructionsBinary instructionsBinary instructionsBinary instructionsSC_MODULE(producer){sc_outmaster<int> out1;sc_in<bool> start; // kick-startvoid generate_data (){for(int i =0; i <10; i++) {out1 =i ; //to invoke slave;}}SC_CTOR(producer){SC_METHOD(generate_data);sensitive << start;}};SC_MODULE(consumer){sc_inslave<int> in1;int sum; // state variablevoid accumulate (){sum += in1;cout << “Sum = “ << sum << endl;}

ModelModel B BModelModel B B

MMMM

BBBBCCCC

AAAA

PPPPKKKK

class Student { private:       int age;

     char name[40]; Address address;

public:     void move();      void speak();

}

Page 34: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 34

34

What is complexity?

• The quality of being intricate and difficult to understand

Managing

Complexity

Page 35: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 35

35

Managing Complexity

• Is there a limit?

Managing

Complexity

Page 36: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 36

36

Forms of complexity

• Algorithmic• Structural• Behavioral• Computational (time, space)• Data structure• Graphical?

Managing

Complexity

Page 37: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 37

37

Essential vs. Accidental Complexity

• Fred Brooks: The Mythical Man-Month• Essential complexity: inherent in the problem and

cannot be eliminated by technological or methodological means– E.g., making airplanes fly

• Accidental complexity: unnecessary complexity introduced by a technology or method– E.g., building construction without using power

tools– …or, translating designs (models) into

programs without the help of computersChoose appropriate methods, techniques, tools.

Managing

Complexity

Page 38: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 38

Managing Complexity?

• Make engineering is a Model-Driven Discipline!

• Be rigorous in applying SE principles and techniques.

38

Managing

Complexity

Page 39: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 39

FAQs about software engineering

1. What is the process used to build software?2. What is the role of models in engineering

software?3. What are the costs of software engineering?4. What are the attributes of good software?5. What are the key challenges facing software

engineering?6. What are the prospects for employment in SE?

Page 40: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 40

What are the costs of software engineering?

• Roughly 60% of costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs– Costs vary depending on the type of system being

developed and the requirements of system attributes such as performance and system reliability

– Distribution of costs depends on the development model that is used

Question #3

Page 41: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 41

41

Economic and Management Aspects of SE

• Software production =development + maintenance (evolution)

• Maintenance costs > 60% of all development costs– 20% corrective – to fix defects– 30% adaptive – to accommodate changes to

external environment– 50% perfective – extend and/or refactor

Question #3

Page 42: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 42

42

Relative Costs of Fixing Software Faults

Requirements Specification Planning Design Implementation Integration Maintenance

1 2 3 410

30

200

Question #3

Page 43: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 43

FAQs about software engineering

1. What is the process used to build software?2. What is the role of models in engineering

software?3. What are the costs of software engineering?4. What are the attributes of good software?5. What are the key challenges facing software

engineering?6. What are the prospects for employment in

CS/SE?

Page 44: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 44

What are the attributes of good software?

• The software should deliver the required functionality and performance to the user

• Maintainability– Software must evolve to meet changing needs

• Dependability– Software must be trustworthy

• Efficiency– Software should not make wasteful use of system resources

• Usability– Software must be usable by the users for which it was

designed

• Etc.

Question #4

Page 45: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 45

FAQs about software engineering

1. What is the process used to build software?2. What is the role of models in engineering

software?3. What are the costs of software engineering?4. What are the attributes of good software?5. What are the key challenges facing software

engineering?6. What are the prospects for employment in

CS/SE?

Page 46: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 46

What are the key challenges facing software

engineering?• Legacy systems

– Old, valuable systems must be maintained and updated

• Heterogeneity– Systems are distributed and include a mix of hardware

and software

• Delivery– There is increasing pressure for faster delivery of

software

Question #5

Page 47: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 47

FAQs about software engineering

1. What is the process used to build software?2. What is the role of models in engineering

software?3. What are the costs of software engineering?4. What are the attributes of good software?5. What are the key challenges facing software

engineering?6. What attributes should a good engineer

possess?7. What are the prospects for employment in SE?

Page 48: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 48

48

Attributes of a Good Software Engineer

• Is a good engineer!• Can program in the large as well as in-

the-small.• Has a solid understanding of computing

and software.• Is comfortable with working with models

at different levels of abstraction.• Can communicate and work effectively

with other team members.

Question #10

Page 49: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 49

FAQs about software engineering

1. What is the process used to build software?2. What is the role of models in engineering

software?3. What are the costs of software engineering?4. What are the attributes of good software?5. What are the key challenges facing software

engineering?6. What are the prospects for employment in

SE?

Page 50: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 50

US Department of Labor 25 fastest growing

occupations in America between 2004 and 2014

1 Home health aides 56% Vocational certificate /On-The-Job training 2 Network systems and data communications analysts 55% Bachelor's

degree 3 Medical assistants 52% Vocational certificate /OJT 4 Physician assistants 50% Bachelor's degree 5 Computer software engineers, applications 48% Bachelor's degree 6 Physical therapy assistants 44% Associate degree 7 Dental hygienists 43% Associate degree 8 Computer software engineers, systems software 43% Bachelor's

degree 9 Dental assistants 43% Vocational certificate /OJT 10 Personal/ home care aides 41% Vocational certificate /OJT

http://hubpages.com/hub/Top25

Page 51: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 51

US Department of Labor 25 fastest growing

occupations in America between 2004 and 2014

11 Network and computer systems administrators 38% Bachelor's degree

12 Database administrators 38% Bachelor's degree 13 Physical therapists 37% Master's degree 14 Forensic science technicians 36% Associate degree 15 Veterinary technologists and technicians 35% Associate degree 16 Diagnostic medical sonographers 35% Associate degree 17 Physical therapy aides 34% OJT 18 Occupational therapist assistants 34% Associate degree 19 Medical scientists, except epidemiologists 34% Doctoral degree 20 Occupational therapists 34% Master's degree

http://hubpages.com/hub/Top25

Page 52: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 52

Fall 2009 Starting Salary Offers

Major 2009 SalariesPetroleum Engineering $85,417Chemical Engineering $66,675Mining & Mineral Engineering $62,802Computer Science $61,467Computer Engineering $60,844Electrical Engineering $60,509Nuclear Engineering $60,209Metallurgical Engineering $59,837Mechanical Engineering $59,222Industrial Engineering $58,230Materials Engineering $58,076Systems Engineering $56,943Actuarial Science $56,380Aerospace Engineering $55,943Engineering Technology $55,023Agricultural Engineering $54,690Architectural Engineering $54,690Physics $53,939

Bioengineering & Biomedical Engineering $53,417Information Sciences & Systems $52,886Civil Engineering $52,287Construction Science $51,753Management Information Systems $50,573Mathematics & Statistics $50,461Environmental Engineering $50,109

Page 53: Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS.

Devon M. Simmonds 53

Q u e s t i o n s ?

Summary &

Conclusion