Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering April 12, 2012 Professor Stuart Steele, Associate Head Department of Computer Science and Engineering, NYU Poly.

Similar presentations

Presentation on theme: "Software Engineering April 12, 2012 Professor Stuart Steele, Associate Head Department of Computer Science and Engineering, NYU Poly."— Presentation transcript:

1 Software Engineering April 12, 2012 Professor Stuart Steele, Associate Head Department of Computer Science and Engineering, NYU Poly

2 Agenda What is Software Engineering? Relationship to Computer Science, Computer Engineering and Electrical Engineering Types of software Case Studies Software Business Model Software Research

3 What is Software Engineering The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software and a study of those approaches that allow “application of engineering to software” The ability to design and develop a software intensive system, on time, within costs to an acceptable level of performance

4 History October 1968 – International Conference in Garmisch Germany coined the name Software Engineering Challenge – how to define the process to build high quality software items Development models were created

5 Related Course Programs Computer Science first program – 1962 Purdue University Software Engineering first named – 1968 Software Engineering (Masters) – Wang Institute – 1982 -1988 Software Engineering first program – 1996 Rochester Institute of Technology Computer Engineering first program – 1971 Case Western Reserve University

6 Support of Software Engineering Software Engineering Work Flow Software Engineering Computer Engineering Computer Science Electrical Engineering

7 Number of Software Professionals Computer SE 1, 335,600 1, 619,200 21 & Programmers Computer 426, 000 414, 400 -3 Programmers Computer Software 909,600 1,204,800 32 Engineers (Applications and System Software) 2008 2018 %

8 Knowledge Areas of Software Engineering Computing Foundations Mathematical & Engineering Fundamentals Software Modeling & Analysis Software Requirements Software Design Software Construction Software Verification & Validation Software Evolution Software Process Software Quality Software Management Software Testing Software Maintenance Configuration Mgt. Software Engineering Mgt.

9 Computing Foundations Problem Solving Techniques Abstraction Programming Fundamentals Programming Languages Basis Debugging Tools & Tech. Data Structures Algorithms & Complexity Basic Concept of a System Computer Organization Compiler Basics Operating Systems Data Base and Mgt. Network Communication Parallel & Distributed Computing Basic User Human Interface Secure Design & Code

10 Type of Requirements Functional Performance, peak and average Reliability Usability Security Practices Specifications can be text, tables, equations, graphics, math symbols

11 Characteristics of Requirements Explicit Implicit/implied Derived Design Statistical

12 Good Requirements 1 Understandable by end users 2 Non-prescriptive 3 Correct 4 Complete 5 Concise (Succinct) 6 Precise 7 Traceable 8 Modifiable 9 Testable (Verifiable) 10 Feasible 11 Clear 12 Unambiguous 13 Consistent A requirement should be What not How

13 Precise From a data stream of 15 elements, reposition the lowest element value to become the first element in the data stream for later processing. Multiple low values? What if all values are the same?

14 Consistent The system shall track detected airborne objects traveling at speeds from 200 to 400 miles per hour inclusive. Later in specification: The system shall flag all detected airborne objects traveling at speeds from 300 to 500 miles per hour. This does require the system to flag some objects that it is not required to track. Problems? Could be ok but? These requirements are probably inconsistent.

15 Software Types Developed Reused Commercial of the shelf (COTS) Open Source Non Development (NDI)

16 Commercial of the Shelf (COTS) Can apply to both hardware and software A major ingredient in modern software intensive systems Requires business, legal and technical skills Series of major issues.

17 COTS (Commercial of the Shelf Software) Source code not available to the application developer The evolution is not under the control of the application developer Sold, leased, licensed at advertised prices Three major characteristics of COTS :

18 COTS (Commercial of the Shelf Software) Source code not available to the application developer The evolution is not under the control of the application developer Sold, leased, licensed at advertised prices Three major characteristics of COTS :

19 What is OSS/FS? Defined 1997 Open Source Software/Free Software programs have licenses giving users the freedom to: - run the program for any purpose - study and modify the program - freely redistribute copies of either the original or modified program Often supported via commercial companies

20 Job Titles Software engineer Software analyst Computer software engineer Programmer – High Order Languages Programmer – assembly Computer engineer Systems engineer Support personal– QA, Configuration Mgt. Project managers

21 Hardware and Software System Sensordisplay Processing

22 Hardware/Software Integration sensor Computer display algorithm accuracy update rate cpu utilization memory utilization interrupt processing fixed point arithmetic Computation consider sampler Buffer built in the display

23 Error Profile Sample rate Round off Truncation Algorithms (1,2,3) 1 2 3 Impact of OS overhead vs. sample rate? Impact of interrupt latency? Quantization Error Time & memory

24 Hardware Software Co - Design Define the functionality of the subsystem Design the Hardware First Design the Software Second Design the Hardware Second Design the Software First Best result when the hardware and the software are designed together The results show appropriate trade-offs

