University of Southern California Center for Systems and Software Engineering Rapid-Fielding Software-System Development Supannika Koolmanojwong

Slides:



Advertisements
Similar presentations
Professional Services Developer Program Services
Advertisements

Strategies for web based data dissemination A strategy is a plan of action designed to achieve a vision - from Greek "στρατηγία" (strategia). Zoltan Nagy.
Incremental Commitment Spiral Model, Expedited Engineering, and Kanban Jo Ann Lane and Alexey Tregubov USC CSSE Rich Turner Stevens University.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
University of Southern California Center for Systems and Software Engineering Process Decision Frameworks for DoD and e-Services Projects ASRR 2011 Supannika.
Alternate Software Development Methodologies
Software Life Cycles ECE 417/617: Elements of Software Engineering
SOA with Progress Philipp Walther Consultant. © 2007 Progress Software Corporation2 Agenda  SOA  Enterprise Service Bus (ESB)  The Progress SOA Portfolio.
® IBM Software Group © 2007 IBM Corporation Modeling Software Engineering Processes using Eclipse Process Framework Composer (EPFC) / Rational Method Composer.
Chapter 17: Client/Server Computing Business Data Communications, 4e.
University of Southern California Center for Systems and Software Engineering USC CSSE Research Overview Barry Boehm Sue Koolmanojwong Jo Ann Lane Nupul.
University of Southern California Center for Systems and Software Engineering NDI and Services-Based Software Development Process Supannika Koolmanojwong.
Software Engineering.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
1 IS371 WEEK 8 Last and Final Assignment Application Development Alternatives to Application Development Instructor Online Evaluations.
Chapter 7: Client/Server Computing Business Data Communications, 5e.
1 IS112 – Chapter 1 Notes Computer Organization and Programming Professor Catherine Dwyer Fall 2005.
8 Systems Analysis and Design in a Changing World, Fifth Edition.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
INTRODUCTION TO CLOUD COMPUTING Cs 595 Lecture 5 2/11/2015.
Duncan Fraiser, Adam Gambrell, Lisa Schalk, Emily Williams
Open Cloud Sunil Kumar Balaganchi Thammaiah Internet and Web Systems 2, Spring 2012 Department of Computer Science University of Massachusetts Lowell.
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
Project Proposal: Academic Job Market and Application Tracker Website Project designed by: Cengiz Gunay Client: Cengiz Gunay Audience: PhD candidates and.
COMPARISON STUDY BETWEEN AGILEFANT AND XPLANNER PLUS Professor Daniel Amyot Ruijun Fan Badr Alsubaihi Submitted to Professor Daniel Amyot.
Clouds on IT horizon Faculty of Maritime Studies University of Rijeka Sanja Mohorovičić INFuture 2009, Zagreb, 5 November 2009.
Effectively Explaining the Cloud to Your Colleagues.
Systems Analysis and Design in a Changing World, 6th Edition
Cloud Computing Brian Curran, Sabatino DeRico, Mike Delisa, Mudit Goel, Jon Guagenti, Jess Caso, Greg Flynn.
Cloud computing is the use of computing resources (hardware and software) that are delivered as a service over the Internet. Cloud is the metaphor for.
Joel Bapaga on Web Design Strategies Technologies Commercial Value.
Categories of Software
Chapter 2 The Origins of Software Modern Systems Analysis and Design.
Quality Attributes of Web Software Applications – Jeff Offutt By Julia Erdman SE 510 October 8, 2003.
2 Systems Architecture, Fifth Edition Chapter Goals Describe the activities of information systems professionals Describe the technical knowledge of computer.
University of Southern California Center for Systems and Software Engineering Rapid Fielding Projects in CSCI 577 Supannika Koolmanojwong 09/03/10.
University of Southern California Center for Systems and Software Engineering Rapid Fielding Projects in CSCI 577 Supannika Koolmanojwong Barry Boehm CS.
University of Southern California Center for Systems and Software Engineering Project Artifacts in each process model Supannika Koolmanojwong October 09,
Cloud Computing Characteristics A service provided by large internet-based specialised data centres that offers storage, processing and computer resources.
University of Southern California Center for Systems and Software Engineering NDI & NCS in CSCI 577 Extended from Jesal Bhuta’s presentation for CSCI577a.
Software Project Documentation. Types of Project Documents  Project Charter  Requirements  Mockups and Prototypes  Test Cases  Architecture / Design.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Background - Scenario Drivers and Critical Issues with a Focus on Technology Trends, and Systems Architecture Near-Shore-Development Seminar Barry Demchak.
Chapter 2 The Origins of Software Modern Systems Analysis and Design Fifth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Rational Unified Process Fundamentals Module 5: Implementing RUP.
Chapter 17: Client/Server Computing Business Data Communications, 4e.
University of Southern California Center for Systems and Software Engineering Life Cycle Plan (LCP) Barry Boehm CS577a Fall /20/
March 2004 At A Glance NASA’s GSFC GMSEC architecture provides a scalable, extensible ground and flight system approach for future missions. Benefits Simplifies.
Chapter 2 The Origins of Software Modern Systems Analysis and Design Fifth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
1 TCS Confidential. 2 Objective : In this session we will be able to learn:  What is Cloud Computing?  Characteristics  Cloud Flavors  Cloud Deployment.
Michael Miller Senior Director Real-Time Collaboration Products Oracle Collaboration Suite 10g Oracle Corporation.
University of Southern California Center for Systems and Software Engineering Rapid Fielding Projects in CSCI 577 Supannika Koolmanojwong.
RANDY MODOWSKI COSC Cloud Computing. Road Map What is Cloud Computing? History of “The Cloud” Cloud Milestones How Cloud Computing is being used.
©Ian Sommerville 2007COTS-based System Engineering Slide 1 COTS-based System Engineering.
Cloud Computing for Business Cloud Computing Services Cloud Computing Services.
Cloud Computing 3. TECHNOLOGY GUIDE 3: Cloud Computing 2 Copyright John Wiley & Sons Canada.
Prof. Jong-Moon Chung’s Lecture Notes at Yonsei University
Systems Analysis and Design in a Changing World, Fifth Edition
Unit 3 Virtualization.
What is Cloud Computing - How cloud computing help your Business?
Microsoft SharePoint Server 2016
Introduction to Cloud Computing
Rapid Fielding Projects in CSCI 577
577 Process Patterns & Quality Management
Comparison between each special case
Cloud Computing Erasmus+ Project
Rapid software development
Presentation transcript:

