CSC340: Tutorial 1 Software Lifecycles TA: Yuan An Date: 9:00-10:00am, Fri. Oct. 3, 2003 Location: BA1130.

Slides:



Advertisements
Similar presentations
Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.
Advertisements

Prescriptive Process models
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
Unit 2. Software Lifecycle
IS2210: Systems Analysis and Systems Design and Change
 2004 by SEC Chapter 2 Software Development Process Models.
CSE 470 : Software Engineering The Software Process.
Chapter 3 Process Models
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Alternate Software Development Methodologies
SYSC System Analysis and Design
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
1 SOFTWARE LIFE-CYCLES Beyond the Waterfall. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance The WATERFALL.
Object-oriented Analysis and Design
Lecture 13 Revision IMS Systems Analysis and Design.
Software Processes: Traditional CSCI102 - Systems ITCS905 - Systems MCS Systems.
03/12/2001 © Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
Information Systems Development Lecture 2: the idea of the Life Cycle.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Software Life Cycle Model
S/W Project Management
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
UML - Development Process 1 Software Development Process Using UML (2)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
CSI315 Web Applications and Technology Overview of Systems Development (342)
IT Systems Analysis & Design
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Chapter 1: Introduction to Systems Analysis and Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
2-Oct-15 Software Development Process E. Haodudin Nurkifli Teknik Informatika Universitas Ahmad Dahlan Kuliah 2 : Administrative dan Introduction 2 Oktober.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Installation and Maintenance of Health IT Systems
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem Darwish.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
CSE323 การวิเคราะห์และออกแบบระบบ (Systems Analysis and Design) Lecture 02: Problems in Information Systems Development.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Systems Analysis and Design in a Changing World, Fourth Edition
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Stand Up Comedy Project/Product Management
© Bennett, McRobb and Farmer 2005
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Development.
Methodologies and Algorithms
Chapter 1: Introduction to Systems Analysis and Design
TIM 58 More on Chapter 1: Introduction to Systems Analysis and Design
Software Engineering and Best Practices
Requirements and the Software Lifecycle
Introduction to Software Engineering
Chapter 2 – Software Processes
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Chapter 1: Introduction to Systems Analysis and Design
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

CSC340: Tutorial 1 Software Lifecycles TA: Yuan An Date: 9:00-10:00am, Fri. Oct. 3, 2003 Location: BA1130

In This Tutorial:  The stages in the waterfall life cycle  About prototyping and incremental life cycles  The importance of project management  How users may be involved in a project  The role of CASE tools in systems development

The Development Lifecycle  Starting an information system Reasons for development of an information system Why does an information system fail?  Project Lifecycle Waterfall life cycle model Waterfall life cycle with iteration Prototyping Evaluation of prototyping

Starting an Information Systems Many reasons for development of information systems: –Problem driven: competition, crisis… –Change-driven: new needs, growth, change in business, change in environment… –Opportunity-driven: new technology… –Part of previous plan… –…. But failure does happen.

Why Does an Information System Fail? End user’s perspective: –No system: “what system? I haven’t seen a system.” –Unusable –Insufficient power Client’s perspective: –Too expensive –Too late –Change of mind –Change of requirements Developer’s perspective: –Wrong requirements –Insufficient resources –Incomplete requirements –Impossible requirements –Blame the others

Problems Causing Failures Quality problems: –The wrong problem is addressed. –Wider influence are neglected. –Analysis is carried out incorrectly. –Project undertaken for the wrong reasons. Process problems: –Requirements drift. –External events change the environment. –Implementation is not feasible. –Poor project management.

Avoiding the Problems We need to adopt strategies and procedures that will minimize the occurrence of the problems. There is no such thing as a ‘right’ or a ‘wrong’ strategy or procedure which produces a quality system. One major source of difficulty is the inherent complexity of software development.

A General Perspective Building computerized information Systems can be viewed as a form of problem Solving.

Problem Solving Model Main phases are –Data gathering –Problem redefinition –Finding ideas –Finding solutions –Implementation n These focus on understanding what the problem is about n Concerned with understanding more about the nature of the problem and possible solutions

