Software Engineering. Introduction. Software Costs. Software is Expensive [Boehm] ... Columbus set sail for India. He ended up in the Bahamas...

Size: px
Start display at page:

Download "Software Engineering. Introduction. Software Costs. Software is Expensive [Boehm] ... Columbus set sail for India. He ended up in the Bahamas..."

Transcription

1 Software Engineering Introduction... Columbus set sail for India. He ended up in the Bahamas... The economies of ALL developed nations are dependent on software More and more systems are software controlled Software engineering is concerned with theories, methods and tools for professional software development Software engineering expenditure represents a significant fraction of GNP in all developed countries G. Antoniol 2002 Software Engineering - Why 1 G. Antoniol 2002 Software Engineering - Why 2 Software is Expensive [Boehm] Software Costs 100 % Hardware Development Maintenance Sofware development is human intensive There is no cost to produce a copy of a given software Software is flexible and can be changed to adapt to user ever changing needs G. Antoniol 2002 Software Engineering - Why 3 G. Antoniol 2002 Software Engineering - Why 4

2 Late Costly Unreliable Many software projects are behind schedule and have heavy cost overruns An information system for a US company planned in 9 months and at a cost of $250000; after 2.5 years and $ the job was not done, it was estimated that another $ would be needed [Mcfarlan]. An information system for a US company planned in 9 months and at a cost of $250000; after 2. US Air Force command-and-control: contract $400000, renegotiated to $700000, to $ final cost $ [Boehm]. US defense survey: more than 70 % of all equipment failure were due to software. Failure of the Arianne 5 and an early Apollo flight were due to software failure, many banks lost millions of dollars due to software inaccuracy. G. Antoniol 2002 Software Engineering - Why 5 Failure Software failure are different from mechanical or electrical system failure. Mechanical systems develop some problem (due to age) that did not exist earlier. Software never wears out due to age. Errors are introduced during software production. When a software fails the bug was there from the beginning may be in the environment. G. Antoniol 2002 Software Engineering - Why 6 Software Program: the author is the user (e.g., no documentation or testing, no design). Programming system product: used by people other than the developer of the system. This is industrial software it cost about 10 times as much as a corresponding program. IEEE Software Definition Software is the collection of computer programs, procedures, rules and associated documentation and data. Software means: industrial quality software. Software is much more than the code G. Antoniol 2002 Software Engineering - Why 7 G. Antoniol 2002 Software Engineering - Why 8

3 Software Products Generic products Stand-alone systems which are produced by a development organization and sold on the open market to any customer Most software expenditure is on generic products but most development effort is on bespoke systems Bespoke (customized) products Systems which are commissioned by a specific customer and developed specially by some contractor Software product attributes Maintainability It should be possible for the software to evolve to meet changing requirements Dependability The software should not cause physical or economic damage in the event of failure Efficiency The software should not make wasteful use of system resources Usability Software should have an appropriate user interface and documentation G. Antoniol 2002 Software Engineering - Why 9 G. Antoniol 2002 Software Engineering - Why 10 Importance of product characteristics The relative importance of these characteristics depends on the product and the environment in which it is to be used In some cases, some attributes may dominate In safety-critical real-time systems, key attributes may be dependability and efficiency Costs tend to rise exponentially if very high levels of any one attribute are required Professional responsibility Software engineers should not just be concerned with technical considerations. They have wider ethical, social and professional responsibilities. No clear rights and wrongs about many of these issues. Code Of Ethics G. Antoniol 2002 Software Engineering - Why 11 G. Antoniol 2002 Software Engineering - Why 12

4 Ethical Issues Software Engineering [IEEE90] Confidentiality Competence Intellectual property rights Computer misuse Software Engineering is the systematic approach to the development, operation, maintenance and retirement of software. Software Engineering means applications of a systematic, disciplined, quantifiable approach to development, operation, maintenance of software. G. Antoniol 2002 Software Engineering - Why 13 G. Antoniol 2002 Software Engineering - Why 14 Notice It implies a process since it points to different phases It stresses the need of a systematic and disciplined approach It highlights the importance of quantification Software Engineering [Boehm] Software Engineering is the application of science and mathematics by which the capabilities of computer equipments are made useful to man via computer programs, procedures, and associated documentation. Empirical studies and empirical methods are related to the 3 mentioned aspects G. Antoniol 2002 Software Engineering - Why 15 G. Antoniol 2002 Software Engineering - Why 16

5 Software Engineering Deals with the economics of software systems during the entire system life. Provide methodologies for developing software: usable/useful to man in a repeatable way in an economic way Cost Schedule and Quality An engineering discipline is drive by practical parameters: cost schedule quality They are conflicting requirements! G. Antoniol 2002 Software Engineering - Why 17 G. Antoniol 2002 Software Engineering - Why 18 Cost Is the cost of used resources: manpower, hardware, software and support resources. Manpower is predominant, software is still labor intensive. The cost is expressed in terms of personmonth. To obtain the project cost multiply the number of person-month by the unit cost per person-month, this includes all the overheads. Schedule Product time to market tends to be reduced. The cycle time from concept to delivery should be small. Often the window of opportunity is small (e.g., financial applications). New keywords: Rapid Application Development, COTS, Framework, G. Antoniol 2002 Software Engineering - Why 19 G. Antoniol 2002 Software Engineering - Why 20