University of Southern California Center for Systems and Software Engineering Rapid-Fielding Software-System Development Supannika Koolmanojwong USC CSSE Annual Research Review March 9, 2010

University of Southern California Center for Systems and Software Engineering Outline The Incremental Commitment Model & Rapid- fielding projects Process Pattern Decision Driver Preliminary Results 03/09/2010USC CSSE ARR 20102

University of Southern California Center for Systems and Software Engineering Motivation Growing diversity of software systems –No one-size-fits-all process for the full range of software systems Rapid Fielding is a very important Software System Objective –To fit into market windows, respond to competition –Several possible process patterns can be used Some process models provide specific evidence-based and risk based decision points –ICM is the most thoroughly elaborated 03/09/2010USC CSSE ARR 20103

University of Southern California Center for Systems and Software Engineering NDI/NCS Growth Trends 03/09/2010USC CSSE ARR USC e-services project data shows increase in number of projects using NCS from 19% in 2006 to 57% in 2009 Programmableweb.com : -3 new Mashups listed /day -Total 4436 Mashups listed [Programmableweb.com accessed 11/09/09] USC e-services project data shows increase in number of projects using COTS from 28% in ‘97 to 70% in ’02 - Similar results (54% in 2000) were found in the Standish Group’s 2000 survey [Yang 2006]. *

University of Southern California Center for Systems and Software Engineering 4 focused ICM Common Process Patterns Process Patterns Use Single Non-Developmental Item (NDI) Agile Architected Agile Formal Methods HW with embedded SW component Indivisible IOC NDI- intensive Hybrid agile/ plan-driven system Multi-owner system of systems Family of systems Brownfield Services- Intensive 5 Market –Driven, Services- Driven, NDI-Driven 03/09/2010USC CSSE ARR 2010

University of Southern California Center for Systems and Software Engineering Different Risk Patterns Yield Different Processes 603/09/2010USC CSSE ARR 2010 Architected Agile E.g. Business data processing Use Single NDI E.g. Accounting System NDI-Intensive E.g. Supply Chain Management Services-Intensive E.g. Community Services

University of Southern California Center for Systems and Software Engineering 703/09/2010USC CSSE ARR 2010

University of Southern California Center for Systems and Software Engineering Definitions of NDI / NCS NDI or Non-developmental Item is an item that is previously developed and available to use. It includes commercial-off-the shelf, open source product, reuse library and customer-furnished package. –Two main categories of NDI are platform-based NDI such as Internet Explorer, Eclipse, MySQL, Apache Tomcat, JDK/JSP application-based NDI such as Microsoft office, Quickbook, BusinessWorks, Barcode Generator, JMP and primopdf. NCS or Net-Centric Services is an online service available to be accessed over the Internet such as Google services, Yahoo services, Google map, Twitter, Ning.com, Gmail, Facebook, Amazon payment, online currency converter and online dictionary. –Net-Centric Services is known as web service, web application, online application, cloud computing, and software-as-a-service. 03/09/2010USC CSSE ARR 20108

