Transcript Slide 1

University of Southern California

Center for Systems and Software Engineering

NDI & NCS in CSCI 577

Supannika Koolmanojwong 09/09/09

Extended from Jesal Bhuta’s presentation for CSCI577a Fall 2006

University of Southern California

Center for Systems and Software Engineering

Outline

• • • • •

Non Developmental Item (NDI)

COTS, Open Source Software, Reuse library and Customer-furnished package Net-Centric Services (NCS)

Web services, Web application, Online application CSCI577 & Possible special cases

Process decision tables

Architected Agile, Use NDI, NDI-intensive, NCS Identify Objectives, Constraints and Priorities Explore Alternatives 09/09/2009 @USC CSSE 2

University of Southern California

Center for Systems and Software Engineering

What is NDI?

Non-Developmental Item

an item that is previously developed and available to use.

commercial-off-the-shelf, open source product, reuse library and customer-furnished package.

2 kinds of NDI

• •

Application NDI : MS office System NDI: MySQL

Related terms

COTS, GOTS, ROTS,

Reuse Code, Reuse library, Customer-furnished package 09/09/2009 @USC CSSE 3

University of Southern California

Center for Systems and Software Engineering

Common NDIs in CSCI577

• •

Application-NDI

– – – –

MS office, WordPerfect OCR software Business Works Coldfusion, Dreamweaver System-NDI

Language: PHP, C++, Java,

– – –

Database: MySQL Server: Apache Others: Java Libararies 09/09/2009 @USC CSSE 4

University of Southern California

Center for Systems and Software Engineering

What is COTS ? (1/2)

• • •

Commercial-off-the-shelf (COTS) definition by SEI

A product that is

• • •

Sold, leased or licensed to the general public.

Offered by a vendor trying to profit from it.

Supported and evolved by the vendor, who retains the intellectual property rights.

• •

Available in multiple copies.

Used without internal modification by a consumer.

Source code may or may not be available.

No longer a COTS if the source code is modified internally 09/09/2009 @USC CSSE 5

University of Southern California

Center for Systems and Software Engineering

What is COTS? (2/2)

• • • •

Can be tailored or extended using

– –

An application programming interface (API).

Tailoring options

Graphical interface.

• •

Parameter based interface.

Programmable interface.

Usually periodic releases with feature growth.

Commercial NDI products have a new release about every 10 months, and that old releases are supported by the vendor for about 3 releases. Older versions eventually become obsolete.

09/09/2009 @USC CSSE 6

University of Southern California

Center for Systems and Software Engineering

COTS Advantages and Disadvantages

• • • • • • • • •

Advantages

Available now, earlier payback Avoids expensive development & maintenance Predictable license costs & performance Rich in functionality Broadly used, mature technology Frequent upgrades often anticipate organization’s needs Dedicated support organization Hardware/software independence Tracks technology trends • • • • • • • • • •

Disadvantages

Licensing and procurement delays Up front license fees Recurring maintenance fees Reliability often unknown/ inadequate Unnecessary features compromise usability, performance Functionality, efficiency constraints No control over upgrades/maintenance Dependency on vendor Integration not always trivial; incompatibilities among different COTS Synchronizing multiple-vendor upgrades

09/09/2009 @USC CSSE 7

University of Southern California

Center for Systems and Software Engineering

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) 09/09/2009 @USC CSSE 8

University of Southern California

Center for Systems and Software Engineering

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.

09/09/2009 @USC CSSE 9

University of Southern California

Center for Systems and Software Engineering

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?

09/09/2009 @USC CSSE 10

University of Southern California

Center for Systems and Software Engineering

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 09/09/2009 @USC CSSE 11

University of Southern California

Center for Systems and Software Engineering

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 09/09/2009 @USC CSSE 12

University of Southern California

Center for Systems and Software Engineering

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 09/09/2009 @USC CSSE 13

University of Southern California

Center for Systems and Software Engineering

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 09/09/2009 @USC CSSE 14

University of Southern California

Center for Systems and Software Engineering

Types of NDI-based systems

% of Capability Requirements Implemented by NDI products 100% 30% 0% NDI Based Applications System with just a single NDI product 09/09/2009 @USC CSSE System with no NDI product 15

University of Southern California

Center for Systems and Software Engineering

Why use NDI/NCS?

• • • • •

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 09/09/2009 @USC CSSE 16

University of Southern California

Center for Systems and Software Engineering

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 09/09/2009 @USC CSSE 17

University of Southern California

Center for Systems and Software Engineering

When is NDI 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 18

University of Southern California

Center for Systems and Software Engineering

When is NDI 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 09/09/2009 @USC CSSE 19

University of Southern California

Center for Systems and Software Engineering

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 09/09/2009 @USC CSSE 20

