Software Engineering. An Introduction. Fakhar Lodhi



Similar documents
Object-Oriented and Classical Software Engineering

SOFTWARE PROCESS MODELS

Development Methodologies

Software Life-Cycle. Series of steps through which software product progresses. A life-cycle is selected during requirement Phase

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice

Slide 2.1. Slide 2.3. Slide 2.5

Object-Oriented and Classical Software Engineering

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

CHAPTER 02 SOFTWARE LIFE-CYCLE MODELS

CS605 Software Engineering-II

Software Life Cycle Processes

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

Software Development Life Cycle (SDLC)

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Object-Oriented Software Engineering

Software Development Life Cycle

Process Models and Metrics

Software Development Process Models

A Capability Maturity Model (CMM)

How to Write a Software Process Procedures and Policy Manual for YOUR COMPANY

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

Improving Software Development Economics Part II: Reducing Software Product Complexity and Improving Software Processes

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

Software Engineering. What is a system?

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

Managing TM1 Projects

Introduction to Software Engineering

Extreme Programming, an agile software development process

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

COMP 354 Introduction to Software Engineering

CSE 435 Software Engineering. Sept 16, 2015

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

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Software Quality Assurance Plan

SOFTWARE DEVELOPMENT SD

Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem

Supporting Workflow Overview. CSC532 Fall06

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

Software Engineering Question Bank

The Spiral development model is a risk-driven process model generator. It

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Rapid Software Development

Phases, Activities, and Work Products. Object-Oriented Software Development. Project Management. Requirements Gathering

Software Process for QA

Frank Tsui. Orlando Karam. Barbara Bernal. State. University. Polytechnic. Ail of Southern JONES & BARTLETT LEARNING

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

What is a life cycle model?

Vragen. Software development model. Software development model. Software development model

The Role of CM in Agile Development of Safety-Critical Software

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

Fundamentals of Measurements

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Quality Testing Course Material

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Ob j ect-oriented Project Management with UML

Classical Software Life Cycle Models

BAL2-1 Professional Skills for the Business Analyst

Software Development Methodologies in Industry. By: Ahmad Deeb

Extreme Programming, an agile software development process

ASSESSMENT OF SOFTWARE PROCESS MODELS

Software Project Models

Alternative Development Methodologies

Software Development Lifecycle. Steve Macbeth Group Program Manager Search Technology Center Microsoft Research Asia

Software Process and Models

The Software Life Cycle. CSE 308: Software Engineering

SWEBOK Certification Program. Software Engineering Management

How To Model Software Development Life Cycle Models

SOFTWARE DEVELOPMENT PLAN

Software Development Process

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Advanced Software Engineering. Software Development Processes

CHAPTER 01 THE SCOPE OF SOFTWARE ENGINEERING

An Assessment between Software Development Life Cycle Models of Software Engineering

A Software Engineering Process for Operational Space Weather Systems. S. Dave Bouwer, W. Kent Tobiska Space Environment Technologies

Agile Software Development Methodologies and Its Quality Assurance

Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart)

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell

Agile processes. Extreme Programming, an agile software development process

Software Life Cycles and Configuration Management

Umbrella: A New Component-Based Software Development Model

Management. Project. Software. Ashfaque Ahmed. A Process-Driven Approach. CRC Press. Taylor Si Francis Group Boca Raton London New York

Design of Enterprise Systems

Project Management. Session 3: Planning

International Journal of Advance Research in Computer Science and Management Studies

2. Analysis, Design and Implementation

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study

Transcription:

Software Engineering An Introduction Fakhar Lodhi 1

Engineering The science concerned with putting scientific knowledge to practical use. Webster s Dictionary Physics versus Electrical Engineering 2

Software Engineering The science concerned with putting computer science knowledge to practical use. Computer Science versus Software Engineering 3

Software Engineering - IEEE 1. The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. 2. The study of approaches as in 1. 4 One of the largest efforts in Software Engineering has been the design of Ada Programming Language!

Breakdown of Effort Cost - Software Cost Estimation by Capers Jones No. Activity Effort 1 Requirements 3.84% 2 Prototyping 4.50% 3 Architecture 2.25% 4 Project Plans 1.33% 5 Initial Design 3.84% 6 Detailed Design 4.50% 7 Design Reviews 3.02% 8 Coding 13.50% 9 Reuse acquisition 1.13% 10 Package Purchase 1.69% 11 Code Inspection 4.50% 12 Independent V&V 5.42% 13 Configuration Mgt. 0.41% 14 Integration 2.71% 15 User Documentation 9.67% 16 Unit Testing 4.50% 17 Function Testing 4.50% 18 Integration Testing 3.84% 19 System Testing 3.38% 20 Beta Testing 3.02% 21 Acceptance Testing 1.94% 22 Independent Testing 3.38% 23 Quality Assurance 4.50% 24 Installation and Training 1.94% 25 Project Management 6.75% 5

Effort Breakdown of ~10000 Projects - Capers Jones Project Management 8.08% Requirements 14.43% Design 11.36% Coding 13.50% SQA 30.64% SCM 13.02% Integration 6.54% Misc. ~3% 6

Software Development Management Construction project planning and management configuration management quality assurance installation and training etc. 7 Requirements Design Coding Testing Maintenance etc.

