Chapter 2 The Process.

Slides:



Advertisements
Similar presentations
Departemen Ilmu Komputer IPB
Advertisements

Prescriptive Process models
Lecture # 2 : Process Models
CS487 Software Engineering Omar Aldawud
Chapter 3 Process Models
Software Process Models
Chapter 2 The Software Process
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
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 ENGINEERING LECTURE-3 CSE-477.
Developed by Reneta Barneva, SUNY Fredonia The Process.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Capability Maturity Model
Chapter : Software Process
Process: A Generic View
Process: A Generic View n A software process  is a roadmap to building high quality software products.  provides a framework for managing activities.
1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering.
Chapter 2 Software Process: A Generic View
Chapter 2 The process Process, Methods, and Tools
Software Process and Models
THE PROTOTYPING MODEL The prototyping model begins with requirements gathering. Developer and customer meet and define the overall objectives for the software.
N By: Md Rezaul Huda Reza n
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.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
1M.Sc.(I.T.), VNSGU, Surat. Structured Analysis Focuses on what system or application is required to do. It does not state how the system should be implement.
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.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Chapter 2 Process: A Generic View
Lecture 1 Introduction to Software Engineering
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Software Engineering Lecture # 17
Chapter 3 Project Management Concepts
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,
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
Software Engineering - I
Introduction to Software Engineering.  Software Characteristics  Components  Applications  Layered Technologies  Processes  Methods And Tools 
Process: A Generic View
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
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.
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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Software Development Life Cycle (SDLC)
1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Software Engineering Introduction.
PI2134 Software Engineering IT Telkom.  Layered technology  Software Process  Generic Process (by Pressman)  Fundamental activities (by Sommerville)
Software Engineering (CSI 321) Software Process: A Generic View 1.
Software Process By Sabeen Amjad Chapter-2. Objectives To comprehend  Software process  Software Engineering as layered technology  Generic view of.
Software Engineering Process Lecture -2:. –Software development life cycle –overview of software development 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 Process Models. Process model or software engineering paradigm – development strategy encompassing Process Method Tool Generic phases Chosen.
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.
Advanced Software Engineering Dr. Cheng
Lecture 3 Prescriptive Process Models
Software Life Cycle “What happens in the ‘life’ of software”
Software Engineering (CSI 321)
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.
Chapter 2 The Process.
Introduction to Software Engineering
Chapter 2 The Process.
Software Engineering Lecture 16.
Software Engineering I
Presentation transcript:

Chapter 2 The Process

What is Software Process? A framework for the tasks that are required to build high-quality software.

Is Process synonym with SE? The answer is “yes” and “no”. A software process defines the approach that is taken as software is engineered. But software engineering also encompasses technologies that populates the process – technical methods and automated tools.

2.1 Software Engineering: A Layered Technology “Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.” [Fritz Beuer] Lack of software quality, customer satisfaction, timely product delivery, importance of measurement and metrics, and mature process.

SE: A Layered Technology “Software engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development , operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approach as in (1).” [IEEE]

A Layered Technology Software Engineering Software Engineering tools methods process model a “quality” focus

A “quality” focus Continuous process improvement Bedrock that supports software engineering

Process Is the foundation of software engineering Defines a framework for a set of key process areas (KPAs)  Effective delivery of SE technology Management control of software project Context of technical methods applied Work products Milestones, Quality ensured Proper change management

Methods Provide technical how-to’s for building software. Encompass a broad array of tasks that include requirements analysis, program construction, testing, and support. Rely on a set of basic principles that govern each area of the technology and include modeling activities and other descriptive techniques

Tools Provide automated or semi-automated support for the process and the methods. CASE: computer-aided software engineering is a system for the support of software development. Combines SW, HW, and a SE database (a repository containing important information about analysis, design, program construction, and testing)

A Generic View of SE Engineering is analysis, design, construction, verification, and management of technical (or social) entities. Entity  computer software A software engineering process must be defined: definition phase, development phase, and support phase.

Definition Phase Focuses on “what” What information is to be processed? What function and performance are desired? What system behavior can be expected? Interface, design constraints, validation criteria  identify key requirements of the system and SW.

Development Phase Focuses on “how” How data are to be constructed? How function is to be implemented within a software architecture? Procedural details, interfaces, design  programming, testing. Three technical tasks: software design, code generation, software testing.

Support Phase Focuses on “change” associated with error correction, adaptations, changes. Four types of changes: Correction  Corrective maintenance Adaptation  Adaptive maintenance Enhancement  Perfective maintenance Prevention  Preventive maintenance, often called Software Engineering  more easily corrected, adapted, and enhance.

