1 / 32

Introduction to Software Engineering: Importance, Ethics, and Challenges

Learn why software engineering is crucial, explore ethical and professional issues, understand the relation to systems analysis, and discover the challenges faced in the field. Explore software development crises and the need for a disciplined approach to avoid errors.

sarahjjones
Download Presentation

Introduction to Software Engineering: Importance, Ethics, and Challenges

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 1 Introduction

  2. Overview • Objectives • FAQs about software engineering • Ethical and professional issues • SW engineering vs. Systems Analysis • Course Syllabus

  3. Objectives • Introduce what software engineering is and why it is important • Understand ethical and professional issues that are important for software engineers • Understand the relation between this course and the systems analysis and design • View of topics to be discussed this course

  4. Class Activity: Technology and us With your team write down a list of everyday devices we use that contain software?

  5. Software development crises Projects were: • Late • Over budget • Unreliable • Difficult to maintain • Performed poorly

  6. Software errors... the cost Errors in computer software can have devastating effects

  7. CNN: Computer glitch delays dozens of UK flights Saturday 3rd October 2009-London, England (CNN) Dozens of flights from the UK were delayed Saturday after a glitch in an air traffic control system in Scotland, but the problem was fixed a few hours later. The agency said it reverted to backup equipment as engineering worked on the system. The problem did not create a safety issue but could cause delays in flights. Read more at http://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayed

  8. Loss of the Mars Climate orbiter in 1999 because an error in a Metric to English conversion formula (pounds and Kilograms)[1]

  9. Ariane 5 Explosion • Caused by an overflow error. • Watch the video http://www.youtube.com/watch?v=z-r9cYp3tTE

  10. Therefore.. A well-disciplined approach to software development and management is necessary. This is called engineering.

  11. Software engineering The notion of software engineering was first proposed in 1968.

  12. FAQs about software engineering

  13. What is software? • Software is a product that software engineers design and build • It encompasses programs, documents, and data

  14. What is Software Engineering? “An engineering discipline that is concerned with all aspects of software production from the early stages of system specification to maintaining the system after it has gone into use” [4]

  15. Software Types There are two types of software products • Generic products • Customized or bespoke products

  16. What is the difference between software engineering and computer science? • Computer science Theory and fundamentals • Software engineering Practicalities of delivering useful software • Software engineers need computer science knowledge

  17. What is the difference between software engineering and system engineering? System engineering Hardware + Software + Process Older than software engineering Software engineering is part of system engineering

  18. What is a Software Process? • Set of activities and associated results that produce a software product. • There are four fundamental activities common to all software process models • SW specification: • What does the customer need “Requirements”? • What are the constraints? • SW development • Design & programming • SW validation: • Checking whether it meets requirements • SW evolution: • Modifications (e.g. customer/market)

  19. What is a Software Process Model? • A simplified description of a SW process that presents one view of that process • Examples of process perspectives are • Workflow perspective • Sequence of activities: Human Actions • What is input, output, and dependencies • Data-flow perspective - information flow; • Activities = transformations of information • How the input is transformed into output • Role/action perspective • What is the role of people step of the process?

  20. What is a Software Process Model?

  21. What are the costs of SW engineering? • No simple answer, depends on : • The process used, and • The type of software being developed • Each generic approach has a different profile of cost distribution. • Roughly 60% of costs are development costs, 40% are testing costs. • For custom software, evolution costs often exceed development costs.

  22. Software engineering activitycostdistribution

  23. What are software engineering methods? • Structured approaches to software development which include system models, notations, rules, design advice and process guidance. • Model descriptions • Descriptions of graphical models which should be produced; • Rules • Constraints applied to system models; • Recommendations • Advice on good design practice; • Process guidance • What activities to follow.

  24. What is CASE? • CASE (Computer Aided Software Engineering) • Programs used to support software process activities such as system modeling, debugging, and testing • Some CASE tools include automatic code generation from diagrams.

  25. What are the attributes of good software? Some essential attributes :

  26. Activity What are the key attributes for..

  27. What are the key challenges facing software engineering?

  28. Professional and Ethical responsibility Please read from the book section 1.2 pages 14-17

  29. What you studied in System Analysis course constitutes part of software engineering. Software Engineering is a broader subject. To be a software engineer, you must master several skills, one of which is analysis and design. SW engineering vs. Systems Analysis

  30. SW Engineering vs. Systems Analysis and Design

  31. Syllabus

  32. References • PRESS&SUN-BULLETIN, The Binghamton Press Co., Binghamton, NY, October 1,1999. • “Software Hell: Is there a way out?”, BUSINESS WEEK, December 6, 1999. • IEEE Standards Collection: Software Engineering, IEEE standard 610.12-1990, IEEE 1993. • Sommerville, Ian “Software Engineering”, 8th edition, Addison-Wesley.

More Related