Basic Activities of Software Engineering defining the software development process to be used managing the development project describing the intended software product designing the product implementing the product testing the parts of the product integrating the parts and testing them as a whole maintaining the product 8

The Four P s of Software Engineering Project People Process Product the task at hand by whom it is done the manner it is done the artifacts produced 9

Well-Engineered Software Provides the required functionality Maintainable Reliable Efficient User-friendly Cost-effective 10

Well-Engineered Software - contd. These requirements may be conflicting: Cost vs. Efficiency Cost vs. Reliability Efficiency vs. User-interface Law of diminishing returns. Challenge is to balance these requirements. 11

Software Life-Cycle Models The way you organize your activities The steps through which the product progresses Requirements phase Specification phase Design phase Implementation phase Integration phase Maintenance phase Retirement 12

Software Processes Build-and-fix model Waterfall model Rapid prototyping model Incremental model Extreme programming Synchronize-and-stabilize model Spiral model Object-oriented life-cycle models Comparison of life-cycle models 13

Build and Fix Model Problems No specifications No design Totally unsatisfactory Need life-cycle model Game plan Phases Milestones 14

Waterfall Model (contd) Characterized by With or without feedback loops Documentation-driven Advantages Documentation Maintenance easier Disadvantages Client feedback 15

Rapid Prototyping Model Linear model Rapid Horizontal versus vertical prototyping 16

Three Key Points Do not turn into product Rapid prototyping may replace specification phase never the design phase Comparison: Waterfall model try to get it right first time Rapid prototyping frequent change, then discard 17

Waterfall and Rapid Prototyping Models Waterfall model Many successes Client needs Rapid prototyping model Cannot be used for robust applications Solution Rapid prototyping for requirements phase Waterfall for rest of life cycle 18

Incremental Model Divide project into builds 19

Incremental Model (contd) 20 Waterfall, rapid prototyping models Operational quality complete product at end Incremental model Operational quality portion of product within weeks Less traumatic Smaller capital outlay, rapid return on investment Need open architecture maintenance implications Variations used in object-oriented life cycle

Incremental Model (contd) Problems Build-and-fix danger Contradiction in terms 21

Incremental Model (contd) More risky version pieces may not fit CABTAB and its dangers 22

Code a bit, test a bit CABTAB Haphazard undisciplined approach 23

Extreme Programming Somewhat controversial new approach Stories (features client wants) Estimate duration and cost of each story Select stories for next build Each build is divided into tasks Test cases for task are drawn up first Pair programming Continuous integration of tasks 24

25 Extreme Programming

Unusual Features of XP Computers are put in center of large room lined with cubicles Pair programming with shared computers Client representative is always present Cannot work overtime for 2 successive weeks No specialization Refactoring 26

Evaluating XP XP has had some successes Good when requirements are vague or changing Too soon to evaluate XP 27

28 Dilbert on extreme Programming

Synchronize-and Stabilize Model Microsoft s life-cycle model Requirements analysis interview potential customers Draw up specifications Divide project into 3 or 4 builds Each build is carried out by small teams working in parallel 29

Synchronize-and Stabilize Model (contd) At the end of the day synchronize (test and debug) At the end of the build stabilize (freeze build) Components always work together Get early insights into operation of product 30

Spiral Model Simplified form Waterfall model plus risk analysis Precede each phase by Alternatives Risk analysis Follow each phase by Evaluation Planning of next phase 31

Simplified Spiral Model If risks cannot be resolved, project is immediately terminated 32

Full Spiral Model Radial dimension: cumulative cost to date Angular dimension: progress through the spiral 33

34 Full Spiral Model (contd)

Analysis of Spiral Model Strengths Easy to judge how much to test No distinction between development, maintenance Weaknesses For large-scale software only For internal (in-house) software only 35

Object-Oriented Life-Cycle Models 36 Need for iteration within and between phases Fountain model Recursive/parallel life cycle Round-trip gestalt Unified software development process All incorporate some form of Iteration Parallelism Incremental development Danger CABTAB

Conclusions 37 Different life-cycle models Each with own strengths Each with own weaknesses Criteria for deciding on a model include The organization Its management Skills of the employees The nature of the product Best suggestion Mix-and-match life-cycle model

Quality Assurance? There is NO QA phase QA is an activity performed throughout software production Verification Performed at the end of each phase Validation Performed before delivering the product to the client 38

Documentation Phase? There is NO documentation phase Every phase must be fully documented before starting the next phase Postponed documentation may never be completed The responsible individual may leave The product is constantly changing we need the documentation to do this The design (for example) will be modified during development, but the original designers may not be available to document it 39

Phase Documents QA Requirement Rapid prototype, or Rapid prototype Definition Requirements document Reviews Functional Specification Specification document (specifications) Traceability FS Review Software Product Management Plan Check the SPMP Design Architectural Design Traceability Detailed Design Review Coding Source code Traceability Test cases Review Testing Integration Source code Integration testing Test cases Acceptance testing 40 Maintenance Change record Regression test cases Regression testing

Traceability matrix Requirement ID Use Case ID UID Class/ function Test Case ID 41

42 Questions?

43 Thank you!