Rapid Fielding Projects in CSCI 577

Slides:



Advertisements
Similar presentations
Robert D. Walla, Larry A. Hacker, Ph.D. Astrix Technology Group 1090 King Georges Post Rd Edison, NJ LIMS Selection In A Forensic Toxicology Laboratory.
Advertisements

University of Southern California Center for Systems and Software Engineering NDI and Services-Based Software Development Process Supannika Koolmanojwong.
1 IS371 WEEK 8 Last and Final Assignment Application Development Alternatives to Application Development Instructor Online Evaluations.
IS4401 Project Technology Issues. Introduction This seminar covers Databases When to use a Database What Database to use Development Tools Visual Studio.
CBS Development: Guidelines Based on Lessons Learned Betsy Clark Software Metrics Inc. February 7, 2001 Sponsored by the Federal Aviation Administration’s.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Duncan Fraiser, Adam Gambrell, Lisa Schalk, Emily Williams
Travis, Stephanie, Alex.  Cloud computing is a general term for anything that involves delivering hosted services over the Internet.  These services.
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
Clouds on IT horizon Faculty of Maritime Studies University of Rijeka Sanja Mohorovičić INFuture 2009, Zagreb, 5 November 2009.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
University of Southern California Center for Systems and Software Engineering Rapid-Fielding Software-System Development Supannika Koolmanojwong
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.
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.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
3/12/2013Computer Engg, IIT(BHU)1 CLOUD COMPUTING-1.
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.
Accounting systems design & evaluation 9434SB 18 March 2002.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
GIS IN THE CLOUD Cloud computing furnishes scalable GIS technology that is maintained off premises and delivered on demand as services via the Internet.
ITEC 275 Computer Networks – Switching, Routing, and WANs
Software Development.
Systems Analysis and Design in a Changing World, Fifth Edition
Unit 3 Virtualization.
Project Cost Management
Chapter 8 Environments, Alternatives, and Decisions.
Software Project Configuration Management
Information Systems Development
Intro to SaaS Software as a service (SaaS) is a model of software delivery where the software company provides maintenance, daily technical operation,
Prepared by: Assistant prof. Aslamzai
What is Cloud Computing - How cloud computing help your Business?
Software testing
Software Life Cycle “What happens in the ‘life’ of software”
CS 5150 Software Engineering
Software Processes (a)
Systems Analysis – ITEC 3155 Evaluating Alternatives for Requirements, Environment, and Implementation.
Chapter 2 SW Process Models
Design and Implementation
Chapter 2: Software Process Models
Migrating Oracle Forms Using Oracle Application Express
Introduction to Cloud Computing
Cloud Computing.
COTS: The Future is Here
Service-centric Software Engineering
Tools of Software Development
577 Process Patterns & Quality Management
Chapter 2 Software Processes
Systems analysis and design, 6th edition Dennis, wixom, and roth
Chapter 2 The Origins of Software
Systems analysis and design, 6th edition Dennis, wixom, and roth
Enterprise Program Management Office
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Cloud computing Technology: innovation. Points  Cloud Computing and Social Network Sites have become major trends not only in business but also in various.
Cloud computing Technology: innovation. Points  Cloud Computing and Social Network Sites have become major trends not only in business but also in various.
King Saud University College of Engineering IE – 462: “Industrial Information Systems” Fall – 2018 (1st Sem H) Chapter 2 Information System.
Comparison between each special case
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Chapter 2: Software Process Models
Chapter 8 Software Evolution.
Enterprise Resource Planning, 1st Edition by Mary Sumner
Convergence IT Services Pvt. Ltd
Software Cost Estimation
Cloud Computing Erasmus+ Project
Rapid software development
Presentation transcript:

Rapid Fielding Projects in CSCI 577 Supannika Koolmanojwong

Outline Phases and Milestones in ICSM for CSCI577 Tasks and activities in each phase Process patterns in CSCI577 projects NDI & NCS Process Decision Drivers @USC CSSE

ICSM: The Incremental Commitment Spiral Model @USC CSSE

The Incremental Commitment Model Success-critical stakeholder satisficing Commitment and accountability Incremental growth of system definition and stakeholder commitment Risk-based activity levels and milestones This slide shows the overall concept of the ICM Commitment and accountability Success-critical stakeholder satisficing, Incremental growth of system definition and stakeholder commitment, Concurrent engineering, Iterative development cycles, Risk-based activity levels and milestones Concurrent engineering Iterative development cycles @USC CSSE

ICSM in CSCI577 @USC CSSE

@USC CSSE

Activities in each phase Take a look at details in ICSM-EPG http://greenbay.usc.edu/IICMSw/index.htm @USC CSSE

Outline Phases and Milestones in ICSM for CSCI577 Tasks and activities in each phase Process patterns in CSCI577 projects NDI & NCS Process Decision Drivers @USC CSSE

4 focused ICSM Common 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 Market –Driven, Services- Driven, NDI-Driven @USC CSSE