6 Quality Quality Factors Quality is not clearly understood, there are three dimensions: product operation product transition product revision Maintainability Flexibility Testability Product revision Product transition Portability Reusability Interoperability Product operations Correctness Reliability Efficiency Integrity Usability G. Antoniol 2002 Software Engineering - Why 21 G. Antoniol 2002 Software Engineering - Why 22 Product Operations Correctness: to which extent the program satisfies its specification. Reliability: how well the software meets its requirements. Efficiency: response time, memory usage... Usability: the effort to learn to operate with the system Integrity: ability to withstand attacks to its security Product Revision Maintainability: effort required to locate and fix errors in an operating program. Flexibility: effort required to modify an operational program. Testability: effort required to test, to ensure that the system actually does what it is supposed to do. G. Antoniol 2002 Software Engineering - Why 23 G. Antoniol 2002 Software Engineering - Why 24

7 Product Transition Portability: effort required to transfer the software from one configuration to other configurations. Reusability: is the extent to which parts of the software can be reused in other related applications Interoperability: effort required to couple the system with other systems. Quality Criteria Among many indicators a de facto standard is the reliability related measure of the number of defect per unit of size, i.e LOC defect tracking is a key activity best software practice reduce to less than 1 defect per KLOC Defect is a anything which is non compliant with system requirements. G. Antoniol 2002 Software Engineering - Why 25 G. Antoniol 2002 Software Engineering - Why 26 Consistency Problem High quality, low cost in a short time are the goals: How can we ensure a consistent quality with a consistent productivity (i.e., cost and schedule)? Engineering process model Specification - set out the requirements and constraints on the system Design - Produce a paper model of the system Manufacture - build the system Test - check the system meets the required specifications Install - deliver the system to the customer and ensure it is operational G. Antoniol 2002 Software Engineering - Why 27 G. Antoniol 2002 Software Engineering - Why 28

8 The Software Engineering Approach Software Process Peculiarity Normally, specifications are incomplete/anomalous Develop methods and procedures for software development that can scale up for large system and that can be used to consistently produce high quality software at low cost and with a small cycle time. Very blurred distinction between specification, design and manufacture No physical realization of the system for testing Software does not wear out - maintenance does not mean component replacement G. Antoniol 2002 Software Engineering - Why 29 G. Antoniol 2002 Software Engineering - Why 30 Process A process is a particular methods of doing Something generally involving a sequence of steps Software process: the method of developing software Predictability Predictability of a process determines how accurately the outcome of following a process in a project can be predicted before the project is completed: cost and schedule estimate quality estimate G. Antoniol 2002 Software Engineering - Why 31 G. Antoniol 2002 Software Engineering - Why 32

9 Predictability Predictions are based on the past history Prediction are only probabilistic Predictability is essential to ensure consistency across many projects Predictability is essential to ensure repeatability G. Antoniol 2002 Software Engineering - Why 33 Statistical Control A process is under statistical control if following the same process produces similar results Statistical control means that most projects will be within a bound around the expected value Property of interest Projects G. Antoniol 2002 Software Engineering - Why 34 Software Process A set of activities Software Process Resources A set of ordering constraints (among activities) activity are performed in accordance with ordering constraints Product Idea Software Process Product the desired result is obtained low cost and high quality software G. Antoniol 2002 Software Engineering - Why 35 G. Antoniol 2002 Software Engineering - Why 36

10 Process Key Properties It must scale up (handle large software projects) It must produce good quality software It must be cost effective It must deliver products on time It must be predictable It must be repeatable The Problem of Scale Developing a very large system requires very different set of methods compared to developing a small system. Methods for small systems generally do not scale up. Counting people in a room or in a theater or conducting a census G. Antoniol 2002 Software Engineering - Why 37 G. Antoniol 2002 Software Engineering - Why 38 A Phased Approach Separate developed product from development process. Divide the entire process in a sequence of phases. Monitor each phase with objective methods: you cannot control what you cannot measure [Tom DeMarco] Large Projects Technology and methodology to develop the system. A formal approach to project management. A phased development process: requirements analysis; software design; coding; testing; G. Antoniol 2002 Software Engineering - Why 39 G. Antoniol 2002 Software Engineering - Why 40

11 High Level View The Problem of Scale Formal Inception Elaboration Construction Transition Project management Informal Small Project Informal Large Project Development methods Formal G. Antoniol 2002 Software Engineering - Why 41 G. Antoniol 2002 Software Engineering - Why 42 Organizations and Processes There are many non-software engineering processes running in an organization: business processes training processes social processes they influence software production but do not concern software engineering G. Antoniol 2002 Software Engineering - Why 43 Development Process Activities directly related to the software production requirement capture, design, coding testing Components of the development process for a particular phase are frequently called methodologies G. Antoniol 2002 Software Engineering - Why 44

12 Software Process The process that deals with the technical and management issues of software development is called software process There must be at least: development activities project management activities Different people may perform different activities Process Project Product A software process specifies a method of developing software A software project is a development project in which the software process is used A software product is an outcome of a software project obtained by applying a software process G. Antoniol 2002 Software Engineering - Why 45 G. Antoniol 2002 Software Engineering - Why 46 Process Project Product - Again A software process specifies an abstract set of activities A software project is the actual act of executing the activities for some specific user need A software product is any product delivered during the software project Process Project Product Software Process Project Project Project 1 k n Product 1 Product 2 Product k Product n G. Antoniol 2002 Software Engineering - Why 47 G. Antoniol 2002 Software Engineering - Why 48

