University of Southern California Center for Software Engineering C S E USC Software Model Clashes Identification USC-CSE Annual Research Review Mohammed.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

1 Analysis of MBASE Model-Clashes Mohammed Al-Said USC-CSE.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture # 2 : Process Models
Software Process Models
CS487 Software Engineering Omar Aldawud
Copyright 2000 by USC and the Center for Software Engineering, all rights reserved. “No scene from prehistory is quite so vivid as that of the mortal struggles.
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
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 28 Slide 1 Process Improvement.
University of Southern California Center for Software Engineering CSE USC MBASE Essentials Planning and control Milestone content Process models Life cycle.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Software Engineering General Project Management Software Requirements
Iterative development and The Unified process
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
CHAPTER 19 Building Software.
Acquiring Information Systems and Applications
Introduction to Computer Technology
Software Evolution Planning CIS 376 Bruce R. Maxim UM-Dearborn.
S/W Project Management
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
Software Project Management Introduction to Project Management.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
CEN rd Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Phases of Software.
S S I E M E N S C O R P O R A T E R E S E A R C H 1 SCR SE Architecture Requirements Engineeering Theory vs. Practice Bob Schwanke STRAW ‘03.
Software Engineering Management Lecture 1 The Software Process.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 25 Slide 1 Process Improvement l Understanding, Modelling and Improving the Software Process.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Large Scale Software Systems Derived from Dr. Fawcett’s Notes Phil Pratt-Szeliga Fall 2010.
Lecture 7: Requirements Engineering
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
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.
Systems Analysis and Design in a Changing World, Fourth Edition
An Introduction to Software Engineering
Chapter 4 프로세스 모델 Process Models
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Develop Schedule is the Process of analyzing activity sequences, durations, resource requirements, and schedule constraints to create the project schedule.
Methodologies and Algorithms
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Fundamental Test Process
Software Process Models
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Comparison between each special case
Presentation transcript:

University of Southern California Center for Software Engineering C S E USC Software Model Clashes Identification USC-CSE Annual Research Review Mohammed Al-Said

University of Southern California Center for Software Engineering C S E USC Models and Modeling Software System Model (Webster): A description or analogy used to help visualize or analyze something; a pattern of something to be made For us is representation of an aspect of software development based on a set of assumptions Models may use other models as part of their assumptions (e.g.., COCOMO uses multiplicative regression, WinWin uses Theory W)

University of Southern California Center for Software Engineering C S E USC Win-Win Business Case Analysis Software Warranties QFD 10X Six Sigma Award Fees. IKIWISI JAD UML CORBA COM Requirements Architectures Product Lines OO Analysis & Design Domain Ontologies COTS GOTS COCOMO COCOTS Checkpoint System Dynamics. Metrics. ilities Simulation and Modeling. Environment Spiral Waterfall Open Source Business Process Reengineering CMM’s Peopleware IPT’s Agile Evolutionary Success Models Product Models Process Models Property Models Software Models

University of Southern California Center for Software Engineering C S E USC Assumptions and Models Assumption: A statement that is taken for granted as “true” Example: COCOMO cost drivers are multiplicative Model: a consistent set of assumptions and their logical derivations that represent a viewpoint Example: COCOMO represents the effort “viewpoint” of a project. It has another assumption that states effort is proportional to (SIZE) E. Hence the logical “AND” implies that effort is proportional to the cost drivers AND (SIZE) E Note: these assumptions are only taken to be true with respect to the COCOMO model itself

University of Southern California Center for Software Engineering C S E USC Model-Clash: An incompatibility among the assumptions of a set of models Example: IKIWISI (I’ll know it when I see it) success model assumes requirements are generated after something is implemented (prototype) Waterfall process model assumes nothing is implemented until requirements are specified. There is no model in which both of above statements are consistent (there is at least an implementation or a requirement that can not satisfy both) Yet many projects embrace both models and get into trouble Need techniques to identify and avoid model clashes USC-CSE MBASE approach one way to do this

University of Southern California Center for Software Engineering C S E USC Year: 1991 a computer system to replace the entire manual system for scheduling of ambulances for 999 calls time scale 12 months intended budget of $2.2 million Complex problem: –300 ambulances –>400 patient transport service vehicles –>326 paramedics –1, ,600 emergency calls per day Example: London Ambulance Service

University of Southern California Center for Software Engineering C S E USC LAS required a system able to support: –input & verification of call and incident details, –selection of most suitable ambulances, –communication of incident details to selected ambulances, and –forward planning to place vehicles and staff at positions where they are most likely to be required. Example: London Ambulance Service

University of Southern California Center for Software Engineering C S E USC Example: London Ambulance Service Business CaseWaterfallConsequence Implement a state of the art system within 12 months to meet government ambulance performance standards Schedule allows enough calendar months to move sequentially Dictated schedule was too tight to develop and test the system

University of Southern California Center for Software Engineering C S E USC Example: London Ambulance Service Business CaseHigh-AssuranceConsequence Select lowest bidderDeveloper is experienced and knowledgeable in developing similar systems Developer had no previous experience in implementing ambulance dispatch systems

University of Southern California Center for Software Engineering C S E USC Example: London Ambulance Service High-AssuranceWaterfallConsequence Fall back procedures exist in case of failure or service degradation Full system testing including backup system was not performed Back-up system didn’t work when the main system failed

University of Southern California Center for Software Engineering C S E USC Example: London Ambulance Service Business CaseHigh-AssuranceConsequence Low cost Intel486 PCs used as main servers Design feasibility is determineable in advance (i.e., modeling, simulation) System performance degraded due to ambulance allocation algorithm’s CPU and memory demands

University of Southern California Center for Software Engineering C S E USC Example: London Ambulance Service RADScalabilityConsequence MS-Visual Basic used to rapidly generate system’s screens Tools scalability sufficiently matches application size and complexity System performance degraded due to early VB slowness