25 Examples Real – time systems Embedded systems Fire Control System Enterprise systems Social networks Manufacturing Complexity Impact

26 Applications Communication Education Entertainment Hospitality Archaeology Transportation Recreation Medicine Art Biology Finance Manufacturing Environment Government Fashion Law Sports Home Management Automotive Agriculture Patent Law Energy News Publishing Security Aviation Retail

27 Software Development Processes Waterfall (Classical) Agile (More flexible) Various other approaches Nonlinear Software Engineering (Complexity Theory)

28 Software Development Process (Waterfall) systems software requirements software design detailed design code, unit test component test component system test test component integration algorithms architectures formal methods design techniques implementation methods hardware/software trade-offs testing methods feedback and iteration incremental development hardware people maintenance

29 Extreme Programming Process (Agile) user stories values acceptance test criteria iteration plan simple design CRC cards spike solutions prototypes pair programmingunit test Release software increment project velocity computed planningdesign test acceptance testing coding refactoring continuous integration

30 Software Engineering Diagrams and Tools IBM Rational Architecture Tool Set Class DiagramsSequence Diagram Code Requirements A change in a diagram or in the code, will automatically update diagrams and code

31 Class Diagram

32 Sequence Diagram

33 Code

34 5 Elements for Quality Software Development Integrated Development Environment Source Control Automated Testing Automated Build Defect Management

35 Ariane 5 Spacecraft Launch and Destruction

36 Ariane 5 situation, Famous Software Issue An input to a specific module made the module overflow, an exception occurred shutting down the system and its backup The system was used before but this mission was similar but had a different trajectory What kind of problem was it? Software, Systems, Hardware, Project Planning, etc.

37 What Makes Software So Hard Software projects are design projects, not production The ”doing” disciplines of software are difficult to perform, monitor, and measure. Productivity differences between individuals are huge. Software lacks laws and first principles Software lacks a measurable unit of work “Supporting disciplines – planning, estimation, prediction and observation, are quite difficult No “permanent” platform to build on

38 Social networks The Web and the new frontier Frameworks and flexible development A great deal of hands on flexibility

39 Software and the Business Model Recently, Hewlett-Packard announced that it may stop its struggling PC business This allows more investing in software where it sees more potential for growth Why – “Software is Eating the World” Marc Andreessen (Creator of Netscape browser) Prominent new internet companies are building real high growth, high margin, highly defensible businesses.

40 What is Going On! More and more major businesses and industries are being run on software and delivered as online services. Movies, agriculture, etc. After six decades into the computer revolution, four decades since the invention of the microprocessor, two decades into the rise of the modern internet, much of the technology to transform industries through software can be widely delivered at global scale

41 What is Going On (cont.) Over two billion people now use the internet. At least five billon people to own smart phones in the next 10 years In 2000, the cost of a customer running a basic internet application was $150,000 per month. In today’s Amazon’s cloud the cost is $1,500.

42 Highlights Largest video service by number of subscribers is a software company, Netflix Today’s dominant music companies are software companies too: Apples iTunes, Spotify and Pandora. Today’s fastest growing entertainment companies are videogame makers – again software

43 Highlights (Cont.) Today’s fastest growing telecom company is Skype, a software company that was just bought by Microsoft for $8.5 Billion. Linkedin is today’s fastest growing recruiting company. Software controls the car. Wal-Mart, leading real-world retailer uses software for logistics and distribution capabilities.

44 Challenges Hard economic issues New companies must prove their worth Shortage of skilled and educated personnel

45 Future Trends Cloud Computing Crowdsourcing Mobile high level of integrated communications Software is everywhere How to handle Software Complexity?

46 Software Research - Microsoft Browser/JavaScript New Ways to Program Modeling and Design Contracts and Types Verification Symbolic Methods Testing Runtime Reliability Performance Concurrency & Parallelism Measurement & Prediction User Studies Critical Technologies

47 The Final Issue Software is everywhere How to handle complexity ?

48 BEST Jobs 2011 – Wall Street Journal Online 1)Software Engineer 2)Math 3) Actuary 4) Computer System Analyst Future IT growth anticipated Employment Situation

49 Other Job Assessment Sources Career Cast –Top Ten CNN Money –Top Ten Software Engineer # 1 Computer System Analyst, #5 and # 7 Mobile Applications Design/Development #7

50 The Fastest Growing Jobs 2011 – 2014 CNN Money 1)Network System & Data Communication Analyst 3)Computer Software Engineer – Applications 4)Computer Software Engineer – Systems Software 5)Network and Computer Systems Administrator 6)Data Base Administrator

Download ppt "Software Engineering April 12, 2012 Professor Stuart Steele, Associate Head Department of Computer Science and Engineering, NYU Poly."

Similar presentations

Ads by Google