13 Process Instantiation Software process specifies a sequence of activity at abstract level (not project specific) A project implements, in a tailored fashion, the abstract software process The project plan is a detailed roadmap, for the given project, that specifies: the specific activities to perform when perform the activities how perform the activities G. Antoniol 2002 Software Engineering - Why 49 Component Software Processes We need to develop a software system We need manage, to keep under control the development process We must handle change requests at any arbitrary point in time Beyond these activities (processes) there are other activities that are non-central: business processes, training processes, etc. G. Antoniol 2002 Software Engineering - Why 50 Component Software Processes Process management process Product engineering processes: development process project management process software configuration (control) process Process Management Process A software process is a dynamic entity The software process must adapt to new tools, technologies The software process must adapt to our increased understanding about software development process management process aims to improve software the software process i.e., produce better software at lower costs HOW..? G. Antoniol 2002 Software Engineering - Why 51 G. Antoniol 2002 Software Engineering - Why 52

14 Component Software Processes Software Process Effort Distribution Requirements 10 % Product Engineering Processes Process Management Process Design 20 % Coding 20 % Development Process Project Management Process Software Configuration Management Process Testing 50 % G. Antoniol 2002 Software Engineering - Why 53 G. Antoniol 2002 Software Engineering - Why 54 Programmer Activities Writing programs 13 % Reading programs and manuals Job communication (e.g. meetings) Other (including parsonal) 16 % 32 % 39 % Lesson Learnt Coding covers only a fraction of development costs Development covers only a fraction of entire life span cost We must focus on maintenance and testing to ensure cost effectiveness develop for maintainability develop for testability G. Antoniol 2002 Software Engineering - Why 55 G. Antoniol 2002 Software Engineering - Why 56

15 Defects Defects are injected at every stage Defect prevention is a key activity Early defect removal is mandatory to ensure cost effectiveness Requirement analysys 20 % Design 30 % Coding 50 % G. Antoniol 2002 Software Engineering - Why 57 Defects Removal Costs Requirements Design Code Development Acceptance Operation Test Test G. Antoniol 2002 Software Engineering - Why 58 Defects Prevention Prevent defect from being introduced Use the development process to learn (from previous projects) so that methods of performing activities, processes can effectively be improved Quality Improvement Paradigm (QIP) Software process operate in a closed-loop: the process must learnt from past experiences: each project must feed information back to software process for self-improvement Improvement process Assessment of the software process Evaluation of a software process improvement proposal Software development/evolution is highly human intensive it is very difficult to evaluate a change without human involvment G. Antoniol 2002 Software Engineering - Why 59 G. Antoniol 2002 Software Engineering - Why 60

16 Empirical studies Evaluate processes and human based activities Evaluate the use of software products and tools Experimentation provides a systematic, quantifiable, controlled way of evaluating human based activities Research Methods [Basili] The scientific method: observe the world, build an observation based model The engineering method: study the current solutions, propose and evaluate changes The empirical method: a model is proposed and evaluated via case studies or experiments The analytical method: a formal theory is proposed and then compared with empirical observations G. Antoniol 2002 Software Engineering - Why 61 G. Antoniol 2002 Software Engineering - Why 62 Empirical Study Cost Different people are involved with different activities/processes Development, maintenance, evolution may be performed in different environment companies by different people We do not develop the same software several times Qualitative Research Paradigms Qualitative studies: studying object in their natural setting We accept that there is a range of different ways of interpretation Aiming at discovering the causes noticed by the subjects in the study Subject is the person taking part in an experiment in order to evaluate an object. G. Antoniol 2002 Software Engineering - Why 63 G. Antoniol 2002 Software Engineering - Why 64

17 Quantitative Research Paradigms Quantitative studies: quantifying a relationship or compare two or more groups Identify cause effect relationship Setting up a formal experiment Case studies Qualitative vs Quantitative A quantitative study may be launched to evaluate the reduction of defects discovered in system testing due to the adoption of a new testing tool suite A qualitative study may attempt to address the different source of variations (e.g., unit testing, test management, ) G. Antoniol 2002 Software Engineering - Why 65 G. Antoniol 2002 Software Engineering - Why 66 Empirical Strategies Setting up formal experiments Studying real projects - also said case studies Performing surveys (e.g., is interviews) Survey Often an investigation performed in retrospect a tool or a technique has been in use for a while [Pfleeger] Data are gathered via interviews Interviews are done taking a representative sampling of the population The survey generalization limited to the population from which the sample was taken G. Antoniol 2002 Software Engineering - Why 67 G. Antoniol 2002 Software Engineering - Why 68

18 Survey Purposes Descriptive: to enable assertion about some population What the distribution is - We are not interested in why the observed distribution exists Explanatory Making explanatory claim on the population - why certain programmer prefer Java? Explorative A pre-study to ensure that important issues are not foreseen G. Antoniol 2002 Software Engineering - Why 69 Case Study Monitoring projects, activities or assignments. Data is collected for a specific purpose The level of control is lower in a case study than in an experiment In a case study the state variables only assume one value which is governed by the actual project under study G. Antoniol 2002 Software Engineering - Why 70 Case Study Arrangements Comparison against a company baseline A sister project is chosen as baseline If the method can be applied to individual components, apply it at random to some components Notice that the projects are not drawn at random from the population of all projects Experiment Experiment are carried out in a laboratory environment Subjects are assigned to different treatments at random Goal: manipulate one or more variables control all the other at fixed levels The effect of the manipulation is measured Quasi-experiment: we can not randomly assign subjects to different treatments G. Antoniol 2002 Software Engineering - Why 71 G. Antoniol 2002 Software Engineering - Why 72