ICSM Process Patterns Process Pattern Example Architected Agile Business data processing Use Single NDI Small website OR NDI- intensive Supply chain management at least 30% at most 70% CUSTOM CODE AND/OR + Services- Intensive Community Services at least 30% at most 70% CUSTOM CODE AND/OR + @USC CSSE

Different Risk Patterns Yield Different Processes 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 @USC CSSE

Outline NDI & NCS Definition Common examples Phases and Milestones in ICSM for CSCI577 Tasks and activities in each phase Process patterns in CSCI577 projects NDI & NCS Definition Common examples Why, When is NDI/ NCS right for you ? Pros and Cons of NDI, NCS Differences between NDI/NCS Lesson learned for NDI, NCS Process Decision Drivers @USC CSSE

Definitions of NDI / NCS Non-Developmental Item an item that is previously developed and available to use. 2 kinds of NDI Application NDI : WordPress, Wiki System NDI: MySQL, Apache Related terms COTS, GOTS, ROTS, Reuse Code, Reuse library, Customer-furnished package 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. @USC CSSE

Common NDIs in CSCI577 Application-NDI System-NDI MS office, WordPerfect OCR software Business Works Coldfusion, Dreamweaver System-NDI Language: PHP, C++, Java, Database: MySQL Server: Apache Others: Java Libararies @USC CSSE

Net-Centric Services (NCS) an online service available to be accessed over the internet Net-Centric Services includes web service, web application, online application, and software-as-a-service. @USC CSSE

Common NCSs in CSCI577 Web services Content Management System Google Services, Yahoo Services Content Management System Drupal, Joomla e-learning system Moodle, ILIAS, KEWL, Sakai, Dokeos Payment Services Amazon payment, Paypal, Google Checkout Calendar Google Calendar, liteCalendar, Vcalendar Others OpenCollection, Jumpy Forum, Facebook, Google Map @USC CSSE

Why use NDI/NCS? Trade-off Change in software development practice over the past 20 years Build system with pre-existing software to reduce development and maintenance costs Involve less development time and lower development cost by taking advantage of existing, market proven, vendor supported products. Could develop a better version yourself or outsource but generally incur more expense and take longer to begin to capitalize on its benefits Trade-off Source code is not available to developers Evolution is not under control of developers Incompatibility, high volatility @USC CSSE

Trade-Off’s for Tailoring Tailoring effort can vary significantly depending on NDI/NCS package used Automated tailoring tools E.g. Microsoft Excel macro recorder Extensive tailoring can cause much rework during NDI refresh cycles Oracle: “Use our Business Processes” Tailoring effort v/s functionality tradeoff Minimum tailoring effort to obtain maximum possible functionality Tailoring “easy to redo” during NDI refresh cycles @USC CSSE

When is NDI/NCS right for you (1/2) When they lie at the intersection of the three determinants of feasibility, and do so demonstrably better than could original code: technical, economic, strategic constraints @USC CSSE

When is NDI/NCS right for you (2/2) Technical constraint Ability supply the desired functionality at the required level of reliability Economic constraint Ability to be incorporated and maintained in the new system within the available budget and schedule Strategic constraint Ability to meet needs of the system operating environment--including technical, political, and legal considerations--now, and as environment is expected to evolve in the future @USC CSSE

NDI/NCS is not a “Silver Bullet” However, NDI/NCS is not a “Silver Bullet” Involving short-term & long-term cost, evolution and associated risks Requiring different processes w.r.t. new skill, knowledge, and abilities If not handled well, resulting in difficulties to meet expected economic objectives, even causing tremendous cost and schedule overruns Need for NDI/NCS-Oriented Processes @USC CSSE

Selection of NDI/NCS Components Assessment of: Functional Win Conditions capability offered Performance Win Conditions timing & sizing constraints Others cost/training/installation/maintenance/market trend / product line @USC CSSE

NDI, NCS characteristics Platform Independent Yes / No Yes Required Internet Access Common Standard No Option of rejecting next release* Change / upgrade control Client /Server’s site Server’s site End user has the latest version Database Ownership Yes/No * Will you be able to freeze the version you are using? @USC CSSE

NDI Advantages and Disadvantages Available now, earlier payback Licensing and procurement delays, Up front license fees Avoids expensive development & maintenance Recurring maintenance fees Predictable license costs & performance Reliability often unknown/ inadequate Rich in functionality Unnecessary features compromise usability, performance Broadly used, mature technology Functionality, efficiency constraints Frequent upgrades often anticipate organization’s needs No control over upgrades/maintenance Dedicated support organization Dependency on vendor Hardware/software independence Integration not always trivial; incompatibilities among different COTS Tracks technology trends Synchronizing multiple-vendor upgrades @USC CSSE

