Presentation is loading. Please wait.

Presentation is loading. Please wait.

University of Southern California Center for Systems and Software Engineering NDI and Services-Based Software Development Process Supannika Koolmanojwong.

Similar presentations


Presentation on theme: "University of Southern California Center for Systems and Software Engineering NDI and Services-Based Software Development Process Supannika Koolmanojwong."— Presentation transcript:

1 University of Southern California Center for Systems and Software Engineering NDI and Services-Based Software Development Process Supannika Koolmanojwong November 2, 2009

2 University of Southern California Center for Systems and Software Engineering Outline Non Developmental Item (NDI) Net-Centric Services (NCS) What are in the process? 11/02/20092@USC CSSE

3 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 11/02/20093@USC CSSE

4 University of Southern California Center for Systems and Software Engineering Common NDIs in CSCI577 Application-NDI –MS office, WordPerfect –OCR software –Joomla, Drupal, Wordpress –Coldfusion, Dreamweaver System-NDI –Language: PHP, C++, Java, –Database: MySQL –Server: Apache –Others: Java Libraries 11/02/20094@USC CSSE

5 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 511/02/2009@USC CSSE

6 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. 611/02/2009@USC CSSE

7 University of Southern California Center for Systems and Software Engineering COTS Advantages and Disadvantages 711/02/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 @USC CSSE

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

9 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. 911/02/2009@USC CSSE

10 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? 1011/02/2009@USC CSSE

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

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

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

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

15 University of Southern California Center for Systems and Software Engineering Types of NDI-based systems 15 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 11/02/2009@USC CSSE

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

17 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 11/02/200917@USC CSSE

18 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 18@USC CSSE

19 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 1911/02/2009@USC CSSE

20 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 11/02/200920@USC CSSE

21 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 2111/02/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. 11/02/200922@USC CSSE

23 University of Southern California Center for Systems and Software Engineering Popular NCSs Web services –Google Services, Yahoo Services 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, Salesforce 11/02/200923@USC CSSE

24 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 11/02/200924@USC CSSE

25 University of Southern California Center for Systems and Software Engineering NDI, NCS characteristics 11/02/200925 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 * Will you be able to freeze the version you are using? @USC CSSE

26 University of Southern California Center for Systems and Software Engineering Software Process Model ISO/IEC 12207 RUP /MBASE Incremental Commitment Model 11/02/2009@USC CSSE26

27 University of Southern California Center for Systems and Software Engineering Aug. 28, 2009© USC-CSE 2007-2008Page 27 The Incremental Commitment Model Life Cycle Process: Overview Stage I: DefinitionStage II: Development and Operations Anchor Point Milestones Synchronize, stabilize concurrency via FEDs Risk patterns determine life cycle process

28 University of Southern California Center for Systems and Software Engineering Aug. 28, 2009© USC-CSE 2007-2008Page 28 ICM HSI Levels of Activity for Complex Systems

29 University of Southern California Center for Systems and Software Engineering 09/09/2009@USC CSSE29

30 University of Southern California Center for Systems and Software Engineering Software Development Phase Activities: 11/02/2009@USC CSSE30 RequirementsDesignImplementation Acceptance & DeploymentSustainment ExplorationValuationFoundations Development (Maintenance) (Construction)(Transition) Custom Development Activities  Explore alternatives  Ops Concept  Preliminary Design  Code & Unit Test  Acceptance Test  Operations  Planning  Detailed Design  Component Test  Site Installation  Maintenance  Software Reqms  System Test  Site Activation  Enhancements  Architecture  Feasibility Evidence COTS Specific Activities  Explore alternatives  Definition of Objectives Constraints & Priorities  Tailoring  Acceptance Test  Component Refresh  NDI/NCS Component Identification  Glue code development  Site Installation  Maintenance  NDI/NCS Assessment/Selection  NDI Integration & Test  Site Activation  Prototyping  Feasibility Evidence  Component Refresh

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 11/02/200931@USC CSSE

32 University of Southern California Center for Systems and Software Engineering Practices Operational Concept Development Practice System and Software Requirements Development Practice System and Software Architecture Development Practice Life Cycle Planning Practice Feasibility Evidence Description Practice Prototyping and Implementation Practice Quality Management Practice Testing Practice 11/02/2009@USC CSSE32

33 University of Southern California Center for Systems and Software Engineering Project Roles 11/02/2009@USC CSSE33

34 University of Southern California Center for Systems and Software Engineering NDI/NCS based system development process

35 University of Southern California Center for Systems and Software Engineering NDI/NCS based system development process

36 University of Southern California Center for Systems and Software Engineering NDI/NCS based system development process

37 University of Southern California Center for Systems and Software Engineering NDI/NCS based system development process

38 University of Southern California Center for Systems and Software Engineering

39 University of Southern California Center for Systems and Software Engineering NDI/NCS based system development process

40 University of Southern California Center for Systems and Software Engineering Conclusion Need for NDI/NCS-based software development process –No one-size fits all –Need different roles, responsibilities, criteria, work products Follow the right process –higher quality project –Less cost –More effective 11/02/2009@USC CSSE40


Download ppt "University of Southern California Center for Systems and Software Engineering NDI and Services-Based Software Development Process Supannika Koolmanojwong."

Similar presentations


Ads by Google