19 State Variable Example Application domain: telecommunication, database, operating systems Programming language: C, Java, COBOL Process: iterative, incremental, waterfall Testing coverage criterion: statement, functionality Programmer experience: less that 5 years, 5 to 10 years G. Antoniol 2002 Software Engineering - Why 73 Risk and Cost Desktop survey: the change proposal is evaluated off-line There is no real change in the process People are not involved Laboratory the change proposal is evaluated in a laboratory setting (off line) A limited part of the process is executed in a controlled manner Development projects: the change proposal is evaluated in the real environment e.g., in a pilot project G. Antoniol 2002 Software Engineering - Why 74 Variable, Subject, Treatment Independent variables Fixed level Process Dependent variable Theory Experiment Principle [Trochim] Cause Construct Experiment goal Cause - effect Construct Effect Construct Dependent variables, or covariates, or response variables Independent variables, or variates, or factors this are manipulated Treatment: the particular level of a factor Treatments are applied to a combination of objects and subjects Object: an artifact e.g., a design document Subjects: the people that apply the treatment Test of trials: a combination of treatment, object, subject G. Antoniol 2002 Software Engineering - Why 75 Observation Treatment Treatment Outcome Construct Outcome Experiment Independent Variable Operation Dependent Variable G. Antoniol 2002 Software Engineering - Why 76

20 Experiment Idea Experiment Process Experiment Definition Experiment Planning Experiment Operation Experimental Data Analysis and Interpretation Descriptive Statistics Data Set Reduction Analysis & Interpretation Presentation & Package Conclusions Hypothesis Testing Conclusions G. Antoniol 2002 Software Engineering - Why 77 G. Antoniol 2002 Software Engineering - Why 78

Software Engineering. Objectives. Designing, building and maintaining large software systems

Software Engineering. Objectives. Designing, building and maintaining large software systems Software Engineering Objectives Designing, building and maintaining large software systems To define software engineering and explain its importance To discuss the concepts of software products and software

More information

Software Engineering. Software Engineering. Software Costs

Software Engineering. Software Engineering. Software Costs Software Engineering Software Engineering is the science and art of building significant software systems that are: 1) on time 2) on budget 3) with acceptable performance 4) with correct operation. Ian

More information

CMSC 435: Software Engineering Course overview. Topics covered today

CMSC 435: Software Engineering Course overview. Topics covered today CMSC 435: Software Engineering Course overview CMSC 435-1 Topics covered today Course requirements FAQs about software engineering Professional and ethical responsibility CMSC 435-2 Course Objectives To

More information

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software... 1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering Software is intangible Hard to understand

More information

Fundamentals of Measurements

Fundamentals of Measurements Objective Software Project Measurements Slide 1 Fundamentals of Measurements Educational Objective: To review the fundamentals of software measurement, to illustrate that measurement plays a central role

More information

Topics covered. An Introduction to Software Engineering. FAQs about software engineering Professional and ethical responsibility

Topics covered. An Introduction to Software Engineering. FAQs about software engineering Professional and ethical responsibility An Introduction to Software Engineering Antinisca Di Marco adimarco@di.univaq.it Objectives To introduce software engineering and to explain its importance To set out the answers to key questions about

More information

Introduction to Software Engineering. Adopted from Software Engineering, by Ian Sommerville

Introduction to Software Engineering. Adopted from Software Engineering, by Ian Sommerville Introduction to Software Engineering Adopted from Software Engineering, by Ian Sommerville To discuss the factors that led to software failures and the phenomenon of the Software Crisis ; To introduce

More information

Software Engineering. Introduc)on

Software Engineering. Introduc)on Software Engineering Introduc)on Software engineering The economies of ALL developed nations are dependent on software. More and more systems are software controlled Software engineering is concerned with

More information

An Introduction to Software Engineering

An Introduction to Software Engineering An Introduction to Software Engineering Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1 Objectives To introduce software engineering and to explain its importance To set out the

More information

An Introduction to Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1

An Introduction to Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1 Objectives To introduce software engineering and to explain its importance To set out the

More information

A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management

A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management International Journal of Soft Computing and Engineering (IJSCE) A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management Jayanthi.R, M Lilly Florence Abstract:

More information

The Role of Controlled Experiments in Software Engineering Research

The Role of Controlled Experiments in Software Engineering Research The Role of Controlled Experiments in Software Engineering Research Victor R. Basili 1 The Experimental Discipline in Software Engineering Empirical studies play an important role in the evolution of the

More information

Software Engineering Compiled By: Roshani Ghimire Page 1

Software Engineering Compiled By: Roshani Ghimire Page 1 Unit 7: Metric for Process and Product 7.1 Software Measurement Measurement is the process by which numbers or symbols are assigned to the attributes of entities in the real world in such a way as to define

More information

Types of Research. Empirical Strategies. Explanatory Research. Exploratory Research. Empirical Strategies. Quantitative vs.

Types of Research. Empirical Strategies. Explanatory Research. Exploratory Research. Empirical Strategies. Quantitative vs. DCC / ICEx / UFMG Types of Research Empirical Strategies We can identify two main types of research for empirical studies Exploratory Research Explanatory Research Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo

More information

Software Test Specification

Software Test Specification Software Test Specification 1. Introduction This section provides an overview of the entire test document. This document describes both the test plan and the test procedure. 1.1 Goals and objectives Overall

More information

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology Peter Mileff PhD SOFTWARE ENGINEERING The Basics of Software Engineering University of Miskolc Department of Information Technology Introduction Péter Mileff - Department of Information Engineering Room

More information

An Introduction to Software Engineering

An Introduction to Software Engineering An Introduction to Software Engineering ACSC 383 Software Engineering Efthyvoulos C. Kyriacou (PhD) Assoc. Prof. Computer Science and Engineering Department Resources : Ian Sommervile Software engineering,