University of Southern California

Center for Systems and Software Engineering

Selection of NDI/NCS Components

Assessment of:

Functional Win Conditions

capability offered

Performance Win Conditions

timing & sizing constraints

Others

cost/training/installation/maintenance/ma rket trend / product line 09/09/2009 @USC CSSE 21

University of Southern California

Center for Systems and Software Engineering

Outline

• • • • •

Non Developmental Item (NDI)

COTS, Open Source Software, Reuse library and Customer-furnished package Net-Centric Services (NCS)

Web services, Web application, Online application CSCI577 & Possible special cases

Process decision tables

Architected Agile, Use NDI, NDI-intensive, NCS Identify Objectives, Constraints and Priorities Explore Alternatives 09/09/2009 @USC CSSE 22

University of Southern California

Center for Systems and Software Engineering

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.

09/09/2009 @USC CSSE 23

University of Southern California

Center for Systems and Software Engineering

Common NCSs in CSCI577

• • • • • •

Web services

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 09/09/2009 @USC CSSE 24

University of Southern California

Center for Systems and Software Engineering

NDI, NCS characteristics

Characteristics

Platform Independent Required Internet Access Common Standard Option of rejecting next release* Change / upgrade control End user has the latest version Database Ownership

NDI

Yes / No Yes / No No Yes Client /Server’s site Yes / No Yes

NCS

Yes Yes Yes No Server’s site Yes Yes/No * Will you be able to freeze the version you are using?

09/09/2009 @USC CSSE 25

University of Southern California

Center for Systems and Software Engineering

NCS Advantages and Disadvantages

Advantages Disadvantages 09/09/2009 @USC CSSE 26

University of Southern California

Center for Systems and Software Engineering

Issues of NCS

• • • • •

Problems with vendors Need for flexibility in defining requirements Importance of operational demos Assessment of specific attributes Life-cycle issues 09/09/2009 @USC CSSE 27

University of Southern California

Center for Systems and Software Engineering

Outline

• • • • •

Non Developmental Item (NDI)

COTS, Open Source Software, Reuse library and Customer-furnished package Net-Centric Services (NCS)

Web services, Web application, Online application CSCI577 & Possible special cases

Process decision tables

Architected Agile, Use NDI, NDI-intensive, NCS Identify Objectives, Constraints and Priorities Explore Alternatives 09/09/2009 @USC CSSE 28

University of Southern California

Center for Systems and Software Engineering

• • • •

ICM Key Concepts

Evidence/ Risk based decision points

– risk or evidence such as early prototyping or explore alternatives enable stakeholders to converge on an appropriate special case development process.

Concurrent Engineering

– instead of sequentially, concurrently assess opportunities & risks; requirements, possible NDI or services, plans, business cases; and hw, sw and human factors. – synchronized, stabilized, and committed to the next-phase plans.

Feasibility Rationale as a First Class Citizen

– thoroughly analyze project feasibility – Show evidence in the form of business case analysis, effort/schedule estimation, NDI/Services evaluations, prototyping, architecture, and success critical stakeholders’ satisfaction.

Continuous Improvement

– Work closely with clients; getting advice from mentors and architecture review boards – constantly get feedback and incrementally develop – Success critical stakeholders incrementally commit to the project’s continuation.

09/09/2009 @USC CSSE 29

University of Southern California

Center for Systems and Software Engineering

Why special cases?

• •

No one-size fits all Need different roles, responsibilities, criteria, work products 09/09/2009 @USC CSSE 30

09/09/2009

University of Southern California

Center for Systems and Software Engineering

ICM Special Cases

Special Case

1. Use NDI 2. Agile 3. Architected Agile 4. Formal Methods 5. HW with embedded SW component 6. Indivisible IOC 7. NDI- intensive 8. Hybrid agile/ plan-driven system 9. Multi-owner system of systems 10. Family of systems 11. Brownfield 12a. Net- Centric Services — Community Support 12b. Net-Centric Services —Quick Response Decision Support

Example

Small accounting E-services Business data processing Security kernel; Safety-critical LSI chip Multi-sensor control device Complete vehicle platform Supply chain management C4ISR system Net-centric military operations Medical device product line Incremental legacy phaseout Community Services or Special Interest Group Response to competitor initiative

@USC CSSE 31

University of Southern California

Center for Systems and Software Engineering

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 09/09/2009 @USC CSSE 32

University of Southern California

Center for Systems and Software Engineering

Special Case Decision Driver

Importance*

Architected Agile Use NDI NDI Intensive

Alternatives

More than 30% of features available in NDI/NCS Has a single NDI/NCS that satisfies a complete solution Very unique/ inflexible business process

Life Cycle

Need control over upgrade / maintenance Rapid Deployment; Faster time to market

