Chapter 1 Introduction
Overview Objectives FAQs about software engineering Ethical and professional issues SW engineering vs. Systems Analysis Course Syllabus
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
Class Activity: Technology and us With your team write down a list of everyday devices we use that contain software?
Software development crises Projects were: Late Over budget Unreliable Difficult to maintain Performed poorly
Software errors... the cost Errors in computer software can have devastating effects
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
Loss of the Mars Climate orbiter in 1999 because an error in a Metric to English conversion formula (pounds and Kilograms)[1]
Ariane 5 Explosion Caused by an overflow error. Watch the video http://www.youtube.com/watch?v=z-r9cYp3tTE
Therefore.. A well-disciplined approach to software development and management is necessary. This is called engineering.
Software engineering The notion of software engineering was first proposed in 1968.
FAQs about software engineering
What is software? Software is a product that software engineers design and build It encompasses programs, documents, and data
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]
Software Types There are two types of software products Generic products Customized or bespoke products
What is the difference between software engineering and computer science? Theory and fundamentals Software engineering Practicalities of delivering useful software Software engineers need computer science knowledge
What is the difference between software engineering and system engineering? Hardware + Software + Process Older than software engineering Software engineering is part of system engineering
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)
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?
What is a Software Process Model?
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.
Software engineering activity cost distribution
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.
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.
What are the attributes of good software? Some essential attributes :
Activity What are the key attributes for..
What are the key challenges facing software engineering?
Professional and Ethical responsibility Please read from the book section 1.2 pages 14-17
SW engineering vs. Systems Analysis 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 and Design
Syllabus
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.