330 likes | 556 Views
COMPONENT-BASED DEVELOPMENT. The SDLC focuses only on the project at hand Component-based development (CBD) – focuses on building small self-contained blocks of code (components) that can be reused across a variety of applications CBD focuses on
E N D
COMPONENT-BASED DEVELOPMENT • The SDLC focuses only on the project at hand • Component-based development (CBD) – focuses on building small self-contained blocks of code (components) that can be reused across a variety of applications • CBD focuses on • Using already-developed components to build systems quickly • Building new components as needed that can be used in all future systems
Component-Based Development Methodologies • Rapid application development (RAD) • Extreme programming (XP) • Agile methodology
Rapid Application Development (RAD) • Rapid application development (RAD) (also called rapid prototyping) - emphasizes extensive user involvement in the rapid and evolutionary construction of working prototypes of a system to accelerate the systems development process • Prototypes are models of the software components • The development team continually designs, develops, and tests the component prototypes until they are finished
Rapid Application Development (RAD) Use already-existing software components Build new software components
Extreme Programming (XP) • Extreme programming (XP) - breaks a project into tiny phases and developers cannot continue on to the next phase until the first phase is complete
Agile Methodology • Agile methodology - a form of XP, aims for customer satisfaction through early and continuous delivery of useful software components
SoA – An Architecture Perspective • Service-oriented architecture (SoA) – perspective that focuses on the development, use, and reuse of small self-contained blocks of code (called services) to meet all application software needs • All CBD methodologies adhere to an SoA • Services are the same as components, which are the same as small self-contained blocks of code • More in Chapter 7
SELFSOURCING • Selfsourcing (end-user development) – the development and support of IT systems by end users with little or no help from IT specialists • Do-it-yourself systems development approach • Can relieve IT specialists of the burden of developing many smaller systems
Selfsourcing Approach • Is similar to traditional SDLC • Big exception is that design, development, testing, and implementation are replaced by the process of prototyping • Prototyping is the process of building models, and – in this case – continually refining those models until they become the final system
Selfsourcing Advantages • Improves requirements determination • Increases end user participation and sense of ownership • Increases speed of systems development • Reduces invisible backlog • Invisible backlog – list of all systems that an organization needs to develop but – because of the prioritization of systems development needs – never get funded because of the lack of organizational resources
Selfsourcing Disadvantages • Inadequate end user expertise leads to inadequately developed systems • Lack of organizational focus creates “privatized” IT systems • Insufficient analysis of design alternatives leads to subpar IT systems • Lack of documentation and external support leads to short-lived systems
The Right Tool for the Job • End users must have development tools that: • Are easy to use • Support multiple platforms • Offer low cost of ownership • Support a wide range of data types
PROTOTYPING • Prototype – a model of a proposed product, service, or system • Prototyping - the process of building a model that demonstrates the features of a proposed product, service, or system • Proof-of-concept prototype - used to prove the technical feasibility of a proposed system • Selling prototype - used to convince people of the worth of a proposed system
The Prototyping Process • The prototyping process involves four steps: • Identify basic requirements • Develop initial prototype • User review • Revise and enhance the prototype
Advantages of Prototyping • Encourages active user participation • Helps resolve discrepancies among users • Gives users a feel for the final system • Helps determine technical feasibility • Helps sell the idea of a proposed system
Disadvantages of Prototyping • Leads people to believe the final system will follow • Gives no indication of performance under operational conditions • Leads the project team to forgo proper testing and documentation
OUTSOURCING • Outsourcing – the delegation of specified work to a third party for a specified length of time, at a specified cost, and at a specified level of service • The third “who” option of systems development, after insourcing and selfsourcing
OUTSOURCING • The main reasons behind the rapid growth of the outsourcing industry include the following: • Globalization • The Internet • Growing economy and low unemployment rate • Technology • Deregulation
Outsourcing Options • IT outsourcing for software development can take one of four forms: • Purchase existing software • Purchase existing software and pay the publisher to make certain modifications • Purchase existing software and pay the publisher for the right to make modifications yourself • Outsource the development of an entirely new and unique system for which no software exists
Outsourcing Process • Like selfsourcing, the selfsourcing process looks similar to the traditional SDLC • Big exception here is that you “outsource” most of the work to another company
Outsourcing Process When outsourcing, you’ll develop two vitally important documents – a request for proposal and a service level agreement
Outsourcing Options • There are three different forms of outsourcing: • Onshore outsourcing -the process of engaging another company within the same country for services • Nearshore outsourcing - contracting an outsourcing arrangement with a company in a nearby country • Offshore outsourcing - contracting with a company that is geographically far away
The Advantages and Disadvantages of Outsourcing • Advantages: • Focus on unique core competencies • Exploit the intellect of another organization • Better predict future costs • Acquire leading-edge technology • Reduce costs • Improve performance accountability
The Advantages and Disadvantages of Outsourcing • Disadvantages: • Reduces technical know-how for future innovation • Reduces degree of control • Increases vulnerability of your strategic information • Increases dependency on other organizations