ndi & ncs in csci 577

51
University of Southern California Center for Systems and Software Engineering NDI & NCS in CSCI 577 Extended from Jesal Bhuta’s presentation for CSCI577a Fall 2006 Supannika Koolmanojwong 09/09/09

Upload: kylee

Post on 14-Jan-2016

47 views

Category:

Documents


0 download

DESCRIPTION

NDI & NCS in CSCI 577. Supannika Koolmanojwong 09/09/09. Extended from Jesal Bhuta’s presentation for CSCI577a Fall 2006. Outline. Non Developmental Item (NDI) COTS, Open Source Software, Reuse library and Customer-furnished package Net-Centric Services (NCS) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

NDI & NCS in CSCI 577

Extended from Jesal Bhuta’s presentation for CSCI577a Fall 2006

Supannika Koolmanojwong

09/09/09

Page 2: NDI & NCS in CSCI 577

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

Page 3: NDI & NCS in CSCI 577

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

Page 4: NDI & NCS in CSCI 577

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

Page 5: NDI & NCS in CSCI 577

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

@USC CSSE 509/09/2009

Page 6: NDI & NCS in CSCI 577

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.

@USC CSSE 609/09/2009

Page 7: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

COTS Advantages and Disadvantages

@USC CSSE 709/09/2009

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

Page 8: NDI & NCS in CSCI 577

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)

@USC CSSE 809/09/2009

Page 9: NDI & NCS in CSCI 577

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.

@USC CSSE 909/09/2009

Page 10: NDI & NCS in CSCI 577

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?

@USC CSSE 1009/09/2009

Page 11: NDI & NCS in CSCI 577

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

@USC CSSE 1109/09/2009

Page 12: NDI & NCS in CSCI 577

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

@USC CSSE 1209/09/2009

Page 13: NDI & NCS in CSCI 577

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

@USC CSSE 1309/09/2009

Page 14: NDI & NCS in CSCI 577

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

@USC CSSE 1409/09/2009

Page 15: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

Types of NDI-based systems

@USC CSSE 15

System with no NDI product

System with just a single NDI product

% ofCapabilityRequirementsImplementedby NDI products

100%

0%

30%

NDIBasedApplications

09/09/2009

Page 16: NDI & NCS in CSCI 577

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

@USC CSSE 1609/09/2009

Page 17: NDI & NCS in CSCI 577

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

Page 18: NDI & NCS in CSCI 577

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

Page 19: NDI & NCS in CSCI 577

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

@USC CSSE 1909/09/2009

Page 20: NDI & NCS in CSCI 577

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

Page 21: NDI & NCS in CSCI 577

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/

market trend / product line

@USC CSSE 2109/09/2009

Page 22: NDI & NCS in CSCI 577

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

Page 23: NDI & NCS in CSCI 577

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

Page 24: NDI & NCS in CSCI 577

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

Page 25: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

NDI, NCS characteristics

09/09/2009 @USC CSSE 25

Characteristics NDI NCS

Platform Independent Yes / No Yes

Required Internet Access Yes / No Yes

Common Standard No Yes

Option of rejecting next release* Yes No

Change / upgrade control Client /Server’s site Server’s site

End user has the latest version Yes / No Yes

Database Ownership Yes Yes/No

* Will you be able to freeze the version you are using?

Page 26: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

NCS Advantages and DisadvantagesAdvantages Disadvantages

09/09/2009 @USC CSSE 26

Page 27: NDI & NCS in CSCI 577

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

Page 28: NDI & NCS in CSCI 577

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

Page 29: NDI & NCS in CSCI 577

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

Page 30: NDI & NCS in CSCI 577

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

Page 31: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

ICM Special CasesSpecial Case Example

1. Use NDI Small accounting

2. Agile E-services

3. Architected Agile Business data processing

4. Formal Methods Security kernel; Safety-critical LSI chip

5. HW with embedded SW component Multi-sensor control device

6. Indivisible IOC Complete vehicle platform

7. NDI- intensive Supply chain management