More information

Introduction. Getting started with software engineering. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1

Introduction. Getting started with software engineering. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Introduction Getting started with software engineering Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Objectives To introduce software engineering and to explain its importance

More information

Introduction to Software Engineering

Introduction to Software Engineering What is Software Engineering Introduction to Software Engineering Prof. Lyle N. Long lnl@psu.edu http://www.personal.psu.edu/lnl Sources of Material What is software? Software Engineering, 7 th Edition,

More information

What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software production.

What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software production. UNIT I - SOFTWARE PROCESS AND PROJECT MANAGEMENT Introduction to Software Engineering, Software Process, Perspective and Specialized Process Models Software Project Management: Estimation LOC and FP Based

More information

Domain Analysis for the Reuse of Software Development Experiences 1

Domain Analysis for the Reuse of Software Development Experiences 1 Domain Analysis for the Reuse of Software Development Experiences 1 V. R. Basili*, L. C. Briand**, W. M. Thomas* * Department of Computer Science University of Maryland College Park, MD, 20742 USA ** CRIM

More information

Empirical Software Engineering Introduction & Basic Concepts

Empirical Software Engineering Introduction & Basic Concepts Empirical Software Engineering Introduction & Basic Concepts Dietmar Winkler Vienna University of Technology Institute of Software Technology and Interactive Systems dietmar.winkler@qse.ifs.tuwien.ac.at

More information

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler Best-Practice Software Engineering: Software Processes to Support Project Success Dietmar Winkler Vienna University of Technology Institute of Software Technology and Interactive Systems Dietmar.Winkler@qse.ifs.tuwien.ac.at

More information

Lecture 3: What is Engineering?

Lecture 3: What is Engineering? Lecture 3: What is Engineering? What is engineering about? Engineering vs. Science Devices vs. Systems How is engineering different? Engineering as a profession Engineering Projects Project Management

More information

Software Engineering. What is SE, Anyway? Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. What is SE, Anyway? Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering What is SE, Anyway? Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software engineering and to explain its importance To set out the answers

More information

Module 11. Software Project Planning. Version 2 CSE IIT, Kharagpur

Module 11. Software Project Planning. Version 2 CSE IIT, Kharagpur Module 11 Software Project Planning Lesson 28 COCOMO Model Specific Instructional Objectives At the end of this lesson the student would be able to: Differentiate among organic, semidetached and embedded

More information

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2).

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2). 0305203 0305280 0305301 0305302 Software Engineering/Courses Description Introduction to Software Engineering Prerequisite: 0306211(Computer Programming 2). This course introduces students to the problems

More information

13 Empirical Research Methods in Web and Software Engineering 1

13 Empirical Research Methods in Web and Software Engineering 1 13 Empirical Research Methods in Web and Software Engineering 1 Claes Wohlin, Martin Höst, Kennet Henningsson Abstract. Web and software engineering are not only about technical solutions. It is to a large

More information

Chapter 1 Introduction

Chapter 1 Introduction Chapter 1 Introduction Chapter 1 Introduction Slide 1 Topics covered Professional software development What is meant by software engineering. Addendum to Sommerville s FAQs Software engineering ethics

More information

Chapter 23 Software Cost Estimation

Chapter 23 Software Cost Estimation Chapter 23 Software Cost Estimation Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 23 Slide 1 Software cost estimation Predicting the resources required for a software development process

More information

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Year 2014, Vol. 1, issue 1, pp. 49-56 Available online at: http://journal.iecuniversity.com TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Singh RANDEEP a*, Rathee AMIT b a* Department of

More information

C. Wohlin, "Is Prior Knowledge of a Programming Language Important for Software Quality?", Proceedings 1st International Symposium on Empirical

C. Wohlin, Is Prior Knowledge of a Programming Language Important for Software Quality?, Proceedings 1st International Symposium on Empirical C. Wohlin, "Is Prior Knowledge of a Programming Language Important for Software Quality?", Proceedings 1st International Symposium on Empirical Software Engineering, pp. 27-36, Nara, Japan, October 2002.

More information

Process & Product Metrics. Software Requirements & Project Management CITS3220

Process & Product Metrics. Software Requirements & Project Management CITS3220 Process & Product Metrics Software Requirements & Project Management CITS3220 Issues in Project Management (a reminder) n Before starting the project: planning, estimation, risk analysis; n While doing

More information

Darshan Institute of Engineering & Technology Unit : 7

Darshan Institute of Engineering & Technology Unit : 7 1) Explain quality control and also explain cost of quality. Quality Control Quality control involves the series of inspections, reviews, and tests used throughout the software process to ensure each work

More information

Chapter 6 Experiment Process

Chapter 6 Experiment Process Chapter 6 Process ation is not simple; we have to prepare, conduct and analyze experiments properly. One of the main advantages of an experiment is the control of, for example, subjects, objects and instrumentation.

More information

Module 1. Introduction to Software Engineering. Version 2 CSE IIT, Kharagpur

Module 1. Introduction to Software Engineering. Version 2 CSE IIT, Kharagpur Module 1 Introduction to Software Engineering Lesson 2 Structured Programming Specific Instructional Objectives At the end of this lesson the student will be able to: Identify the important features of

More information

Kunal Jamsutkar 1, Viki Patil 2, P. M. Chawan 3 (Department of Computer Science, VJTI, MUMBAI, INDIA)

