SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.

Slides:



Advertisements
Similar presentations
Software Quality Seung Yang CS 525 Software Engineering II Dr. Sheldon X. Liang.
Advertisements

Metrics for Process and Projects
Software Quality Assurance (SQA). Recap SQA goal, attributes and metrics SQA plan Formal Technical Review (FTR) Statistical SQA – Six Sigma – Identifying.
CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1.
Effective systems development requires a team effort from stakeholders, users, managers, systems development specialists, and various support personnel,
1 Software Engineering II Presentation Software Maintenance.
Fundamentals of Information Systems, Second Edition
1 Introduction to System Engineering G. Nacouzi ME 155B.
3130 Summer What is Software?  Software (IEEE) is a collection of  programs,  procedures,  rules, and  associated documentation and data CS3130.
Andrew Rau-Chaplin Introduction Andrew Rau-Chaplin CS3130 SOFTWARE ENGINEERING.
Chapter 2- Software Process Lecture 4. Software Engineering We have specified the problem domain – industrial strength software – Besides delivering the.
Software Process and Product Metrics
 Software Software  Program vs Software Products Program vs Software Products  Software Characteristics Software Characteristics  Software Crisis.
Lecture 3.
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Software Project Management
Introduction to Software Engineering. Topic Covered What is software? Attribute of good S/w? Computer Software? What is Software Engineering? Evolving.
Error reports as a source for SPI Tor Stålhane Jingyue Li, Jan M.N. Kristiansen IDI / NTNU.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Chapter 6 : Software Metrics
 Explain the role of a system analyst.  Identify the important parts of SRS document.  Identify the important problems that an organization would face.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
This chapter is extracted from Sommerville’s slides. Text book chapter
Using error reports in SPI Tor Stålhane IDI / NTNU.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
Chapter 11 Maintaining the System System evolution Legacy systems Software rejuvenation.
Software Project Management Lecture # 3. Outline Chapter 22- “Metrics for Process & Projects”  Measurement  Measures  Metrics  Software Metrics Process.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Lecture 4 Software Metrics
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
1 Introduction to Software Engineering Lecture 1.
Software Engineering 1 Some Definitions Lesson 2.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
1 Ontology Summit 2011 Track 3 Value Metrics & Value Models Ontology Use - Maintenance Todd Schneider Raytheon 17 February 2011.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
SOFTWARE ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
1. Introduction Kirstie Hawkey, CS3130 SOFTWARE ENGINEERING – Summer Slides adapted from A. Rau Chaplin.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
1 EE29B Feisal Mohammed EE29B: Introduction to Software Engineering Feisal Mohammed Ph: x3156.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
The Software Development Process
Chapter 13: Software Quality Project Management Afnan Albahli.
UKTMF 27 th January 2010 Non-Functional Testing1 Non-Functional Testing Non-Functional Testing Why is this so often done badly or not done at all? Can.
SOFTWARE ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
CS 1120: Computer Science II Software Life Cycle Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by by.
Dr. DEVENDRA TAYAL– THE SCOPE OF SOFTWARE ENGINEERING.
Objectives Understand Corrective, Perfective and Preventive maintenance Discuss the general concepts of software configuration management.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
CS223: Software Engineering Lecture 32: Software Maintenance.
 System Requirement Specification and System Planning.
CS220:INTRODUCTION TO SOFTWARE ENGINEERING CH1 : INTRODUCTION 1.
Software Engineering — Software Life Cycle Processes — Maintenance
Software Project Configuration Management
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Verification and Validation
Introduction SOFTWARE ENGINEERING.
Software Development CMSC 202.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
CS 1120: Computer Science II Software Life Cycle
Software metrics.
CS 1120: Computer Science II Software Life Cycle
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
Introduction Software maintenance:
Presentation transcript:

SOFTWARE ENGINEERING1 Introduction

Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE ENGINEERING2

3 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will it take? Answers: generally range from 2-4 months Let us analyze the productivity Productivity = output/input resources In SW output is considered as LOC Input resources is effort - person months; overhead cost modeled in rate for person month Though not perfect, some productivity measure is needed, as project has to keep it high

SOFTWARE ENGINEERING4 Software … The productivity is KLOC/PM Q: What is the productivity in a typical commercial SW organization ? A: Between 100 to 1000 LOC/PM Q: Why is it low, when your productivity is so high? (people like you work in the industry) A: What the student is building and what the industry builds are two different things

SOFTWARE ENGINEERING5 Software… In a univ. a student system is built while the commercial org builds industrial strength sw What is the difference between a student program and industrial strength sw for the same problem?

SOFTWARE ENGINEERING6 Software… Student Developer is the user bugs are tolerable UI not important No documentation Industrial Strength Others are the users bugs not tolerated UI v. imp. issue Documents needed for the user as well as for the organization and the project

SOFTWARE ENGINEERING7 Software… Student SW not in critical use Reliability, robustness not important No investment Don’t care about portability Industrial Strength Supports important functions / business Reliability, robustness are very important Heavy investment Portability is a key issue here