University of Southern California Center for Systems and Software Engineering NDI, NCS characteristics 9 CharacteristicsNDINCS Platform IndependentYes / NoYes Required Internet AccessYes / NoYes Common StandardNoYes Option of rejecting next release*YesNo Change / upgrade controlClient /Server’s siteServer’s site End user has the latest versionYes / NoYes Database OwnershipYesYes/No * Will you be able to freeze the version you are using? 03/09/2010USC CSSE ARR 2010

University of Southern California Center for Systems and Software Engineering Existing Process Guidelines on Process Patterns Process PatternsCurrent process guidelines Architected Agile None Use Single NDI Early user-programming guidance [Scaffidi 2009] focuses on tailoring the selected NDI NDI- Intensive Various process guidelines USC CSSE COTS-Based Application Development Guidelines (2005) CMMI-COTS-Based Systems Services- Intensive None CMMI-SVC focuses on how to develop web services; not how to apply the available services Pure Agile Scrum, XP, Crystal, others Not a good fit for turnkey systems 1003/09/2010USC CSSE ARR 2010

University of Southern California Center for Systems and Software Engineering Process Pattern Decision Driver Decision Criteria Importance Architected Agile Use Single NDI NDI-Intensive Services- Intensive Alternatives More than 30% of features available in NDI/NCS 0 – 12 – 33 – 4 Has a single NDI/NCS that satisfies a complete solution 0 – 142 – 3 Very unique/ inflexible business process 2 – 40 – 1 Life Cycle Need control over upgrade / maintenance 2 – 40 – 1 Rapid Deployment; Faster time to market 0 – – 3 Architecture Critical on compatibility 2 – 43 – 41 – 32 – 4 Internet Connection Independence 0 – 4 0 Need high level of services / performance 0 – 40 – 3 0 – 2 Need high security 2 – – 40 – 2 Asynchronous Communication0 – 4 0 Access Data anywhere 0 – 4 4 Resources Critical mass schedule constraints 0 – 13 – 42 – 32 – 4 Lack of Personnel Capability 0 – 23 – 42 – 42 – 3 Little to no upfront costs (hardware and software) 0 – 22 – 4 3 – 4 Low total cost of ownership0 – 10 – 3 3 – 4 Not-so-powerful local machines1 – 41 – 30 – 43 – 4 11 Note: Decision importance scale varies from project to project Decision Criteria Rating Scale; 0:Very Low; 1:Low; 2: Medium; 3:High; 4:Very High Importance Rating Scale: 1:Low; 2: Medium; 3:High 03/09/2010USC CSSE ARR 2010

University of Southern California Center for Systems and Software Engineering An Example of a team that follows the Architected Agile Process Pattern : Shields For Family Project – Develop various reports for LA city-based Family Housing Project 03/09/2010USC CSSE ARR Decision Criteria Importance Architected Agile Alternatives More than 30% of features available in NDI/NCS 11 Has a single NDI/NCS that satisfies a complete solution 10 Very unique/ inflexible business process 22 Life Cycle Need control over upgrade / maintenance 33 Rapid Deployment; Faster time to market 1 1 Architecture Critical on compatibility 3 2 Internet Connection Independence 3 1 Need high level of services / performance 23 Need high security 22 Asynchronous Communication 2 3 Access Data anywhere 3 3 Resources Critical mass schedule constraints 2 1 Lack of Personnel Capability 2 2 Little to no upfront costs (hardware and software) 2 2 Low total cost of ownership 2 3 Not-so-powerful local machines 2 2

University of Southern California Center for Systems and Software Engineering An Example of a team that follows the Architected Agile Process Pattern 03/09/2010USC CSSE ARR Architected Agile High importance level Low importance level Use single NDI Project Status NDI-Intensive Services -Intensive

University of Southern California Center for Systems and Software Engineering The Incremental Commitment Model – Electronic Process Guide (ICM EPG) Using IBM Rational Method Composer to build a software development process guideline mainly describing roles, responsibilities and artifacts. 03/09/2010USC CSSE ARR

University of Southern California Center for Systems and Software Engineering Preliminary Results Guidelines \ Average Effort (hours) Paper-based process guidelines ICM EPG Learning Documentation Total Effort /09/2010USC CSSE ARR % of projects are able to deliver in one semester, instead of two semesters comparing to 12.5% from previous year Clients are highly satisfied with the project results Less effort spent in project development