University of Southern California Center for Software Engineering C S E USC Example: London Ambulance Service EnvironmentWaterfallConsequence Data feeds from radio-based system are always perfect Requirements cover all real-world situations Buildings obscured data signals (black spots)

University of Southern California Center for Software Engineering C S E USC Research Strategy Case Study Analysis [LAS, MasterNet, Denver] Select a set of software models Identify models’ assumptions with respect to req., arch., maintenance, change, environment, project size, developer, customer, organization Identify model clashes among models’ assumptions Identify model clashes’ causes and patterns Assess if MBASE model integration framework identifies model-clashes early Run an experiment to establish relationship between model clashes and software project’s risk

University of Southern California Center for Software Engineering C S E USC Software Models Focus ProductProcess Custom COTS: Single & Multi Product Line Distributed/Mobile Waterfall Evolutionary Agile Open Source RAD PropertySuccess Scalability High-Assurance Cost (COCOMO) Environment Business Case IKIWISI Correctness Controllability

University of Southern California Center for Software Engineering C S E USC Assumptions Coverage Requirements Architecture Testing&Tran. Maintenance Environment Change Project Size Developer Customer Organizations Model

University of Southern California Center for Software Engineering C S E USC Assumptions Coverage Requirements Architecture Testing&Tran. Maintenance Environment Change Project Size Developer Customer Organizations Model Stability Feasibility Clarity Testability Document Knowability Completeness Validity *Part based on SEI risk Taxonomy

University of Southern California Center for Software Engineering C S E USC Interfaces to other software or hardware are completely defined Minimum changes are introduced once each phase deliverables are approved Schedule allows enough calendar months to progress sequentially All design decisions are clearly justifiable The requirements’ nature will change little during development and evolution. Requirements are sufficiently testable System requirements are fully specified prior to design and implementation stages COTS vendor is sufficiently responsive to requests for new features and improvements COTS integration issues are not predictable in advance COTS vendor is economically viable Results of original COTS testing process are not visible to external developers A COTS product’s internal architecture is not always visible to external developers COTS vendor claims cannot be counted on as requirements Much of requirements evolution are driven by COTS (even during development) COTS product capabilities may impose additional requirements on the system being developed COTS capabilities determine many of the software system's requirements WaterfallCOTS Multi-Model Clashes Example

University of Southern California Center for Software Engineering C S E USC Interfaces to other software or hardware are completely defined Minimum changes are introduced once each phase deliverables are approved Schedule allows enough calendar months to progress sequentially All design decisions are clearly justifiable The requirements’ nature will change little during development and evolution. Requirements are sufficiently testable System requirements are fully specified prior to design and implementation stages COTS vendor is sufficiently responsive to requests for new features and improvements COTS integration issues are not predictable in advance COTS vendor is economically viable Results of original COTS testing process are not visible to external developers A COTS product’s internal architecture is not always visible to external developers COTS vendor claims cannot be counted on as requirements Much of requirements evolution are driven by COTS (even during development) COTS product capabilities may impose additional requirements on the system being developed COTS capabilities determine many of the software system's requirements System maintenance and operation are sufficiently feasible Full architecture analysis is performed with respect to the quality attributes of the system Capabilities, conditions, and constraints for each requirement are clearly identifiable early in the development process WaterfallCOTS High-Assurance Multi-Model Clashes Example

University of Southern California Center for Software Engineering C S E USC Interfaces to other software or hardware are completely defined Minimum changes are introduced once each phase deliverables are approved Schedule allows enough calendar months to progress sequentially All design decisions are clearly justifiable The requirements’ nature will change little during development and evolution. Requirements are sufficiently testable System requirements are fully specified prior to design and implementation stages COTS vendor is sufficiently responsive to requests for new features and improvements COTS integration issues are not predictable in advance COTS vendor is economically viable Results of original COTS testing process are not visible to external developers A COTS product’s internal architecture is not always visible to external developers COTS vendor claims cannot be counted on as requirements Much of requirements evolution are driven by COTS (even during development) COTS product capabilities may impose additional requirements on the system being developed COTS capabilities determine many of the software system's requirements System maintenance and operation are sufficiently feasible Full architecture analysis is performed with respect to the quality attributes of the system Capabilities, conditions, and constraints for each requirement are clearly identifiable early in the development process Fast time to market WaterfallCOTS High-Assurance Business-Case

University of Southern California Center for Software Engineering C S E USC Requirements Assumptions/Model Clashes Assume Yes Requirements Aspect Assume No  Waterfall  Fixed-reqts/cost/schedule contract  Formal derivation and verification Knowable in advance of design and development  Evolutionary development  Agile methods  COTS-assessment-intensive system  Stakeholder win-win  Waterfall  Fixed rqts./cost/schedule contract Low risk of infeasibility  Spiral  Cost/schedule as independent process  Heterogeneous COTS elements  Waterfall  Formal derivation and verification  Milestone planning Highly Stable  Evolutionary development  Agile methods  Cost/schedule as independent process  Models in left column will clash with models in right column

University of Southern California Center for Software Engineering C S E USC Research Contribution 1.Assumptions and model-clashes of the most common software engineering models 2.An insight into model-clashes properties: (causes, patterns, relations) 3.Processes and visualization techniques for rapid model-clash identification 4.The relation between model-clashes and risk in software projects

University of Southern California Center for Software Engineering C S E USC Schedule Spr’0 2 Sum’02Fall’02Spr’ Complete model assumptions Identification Identify model clashes Identify model clash Causes and patterns Test MBASE model integration framework Run Model Clash Analysis Experiment Thesis Writing Defense Task

University of Southern California Center for Software Engineering C S E USC Questions