Software Process By Sabeen Amjad Chapter-2. Objectives To comprehend  Software process  Software Engineering as layered technology  Generic view of.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture # 2 : Process Models
Software Project Management
CS487 Software Engineering Omar Aldawud
CSE 470 : Software Engineering The Software Process.
Chapter 3 Process Models
Chapter 2 Software Process Models
Software Process Models
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Chapter 2 The Software Process
COMP 6710 Course NotesSlide 2-0 Auburn University Computer Science and Software Engineering Course Notes Set 2: Software Process Models Computer Science.
SOFTWARE ENGINEERING LECTURE-3 CSE-477.
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
Developed by Reneta Barneva, SUNY Fredonia The Process.
Software Life Cycle Model
Chapter : Software Process
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
Software Process and Models
IT Systems Analysis & Design
THE PROTOTYPING MODEL The prototyping model begins with requirements gathering. Developer and customer meet and define the overall objectives for the software.
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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities 
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
Process Models.
Software Engineering MCS-2 Lecture # 6
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
Software Engineering - I
Software Process Model
Introduction to Software Development (Software Engineering - I)
Developed by Reneta Barneva, SUNY Fredonia The Process.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
SWE311_Ch03 (071) Software & Software Engineering Slide 1 Chapter 3 Prescriptive Process Models.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Model Process
Software Engineering (CSI 321) Software Process: A Generic View 1.
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.
Software Engineering CE 501 Prepared by : Jay Dave.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Process Models. Process model or software engineering paradigm – development strategy encompassing Process Method Tool Generic phases Chosen.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Software Project Management Unit 1. Evolving role of software S/w now a days resides in the mobile, mainframes The main role of the s/w is to transform.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Methodologies and Algorithms
Lecture 3 Prescriptive Process Models
Software Life Cycle “What happens in the ‘life’ of software”
Software Engineering (CSI 321)
Software Engineering (CSI 321)
Software Process Models
Software Process Models
Software Life Cycle Models
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Introduction to Software Engineering
Software Process Models
SNS College of Engineering Coimbatore
The Waterfall Model Also known as: classic life cycle, the waterfall model, the linear model Rarely projects are sequential (allows iteration indirectly)
Presentation transcript:

Software Process By Sabeen Amjad Chapter-2

Objectives To comprehend  Software process  Software Engineering as layered technology  Generic view of Software Engineering  Defining a Common Process Framework  Intro to Capability Maturity Model

Software Process Process Series of predictable steps-a road map that helps create a timely and high quality entity Software Process is a framework for the tasks that are required to build high quality software

Software Process Is Software Process Software Engineering ? Answer: Yes and No Both…Why? Yes because it defines an approach which is known as Software Engineering No because Software Engineering also entails technologies that populate the process…technical methods and automated tools.

Software Engineering: A Layered Technology A Quality Focus Process Methods Tools

Generic Process Framework Communication: With customer for requirements gathering Planning: Establish a plan, tasks to be conducted, associated risks, required resources, work products and work schedule Modeling: Development of models for better understanding of requirements for customer and developer and their design

Generic Process Framework Requirements analysis include requirements gathering, elaboration, negotiation, specification and validation. Design include data design, architectural design, interface design and component level design Construction: Code generation and testing required Deployment: Software delivered to customer who evaluates and provides feedback

Task Sets Task sets consist of software engineering work tasks, related work products, quality assurance activities and milestones. Task sets depend on the specific needs of the project and characteristics of the project team.

Class Activity Write down Requirement Gathering task Sets for a simple project

Software Engineering: A Generic View Phases of Work Associated With Software Engineering Definition PhaseSupport PhaseDevelopment Phase Correction Enhancement Adaptation Prevention

Software Engineering: A Generic View Umbrella Activities Phases of Work Associated With Software Engineering Definition PhaseSupport PhaseDevelopment Phase Correction Enhancement Adaptation Prevention 1. Software project tracking control 4. Formal technical reviews 3. Software quality assurance 6. Software configuration management 8. Document preparation &production 7. Reusability management 5. Measurement 2. Risk Management

CMM-Introduction Comprehensive model developed by SEI based on a set of software engineering capabilities that should be present as organizations reach different level of maturity.

CMMI Representations Staged Five Maturity Levels (MLs)(1-5) Continuous Six Capability Levels (CLs)(0-5) for individually assessing each Process Area (PA) Process Areas are grouped in four Process Area Categories (PACs). Process Management, Project Management, Engineering And Support More flexibility for organizations that have to adjust their process improvement to their business goals

Comparing Model Representations Staged ML 1 ML2 ML3 ML4 ML5...for an established set of process areas across an organization Continuous...for a single process area or a set of process areas PA Process Area Capability PA

Maturity Levels CMM defines key activities at different levels of maturity. CMM establishes five maturity levels 1. Initial 2. Repeatable 3. Defined 4. Managed 5. Optimizing Each level has a certain set of KPAs(Key Process Areas), which are software engineering functions needed at a particular level

CMM Summary

Maturity Levels Key Process Areas Goals Common Features Key Practices The CMM Structure for Managed Level RMPPPTSMCMQA Commitment to Perform Ability to Perform Activities Performed Measurement and Analysis Verifying Implementation

CMMI Capabilities Level Level 0 - Incomplete Process area not performed or meet goals Level 1 - Performed level 0 tasks completed and work tasks for desired product. Level 2 - Managed Level 1 tasks completed and process area confirms to organization defined policy

CMMI Capabilities Level Level 3 – Defined Level 2 tasks completed and process improvement in organizational process assets Level 4 - Quantitatively Managed Level 3 tasks completed and quantitative objectives for quality and process performance Level 5 - Optimized Level 4 completed and process is adapted and optimized continuously