8. Hybrid agile/ plan-driven system C4ISR system

9. Multi-owner system of systems Net-centric military operations

10. Family of systems Medical device product line

11. Brownfield Incremental legacy phaseout

12a. Net- Centric Services

— Community SupportCommunity Services or Special Interest Group

12b. Net-Centric Services

—Quick Response Decision SupportResponse to competitor initiative

09/09/2009 @USC CSSE 31

Page 32: NDI & NCS in CSCI 577

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

approach09/09/2009 @USC CSSE 32

Page 33: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

Special Case Decision Driver

09/09/2009 @USC CSSE 33

  Importance* Architected Agile  Use NDI  NDI-

Intensive  NCS 

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

Life CycleNeed control over upgrade / maintenance    ***       Rapid Deployment; Faster time to market     ***  **  ** 

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

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

Note: Decision importance scale varies from project to projectRating Scale Scale Criteria

Unacceptable / Inappropriate

* Marginal

** Acceptable / Possible

*** Strong / Appropriate

Page 34: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

09/09/2009 @USC CSSE 34

Page 35: NDI & NCS in CSCI 577

University of Southern California

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

In OCD

Use Architected Agile ProcessEmphasize on

Application NDIs, not System NDIs

In FED

Use NDI, or Net-Centric Services Process

Use NDI-intensive or Net-Centric

Services Processes

Page 36: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

NDI/NCS based system development process

Page 37: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

NDI/NCS based system development process

Page 38: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

NDI/NCS based system development process

Page 39: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

Page 40: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

NDI/NCS based system development process

Page 41: NDI & NCS in CSCI 577

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

Page 42: NDI & NCS in CSCI 577

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

Page 43: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

Identify Objectives & Constraints

09/09/2009 @USC CSSE 43

Project Name Objectives Constraints

1. CSCI 511

2. Lyrics Website

3. Theater Stage

4. PodCast Website

5. RMIS

6. Growing Great

Page 44: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

Identify Objectives & Constraints

09/09/2009 @USC CSSE 44

Project Name Objectives Constraints

7. Online Recipe

8. Family Assessment

9. BBA Website

10. SPC Website

11. VALE

12. LANI

Page 45: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

Identify Objectives & Constraints

09/09/2009 @USC CSSE 45

Project Name Objectives Constraints

13. Freehelplist

14. Early Medieval

15. Blazer News Blast

16. BHCC

17. Client Case

18. Avenue of Ind Website

Page 46: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

Identify Objectives & Constraints

09/09/2009 @USC CSSE 46

Project Name Objectives Constraints

19. SHIELDS

20. Bible Logos

21. Master Pattern

22. Healthcare the rightway

23. Bartweet

24. Brotherhood Crusade

25. AROHE

Page 47: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

Explore Alternatives

09/09/2009 @USC CSSE 47

Page 48: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

Explore Alternatives

09/09/2009 @USC CSSE 48

Project Name Possible NDI/ NCS Full / Partial ?

1. CSCI 511

2. Lyrics Website

3. Theater Stage

4. PodCast Website

5. RMIS

6. Growing Great

Page 49: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

Explore Alternatives

09/09/2009 @USC CSSE 49

Project Name Possible NDI/ NCS Full / Partial ?

7. Online Recipe

8. Family Assessment

9. BBA Website

10. SPC Website

11. VALE

12. LANI

Page 50: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

Explore Alternatives

09/09/2009 @USC CSSE 50

Project Name Possible NDI/ NCS Full / Partial ?

13. Freehelplist

14. Early Medieval

15. Blazer News Blast

16. BHCC

17. Client Case

18. Avenue of Indep Website

Page 51: NDI & NCS in CSCI 577

University of Southern California

Center for Systems and Software Engineering

Explore Alternatives

09/09/2009 @USC CSSE 51

Project Name Possible NDI/ NCS Full / Partial ?

19. SHIELDS

20. Bible Logos

21. Master Pattern

22. Healthcare the rightway

23. Bartweet

24. Brotherhood Crusade

25. AROHE