1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

ICT Class System Life Cycle.  Large systems development projects may involve dozens of people working over several months or even years, so they cannot.
Lecture # 2 : Process Models
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Programming Types of Testing.
Lab/Sessional -CSE-374. SYSTEM DEVELOPMENT LIFE CYCLE.
1 Final Exam Study Guide 4 Final Examination is scheduled on Wednesday May 9th at 4PM 4 There are 8 questions with or without sub- parts and the exam.
System Design and Analysis
ARIANE 5 FAILURE ► BACKGROUND:- ► European space agency’s re-useable launch vehicle. ► Ariane-4 was a major success ► Ariane -5 was developed for the larger.
1 CMSC 132: Object-Oriented Programming II Software Development I Department of Computer Science University of Maryland, College Park.
SE 555 Software Requirements & Specification 1 SE 555 Software Requirements & Specification Prototyping.
Software System Integration
Software Life Cycle Model
©Ian Sommerville 2004Software Engineering Case Studies Slide 1 The Ariane 5 Launcher Failure June 4th 1996 Total failure of the Ariane 5 launcher on its.
Introduction to Computer Technology
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Software Development Life Cycle (SDLC)
Introduction to Systems Analysis and Design Trisha Cummings.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
1 CMPT 275 Software Engineering Software life cycle.
Profile and a quick introduction Software Engineering: ) هندسة البرمجيات (in Arabic: is the branch of computer science Designed to develop a set rules.
CRASH AND BURN ARIANE 5 Kristen Hieronymus SYSM6309 Advanced Requirements Engineering
CMSC 345 Fall 2000 Unit Testing. The testing process.
The Systems Development Methodologies. Objectives  Describe the information Systems Development Life Cycle (SDLC)  Explain prototyping  Explain Rapid.
The Ariane 5 Launcher Failure June 4th 1996 Total failure of the Ariane 5 launcher on its maiden flight.
End HomeWelcome! The Software Development Process.
Configuration Management (CM)
System Development Life Cycle. The Cycle When creating software, hardware, or any kind of product you will go through several stages, we define these.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Fundamentals of Information Systems, Third Edition1 Systems Design Answers the question “How will the information system do what it must do to solve a.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
Software Development Process.  You should already know that any computer system is made up of hardware and software.  The term hardware is fairly easy.
Systems Life Cycle A2 Module Heathcote Ch.38.
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
1 Pre-Exam Lecture 4 Final Examination is scheduled on Monday December 18th at 1:30PM in class 4 There are 8 questions with or without sub- parts and.
Software Engineering. Lesson 2 Explain what is a software life cycle model. Identify the different software life cycle models. – Classical Waterfall Model.
Developed by Reneta Barneva, SUNY Fredonia The Process.
Software Engineering Lecture # 1.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Intermediate 2 Computing Unit 2 - Software Development.
Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
Introduction to System Analysis and Design MADE BY: SIR NASEEM AHMED KHAN DOW VOCATIONAL & TECHNICAL TRAINING CENTRE.
© NALO Solutions Limited NALO Solutions, presents the – Revenue Collector App Using Mobile Phones to gather Revenue SOFTWARE ENGINEERING.
The information systems lifecycle Far more boring than you ever dreamed possible!
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Topic 10Summer Ariane 5 Some slides based on talk from Sommerville.
1 slc5 TTYP – C++ revisited 1 Which of the following statements are reasonable after the following statement: char* fred = new char[5]; a. fred = bill;
Methodologies and Algorithms
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
The Software Development Cycle
Systems Analysis and Design
Software Engineering Rekayasa Perangkat Lunak
Software life cycle models
Gathering Systems Requirements
Software Engineering Rekayasa Perangkat Lunak
Software Engineering Rekayasa Perangkat Lunak
The Software Development Cycle
Presentation transcript:

1 Software Engineering Software has some special characteristics –Software is “developed” and not “manufactured”

2 Software Characteristics –Software has ZERO TOLERANCE –Software does NOT wear out –Software deteriorates due to discovery of bugs and applying patches

3 Software is Crucial Software error in NASA’s Mariner-I caused booster failure and $18 Million losses The guidance antenna on the Atlas performed poorly, below specifications. When the signal received by the rocket became weak and noisy, the rocket lost its lock on the ground guidance signal that supplied steering commands. The possibility had been foreseen; in the event that radio guidance was lost the internal guidance computer was supposed to reject the spurious signals from the faulty antenna and proceed on its stored program, which would probably have resulted in a successful launch. However, at this point a second fault took effect. Somehow a hyphen had been dropped from the guidance program loaded aboard the computer, allowing the flawed signals to command the rocket to veer left and nose down. The hyphen had been missing on previous successful flights of the Atlas, but that portion of the equation had not been needed since there was no radio guidance failure. Suffice it to say, the first U.S. attempt at interplanetary flight failed for want of a hyphen."

4 Software Errors Hubble Telescope became almost useless for some time due to mirror-polish- monitoring software error Software error in a Texas clinic caused lethal X-ray doses to patients, killing 3 and burning scores of others

5 Ariane-5 Blows up In 1996, Ariane-5 rocket was launched by European Space Agency after $7 billion in development expenses for 10 years The rocket exploded just 40 seconds after launching The investigators determined that the cause of the mishap was a software error A 64 bit FP number representing horizontal velocity of the rocket was converted into 16 bit integer thus truncating it and having a wrong value used in inertial reference system

6 Engineering Approach Required Therefore let us stop programming and start software engineering When a product is designed by Engineers, it passes through several stages from concept to actual fabrication We should develop the software using the Engineering approach

7 An Example Consider the designing of a new mobile phone

8 Mobile Phone Design Many aspects are considered before this phone can be manufactured Design Engineer has to consider the physical dimensions, the desired battery life, the number and location of buttons, the controls required, the functionality and the cost Later a prototype will be built to evaluate the design

9 The Waterfall Model When we want to develop software, we should take similar approach Classical Software Engineering life cycle consists of four stages –Analysis –Design –Coding –Testing

Adapted from "Software Engineering A Practitioner's Approach" by Roger Pressman 10 Waterfall Model Diagram

11 The Waterfall Model This model is a sequence of stages During analysis, the user requirements are identified and systems specs. are prepared During design, the number of modules and their interconnection is finalized. The data types and structure is specified During coding, actual programming is done Testing is done to make sure there are no errors (alpha-release and beta-release)

12 Spiral Model It was realized that the waterfall model is not optimal as it is a one-way model If a problem is discovered in a later stage, there is no way to go back and correct the problem Therefore, spiral model was proposed in which the SE activity occurs in a spiral thus giving a chance to correct the mistakes

Adapted from "Software Engineering A Practitioner's Approach" by Roger Pressman 13 Spiral Model Diagram

14 An Example of Applying WaterFall Model A software is being developed for a post office teller in order to integrate various functions together. These functions may include selling postage stamps, issuing exact postage printouts and accepting utility bill payments for electricity and phone. Determine the user interface requirements and functionality requirements of software

15 Software Engineering (cont’d) Why should we take Engineering approach for software development? What are the stages in Waterfall model? What is the main problem in Waterfall model? How does spiral model solve this problem? How would you apply software engineering to a software development project?

16 Post Office Clerk’s Software WELCOME TO MY WORKSTATION Please select from the following: (1) Sell stamps (2) Print exact postage for metered mail (3) Accept utilities bills ==>

17 Post Office Clerk’s Software YOU HAVE SELECTED BILL PAYMENT Please choose the bill type: (1) Phone Bill (2) Gas Bill (3) Water/Sewerage Bill (4) Electricity Bill ==>

18 Considering Modular Design During the design phase, the modular architecture of the system is developed Consider the previous example and determine major functions of software Determine the interconnections between major modules. (Think about the type of information that will be exchanged) Make a schedule of activities

19 Interaction Example Main Opening Menu Display Module Utility Bills Module

20 Before Coding Plan well before coding begins Think about the platform, the specific hardware and software and the working environment Since it is a highly interactive software, we should go for prototyping Prototyping allows the end user to have a feel of the product before it is ready

21 Incremental Design In this approach, a minimal working software is developed and goes through evaluation Later, as per customer requirements, features and functions are added This is best for small development team

22 RAD RAD (Rapid Application Development) is recommended for software projects that have following characteristics –The software does not have an innovative design –Similar software projects have been completed successfully –Software design is modularized

23 Testing Considerations Target of testing should be to find a fault and not to prove that it works fine Bottom-up testing and integration is recommended. Here is how it works –Test the independent modules (slaves) –Integrate the tested modules into system and now test the integrated system

24 Testing Hints Try to test boundary values for loops –For example while (x<34) {….} (Test at x=33, x=34 and x=35) Within each module (program unit), test both branches of a decision statement –Example if v is 0 do s1 else do s2 (Test will force v as 0 and also v as not zero)

25 Documentation and Maintenance It is necessary to provide a detailed user guide that tells the user about the normal use and also about handling errors A large software project would require a system admin guide that provides technical details of installation, running and troubleshooting Software delivery is not the end of the story, it has to be maintained as well

26 Tools and Help Tools to help in development of software arrived much later; just like the shoemaker who makes shoes for everyone but does not have time to make shoes for himself CASE Tools are now available for analysis, design, prototyping, coding, testing, and documenting Check out and identify at least one CASE Tool