University of Southern California Center for Systems and Software Engineering Process Adoption Statistics # of TeamsResults 8 /14Selected the right process from the beginning 3/14 Selected wrong process due to unclear project scope Selected right process after exploration, more prototyping, found available NDI/NCS 2/14Changed process due to minor project scope changes 1/14Changed process due to infeasible project implementation 03/09/2010USC CSSE ARR

University of Southern California Center for Systems and Software Engineering Conclusion For rapid-fielding software projects, this research focuses on developing and evaluating the effectiveness of process guidelines for 4 process patterns. The approach is being used to validate and refine the content of the process patterns 03/09/2010USC CSSE ARR

University of Southern California Center for Systems and Software Engineering Differences between NDI and NCS (1/2) Category Non-Developmental Item [ includes open source, customer-furnished software] Net-Centric Services Payment  Non-commercial items usually have no monetary cost  Expensive initial costs, moderate recurring fee, training fee, licensing arrangement-dependent  Not all services are free  Low initial costs, moderate marginal cost, duration depending license Platform  Specific and limited to specific platform / language  Generally supported on a subset of platforms or multiple platforms but with different editions  Platform and language independent  Server and client can work on different platform  Interaction between machines over a network Integration  Generally more tightly coupled  Not very flexible on existing legacy systems when proprietary standard is used  Difficult when platform dependent and different technologies involved  detailed documentation and on-site extensive support  More loosely coupled, Common web standards, flexible to integrate  Requires internet access  Support forums and API documentation available  This integration could be done merely in code, without additional installation of external components Changes  Able to freeze the version, under user control  Designed for specific use so costly for customization and change  Change on server side doesn’t impact the client side  Major releases once in while  Requires end user intervention to upgrade  Changes are out of developers’ control  Not easy to predict change, cannot avoid upgrade  The end-user has the latest version of the service  Change on server side result in client side, not require user intervention  Minor releases frequently (through patching) 03/09/2010USC CSSE ARR

University of Southern California Center for Systems and Software Engineering Differences between NDI and NCS (2/2) Category Non-Developmental Item [ includes open source, customer-furnished software] Net-Centric Services Extensions  Only if source is provided and the license permits  Delivered to the end-user by the producer  may not be portable across COTS or compatible with future releases  Extension is limited to data provided by the web services  In-house extension such as wrapper or mashup  Little control over performance overhead Evaluation Criteria  Maintenance, extensibility, scalability, reliability, cost, support, usability, dependency, ease of implementation, maintainability, upgrades, size, Access to source and code-escrow considerations  Upfront costs opposed to subscription  Platform compatibility, Feature controllability  Reliability, Availability, Cost, Available Support, Speed, Predicted longevity of the service provider, release cycle, Bandwidth  Recurring costs and future functionality offered  Standards compatibility  Feature and data controllability Support Services  sometimes available for a fee  Help topics or FAQs would likely not be updated after installation  Upgrades/Patches and data migration support  Sometimes can be customized for specific user  Upgrade through purchasing new releases  generally not available  Help topics would generally be frequently updated; self- learning  Usually not customized for specific user  Patching on service provider’s side; mostly does not require installation on client side Data  Data often stored locally. Backups by the user  Data access is generally fast  Possible variety of proprietary formats, Platform- dependent  May be inflexible for change but more secure  Can process data offline  Data stored on service host’s servers. Backups by the provider. Introduces privacy and data-retention  Data access could be slower since internet based, Process data online  Common XML using web standard protocols  Data from different web services can be used by a single client program 03/09/2010USC CSSE ARR

University of Southern California Center for Systems and Software Engineering An Example of a team that follows the “NDI- Intensive” Process Pattern : SPC website Project – Develop a website for an organization by using “wordpress” and some additional custom code 03/09/2010USC CSSE ARR Decision Criteria ImportanceNDI- Intensive Alternatives More than 30% of features available in NDI/NCS 3 4 Has a single NDI/NCS that satisfies a complete solution 2 3 Very unique/ inflexible business process 1 1 Life Cycle Need control over upgrade / maintenance 2 1 Rapid Deployment; Faster time to market 33 Architecture Critical on compatibility 12 Internet Connection Independence 11 Need high level of services / performance 1 2 Need high security 1 2 Asynchronous Communication 21 Access Data anywhere 33 Resources Critical mass schedule constraints 23 Lack of Personnel Capability 32 Little to no upfront costs (hardware and software) 33 Low total cost of ownership 33 Not-so-powerful local machines 33

University of Southern California Center for Systems and Software Engineering An Example of a team that follow the NDI-Intensive Process Pattern 03/09/2010USC CSSE ARR Use Single NDI Architected Agile NDI - Intensive Services - Intensive High importance level Low importance level Project Status