Software Engineering Software Engineering Methods Software Development Life Cycle (SDLC) Basics Lecturer: Dr. Ernest Cachia This document © 2003 Dr. Ernest.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 12, Software Life Cycle.
Computer Science Department
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
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.
Lecture # 2 : Process Models
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
Unit 2. Software Lifecycle
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Project Management
CSE 470 : Software Engineering The Software Process.
Systems Analysis and Design II
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Chapter 2 – Software Processes
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
COMP 6710 Course NotesSlide 2-0 Auburn University Computer Science and Software Engineering Course Notes Set 2: Software Process Models Computer Science.
1 SOFTWARE LIFE-CYCLES Beyond the Waterfall. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance The WATERFALL.
CS 425/625 Software Engineering Software Processes
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
The Waterfall Model A Case Study
1 SOFTWARE LIFE-CYCLES Elements and Definitions. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance The WATERFALL.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
CSI315 Web Technology and Applications
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Lecture 2 Software Processes CSC301-Winter 2011 Hesam C. Esfahani
Chapter 2 The process Process, Methods, and Tools
Lecture # 04 & 05 CS314 Introduction To Software Development Software Development Process (SDP) Instructor :Muhammad Janas khan
©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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Configuration Management (CM)
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
An Introduction to Software Engineering
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
Developed by Reneta Barneva, SUNY Fredonia The Process.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Software Development Life Cycle (SDLC)
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CC20O7N Software Engineering 1 CC2007N Software Engineering 1 Part 1 Introduction to Software Engineering.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 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.
Lectures 2 & 3: Software Process Models Neelam Gupta.
44222: Information Systems Development
A framework that describes the activities performed at each stage of a software development project. A life-cycle or a software process is the organisational.
Systems Development Life Cycle
April 2003 CIS1107/1207 ((batch 4) Introduction to Software Engineering (Part 2 of CIS1107/1207 – Software Engineering Principles) Software Engineering.
Ernest Cachia Department of Computer Information Systems
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Methodologies For Systems Analysis.
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Rapid software development
Chapter 2 Software Processes
Presentation transcript:

Software Engineering Software Engineering Methods Software Development Life Cycle (SDLC) Basics Lecturer: Dr. Ernest Cachia This document © 2003 Dr. Ernest Cachia

(C) Dr. Ernest Cachia Slide: 2 Some Fundamental Points to Bear in Mind Before We Start SE only effects software development. SE is not one specific method or approach but rather a way of disciplining one's actions. SE is not a panacea. SE cannot be applied blindly and can actually hinder the development process if not used in the right way. SE does incur substantial overheads in terms of human and organisational effort. SE practices have been proven valid in many large- scale projects (both governmental and private). Sensible application of SE practices requires formal tuition and practical experience.

(C) Dr. Ernest Cachia Slide: 3 Why Software Engineering? Maybe the answer can be deduced from some definitions of Software Engineering (SE) in the next slide…

(C) Dr. Ernest Cachia Slide: 4 Some Definitions Generic definition: “The building of software systems” (coined in the 1960s) D. L. Parnas: “The multi-person construction of multi-version software” (conference 1987)  Software engineering includes programming but is not programming.  Therefore…good programmers are not necessarily good software engineers!

(C) Dr. Ernest Cachia Slide: 5 Fundamental Software Engineering Goals The final goal of SE has to be to build software systems of demonstrable high quality. In the light of modern software systems, to attain such pretentious aims SE must amongst other things, be able to effectively bring to focus the efforts of more than one individual.

(C) Dr. Ernest Cachia Slide: 6 A Few More SE Aspirations Introduces elements of rigorous discipline to the software development process. Attempts to define software development techniques and guidelines which can then be standardised. Facilitates some of the more mechanical parts of software development. Strives to use software models which are portable over a wide range of environments/platforms. Offer a possible entry point and “common ground” for machine automation of software system development. So, what exactly is a software system? …

(C) Dr. Ernest Cachia Slide: 7 A Software System In general, a system is co-operating software and hardware providing a solution for a specific (business or otherwise) problem. Therefore, a software system can be viewed as a software solution to a specific real-world problem.  The focus of attention and effort.  Generally viewed as one of the main product components of ICT development. So, what are the characteristics of a typical software system? …

(C) Dr. Ernest Cachia Slide: 8 Attributes of Sound Systems They are sophisticated They are structured hierarchically The depth of the hierarchy is subjective (abstraction) The hierarchy is generally made up of recurring components in different arrangements They exhibit stronger cohesion than they do coupling A valid sophisticated system always evolves from a valid simpler version

(C) Dr. Ernest Cachia Slide: 9 Visual Representation of System Characteristics System environment OutputsInputs The System (What it does) Control System Control (How is it controlled) Feed-forward Feed-back System boundary

(C) Dr. Ernest Cachia Slide: 10 An Unsustainable Situation On one hand…  People build software systems using no particular method  People build fragile software systems  People build inaccurate software systems  Software system development is expensive  Software system development requires considerable planning and effort On the other hand…  Modern software systems are ever-increasing in sophistication  Demands on software systems is always rising  Software systems are what make a computing entity  People consciously or unconsciously rely on software for most of their social activities

(C) Dr. Ernest Cachia Slide: 11 The Software Crisis The tension created by the conflicting interests outlined in the previous slide gave rise to a software crisis peaking in the late 70s / early 80s. The software crisis threatened to cripple the progress of computing as a whole. Effects of the crisis still linger in the form of software development always playing “catch- up” to hardware development.

(C) Dr. Ernest Cachia Slide: 12 The Wrongness of Our Ways Monolithic development is not effective for modern system development.  No process control  No product or process guarantees  No true management  No client confidence  No process visibility / traceability  No metrication  No communication => no quality!

(C) Dr. Ernest Cachia Slide: 13 Breaking the Monolithic Model Done by introducing “steps” into the software development process. Steps in the development process are called “phases” (or “stages”). Phases must be self contained and pre- defined. Phases should decrease abstraction as they progress.

(C) Dr. Ernest Cachia Slide: 14 A Software Development Phase A software development phase: is a delimited period of time within the process of development of a software system. has a definite starting set of data and a definite set of results. is based on the results set of earlier phases.

(C) Dr. Ernest Cachia Slide: 15 Some Advantages of Phased Development Phased development  Offers benchmarking  Offers insight  Offers mile-stoning niches  Offers a documentation-building framework  Offers a definite progression sequence  Offers possibilities for prototyping  Allows end-user and client participation  Offers possibilities for better testing strategies

(C) Dr. Ernest Cachia Slide: 16 A Development Milestone A software development milestone is a scheduled event…  for which some project member or manager is accountable.  is used to measure progress. A milestone typically includes:  a formal review.  the issuance of documents.  the delivery of a (sometimes intermediate) product.

(C) Dr. Ernest Cachia Slide: 17 Installation Typical Phases in Software Development Requirements Analysis Feasibility Design Implementation Testing Maintenance Retirement Statement Elicitation Strategy planning Feasibility study Detailed System Integration Component Support Operations Detailed System

(C) Dr. Ernest Cachia Slide: 18 Phases are Neutral and Pliable Testing Requirements Analysis Design Implementation Feasibility Maintenance The Life-Cycle

(C) Dr. Ernest Cachia Slide: 19 Activities During Phases Requirements: establish the customer’s needs System Design: develop the system’s structure Detailed Design: develop module structures Implementation: code or otherwise Testing: check what’s been developed Installation: bring the system into production Maintenance: correct, adapt, improve

(C) Dr. Ernest Cachia Slide: 20

(C) Dr. Ernest Cachia Slide: 21 The Development Life-Cycle (aka The Software Development Process) A project is a set of activities, interactions and results. A life-cycle or a software process is the organisational framework for a project.

(C) Dr. Ernest Cachia Slide: 22 Life Cycle ANSI / IEEE Standard A life-cycle…  is a finite and definite period of time.  starts when a software product is conceived.  ends when the product is no longer available or effective for use. Any life-cycle is organised in (composed of) phases

(C) Dr. Ernest Cachia Slide: 23 Types of SDLC More than one possible life cycle can be adopted to attain a particular goal. The type of SDLC is defined by the way it links the development phases. In theory, any combination of phases is possible, however, in practice only ones that lead to a visible and controllable development process are useful. A type of SDLC is known as a Development Model.

(C) Dr. Ernest Cachia Slide: 24 The Nature of an Effective DM An effective DM is one that: Effectively links the phases it includes Focuses phases towards a definite goal Provides mechanisms for the controlled decrease of system abstraction Includes definite milestones Is transparent Is traceable between adjacent phases

(C) Dr. Ernest Cachia Slide: 25 Development Models Development model definition (personal): A particular interaction configuration of development phases leading to a final software product.  Waterfall (and Enhanced Waterfall)  V-model  Evolutionary Prototyping (aka Incremental)  Throw-away Prototyping (aka Rapid)  Rapid Application Development (RAD)  Spiral  Research independently  Reuse-oriented  Formal (aka Transformational)

(C) Dr. Ernest Cachia Slide: 26 The Waterfall Model is the root of all other models still prevalent in general exists in many versions supported by many methods/techniques Has many drawbacks!

(C) Dr. Ernest Cachia Slide: 27 Fundamental Waterfall Model Properties Sequential nature  All phases must happen in a predefined sequence. Transformability  Any given phase can be directly attributed to the preceding one. Completeness  Any given phase must fully completed before the next phase can be started.

(C) Dr. Ernest Cachia Slide: 28 Waterfall Model Drawbacks sequential nature late tangible product maturity  late feedback to both customer and developer  minimal risk management for both customer and developer late testing maturity

(C) Dr. Ernest Cachia Slide: 29 The V-Model Requirements System Design Detailed Design Implementation Acceptance Test Integration Test Module Test

(C) Dr. Ernest Cachia Slide: 30 Analysis of the V-Model Improves testing strategies Does not particularly improve:  sequential nature  feedback  developmental risk management

(C) Dr. Ernest Cachia Slide: 31 Testing Implementation The Incremental Model Requirements Global System Design Maintenance Detailed design Testing Implementation Detailed design Testing Implementation Detailed design

(C) Dr. Ernest Cachia Slide: 32 Analysis of The Incremental Model Assumes independent sub-systems. Improves (by delivering smaller units):  feedback (in steps)  testing Avoids the production of a monolithic product. Does not particularly improve:  developmental risk management  Sequential nature (still present in sub-systems)

(C) Dr. Ernest Cachia Slide: 33 The (Rapid) Prototyping Model Goals:  to break away from the sequential nature.  to speed up feedback.  to minimise risks for both customer and developer  to be incomplete but executable.  to be cheap and fast.

(C) Dr. Ernest Cachia Slide: 34 What is Prototyping? A definition (A. Davis) : A prototype is a partial implementation of a system, constructed primarily to enable customer, end-user, or developer to learn about the problem and/or its solution. Types:  evolutionary / throw-away  horizontal / vertical

(C) Dr. Ernest Cachia Slide: 35 Horizontal Prototyping func. 1 func. n abstract physical

(C) Dr. Ernest Cachia Slide: 36 Vertical Prototyping func. 1 func. n abstract physical

(C) Dr. Ernest Cachia Slide: 37 Decision A Visual Representation of The Throwaway Prototyping Model Requirements specification Some minimal development The prototype Discard prototype not acceptableacceptable Go on with normal system development

(C) Dr. Ernest Cachia Slide: 38 A Visual Representation of The Evolutionary Prototyping Model Requirements specification Some initial development Prototype version 1 Some more development Prototype version 2 etc. Continue till prototype is matured

(C) Dr. Ernest Cachia Slide: 39 Formal (Transformational) Model Verification Tuning Requirements analysis & specification Optimisation Formal specs Higher-level specs Transformation Integration & testing

(C) Dr. Ernest Cachia Slide: 40 Analysis of The Prototyping Model Improves:  breaks the sequential nature.  supports fast feedback.  offers an opportunity for risk management. Problems:  has no definite (i.e. strictly defined) organisational structure.

(C) Dr. Ernest Cachia Slide: 41 The Spiral Model This is left up to you to investigate. Use any printed or electronic sources as you deem necessary. However, please be reminded and warned that no amount of plagiarism, small as it may seem, will be tolerated.

(C) Dr. Ernest Cachia Slide: 42 Some Points to Ponder 1. What is Software Engineering? 2. What are the attributes of a good software? 3. What are the key challenges facing software engineering today? 4. Give examples (one in each case) of physical and abstract systems. 5. Explain why, in terms of modelling, physical and abstract systems are not differentiated. 6. Outline the role of documentation as a system component. 7. Why is communication so vital in SD? Give two concrete examples of what can happen in the case of communication breakdown.

(C) Dr. Ernest Cachia Slide: 43 Some More Points to Ponder 1. Differentiate between a software development life- cycle and a software development model. 2. List the main advantages and disadvantages of the Waterfall Development Model. 3. Why are most modern systems built according to one of the prototyping models? 4. Why do you think formal development models are not as popular as other less formal ones? 5. Can you propose a way to improve risk management in software development?