SOFTWARE ENGINEERING8 Industrial strength software Student programs for a problem & industrial strength software are two different things Key difference is in quality (including usability, reliability, portability, etc.) Brooks thumb-rule: Industrial strength sw costs 10 time more than student sw In this course, software means industrial strength software This software has some characteristics

SOFTWARE ENGINEERING9 Is Expensive Let us look at costs involved Productivity = Appx 1000 LOC/PM Cost = $3K to $10K/PM Cost per LOC = $5 to $15 I.e, each line of delivered code costs many $s A simple application for a business may have 20KLOC to 50KLOC Cost = $100K to $2.25Million Can easily run on $10K-$20K hardware So HW costs in an IT solution are small as compared to SW costs.

SOFTWARE ENGINEERING10 Requires tight Schedule Business requirements today demand short delivery times for software In the past, software products have often failed to be completed in time Along with cost, cycle time is a fundamental driving force

SOFTWARE ENGINEERING11 Productivity – for cost and schedule An industrial strength software project is driven by cost and schedule Both can be modeled by productivity, measured in terms of output per unit effort (e.g. LOC per person month) Higher productivity leads to lower cost Higher productivity leads to lower cycle time Hence, for projects (to deliver software), quality and productivity are basic drivers

SOFTWARE ENGINEERING12 Quality Along with productivity, quality is the other major driving factor Developing high Q sw is a basic goal Quality of sw is harder to define

SOFTWARE ENGINEERING13 Quality – ISO standard

SOFTWARE ENGINEERING14 Quality – ISO std… ISO std has six attributes Functionality Reliability Usability Efficiency Maintainability Portability

Quality – ISO standard Functionality. The capability to provide functions which meet stated and implied needs when the software is used. Reliability. The capability to provide failure- free service. Usability. The capability to be understood, learned, and used. Efficiency. The capability to provide appropriate performance relative to the amount of resources used. 15

Quality – ISO standard Maintainability. The capability to be modified for purposes of making corrections, improvements, or adaptation. Portability. The capability to be adapted for different specified environments without applying actions or means other than those provided for this purpose in the product. SOFTWARE ENGINEERING16

SOFTWARE ENGINEERING17 Quality… Multiple dimensions mean that not easy to reduce Q to a single number Concept of Q is project specific For some reliability is most important For others usability may be more important Reliability is generally considered the main Q criterion

SOFTWARE ENGINEERING18 Quality… Reliability = Probability of failure hard to measure approximated by no. of defects in software To normalize Quality = Defect density Quality = No. of defects delivered / Size Defects delivered - approximated with no. of defects found in operation Current practices: less than 1 def/KLOC What is a defect? Project specific!

Quality – Maintainability Once SW delivered, it enters the maintenance phase, in which: Corrective maintenance: correct discovered problems. Adaptive maintenance: Modification of a software to keep a software product usable in a changed or changing environment. Perfective maintenance: Modification of a software to improve performance or maintainability. Preventive maintenance: Modification of a software to detect and correct latent faults in the software product before they become effective faults. 19

SOFTWARE ENGINEERING20 Quality – Maintainability Maintenance can consume more effort than development over the life of the software (can even be 20:80 ratio!) Hence maintainability is another quality attribute of great interest

SOFTWARE ENGINEERING21 Quality and Productivity Hence, quality and productivity (Q&P) are the basic drivers in a sw project The aim of most methodologies is to deliver software with a high Q&P Besides the need to achieve high Q&P there are some other needs

scale and change there are some other characteristics of the problem domain that also influence the solution approaches employed. We focus on two such characteristics : scale and, change SOFTWARE ENGINEERING22

SOFTWARE ENGINEERING23 Change Only constant in business is change! Requirements change, even while the project is in progress In a project, up to 40% of development effort may go in implementing changes Practices used for developing software must accommodate change

24 Scale Most industrial strength software tend to be large and complex Methods for solving small problems do not often scale up for large problems Two clear dimensions in a project engineering project management For small, both can be done informally, for large both have to be formalized to make sure that cost, schedule, and quality are under control

SOFTWARE ENGINEERING25 Scale: Examples Gcc980KLOCC, C++, yacc Perl320 KLOCC, perl, sh Appache100 KLOCC, sh Linux30,000 KLOCC, c++ Windows XP40,000 KLOCC, C++

SOFTWARE ENGINEERING26 Scale…

SOFTWARE ENGINEERING27 Scale… An illustration of issue of scale is counting the number of people in a room vs taking a census Both are counting problems Methods used in first not useful for census For large scale counting problem, must use different techniques and models Management will become critical

SOFTWARE ENGINEERING28 Scale… As industry strength software tends to be large, hence methods used for building these must be able to scale up For much of the discussion, we will high Q&P as the basic objective

SOFTWARE ENGINEERING29 Summary The problem domain for SE is industrial strength software SE aims to provide methods for systematically developing (industrial strength) software Besides developing software the goal is to achieve high quality and productivity (Q&P) Methods used must accommodate changes, and must be able to handle large problems