Software Engineering



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

LECTURE 1. SYSTEMS DEVELOPMENT

A Comparison between Five Models of Software Engineering

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Advanced Software Engineering. Software Development Processes

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

1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4)

Chapter 8 Approaches to System Development

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

ASSESSMENT OF SOFTWARE PROCESS MODELS

Software Engineering. What is a system?

Software Development Life Cycle

Lecture 21 March 7, 2013

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

Software Project Models

Software Development Life Cycle (SDLC)

Software Development: The Waterfall Model

1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4)

Software Development Process

(Refer Slide Time: 01:52)

Software Process Models. Xin Feng

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

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

A Capability Maturity Model (CMM)

How To Understand The Software Process

SOFTWARE PROCESS MODELS

When is Agile the Best Project Management Method? Lana Tylka

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

Unit 1 Learning Objectives

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

Software Development Processes. Software Life-Cycle Models

A Comparison Between Five Models Of Software Engineering

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

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

CSE 435 Software Engineering. Sept 16, 2015

How To Model Software Development Life Cycle Models

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring

An Assessment between Software Development Life Cycle Models of Software Engineering

Keywords Software Engineering, Software cost, Universal models. Agile model, feature of software projects.

Lecture 3 Software Development Processes

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

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

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

Software Development Life Cycle Models- Comparison, Consequences

Software Development Life Cycle Models - Process Models. Week 2, Session 1

Alan Dennis, Barbara Haley Wixom, and Roberta Roth John Wiley & Sons, Inc. Slides by Candace S. Garrod Red Rocks Community College 3-1

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

Don t forget the testers

A Survey of Software Development Process Models in Software Engineering

CS4507 Advanced Software Engineering

COMP 354 Introduction to Software Engineering

Software Development Methodologies

Classical Software Life Cycle Models

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

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

Managing TM1 Projects

The most suitable system methodology for the proposed system is drawn out.

Redesigned Framework and Approach for IT Project Management

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

Development Methodologies Compared

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Surveying and evaluating tools for managing processes for software intensive systems

Foundations for Systems Development

Contrastive Analysis of Software Development Methodologies

The traditional project management uses conventional methods in software project management process.

CPSC 491 Lecture Notes Fall 2013

Nova Software Quality Assurance Process

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

Process Models and Metrics

Software Process. Process: A sequence of activities, subject to constraints on resources, that produce an intended output of some kind.

Software development lifecycle

Information Systems Development Process (Software Development Life Cycle)

SOFTWARE DEVELOPMENT SD

Software Engineering. Software Engineering. Software Costs

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

Today: Software Development Models (cont)

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

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara

Software Life Cycle Processes

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

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

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

International Journal of Advanced Research in Computer Science and Software Engineering

5/19/ Professor Lili Saghafi

The Software Life Cycle. CSE 308: Software Engineering

A COMPARISON BETWEEN DIFFERENT TYPES OF SOFTWARE DEVELOPMENT LIFE CYCLE MODELS IN SOFTWARE ENGINEERING

RUP for Software Development Projects

Alternative Development Methodologies

Software Development Life Cycle & Process Models

Software Life Cycle Models

Unit I. Introduction

Object-Oriented and Classical Software Engineering

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

PROJECT MANAGEMENT METHODOLOGY OF OBJECT- ORIENTED SOFTWARE DEVELOPMENT

Agile Processes and Methodologies: A Conceptual Study

Achieving ISO 9001 Certification for an XP Company

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

CSCI-485: Software Design

Transcription:

Software Engineering

Introduction Software engineering Statistics Software Development Process Models Project Management Overview

Situation Before programs were quite small written by one person Today large programs developed by team Introduction programmers are not future users of system have no expert knowledge of application area in question

Software crisis 60 and still Software delivered too late going on Programs did not behave as users expected Programs were rarely adaptable to change requirements Many errors were detected after the software had been delivered to the customer

