Perspectives on Process Formalisms for Enhanced Software Effectiveness Leon J. Osterweil University of Massachusetts Amherst, MA 01003.

Slides:



Advertisements
Similar presentations
Visual Model-based Software Development EUD-Net Workshop, Pisa, Italy September 23 rd, 2002 University of Paderborn Gregor Engels, Stefan Sauer University.
Advertisements

System Development Life Cycle (SDLC)
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
Testing and Quality Assurance
Effective Abstractions for Defining and Verifying Processes Leon J. Osterweil Univ. of Massachusetts Amherst, MA USA URL: laser.cs.umass.edu.
Unit 2. Software Lifecycle
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
LIFE CYCLE MODELS FORMAL TRANSFORMATION
Department of Computer Science Key UMass Amherst Resources for SERC Collaboration Leon J. Osterweil Lori A. Clarke
The Future of Formal: Academic, IC, EDA, and Software Perspectives Ziyad Hanna VP of Research and Chief Architect Jasper Design Automation Ziyad Hanna.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
Lecture 13 Revision IMS Systems Analysis and Design.
CS 501: Software Engineering
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Introduction to Computer Technology
Chapter 3 Software Processes.
Effective Methods for Software and Systems Integration
Process: A Generic View
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
INFORMATION SYSTEM APPLICATIONS System Development Life Cycle.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Software Testing. Definition To test a program is to try to make it fail.
Chapter 2 The process Process, Methods, and Tools
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
CPIS 357 Software Quality & Testing
Alyce Brady, Kalamazoo College Engineering = cost-effective solutions to practical problems by applying scientific knowledge in building things in service.
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Lecture 1 Introduction to Software Engineering
Introduction to Java August 14, 2008 Mrs. C. Furman.
Software Life-Cycle Models Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
1 Advanced topics in OpenCIM 1.CIM: The need and the solution.CIM: The need and the solution. 2.Architecture overview.Architecture overview. 3.How Open.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Software Development Life Cycle by A.Surasit Samaisut Copyrights : All Rights Reserved.
An Introduction to Software Engineering
Chapter 4 프로세스 모델 Process Models
3/5/2009Computer systems1Introduction Computer Systems: Hardware Desktop Laptop Software Information Systems Computer-Aided Graphic Design.
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
CASE1 Computer-Aided Software Engineering Advanced Software Engineering COM360 University of Sunderland © 2000.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
OHTO -01 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
Testing Maturity Model (TMM). Introduction For the past decade, the software industry has put substantial effort in improving the quality of its products.
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 Quality Assurance and Testing Fazal Rehman Shamil.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
1 CEN 4020 Software Engineering PPT4: Requirement analysis.
Cmpe 589 Spring Fundamental Process and Process Management Concepts Process –the people, methods, and tools used to produce software products. –Improving.
Chapter 6 Testing and running a solution. Errors X Three types Syntax Logic Run-time.
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
CS 310 Ch 4: Software Processes Software process: a set of activities that lead to a software system specification design and implementation validation.
Chapter 5 Process Modeling By Muna Shabaneh. What is a Model? What is a process? What is a Process modeling? What are the Perspectives in process representation.
John D. McGregor Session 9 Testing Vocabulary
Software Life Cycle “What happens in the ‘life’ of software”
Topic for Presentaion-2
Software Design Methodology
An Introduction to Visual Basic .NET and Program Design
Programming languages and software development
Introduction to Software Testing
Introduction To System Analysis and Design PART 2
Baisc Of Software Testing
Software Development Chapter 1.
Presentation transcript:

Perspectives on Process Formalisms for Enhanced Software Effectiveness Leon J. Osterweil University of Massachusetts Amherst, MA URL: laser.cs.umass.edu DOD Software Summit USC -- 7 August 2001

What do we mean by “process” Activities related to the development, verification, evolution, evaluation, management, etc. of software products Examples of high level processes: –Develop requirements –Do Object Oriented Design –Formally verify Examples of low level processes –Archive result of running a test case –Compile a piece of code Tend to be concurrent (coordination of people, systems) Usually (regrettably) informal or undefined

Why the interest in process? Superior quality from superior processes –Build quality in, don’t “test in” quality (manufacturing) –Many observed “process errors” Real processes are intricate, have intricate interconnections Machines can help people with process complexities – Process effectiveness from human/machine synergy