Architecture

Critical on compatibility Internet Connection Independence Need high level of services / performance Need high security Access Data anywhere

Resources

Schedule constraint Lack of Personnel Capability Little to no upfront costs (hardware and software) Not-so-powerful local machines *** *** *** *** *** *** ** * *** *** *** ** * ** * *** *** * * *** ** ** * ** ** *** ** * * NCS *** *** ** *** * * *** *** ** *** ***

Note:

Decision importance scale varies from project to project

Rating Scale Scale Criteria

* ** *** Unacceptable / Inappropriate Marginal Acceptable / Possible Strong / Appropriate

09/09/2009 @USC CSSE 33

University of Southern California

Center for Systems and Software Engineering 09/09/2009 @USC CSSE 34

University of Southern California In OCD

Center for Systems and Software Engineering NDI/NCS based system development process

Use Architected Agile Process Emphasize on Application NDIs, not System NDIs In FED Use NDI-intensive or Net-Centric Services Processes Use NDI, or Net-Centric Services Process

University of Southern California

Center for Systems and Software Engineering NDI/NCS based system development process

University of Southern California

Center for Systems and Software Engineering NDI/NCS based system development process

University of Southern California

Center for Systems and Software Engineering NDI/NCS based system development process

University of Southern California

Center for Systems and Software Engineering

University of Southern California

Center for Systems and Software Engineering NDI/NCS based system development process

University of Southern California

Center for Systems and Software Engineering

Outline

• • • • •

Non Developmental Item (NDI)

COTS, Open Source Software, Reuse library and Customer-furnished package Net-Centric Services (NCS)

Web services, Web application, Online application CSCI577 & Possible special cases

Process decision tables

Architected Agile, Use NDI, NDI-intensive, NCS Identify Objectives, Constraints and Priorities Explore Alternatives 09/09/2009 @USC CSSE 41

University of Southern California

Center for Systems and Software Engineering

Examples of OC&P

• •

Objectives

To allow volunteer candidates to submit application online

To provide a channel for donors to donate money to the organization Constraints

The system must be able to run on Linux machine

Maximum budget is $200 09/09/2009 @USC CSSE 42

University of Southern California

Center for Systems and Software Engineering

Identify Objectives & Constraints

Objectives Constraints Project Name

1. CSCI 511 2. Lyrics Website 3. Theater Stage 4. PodCast Website 5. RMIS 6. Growing Great

09/09/2009 @USC CSSE 43

University of Southern California

Center for Systems and Software Engineering

Identify Objectives & Constraints

Objectives Constraints Project Name

7. Online Recipe 8. Family Assessment 9. BBA Website 10. SPC Website 11. VALE 12. LANI

09/09/2009 @USC CSSE 44

University of Southern California

Center for Systems and Software Engineering

Identify Objectives & Constraints

Objectives Constraints Project Name

13. Freehelplist 14. Early Medieval 15. Blazer News Blast 16. BHCC 17. Client Case 18. Avenue of Ind Website

09/09/2009 @USC CSSE 45

University of Southern California

Center for Systems and Software Engineering

Identify Objectives & Constraints

Project Name

19. SHIELDS

Objectives Constraints

20. Bible Logos 21. Master Pattern 22. Healthcare the rightway 23. Bartweet 24. Brotherhood Crusade 25. AROHE

09/09/2009 @USC CSSE 46

University of Southern California

Center for Systems and Software Engineering

Explore Alternatives

09/09/2009 @USC CSSE 47

University of Southern California

Center for Systems and Software Engineering

Explore Alternatives

Possible NDI/ NCS Project Name

1. CSCI 511 2. Lyrics Website 3. Theater Stage 4. PodCast Website 5. RMIS 6. Growing Great

Full / Partial ? 09/09/2009 @USC CSSE 48

University of Southern California

Center for Systems and Software Engineering

Explore Alternatives

Possible NDI/ NCS Project Name

7. Online Recipe 8. Family Assessment 9. BBA Website 10. SPC Website 11. VALE 12. LANI

Full / Partial ? 09/09/2009 @USC CSSE 49

University of Southern California

Center for Systems and Software Engineering

Explore Alternatives

Possible NDI/ NCS Project Name

13. Freehelplist 14. Early Medieval 15. Blazer News Blast 16. BHCC 17. Client Case 18. Avenue of Indep Website

Full / Partial ? 09/09/2009 @USC CSSE 50

University of Southern California

Center for Systems and Software Engineering

Explore Alternatives

Project Name

19. SHIELDS

Possible NDI/ NCS Full / Partial ?

20. Bible Logos 21. Master Pattern 22. Healthcare the rightway 23. Bartweet 24. Brotherhood Crusade 25. AROHE

09/09/2009 @USC CSSE 51