Umbrella Activities Software project tracking and control Formal technical review Software quality assurance Software configuration management Document preparation and production Reusability management Measurement Risk management

A Common Process Framework Framework activities work tasks work products milestones & deliverables QA checkpoints Umbrella Activities

Process Maturity Software Engineering Institute (SEI) has developed a comprehensive model predicated on a software engineering capabilities that should be present as organization reach different levels of process maturity. Called Capability Maturity Model (CMM).

CMM Level 1: Initial Level 2: Repeatable Level 3: Defined The software process is characterized ad hoc and occasionally chaotic. Level 2: Repeatable Basic project management process are established to track cost, schedule, and functionality. Level 3: Defined the software process for both management and engineering activities is documented, standardized and integrated into an organizationwide software process.

CMM (Cont’d) Level 4: Managed Level 5: Optimizing Detailed measures of the software process and product quality are collected. Both SW process and product are quantitatively understood and controlled using detailed measures. Level 5: Optimizing Continuous process improvement is enabled by quantitative feedback from the process and from testing innovative ideas and technologies.

Key Process Areas (KPAs) Each KPA is described by identifying the following characteristics: Goals Commitments Abilities Activities Methods for monitoring implementation Methods for verifying implementation

KPA (Cont’d) Each of the KPAs is defined by a set of key practices that contribute to satisfying its goals. The key practices are policies, procedures, and activities. Key indicators: those of key practices or components of key practices that offer the greatest insight into whether the goals of a key process have been achieved.

2.3 Software Process Models A software engineer must incorporate a development strategy that encompasses the process methods, and tools layers. This strategy is often referred to as a process model or a software engineering paradigm. A process model is chosen based on the nature of project and application, the methods and tools to be used, and the controls and deliverables that are required.

Process as Problem Solving

2.4 The Linear Sequential Model Sometimes called the classic life cycle or the waterfall model.

The Linear Sequential Model Activities: System/information engineering and modeling Requirements gathering Interface with other elements: HW, SW, database Software requirement analysis Understand nature of SW to be built Function, behavior, performance and interface. Documented and reviewed with the customer

The Linear Sequential Model Design: A multi-step process focuses on data structure, SW architecture, interface representations, and procedural (algorithmic) detail. The design process translates requirements into a representation of the SW that can be assessed for quality before coding begins. Documented

The Linear Sequential Model Code generation Design  machine readable form Testing Test all functions, both internal/external Uncover errors Support/maintenance Deal with all kinds of changes that may be occurred after SW delivery

2.5 The Prototyping Model The prototype can serve as “the first system” Users get a feel for the actual system and developers get to build something immediately A customer defines a set of general objectives for SW but does not identify detailed input, processing, or output requirements.

The Prototyping Model Prototyping

The Prototyping Model This approach can be problematic: The customer misunderstands as a working version with a few fixes. The developer often makes implementation compromises in order to get a prototype to work quickly.  The customer and developer must agree that the prototype is built to serve as a mechanism for defining requirements.

2.6 The RAD Model Is a “high-speed” adaptation of the linear sequential model in which rapid development is achieved by using component-based construction. Is an incremental software development process model that emphasizes an extremely short development cycle.

The RAD Model Phases: Business modeling Data modeling Process modeling Application generation: 4GT Testing and turnover

The RAD Model RAD

The RAD Model Drawbacks: RAD requires sufficient human resources to create the right number of RAD team, for a large project. RAD requires strong commitment from developers and customers in much abbreviated time frame. A system must be properly modularized. RAD is not appropriate when technical risks are high.

Evolutionary Software Process Model Business and product requirements often change as development proceeds. Tight market deadlines, etc..

2.7.1 The Incremental Model

2.7.2 The Spiral Model Proposed by Boehm. It provides the potential for rapid development of incremental versions of the software. A spiral model is divided into a number of framework activities, also called task regions. Each of the regions is populated by a set of work tasks, called a task set.

The Spiral Model

2.7.3 The WINWIN Spiral Model Addresses more on customer communication, the following activities are defined: Identification of the system or subsystem’s key “stakeholder”. Determination of the stakeholders’ “win conditions”. Negotiation of the stakeholders’ win conditions to reconcile them into a set of win-win conditions for all concerned.

2.8 Component-Based Development OO technologies provide the technical framework for a component-based process model for SE. The process to apply when reuse is a development objective.

2.9 The Formal Methods Model The process to apply when a mathematical specification is to be developed Cleanroom software engineering—emphasizes error detection before testing

Homework #1 Problem 2.11-2.13 Due next Friday 5 July.