Processes Are intangible and invisible –Although their effects are substantial How to improve their effectiveness? –Make them tangible, visible –Engineer them as first-class objects Use computer science formalisms to define processes

The Capability Maturity Model (CMM) is a Test Plan for Software Processes

It supports a Black Box Testing Approach to Software Process Improvement

The Capability Maturity Model (CMM) is a Test Plan for Software Processes It supports a Black Box Testing Approach to Software Process Improvement We advocate White Box Analysis based on explicit process definition

Approaches to Process Definition Process Definition may have different goals –Communication –Coordination –Intuitive understanding –Verification –Training –Automation –Deep understanding –Etc. Different definition formalisms support different of these goals to different degrees Formalisms vary in rigor, precision (semantic detail), semantic scope, clarity

Data Flow Diagram of Traditional Waterfall Model Requirements Low-Level Design Code Test High-Level Design

With More Rework Requirements Low-Level Design Code Test High-Level Design

The Trouble with Dataflow Diagrams Requirements Low-Level Design Code Test High-Level Design Where does output go? What causes this rework? What portion of activity should be done? How do we break this cycle? What to do when reviews fail?

Petri Net Requirements specification process Interview Develop Spec Develop Implementation Developers Real World Users RW_Desc Sys_Spec_Diag Sys_Impl_Diag + Sys_Spec_Diag Design_Spec JSD

Design Process Petri net Req_Spec Identify_Object Objects States Identify_Operations Operations Objects States Establish_Visibility Operations ObjectsStates Visibility Establish_Interface Interface Create_Implementation ImplementationInterface Create_Design_Spec Design_Spec BOOD

HFSP design model (a) JSD(Real_World | Design_Spec) => (1)Develop_Spec(Real_World_Desc |System_Spec_Diagram) (2)Develop_Impl(System_Spec_Diagram |System_Impl_Diagram) (3)Where Real_World_Desc = Interview(Users, Developers,Real_World) (4)Design_Spec = union(System_Spec_Diagram, System_Impl_Diagram) Second_level (b) Develop_Spec(Real_World_Desc |System_Spec_Diagram) => (1)Develop_System_Model(Real_World_Desc |Real_World_Model, Init_System_Spec_Diagram) (2)Develop_System_Func(Real_World_Model, Init_System_Spec_Diagram |System_Spec_Diagram) Third_level (c) Develop_System_Model(Real_World_Desc |Real_World_Model, Init_System_Spec_Diagram) => (1)Model_Reality(Real_World_Desc |Real_World_Model) (2)Model_System(Real_World_Model |Init_System_Spec_Diagram) (d) Develop_System_Func(Real_World_Model, Init_System_Spec_Diagram |System_Spec_Diagram) (1)Define_Func(Real_World_Model, Init_System_Spec_Diagram |System_Function, Function_Process) (2)Define_Timing(Init_System_Spec_Diagram, System_Function |Timing) (3)Where System_Spec_Diagram = is_composed_of(Init_System_Spec_Diagram, System_Function, Function_Process, Timing) Fourth_level (e)Model_Reality(Real_World_Desc | Real_World_Model) => (1)Identify_Entity_Action(Real_World_Desc | Entity_Action_List) (2)Draw_Entity_Structure(Entity_Action_List | Entity_Structure_List) Where Real_World_Model = is(Entity_Structure_List) Real_World_Process = is(Entity_Structure) (f) Model_System(Real_World_Model | Init_System_Spec_Diagram) => (1)Identify_Model_Process(Real_World_Model | M_Proc_Name_List) (2)Connect(Real_World_Model, M_Proc_Name_List | Connection_List) (3)Specify_Model_Process(Connection_List, Real_World_Model, M_Proc_Name_List |Model_Process_List) (4)Where Init_System_Spec_Diagram = is(Model_Process_List) (5)Connection = is(State_Vector) or is(Data_Stream)

Little JIL Graphical language with execution semantics –Expresses process coordination –Designed to be used interchangeably with other product, resource, scheduling factors Visual JIL is the graphical interface to Little JIL

High-Level Process

Requirements Details

Design Details

Requirements Rework

Opportunities and Directions Evolve and Improve Software Processes and Products Through improving process languages by –Defining key processes –Using them to integrate tools –Automating processes –Analyzing and improving processes Effecting the definition and automation of superior processes for –Software development –Management –Procurement To assure superior software products