Software Engineering Designing, building and maintaining software products time cost quality security

Development project (The CHAOS-report, The Standish Group 1994)

Development project (The CHAOS-report, The Standish Group 2001)

Development project (The CHAOS-report, The Standish Group 2003)

Development project (The CHAOS-report, The Standish Group 1994-2003)

Software development process Problem Requirements specification Design Implementation Testing/Integration Maintenance

Idea or problem to be solved Discovery (listen and observe) Who initiate project Refinement (interrogate and clarify) Modelling (suggest and verify) Questions What is the problem? Is it possible? Should we do it? and how? Is it profitable? Outcome is sufficient understanding of the problem desicion continue/cancel

Requirements specification Requrement analysis (intern och extern) Analysis of ev. existing system Need to write down unambigously what the required behaviour is System proposal Structured documents Detaljed project plan Outcome: requirement specification that communicates the required features of the system to the designer

Develop a solution meeting requirements Use past experience Design Often need to innovate at some level Generate possible solutions Select among them Outcome: design document that unambiguously communicates the design to the implementor

Writing code Documenting code Implementation Feedback to designer and/or analyst Outcome: documented and working code ready for testing

Need to check that imlementation matches design Testing Must test individual modules and then complete system Test interaction with existing environment/software/data/etc. Outcome: correctly working system

Undetected problems Changed user requirements Maintenance Further development of the system (additional functionality, further integration with other systems)

Kinds of models Different kinds of models are known and used, for example Waterfall Spiral Prototyping Agile methods (XP)

Traditional watterfall model Classic lifecycle model Sequential development Output of one step is input of another

Traditional watterfall model Advantages Easy to understand and implement Identifies deliverables and milestones Identifies system requirements long before programming begins (define before design and design before code)

Traditional watterfall model Disadvantages Long time between system proposal and delivery of new system Dificult and expensive to make changes Doesn t match reality well

Spiral model Start with critical parts Key idea: on each iteration identify and solve the sub-problems with the highest risk. Each cycle includes Requirement engineering Design Implementation Testing

Advantages Spiral model Realism: the model accurately reflects the iterative nature of software development on projects with unclear requirements Flexible: incorporates the advantages of the waterfall and prototyping methods Comprehensive model decreases risk Good project visibility.

Disadvantages Spiral model Needs technical expertise in risk analysis to really work Model is poorly understood by non-technical management, thus not so widely used Complicated model, needs competent professional management

Prototyping Customers are non-technical and usually don t know what they want/can have. 1. User formulate requirements 2. First version of the system is produced (quick design and build prototype)on the basis of these requirements 3. User starts to work with the system (evaluate), which leads to new/changed requirements 4. Next version is developed After a number of iterations user is satisfied Last version is developed

Advantages Prototyping Reduces risk of incorrect user requirements Users can identify needed changes and refine real requirements Problems are detected earlier Regular visible progress

Disadvantages Prototyping Difficult to know how long project will last An unstable/badly implemented prototype often becomes the final product. The design is of lesser quality Requires extensive customer collaboration

Agile methods XP Programming in pairs Test driven development Continuous planning, change, delivery Emphasises: Individuals and interactions Working software Customer collaboration Responding to change

XP Advantages Suit small-medium size projects Produces good team cohesion Emphasises final product Iterative Test based approach to requirements and quality assurance

Disadvantages XP Difficult to scale up to large projects where documentation is essential Needs experience and skill Requires a great deal of discipline, otherwise project may become chaotic and unfocused

Criteria for Selecting the Appropriate Methodology Clear user requirements Familiarity with technology Complexity of system Reliability of system Time schedule Schedule visibility

Way to success Support from management Involved users Experienced project leaders Clear aim Constraints Standardiserad plattform / infrastructure Stabil fundamental requirements Well-foundedtime/cost estimation

Project management The activity spanning all phases Project must be managed properly Delivered in time (time constraint) Within budget (fixed budget) Well documented