NCS Advantages and Disadvantages Common Standard; Easy to be integrated Requires internet access Less (minimal) maintenance required, Server side upgrade/change Users have no control over updates; new version may break the systme Users will always have the latest updates The availability and performance are not always guaranteed Platform Independent Licensing fees (not all services are free) Wide outreach Need Flexible requirements Available now for faster turnaround time No control over direction of development Provide general services Reduces the development time, Avoids expensive development cost Database ownership and reliability is an issue of concern. Don’t need to worry about local storage Security Issue Thin Layer of Functionality needed at User end Operational demos become a necessity to learn the functionality of the application @USC CSSE

Differences between NDI and NCS (1) 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 @USC CSSE

Differences between NDI and NCS (2) Category Non-Developmental Item [ includes open source, customer-furnished software] Net-Centric Services 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) Extensions Only if source is provided and the license permits Extension delivered to the end-user by the producer and integrated into the end-user system. Custom extensions 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 @USC CSSE

Differences between NDI and NCS (3) Category Non-Developmental Item [ includes open source, customer-furnished software] Net-Centric Services 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 to use of the service and future functionality offered Standards compatibility Feature and data controllability Support Services Vendor support for integration, training and tailoring/modification 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, self-install Support for tailoring/modification, training 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 @USC CSSE

Differences between NDI and NCS (4) Category Non-Developmental Item [ includes open source, customer-furnished software] Net-Centric Services Data Data often stored locally. Backups is the responsibility of 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 @USC CSSE

Lessons Learned Using NDI (1/6) Problems with vendors Vendors promise and don’t deliver Products don’t work as advertised Don’t assume a quantity discount, negotiate price upfront Need for flexibility in defining requirements Distinguish between essential and negotiable requirements. Be flexible where you can. What we did right - spent 14 out of a total of 22 months iterating between requirements, business processes and the marketplace If you can bend your requirements, NDI is cheaper. Otherwise you’re better off with custom developed. (Not all projects may be flexible) @USC CSSE

Lessons Learned Using NDI (2/6) Importance of operational demos Spend a lot of time in detailed performance demonstrations with real users. Up-front time is critical. That’s when you have leverage with vendors. Once you buy their product, they are a lot less willing to help out. Assessment of specific attributes Projects (COCOTS), in the past have expressed regret that they did not spend more time assessing portability, inter-component compatibility, flexibility (of user interface), and installation ease. @USC CSSE

Lessons Learned Using NDI (3/6) Life-cycle issues Supportability of NDI viewed as a major issue for safety-critical systems Out of service is a critical problem contractor purchased source code and will maintain NDI software Projects, in past have expressed the view that NDI saved money during development but shifted costs to operational side of the life cycle On-line software maintenance How do you upgrade systems once they are in place and operating? @USC CSSE

Lessons Learned Using NDI (4/6) Life Cycle Issues (Upgrading) What is an effective strategy for upgrading? Products reach end of life in two years. Freeze and redo the system in 10 years? Incorporate all versions from all vendors whenever they come out? Refresh every 2 years? Refresh a selected set of components every 2 years? Should have an environment set up so you can load new versions onto the existing configuration and decide whether or not to upgrade. Look at the entire life cycle realistically - not just development @USC CSSE

Lessons Learned Using NDI (5/6) NDI integrator experience Important that they have experience integrating NDI. Look carefully at their credentials. They will oversell themselves Product maturity Never use an untried OS Maturity of the software was very important in NDI selection If you have a safety-critical system, you don’t want state-of-the-art NDI @USC CSSE

Lessons Learned Using NDI (6/6) Training on NDI packages Significant learning curve Need for technology and market watch to keep up with vendors and technologies Impacts of volatility during development redo the tailoring with new releases @USC CSSE

NDI Systems Definitions NDI-Intensive Systems Any system that uses NDI NDI Based Applications A system for which At least 30% of the end-user functionality is provided by NDI products and At least 10% of the project effort is devoted to NDI related activities The numbers 10% and 30% are approximate behavioral NDI boundaries observed in the USC e-services projects @USC CSSE

Types of NDI-based systems System with no NDI product System with just a single NDI product % of Capability Requirements Implemented by NDI products 100% 0% 30% NDI Based Applications @USC CSSE

NDI/NCS based development: Key Concepts Process happens where the effort happens Don’t start with requirements Avoid premature commitments, but have and use a plan Buy information early to reduce risk and rework Prepare for NDI/NCS change Use Bottom up rather than top down approach @USC CSSE

Outline Phases and Milestones in ICSM for CSCI577 Tasks and activities in each phase Process patterns in CSCI577 projects NDI & NCS Rapid-Fielding Projects Flow @USC CSSE

NDI/NCS based system development process In OCD Emphasize on Application NDIs, not System NDIs Use Architected Agile Process In FED Use NDI-intensive or Net-Centric Services Processes Use NDI, or Net-Centric Services Process @USC CSSE

NDI/NCS based system development process @USC CSSE

NDI/NCS based system development process @USC CSSE

NDI/NCS based system development process @USC CSSE

@USC CSSE

NDI/NCS based system development process @USC CSSE