Kunal Jamsutkar 1, Viki Patil 2, P. M. Chawan 3 (Department of Computer Science, VJTI, MUMBAI, INDIA) Software Project Quality Management Kunal Jamsutkar 1, Viki Patil 2, P. M. Chawan 3 (Department of Computer Science, VJTI, MUMBAI, INDIA) ABSTRACT Quality Management is very important in Software Projects.

More information

SE 367 Software Engineering Basics of Software Engineering

SE 367 Software Engineering Basics of Software Engineering Slide 1 SE 367 Software Engineering Basics of Software Engineering Slide 2 Introduction Getting started with software engineering Objectives To introduce software engineering and to explain its importance

More information

Exploratory Testing Dynamics

Exploratory Testing Dynamics Exploratory Testing Dynamics Created by James and Jonathan Bach 1 v1.6 Copyright 2005-2006, Satisfice, Inc. Exploratory testing is the opposite of scripted testing. Both scripted and exploratory testing

More information

Software cost estimation

Software cost estimation Software cost estimation Sommerville Chapter 26 Objectives To introduce the fundamentals of software costing and pricing To describe three metrics for software productivity assessment To explain why different

More information

Software cost estimation

Software cost estimation Software cost estimation Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 26 Slide 1 Objectives To introduce the fundamentals of software costing and pricing To describe three metrics for

More information

Application of software product quality international standards through software development life cycle

Application of software product quality international standards through software development life cycle Central Page 284 of 296 Application of software product quality international standards through software development life cycle Mladen Hosni, Valentina Kirinić Faculty of Organization and Informatics University

More information

Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management

Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management Chapter 24 - Quality Management Lecture 1 1 Topics covered Software quality Software standards Reviews and inspections Software measurement and metrics 2 Software quality management Concerned with ensuring

More information

Introduction. Getting started with software engineering. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1

Introduction. Getting started with software engineering. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Introduction Getting started with software engineering Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Why? the Therac-25 Failure 1985-1987 Therac-25 Radiation Treatment Machine

More information

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. CS 389 Software Engineering Lecture 2 Chapter 2 Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. Topics covered Software process models Process activities Coping

More information

Knowledge Infrastructure for Project Management 1

Knowledge Infrastructure for Project Management 1 Knowledge Infrastructure for Project Management 1 Pankaj Jalote Department of Computer Science and Engineering Indian Institute of Technology Kanpur Kanpur, India 208016 Jalote@iitk.ac.in Abstract In any

More information

Software Engineering

Software Engineering 1 Software Engineering Lecture 2: Software Life Cycles Stefan Hallerstede Århus School of Engineering 25 August 2011 2 Contents Naive Software Development Code & Fix Towards A Software Process Software

More information

SWEBOK Certification Program. Software Engineering Management

SWEBOK Certification Program. Software Engineering Management SWEBOK Certification Program Software Engineering Management Copyright Statement Copyright 2011. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted

More information

(Refer Slide Time: 01:52)

(Refer Slide Time: 01:52) Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This

More information

Chap 1. Software Quality Management

Chap 1. Software Quality Management Chap. Software Quality Management.3 Software Measurement and Metrics. Software Metrics Overview 2. Inspection Metrics 3. Product Quality Metrics 4. In-Process Quality Metrics . Software Metrics Overview

More information

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities Software Life Cycle Lecture Objectives What happens in the life of software To look at the life cycle of a software To understand the software process and its related elements To relate to the different

More information

Introduction to Software Engineering. 8. Software Quality

Introduction to Software Engineering. 8. Software Quality Introduction to Software Engineering 8. Software Quality Roadmap > What is quality? > Quality Attributes > Quality Assurance: Planning and Reviewing > Quality System and Standards 2 Sources > Software

More information

Object Oriented Analysis and Design and Software Development Process Phases

Object Oriented Analysis and Design and Software Development Process Phases Object Oriented Analysis and Design and Software Development Process Phases 28 pages Why object oriented? Because of growing complexity! How do we deal with it? 1. Divide and conquer 2. Iterate and increment

More information

Software Life Cycle Processes

Software Life Cycle Processes Software Life Cycle Processes Objective: Establish a work plan to coordinate effectively a set of tasks. Improves software quality. Allows us to manage projects more easily. Status of projects is more

More information

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur Module 2 Software Life Cycle Model Lesson 3 Basics of Software Life Cycle and Waterfall Model Specific Instructional Objectives At the end of this lesson the student will be able to: Explain what is a

More information

Software Testing. Testing types. Software Testing

Software Testing. Testing types. Software Testing 1 Software Testing Testing types Software Testing 2 References Software Testing http://www.testingeducation.org/bbst/ IBM testing course available through the Academic Initiative: Principles of Software

More information

Karunya University Dept. of Information Technology

Karunya University Dept. of Information Technology PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main

More information

Software Cost Estimation

Software Cost Estimation Software Cost Estimation Software cost estimation Predicting the resources required for a software development process Objectives To introduce the fundamentals of software costing and pricing To describe

More information

ADM The Architecture Development Method

ADM The Architecture Development Method ADM The Development Method P Preliminary Phase Preliminary Phase Determine the Capability desired by the organization: Review the organizational context for conducting enterprise architecture Identify

More information

Software Development Methodologies in Industry. By: Ahmad Deeb

Software Development Methodologies in Industry. By: Ahmad Deeb Software Development Methodologies in Industry By: Ahmad Deeb Methodologies Software Development Methodologies in Industry Presentation outline SDM definition Project and analysis approach Research methods

More information

Software Engineering: Analysis and Design - CSE3308

Software Engineering: Analysis and Design - CSE3308 CSE3308/DMS/2004/25 Monash University - School of Computer Science and Software Engineering Software Engineering: Analysis and Design - CSE3308 Software Quality CSE3308 - Software Engineering: Analysis