The Development Life Cycle The information systems development process is a partially ordered collection of actions, carried out by one or more developers, testers, users, or other information systems in order to accomplish a task. The development life cycle is a process by which a information system is developed, tested, installed and maintained throughout its useful history. The concept of lifecycle is a useful project management tool. A lifecycle consists of phases, each of which is a process.

The Breakdown of Costs For large software systems, involving >10k lines of code, the breakdown of costs between different phases is as follows: –Requirements Analysis 5% –Design10% –Programming-in-the-small15% –Integration10% –Maintenance and Evolution60% Small software systems<5k LOC –Specification 10% –Decomposition20% –Coding20% –Optimization15% –Testing25% –Validation10% Systems analysis and design more important.

What is Described by a Life Cycle? The lifecycle describes the temporal, causal and I/O relationships between different lifecycle phases. The lifecycle concept includes the concept of feedback (returning to a previous phase) as well as moving forward to the next phase. In the past, the lifecycle concept was applied to the management of complex systems that had some sort of physical hardware as their end product, e.g., missiles, communication networks, spacecraft, etc.

What Does a Life Cycle Consist of? A series steps through which the product progresses. A life cycle specifies: –The various phases of the process. –The order in which they are carried out. –The guidance for project management. Next: The Waterfall Life Cycle…

The Waterfall Life Cycle Model

Waterfall Life Cycle The traditional life cycle (TLC) for information systems development is also known as the waterfall life cycle model –So called because of the difficulty of returning to an earlier phase The model shown here is one of several more or less equivalent alternatives –Typical deliverables are shown for each phase

Waterfall Model (cont’) Consists of a set of phases that a project progresses through in a sequential order. Each phase must be completed before the project can progress to the next phase. At the end of each phase is some form of gateway, usually a formal review where that decision is made. There is no overlap between phases. Straight forward, simple to understand and use. Deliverables are frozen at the end of each phase and serve as the baseline for the following phases. You do not see the software until the end of the project (big bang software development). Changes are not supposed to happen or are limited or are tightly controlled.

TLC Deliverables System Engineering –High Level Architectural Specification Requirements Analysis –Requirements Specification –Functional Specification –Acceptance Test Specifications Life cycle deliverables (adapted from Sommerville, 1992).

TLC Deliverables Design –Software architecture specification –System test specification –Design specification –Sub-system test specification –Unit test specification Life cycle deliverables (adapted from Sommerville, 1992).

TLC Deliverables Construction –Program code Testing –Unit test report –Sub-system test report –System test report –Acceptance test report –Completed system Life cycle deliverables (adapted from Sommerville, 1992).

TLC Deliverables Installation –Installed System Maintenance –Change requests –Change request report Life cycle deliverables (adapted from Sommerville, 1992).

Problems with TLC Real projects rarely follow such a simple sequential life cycle Iterations are almost inevitable Time elapses between system engineering and the final installation The design is unresponsive to business changes during the project

The Waterfall Life Cycle with Iteration Iteration added to solve some of the problems

Strengths of TLC Tasks in phases may be assigned to specialized teams Project progress evaluated at the end of each phase Manage projects with high levels of risks Next: Prototyping

Prototyping—Advantages Early demonstrations of system functionality help identify any misunderstandings between developer and client Client requirements that have been missed are identified Difficulties in the interface can be identified The feasibility and usefulness of the system can be tested, even though, by its very nature, the prototype is incomplete

Prototyping

Prototyping—Problems The client may perceive the prototype as part of the final system The prototype may divert attention from functional to solely interface issues Prototyping requires significant user involvement Managing the prototyping life cycle requires careful decision making

Unified Software Development Process Captures many elements of best practice Main phases –Inception is concerned with determining the scope and purpose of the project –Elaboration focuses requirements capture and determining the structure of the system –Construction's main aim is to build the software system –Transition deals with product installation and rollout

Size of square relative to time spent on workflow Inception Elaboration Construction Transition Project Phases Iterations within each phase RequirementsAnalysisDesignImplementationTest Workflows

User Involvement Users can be involved in various ways –As part of the development team (DSDM) –Via a consultative approach –In fact gathering

Computer Aided Software Engineering CASE tools typically provide a range of features including –checks for syntactic correctness –repository support –checks for consistency and completeness –navigation to linked diagrams –layering –requirements tracing –report generation –system simulation –performance analysis –code generation

The Spiral Life Cycle Model