Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Software Engineering COMP 412 – Software Engineering Project Management Prepared by: Engr. Maria Diorella A. Paguio.

Similar presentations


Presentation on theme: "Introduction to Software Engineering COMP 412 – Software Engineering Project Management Prepared by: Engr. Maria Diorella A. Paguio."— Presentation transcript:

1 Introduction to Software Engineering COMP 412 – Software Engineering Project Management Prepared by: Engr. Maria Diorella A. Paguio

2 MOTIVATION

3 Importance of Software Software can have a huge impact in any aspect of society.

4 Where can you find software?

5 Some popular ones…

6

7

8 And even in…

9 Conclusion Software is Almost Everywhere.

10 But… What is Software???

11 Software Definition Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market Software products may be –Generic - developed to be sold to a range of different customers –Bespoke (custom) - developed for a single customer according to their specification

12 Types of Software

13 System software –A collection of programs written to service other programs at system level. –Examples: compiler, operating systems. Real time software –Programs that monitor/analyze/control real world events as they occur. –Examples: car’s anti-lock break system, air traffic control systems, railway switching systems 13

14 Types of Software Embedded software –Software that resides in read-only memory and is used to control products and systems for the consumer and industrial markets. –Examples: Telecom – telephone switches, mobile phones, router; Consumer Electronics: PDAs, game consoles, digital cameras, mp3 players, etc 14

15 Types of Software Business Software –Programs that access, analyze and process business information. –Examples: payroll, accounts receivable/payable, inventory, point-of-sale Engineering and Scientific Software –Software using “number crunching” algorithms for different scientific and engineering applications. –Examples: Software used to predict weather, and those used in prediction of genome structure, automotive stress analysis, space shuttle orbital dynamics, etc 15

16 Types of Software Personal computer software –Also known as Application Software, is computer software designed to help the user to perform specific tasks. –Examples: Word processing, spreadsheets, computer graphics, multimedia, entertainment, database management, personal and business financial applications, and external network or database access 16

17 Types of Software Artificial Intelligence Software –Programs make use of AI techniques and methods to solve complex problems. Active areas are expert systems, pattern recognition, games –Examples: ASIMO uses sensors and intelligent algorithms to avoid obstacles and navigate stairs; Deep Blue, computer chess who beat Kasparov 17

18 Types of Software Web based software –Programs that support internet accesses and applications. –Examples: search engine, browser, e- commerce software, authoring tools. 18

19 Evolution of Software http://www.cs.helsinki.fi/research/roosa/images/serious-logo-final.jpg

20 Evolution of Software The early years Batch orientation Limited distribution Custom software The second era Multi-user Real-time Database Product software The third era Distributed systems Embedded intelligence Low-cost hardware Consumer impact The fourth era Powerful desktop systems Object- oriented technologies Expert systems Artificial neural networks Parallel computing

21 Software Characteristics

22 Software Characteristics First of all software is developed or engineered, it is not manufactured, Secondly software does not wear out. Finally even the industry is moving toward component based assembly, most software continues to be custom built.

23 Attributes of Good Software

24 Maintainability –Software must evolve to meet changing needs Dependability Software must be trustworthy Efficiency –Software should NOT make wasteful use of system resources such as memory and processor time.

25 Attributes of Good Software Usability –Software must be usable by the users for which it was designed, it should have an appropriate user interface and enough documentation.

26 Advice: Work very hard to understand what you have to do before you start. You may not be able to develop every detail, but the more you know, the less risk you take 26

27 Problems in software development

28 Problems in software development The final Software doesn´t fulfill the needs of the customer. Hard to extend and improve: if you want to add a functionality later, mission is impossible. Bad documentation. Bad quality: frequent errors, hard to use, etc More time and costs than expected

29 But That never happens, right?

30 Wrong!

31 Software failures Therac-25 (1985-1987): six people overexposed during treatments for cancer Taurus (1993): the planned automatic transaction settlement system for London Stock Exchange cancelled after five years of development The Mars Climate Orbiter assumed to be lost by NASA officials (1999): different measurement systems (Imperial and metric)

32 Cause: design errors in the software Ariane 5 Flight 501

33 Chaos Report

34 It is not enough to do your best: you must know what to do, and THEN do your best. --- W. Edwards Deming Conclusion Programming is NOT enough!

35 And Since… A clever person solves a problem. A wise person avoids it. - Albert Einstein

36 Solution… ???

37 What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software production Software engineers should adopt: –a systematic and organized approach to their work –use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available

38 What is software engineering? Engineers make thing work, they apply theories, methods and tools where these are appropriate. Software engineering is: the systematic use of many disciplines, tools, and resources for the practical application. This is a broad definition which includes everything except hardware.

39 What is software engineering? Engineering is the art and science of managing engines for practical application. To manage these engines, we have to consider all aspects of the intended applications, such as operational concepts, requirements, design, development, and maintenance.

40 Software Engineering is the study and application of methodologies to develop quality software that fulfill customer needs. In short…

41 What is the difference between software engineering and computer science? Computer ScienceSoftware Engineering is concerned with Computer science theories are currently insufficient to act as a complete underpinning for software engineering, BUT it is a foundation for practical aspects of software engineering  theory  fundamentals Algorithms, date structures, complexity theory, numerical methods  the practicalities of developing  delivering useful software SE deals with practical problems in complex software products

42 42 What is the difference between software engineering and system engineering? System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this process System engineers are involved in system specification, architectural design, integration of the finish system.

43 Software Engineering Body of Knowledge Source: http://www.sei.cmu.edu/pub/documents/99.reports/pdf/99tr004.pdf

44 SE history SE introduced first in 1968 – conference about “software crisis” when the introduction of third generation computer hardware led more complex software systems then before Early approaches based on informal methodologies leading to –Delays in software delivery –Higher costs than initially estimated –Unreliable, difficult to maintain software Need for new methods and techniques to manage the production of complex software.

45 However … Important progress: Ability to produce more complex software has increased New technologies have led to new SE approaches A better understanding of the activities involved in software development Effective methods to specify, design and implement software have been developed New notations and tools have been produced

46 What are the key challenges facing software engineering? Software engineering in the 21 st century faces three key challenges: 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

47 End of Presentation Yehey!!!


Download ppt "Introduction to Software Engineering COMP 412 – Software Engineering Project Management Prepared by: Engr. Maria Diorella A. Paguio."

Similar presentations


Ads by Google