More information

Experiences with certification of reusable components in the GSN project in Ericsson, Norway

Experiences with certification of reusable components in the GSN project in Ericsson, Norway Experiences with certification of reusable components in the GSN project in Ericsson, Norway Parastoo Mohagheghi (Ph.D. Student, NTNU) Reidar Conradi Ericsson AS, Grimstad, Dept. Computer and Information

More information

Systems Analysis and Design Life Cycle

Systems Analysis and Design Life Cycle Systems Analysis and Design Life Cycle 2.1 The major goal of requirement determination phase of information system development is a. determine whether information is needed by an organization b. determine

More information

Page 1. Podcast Ch15-05

Page 1. Podcast Ch15-05 Podcast Ch15-05 Title: Process Maturity Description: Maturity levels 1-5; questions at each maturity level; software metrics Participants: Barry Kurtz (instructor); Brandon Winters, Sara Hyde, Cheng Vue,

More information

Measurement Information Model

Measurement Information Model mcgarry02.qxd 9/7/01 1:27 PM Page 13 2 Information Model This chapter describes one of the fundamental measurement concepts of Practical Software, the Information Model. The Information Model provides

More information

Software Engineering. So#ware Processes

Software Engineering. So#ware Processes Software Engineering So#ware Processes 1 The software process A structured set of activities required to develop a software system. Many different software processes but all involve: Specification defining

More information

Example Software Development Process.

Example Software Development Process. Example Software Development Process. The example software development process is shown in Figure A. The boxes represent the software development process kernels. The Software Unit Testing, Software Component

More information

2. Analysis, Design and Implementation

2. Analysis, Design and Implementation 2. Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Individual Programs to Complete Application Systems Software Development: Goals, Tasks, Actors,

More information

Three year rotational plan for assessing student outcomes: MET

Three year rotational plan for assessing student outcomes: MET Three year rotational plan for assessing student outcomes: MET Year 2015 ABET a, b, c, d, e ABET a, b, c, d, e 2016 ABET f, g, h, i, j, k ABET f, g, h, i, j, k 2017 MET a - c MET a - c 2018 ABET a, b,

More information

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan YOUR SUCCESS IS OUR FOCUS Whitepaper Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan 2009 Hexaware Technologies. All rights reserved. Table of Contents 1. Introduction 2. Subject Clarity 3. Agile

More information

IF2261 Software Engineering. Introduction. What is software? What is software? What is software? Failure Curve. Software Applications Type

IF2261 Software Engineering. Introduction. What is software? What is software? What is software? Failure Curve. Software Applications Type IF2261 Software Engineering Introduction Program Studi Teknik Informatika STEI ITB What is software? Definitions: Computer programs, procedures, and possibly associated documentation and data pertaining

More information

Enterprise Architecture and SOA

Enterprise Architecture and SOA ArchiTech Consulting LLC - for IT Enabled Enterprise & Business Enterprise and SOA Yan Zhao, Ph.D Chief Architect, President ArchiTech Consulting LLC yan.zhao@architechllc.com January, 2013 1 Introduction

More information

Software Engineering Reference Framework

Software Engineering Reference Framework Software Engineering Reference Framework Michel Chaudron, Jan Friso Groote, Kees van Hee, Kees Hemerik, Lou Somers, Tom Verhoeff. Department of Mathematics and Computer Science Eindhoven University of

More information

Surveying and evaluating tools for managing processes for software intensive systems

Surveying and evaluating tools for managing processes for software intensive systems Master Thesis in Software Engineering 30 Credits, Advanced Level Surveying and evaluating tools for managing processes for software intensive systems Anuradha Suryadevara IDT Mälardalen University, ABB

More information

SOFTWARE REQUIREMENTS

SOFTWARE REQUIREMENTS SOFTWARE REQUIREMENTS http://www.tutorialspoint.com/software_engineering/software_requirements.htm Copyright tutorialspoint.com The software requirements are description of features and functionalities

More information

Basic Unified Process: A Process for Small and Agile Projects

Basic Unified Process: A Process for Small and Agile Projects Basic Unified Process: A Process for Small and Agile Projects Ricardo Balduino - Rational Unified Process Content Developer, IBM Introduction Small projects have different process needs than larger projects.

More information

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development 1 Objectives To explain how an iterative, incremental development process leads to faster delivery of more useful software To discuss the essence of agile development methods

More information

A system is a set of integrated components interacting with each other to serve a common purpose.

A system is a set of integrated components interacting with each other to serve a common purpose. SYSTEM DEVELOPMENT AND THE WATERFALL MODEL What is a System? (Ch. 18) A system is a set of integrated components interacting with each other to serve a common purpose. A computer-based system is a system

More information

Components Based Design and Development. Unit 2: Software Engineering Quick Overview

Components Based Design and Development. Unit 2: Software Engineering Quick Overview Components Based Design and Development Computer Engineering Studies Universidad Carlos III de Madrid Unit 2: Software Engineering Quick Overview Juan Llorens Högskolan på Åland Finland / Universidad Carlos

More information

AGILE METHODOLOGY AND SOFTWARE REUSE A COMMON APPROCH TO SOFTWARE DEVELOPMENT

AGILE METHODOLOGY AND SOFTWARE REUSE A COMMON APPROCH TO SOFTWARE DEVELOPMENT AGILE METHODOLOGY AND SOFTWARE REUSE A COMMON APPROCH TO SOFTWARE DEVELOPMENT Manjot Singh Ahuja, Neha Sadana CSE Department Shivalik Institute of Engineering and Technology, Aliyaspur, Haryana, India

