Week 1-Lec 1.pdf
Document Details
Uploaded by EffectualWalrus
Full Transcript
Introduction to Software Engineering WEEK 1 Shahid Islam Agenda Nature of Software Software Crisis What Software Engineering is Why Software Engineering is important Nature of Software Software is intangible Hard to understand development effort Software is easy to reproduce...
Introduction to Software Engineering WEEK 1 Shahid Islam Agenda Nature of Software Software Crisis What Software Engineering is Why Software Engineering is important Nature of Software Software is intangible Hard to understand development effort Software is easy to reproduce Cost is in its development in other engineering products, manufacturing is the costly stage The industry is labor-intensive Hard to automate Nature of Software Untrained people can hack something together Quality problems are hard to notice Software is easy to modify People make changes without fully understanding it Software does not ‘wear out’ It deteriorates by having its design changed: erroneously, or in ways that were not anticipated, thus making it complex Nature of Software Conclusions Much software has poor design and is getting worse Demand for software is high and rising We are in a perpetual ‘software crisis’ We must learn to ‘engineer’ software Software Crisis Software crisis is characterized by inability to develop the desired Software Project because of such problems: Projects running over-budget. Projects running over-time. Software is inefficient. Software is of low quality. Software does not meet requirements. Project is unmanageable/ Code difficult to maintain. 7 Example 1: 2009,Computer glitch delays 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.fli ghts.delayed 8 Example 2: Ariane 5 Explosion European Space Agency spent 10 years and $7 billion to produce Ariane 5. Crash after 36.7 seconds. Caused by an overflow error. Trying to store a 64-bit number into a 16-bit space. Watch the video: http://www.youtube.com/watch?v=z-r9cYp3tTE 9 Example 3: 1992, London Ambulance Service Considered the largest ambulance service in the world. Overloaded problem. It was unable to keep track of the ambulances and their statuses. Sending multiple units to some locations and no units to other locations. Generates many exceptions messages. 46 deaths. Software Engineering The term software engineering first appeared in the 1968 NATO Software Engineering Conference and was meant to provoke thought regarding what was then called the “software crisis”.. “.. 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.” Sommerville, pg.7 Layered Technology Software Engineering is not just about producing software, but about producing software in a COST-EFFECTIVE manner. 11 Importance of Software Engineering Complex systems need a disciplined approach for designing, developing and managing them. Importance of Software Engineering A software engineer is challenged to produce high-quality software with finite amount of resources and to a predicted schedule and budget. 14 What is a Software? Programs Software System Documentation Data Documentation User Documentation 15 16 Software Engineering vs. Computer Science “Computer science is no more about computers than astronomy is about telescopes.” Edsger Dijkstra Computer Science Software Engineering Theory. Practicalities of software Fundamentals. design, development and delivery. 17 Software Engineering vs. Systems Engineering Systems Engineering: Interdisciplinary engineering field (computer, software, and process eng.). Focuses on how complex engineering projects should be designed and managed. Systems Engineering Software Engineering All aspects of computer- Deals with the design, based systems development and delivery development: HW + SW + of SW. Process. Is part of Systems Older than SWE. Engineering. Law of diminishing returns Cost Benefit Making the engineering decision! 18 Software Life Cycle The Balancing Act! - Potentially conflicting requirements Cost vs. Efficiency Cost vs. Reliability Efficiency vs. User-interface Challenge is to balance these requirements. 20 Well-Engineered Software Provides the required functionality Reliable Efficient User-friendly Maintainable Cost-effective 21 What is a Project? It is a Planned Activity A temporary activity undertaken to create a unique product or service. Characteristics of a Project Temporary Have definite beginning and end Creates unique product or service Have objective that indicate completion Software Project The process of making visible that is invisible. Software Projects vs other Type of Projects Invisibility Complexity (e.g. logical) Conformity (similarity) Flexibility Software Projects Categories Objectives Vs. Products Project aim is to produce a product or meet certain objectives Many projects have two stages Objective Driven It results in recommendation or Identify the need for new software system (Requirements) Product Driven It is actually to create a software product (implementation) Stakeholders Internal to Project Team External to Project Team but within the same organization External to both organization and project team Setting Objectives Who actually own the project? Objectives should define what the project team must to achieve for project success These are post conditions (outcomes) of a project Project authority is steering committee It is responsible for setting, monitoring and modifying objectives Project manager is responsible runs the project on a day to day basis Sub Objectives and Goals Keep objective cost within a certain budget In order to achieve objective we must achieve certain goals or sub objectives first. Objectives must be Measurable(effectiveness) Achievable Relevant(objective relevant to project) Time Constrained (starting and ending date) Project Success and Failure Project plan should be designed to ensure project success by preserving the business case for the project Project objectives vs. Business Objectives Project Objectives ◦ The agreed functionality, required level of quality, on time, within budget Project Success Course Outline