Software Process Models The strategy to adopt software engineering as a layered technology is referred to as Software Process Model Problem Definition Status Quo Solution Integration Technical

Linear Sequential model Also known as the classic life cycle or waterfall model, it suggests a systematic, sequential approach to software development that begins at the system level and progress through analysis, design, coding, testing and support.

Requirements Design Coding Testing Analysis Maintenance Linear Sequential model System/information engineering

Linear Sequential model System / Information Engineering AnalysisTestCodeDesign Linear Sequential model (Pressman 1997)

Linear Sequential model Real projects rarely follow the sequential flow and changes can cause confusion. This model has difficulty accommodating requirements change The customer will not see a working version until the project is nearly complete Developers are often blocked unnecessarily, due to previous tasks not being done Limitations

The incremental model This is a combination of the linear sequential model and the iterative model. The problem is broken into increments, and each increment is tackled as a linear sequence. Further increments can either be done after the previous ones, or can overlap with the previous ones. Incremental delivery focuses on the delivery of an operational product with each increment. Early increments are stripped-down versions of the final product.

Incremental model System / Information Engineering AnalysisTestCodeDesign AnalysisTestCodeDesign AnalysisTestCodeDesign AnalysisTestCodeDesign Increment 1 Increment 2 Increment 3 Increment 4 Incremental model (Pressman 1997)

Incremental model advantages Less staffing is required than in a RAD project Early delivery is guaranteed Progress of the whole project is not delayed if one of the resources is not available for part of it

The RAD model Rapid Application Development is a linear sequential software development process model that emphasises an extremely short development cycle. A component-based construction approach is used. To use this approach, the project scope must be constrained and the requirements should be well understood. A task that should take no more than ninety days to complete is modelled, generated and implemented. There can be several teams working on different components during this ninety day time-box.

The RAD model.The RAD model (Pressman 1997) 90 days Team 1 Testing & Turnover Application Generation Business modelling Data modelling Process modelling Team 2 Testing & Turnover Application Generation Business modelling Data modelling Process modelling Team 3 Testing & Turnover Application Generation Business modelling Data modelling Process modelling

Problems with RAD For large, scalable projects, RAD requires sufficient human resources to create the right number of RAD teams RAD requires developers and customers who are committed to the rapid-fire activities necessary to complete a system in this time frame, or failure will result. RAD is not suitable for many project types. If a system cannot be modularized properly, building components for RAD will be problematic. If high performance is to be achieved, RAD approach may not work. RAD may not be appropriate when technical risks are high

Evolutionary Software Process Models  Software Evolves  Business and product requirements change-Creeping requirements  Tight market deadlines compels for a limited version  Details of the product Above issues cannot be answered by Linear sequential or by prototyping approach

Prototyping The developer and customer define the overall objectives for the software. A quick design focuses on what the customer will see. From this, a prototype is constructed. The user evaluates it and improvements are made. This continues in an iterative fashion until a satisfactory product is achieved.

Prototyping The Prototyping Paradigm (Pressman 1997) Listen to customer Build / revise mock-up Customer test- drives mock-up

Requirements Engineer Product Quick Design Build Prototype Evaluate Prototype Refine Prototype Changes ? Yes No (Pressman, 1996) Prototyping

Problems with prototyping The customer sees a working version and expects the finished product to be available in a short time. This puts pressure on the developer to take short cuts, at the expense of quality and maintainability. The developer may make compromises for speed. Inappropriate tools may be used or inefficient algorithms may be used, which then become integral parts of the system. If the user isn’t focused on what they want, the system may never be completed.

The Spiral model Boehm’s (1988) spiral model couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model. Software is developed in a series of incremental releases. During the early releases, there may be just a paper model, but the system becomes increasingly more complete. There are a number of framework activities (Customer communication, Planning, Risk analysis, Engineering, Construction and release, Customer evaluation). Unlike any of the other models, this model keeps revisiting the system throughout its lifetime.

Spiral model details Spiral model is divided into a number of framework activities, named as task regions.3-6 task regions. Each task region has its own task sets. Customer communication Construction and release Engineering Risk analysis Planning Customer evaluation

The Component assembly model This incorporates many of the characteristics of the spiral model. It is evolutionary in nature, demanding an iterative approach to the creation of software. However, it composes applications from pre- packaged software components. The “construction & release” activity in Boehm’s model is replaced by an “Engineering construction and release” activity.

Component Assembly Model Identify candidate components Construct nth iteration of system Put new components in library Look up components in library Extract components if available Build components if unavailable Component Assembly model – engineering construction and release activity (Pressman 1997)

The Formal Method Model Encompasses a set of activities that leads to formal mathematical specification of computer software Specify, develop and verify a computer based system by applying a rigorous mathematical notation.

Advantages Mechanism for eliminating ambiguity, incompleteness, and inconsistency Formal methods provide mathematical analysis for ensuring correct analysis and design

Disadvantages Quiet expensive and time consuming Extensive Training required Difficult to communicate for technically unsophisticated customer

Methods and tools There are many methodologies and tools that are available. The methodology should fit a particular process model that is suited to the task being undertaken, and the tool or set of tools should provide automated leverage at pertinent parts of the life cycle. The methodology should include diagrammatic techniques, such as SSADM (Downs et al. 1992) for linear sequential systems or OMT (Frost 1995) or Rational Unified Process (RUP).(Fowler&Scott 1997) for object-oriented systems.

Conclusion There are a variety of process models, each of which can be used successfully. Once a process model has been used to develop a system, documentation style, organisation and structure should either remain in the format of that process model, or all be converted to a different process model. This is particularly important where automated tools are used.