1 EE29B Feisal Mohammed Modeling the Process and Life Cycle Software development usually involves the following stages: Requirements analysis and definition.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Advertisements

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.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Unit 2. Software Lifecycle
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Project Management
CS487 Software Engineering Omar Aldawud
CSE 470 : Software Engineering The Software Process.
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.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
RUP/UP Software Development Method Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Alternate Software Development Methodologies
SYSC System Analysis and Design
 The Rise of Computer Science ◦ Machine Language (1 st Gen) ◦ Assembly Language (2 nd Gen) ◦ Third Generation Languages (FORTRAN, BASIC, Java, C++, etc.)
1 SOFTWARE LIFE-CYCLES Beyond the Waterfall. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance The WATERFALL.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
Lecturer: Dr. AJ Bieszczad Chapter 22-1 Process includes: all major process activities resources used, subject to set of constraints (such as schedule)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
The web application development process Basharat Mahmood, COMSATS Institute of Information Technology, Islamabad, Pakistan. 1.
Chapter 3 Software Processes.
Modelling the Process and Life Cycle
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Software Project Management Introduction to Project Management.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
Software Processes Sumber dari : cc.ee.ntu.edu.tw/~farn/courses/SE/ch4.ppt.
©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.
Software Engineering Environment  A quality focus: constant incremental improvement  Process: framework to organize development activities  Methods:
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities 
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
1 SWE Introduction to Software Engineering Lecture 4.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
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.
Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 1 Software Engineering.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Software Engineering CE 501 Prepared by : Jay Dave.
Chapter 2 Software Development Model and 1. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
Software Development Process includes: all major process activities all major process activities resources used, subject to set of constraints (such as.
Methodologies and Algorithms
Software Processes (a)
Software Process Models
Life Cycle Models PPT By :Dr. R. Mall.
Software Processes.
Requirements and the Software Lifecycle
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
Software life cycle models
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Copyright 2006 Pearson/Prentice Hall. All rights reserved.
Software Processes Process should be
Chapter 2 Software Processes
Presentation transcript:

1 EE29B Feisal Mohammed Modeling the Process and Life Cycle Software development usually involves the following stages: Requirements analysis and definition System design Program design Program implementation (writing the program) Unit testing Integration testing System testing System delivery Maintenance

2 EE29B Feisal Mohammed What is a process? A process prescribes all of the major process activities The process uses resources, subject to a set of constraints and produces intermediate and final results A process may be composed of sub-processes that are linked in some way. Each process has an entry and exit criteria, so we know when each activity begins and ends

3 EE29B Feisal Mohammed What is a process? ( continued ) The activities are organises in a sequence, so that it is clear when one activity is performed relative to the other activities Each process has guiding principles that explain the goals of each activity Constraints or controls may apply to an activity, resource or product.

4 EE29B Feisal Mohammed Reasons for modeling a process Common understanding of the activities, resources and constraints Helps in the finding of inconsistencies, redundancies and omissions The model should reflect the goals of development, such as building high-quality software. These have to be factored into the model Every process should be tailored for the special situation in which it will be used. Building a model helps the team understand where that tailoring is to occur

5 EE29B Feisal Mohammed Waterfall model

6 EE29B Feisal Mohammed Waterfall model: disadvantages Failure to treat software as a problem solving process. Software is a creation process not a manufacturing process. Software evolves as the problem is understood and the alternatives are evaluated. In particular, creation involves trying a little of this or that, developing and evaluating prototypes, assessing the feasibility of requirements, contrasting several designs, learning from failure and eventually settling on a satisfactory solution to the problem

7 EE29B Feisal Mohammed Waterfall model: disadvantages It provides no guidance of how each activity transforms one artifact into another, such as requirements to design. Thus the model provides no guidance to manageres and developers on how to handle changes to products and activities that are likely to occur during development. If requirements change during coding, what changes do we make to design and code?

8 EE29B Feisal Mohammed Software development in reality

9 EE29B Feisal Mohammed Process models The software development process can help control the thrashing by including activities and sub-processes that enhance understanding. Prototyping is such a sub-process; a prototype is a partially developed product that enables customers and developers to examine some aspect of the proposed system and decide it is suitable or appropriate for the finished product.

10 EE29B Feisal Mohammed Prototyping model

11 EE29B Feisal Mohammed Prototyping model Prototyping can be the basis of an effective process model. This model allows all or part of the system to be constructed quickly to understand or clarify issues. The overall goal is to reduce risk and uncertainty in development.

12 EE29B Feisal Mohammed Phased development model

13 EE29B Feisal Mohammed Phased development model This is used to reduce cycle time. The system is designed so that it can be delivered in pieces, enabling users to have some functionality while the rest is being developed. There are usually two systems functioning in parallel: the production system and the development system

14 EE29B Feisal Mohammed Incremental model In the incremental model, the system as specified in the requirements is partitioned into sub-systems by funtionality. The releases are defined by beginning with one small functional sub-system and then adding functionality with each new release.

15 EE29B Feisal Mohammed Iterative model This model delivers a full system at the very beginning and then changes the functionality of each sub-system with each new release.

16 EE29B Feisal Mohammed Phased development: advantages Training can begin on an early release. The training process allows developers to observe how certain functions are executed, suggesting enhancements for later releases. In this way, the developers can be very responsive to the users

17 EE29B Feisal Mohammed Phased development: advantages Markets can be created early for functionality that has never before been offered Frequent releases allow developers to fix unanticipated problems as they are reported The development team can focus on different areas of expertise with different releases.

18 EE29B Feisal Mohammed Question Should a development organisation adopt a single process model for all of its software development? Discuss the pros and cons.

19 EE29B Feisal Mohammed Answer Pros: Standardization of training, terminology, the collection of process metrics, planning and estimation. Works well if the projects are very similar in nature. Cons: Adopting a single standard process may unecessarily constrain some projects from using the process that is best suited to the problem and the solution.

20 EE29B Feisal Mohammed Question Suppose your contract with the customer specifies that you use a particular software development process. How can work be monitored to enforce the use of theis process?

21 EE29B Feisal Mohammed Answer Conformance to a particular process is often checked with the use of milestones. That is, the process is defined in such a way that there are tangible products in the process whose existence indicates that particular process steps have been carried out. For example, when using the waterfall process. These intermediate products, or milestones, could be a requirement document, a design documant, the code itself, test documents etc. The timing of these products indicate whether or not the process was being followed as planned.

22 EE29B Feisal Mohammed Answer ( continued ) Another way to monitor use of a process is by measuring effort. Developers working on the project could be required to report the effort they spent on different process activities. By tracking when effort is spent on which activities, progress through the steps of the process could be monitored.

23 EE29B Feisal Mohammed The Rational Unified Process The Rational Unified Process is also a process framework that can be adapted and extended to suit the needs of an adopting organization. It is general and comprehensive enough to be used "as is," i.e., out-of-the-box, by many small-to- medium software development organizations, especially those that do not have a very strong process culture. From an article by Philippe Kruchten in

24 EE29B Feisal Mohammed The Rational Unified Process The adopting organization can also modify, adjust, and expand the Rational Unified Process to accommodate the specific needs, characteristics, constraints, and history of its organization, culture, and domain. A process should not be followed blindly, generating useless work and producing artifacts that are of little added value. Instead, the process must be made as lean as possible while still fulfilling its mission to help developers rapidly produce predictably high-quality software. From an article by Philippe Kruchten in

25 EE29B Feisal Mohammed The RUP Captures Software Development Best Practices The Rational Unified Process captures many of modern software development's best practices in a form suitable for a wide range of projects and organizations: Develop software iteratively. Manage requirements. Use component-based architectures. Visually model software. Continuously verify software quality. Control changes to software. From an article by Philippe Kruchten in

26 EE29B Feisal Mohammed Develop Software Iteratively Most software teams still use a waterfall process for development projects, completing in strict sequence the phases of requirement analysis, design, implementation/integration, and test. This inefficient approach idles key team members for extended periods and defers testing until the end of the project lifecycle, when problems tend to be tough and expensive to resolve, and pose a serious threat to release deadlines. By contrast, RUP represents an iterative approach that is superior From an article by Philippe Kruchten in

27 EE29B Feisal Mohammed Manage Requirements Requirements management is a systematic approach to eliciting, organizing, communicating, and managing the changing requirements of a software-intensive system or application. From an article by Philippe Kruchten in

28 EE29B Feisal Mohammed Continuously Verify Quality Often people ask why there is no worker in charge of quality in the Rational Unified Process. The answer is that quality is not added to a product by a few people. Instead, quality is the responsibility of every member of the development organization. In software development, our concern about quality is focused on two areas: product quality and process quality. From an article by Philippe Kruchten in

29 EE29B Feisal Mohammed Continuously Verify Quality ( continued ) Product quality -- The quality of the principal product being produced (the software or system) and all the elements it comprises (for example, components, subsystems, architecture, and so on). Process quality -- The degree to which an acceptable process (including measurements and criteria for quality) was implemented and adhered to during the manufacturing of the product. From an article by Philippe Kruchten in

30 EE29B Feisal Mohammed Rational Unified Process From an article by Philippe Kruchten in

31 EE29B Feisal Mohammed From an article by Philippe Kruchten in

32 EE29B Feisal Mohammed New Topic: State Machines See notes online on my webpage