More information

Process Models and Metrics

Process Models and Metrics Process Models and Metrics PROCESS MODELS AND METRICS These models and metrics capture information about the processes being performed We can model and measure the definition of the process process performers

More information

Driving Quality Improvement and Reducing Technical Debt with the Definition of Done

Driving Quality Improvement and Reducing Technical Debt with the Definition of Done Driving Quality Improvement and Reducing Technical Debt with the Definition of Done Noopur Davis Principal, Davis Systems Pittsburgh, PA NDavis@DavisSys.com Abstract This paper describes our experiences

More information

Keywords Class level metrics, Complexity, SDLC, Hybrid Model, Testability

Keywords Class level metrics, Complexity, SDLC, Hybrid Model, Testability Volume 5, Issue 4, April 2015 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Review of Static

More information

Simulating the Structural Evolution of Software

Simulating the Structural Evolution of Software Simulating the Structural Evolution of Software Benjamin Stopford 1, Steve Counsell 2 1 School of Computer Science and Information Systems, Birkbeck, University of London 2 School of Information Systems,

More information

V. Phani Krishna et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 2 (6), 2011, 2915-2919

V. Phani Krishna et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 2 (6), 2011, 2915-2919 Software Quality Assurance in CMM and XP- A Comparative Study CH.V. Phani Krishna and Dr. K.Rajasekhara Rao CSE Department, KL University, Guntur dt., India. Abstract Software Quality Assurance is a planned

More information

Relational Analysis of Software Developer s Quality Assures

Relational Analysis of Software Developer s Quality Assures IOSR Journal of Computer Engineering (IOSR-JCE) e-issn: 2278-0661, p- ISSN: 2278-8727Volume 13, Issue 5 (Jul. - Aug. 2013), PP 43-47 Relational Analysis of Software Developer s Quality Assures A. Ravi

More information

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University Software Engineering Introduction & Background Department of Computer Science Kent State University Complaints Software production is often done by amateurs Software development is done by tinkering or

More information

Some Critical Success Factors for Industrial/Academic Collaboration in Empirical Software Engineering

Some Critical Success Factors for Industrial/Academic Collaboration in Empirical Software Engineering Some Critical Success Factors for Industrial/Academic Collaboration in Empirical Software Engineering Barry Boehm, USC (in collaboration with Vic Basili) EASE Project Workshop November 7, 2003 11/7/03

More information

A Rational Development Process

A Rational Development Process Paper published in: Crosstalk, 9 (7) July 1996, pp.11-16. A Rational Development Process Philippe Kruchten Vancouver, BC pbk@rational.com 1. Introduction This paper gives a high level description of the

More information

SOFTWARE ARCHITECTURE QUALITY EVALUATION

SOFTWARE ARCHITECTURE QUALITY EVALUATION SOFTWARE ARCHITECTURE QUALITY EVALUATION APPROACHES IN AN INDUSTRIAL CONTEXT Frans Mårtensson Blekinge Institute of Technology Licentiate Dissertation Series No. 2006:03 School of Engineering Software

More information

Testing In Iterative Product Development Environment

Testing In Iterative Product Development Environment Testing In Iterative Product Development Environment Shivageeta S. Choodi cshivageetha@novell.com Software Consultant Novell Bangalore 6 th Annual International Software Testing Conference 2006 Novell

More information

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2 BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2 EXAMINERS REPORT Friday 2 nd October 2015 Answer any THREE

More information

An Integrated View of Process and Measurement

An Integrated View of Process and Measurement An Integrated View of Process and Measurement Act Plan Continuous Improvement Mark Kasunic Study Do Software Engineering Institute Carnegie Mellon University Pittsburgh, Pennsylvania Sponsored by the U.S.

More information

Non-Functional Requirements for COTS Software Components

Non-Functional Requirements for COTS Software Components Non-Functional Requirements for COTS Software Components Ljerka Beus-Dukic School of Computing and Mathematics University of Northumbria at Newcastle Ellison Building, Newcastle upon Tyne NE1 8ST, United

More information

Classical Software Life Cycle Models

Classical Software Life Cycle Models Classical Software Life Cycle Models SWEN 301 Trimester 1, 2015 Lecturer: Dr Hui Ma Engineering and Computer Science Lecture slides make use of material provided on the textbook's companion website Motivation

More information

Managing Software Product Line

Managing Software Product Line * F 2 - Rules for Qualification of Developing and Managing Software Product Line F. Ahmed Electrical & Computer Engineering University of Western Ontario London Ontario, Canada, N5A5B9 sgraha5@uwo.ca L.F.

More information

Chap 1. Introduction to Software Architecture

Chap 1. Introduction to Software Architecture Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)

More information

Software Engineering UNIT -1 OVERVIEW

Software Engineering UNIT -1 OVERVIEW UNIT -1 OVERVIEW The economies of ALL developed nations are dependent on software. More and more systems are software controlled. Software engineering is concerned with theories, methods and tools for

More information

Plan-Driven Methodologies

Plan-Driven Methodologies Plan-Driven Methodologies The traditional way to develop software Based on system engineering and quality disciplines (process improvement) Standards developed from DoD & industry to make process fit a

More information

IEA Guidance Note G4

IEA Guidance Note G4 IEA Guidance Note G2 IEA Guidance Note G4 Guidance on Evaluation Inception Reports January 2015 1 Table of contents List of Abbreviations... ii Introduction... 1 General guidelines... 1 Content... 2 Opening

More information