Presentation is loading. Please wait.

Presentation is loading. Please wait.

Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington Presentation to ISIS.

Similar presentations


Presentation on theme: "Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington Presentation to ISIS."— Presentation transcript:

1 Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Presentation to ISIS Research Group @UNCW on 7/12/2011. Understanding Software Engineering

2 Devon M. Simmonds 2 University of Technology, Jamaica Ph.D. Colorado State University My Story United States

3 Devon M. Simmonds 3 3 Computer science - solving problems with the aid of a computer Motivation Computers are everywhere!

4 Devon M. Simmonds 4 4 Computer are everywhere!

5 Devon M. Simmonds 5 5 And there are good computer jokes! Motivation “Witness testifies on Software Security”

6 Devon M. Simmonds 6 6 And there are good computer jokes! Motivation “Witness testifies on Software Speed”

7 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! 1 st 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

8 Devon M. Simmonds 8 8 Employ an Interpreter How do we solve the communication problem? What language should the interpreter speak? – Human & machine language 2 nd Problem: – Human language is ambiguous! Problems in Computer Science

9 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

10 Devon M. Simmonds 10 10 Writing Programs Translation Programming languageMachine language PEOPLE COMPUTER High-level Program for(int i=0; i<10; i++) System.out.println(list[i]); Large software systems: 4 x 10 6 – 100 x 10 6

11 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

12 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

13 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 Hill Charlotte

14 Devon M. Simmonds 14 14 Long-distance phone traffic routing software Result : Loss of long-distance service in NE USA Cost 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

15 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

16 Devon M. Simmonds 16 16 Help! Solution? – Engineer Software!!

17 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

18 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

19 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

20 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?

21 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?

22 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?

23 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?

24 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?

25 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?

26 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?

27 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?

28 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?

29 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?

30 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?

31 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

32 Devon M. Simmonds 32 32 Model-Driven Development (MDD) CodeCode Create Model Model of the Program AA BB CC Using modeling language Compile Model Need model compiler Compile Code Binary instructions Code-centric Development Manually Create 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

33 Devon M. Simmonds 33 33 Model-Driven Development (MDD) CodeCode Create Model Model A AA BB CC Compile Model Compile Code Binary instructions Model B MM BB CC AA PP KK class Student { private: int age; char name[40]; Address address; public: void move(); void speak(); }

34 Devon M. Simmonds 34 34 What is complexity? The quality of being intricate and difficult to understand Managing Complexity

35 Devon M. Simmonds 35 35 Managing Complexity Is there a limit? Managing Complexity

36 Devon M. Simmonds 36 36 Forms of complexity Algorithmic Structural Behavioral Computational (time, space) Data structure Graphical? Managing Complexity

37 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 computers Choose appropriate methods, techniques, tools. Managing Complexity

38 Devon M. Simmonds 38 Managing Complexity? Make engineering is a Model-Driven Discipline! Be rigorous in applying SE principles and techniques. 38 Managing Complexity

39 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?

40 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

41 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

42 Devon M. Simmonds 42 42 Relative Costs of Fixing Software Faults Requirements SpecificationPlanningDesignImplementationIntegrationMaintenance 1 2 3 4 10 30 200 Question #3

43 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?

44 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

45 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?

46 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

47 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?

48 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

49 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?

50 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 degreedata communications 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 degreeAssociate 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

51 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 degreesystems administrators 12 Database administrators 38% Bachelor's degree 13 Physical therapists 37% Master's degreeMaster'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 degreeDoctoral degree 20 Occupational therapists 34% Master's degree http://hubpages.com/hub/Top25

52 Devon M. Simmonds 52 Fall 2009 Starting Salary Offers Major2009 Salaries Petroleum Engineering$85,417 Chemical Engineering$66,675 Mining & Mineral Engineering$62,802 Computer Science$61,467 Computer Engineering$60,844 Electrical Engineering$60,509 Nuclear Engineering$60,209 Metallurgical Engineering$59,837 Mechanical Engineering$59,222 Industrial Engineering$58,230 Materials Engineering$58,076 Systems Engineering$56,943 Actuarial Science$56,380 Aerospace Engineering$55,943 Engineering Technology$55,023 Agricultural Engineering$54,690 Architectural Engineering$54,690 Physics$53,939 Bioengineering & Biomedical Engineering$53,417 Information Sciences & Systems$52,886 Civil Engineering$52,287 Construction Science$51,753 Management Information Systems$50,573 Mathematics & Statistics$50,461 Environmental Engineering$50,109

53 Devon M. Simmonds 53 Q u e s t i o n s ? Summary & Conclusion


Download ppt "Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington Presentation to ISIS."

Similar presentations


Ads by Google