• Join over 1.2 million students every month
  • Accelerate your learning by 29%
  • Unlimited access from just £6.99 per month

Systems Development and Implementation

Extracts from this document...


Systems Development and Implementation

By Group C8:

Amit Anand (PG040012)

Gautam Waingankar (PG040055)

Mithun Banerjee (PG040095)

Sidharth Bhargava (PG040184)

Suraj Jadhav (PG040205)

Vineet Agrawal (PG040043)

Systems Development and Implementation

1.Executive Summary

2.Sources of value for the user

3.The software value chain

3.1.Applications and infrastructure

3.2.Industry organization

4.Modularity in software development

4.1.Appropriation of value

4.1.1.Value for customers and end-users

4.1.2.Value for suppliers

4.1.3.Value for systems integrators


4.1.5.Increasing vendor cooperation


5.Object oriented software development

6.Components based software development (CBSD)

7.The future of software development

7.1.Grid computing

7.2.Software as a utility

7.3.Pattern-centric development

7.4.Aspect oriented programming

8.Build, buy or rent?

8.1.Economic considerations

9.Implementation strategy - Big-bang or phased approach

9.1.Big Bang approach

9.2.Phased approach


  1. Executive Summary

The report examines systems development and implementation with focus on the software value chain. It analyses the impact of marketplace issues on software design and the ways and means to create value for the customers. It takes a look at object oriented software development, a modular software development technique that has been widely adopted. It views the future trends in software development and the pros and cons of making, buying or renting software. Finally, it examines the two ways of implementing systems and their relative merits and demerits.

  1. Sources of value for the user

The primary purpose of software is to serve the needs of its end users. Some of the generic value factors from the perspective of the user are as follows

  • Productivity and impact – The tangible impact an application has on the organization such as improving productivity, reducing time to accomplish tasks, better management of knowledge assets etc.
  • Network effects – The increase in value of the application with the increase in number of users that use the application.
  • Usage – Higher the usage (more number of users and more use per user), higher the value.
  • Quality and performance – Defects observed in the system, the volume that the system can handle and its response time are some of the factors.
  • Usability – Users’ perception of how easy it is to use the application
  • Flexibility and extensibility – Flexibility in meeting changing requirements is valued, especially in business applications.
  • Composability - A single closed software solution offers less value than one that can be combined with other solutions to achieve greater functionality. This is called the composability of complementary software solutions.
  1. The software value chain

  1. Applications and infrastructure

The most fundamental architectural concept in software is the decomposition into application and infrastructure. With some notable exceptions, firms in the industry generally specialize in one or the other. The core competencies for providing applications and providing infrastructure are different. Applications focus the value proposition on end users, and infrastructure provides value primarily to application developers and to operators. Applications are valued most of all for functionality and usability; their performance and technical characteristics are more dependent on infrastructure. It is advantageous to move as much technical capability to the infrastructure as possible, so application developers can focus on user needs. Considering the separation of application from infrastructure, there are two supplier value chains as shown in the figure below.


  1. Industry organization

Since companies tend to form around individual units of value that enhance internal synergies and exploit common expertise, industrial organization can be thought of as a partitioning of the value chain into distinct companies. In these terms, there are natural businesses formed by partitioning of the value chain as shown in the figure below


The application software supplier typically bundles the analysis and development functions, working closely with the end-user organization to define requirements.

The infrastructure software supplier must be cognizant of the requirements imposed by a wide range of applications. The system integrator specializes in provisioning. This role takes responsibility for acquiring software from both application and infrastructure suppliers (usually more than one), does whatever is necessary to make it work together, and installs and tests the software. Some programming is typically involved as well.

Another role in provisioning is the consultant, who helps the end-user organization rework the organization and business processes around the software, and often helps configure the software to the needs of the particular end-user. Operation is the specialty of a service provider. An application service provider (ASP) licenses and operates the application, while an infrastructure service provider (ISP) purchases or licenses and operates the hardware and software infrastructure (computers, storage, network, operating system, etc.).

  1. Modularity in software development

Modularization is a mechanism for improving the flexibility and comprehensibility of a system while shortening its development time. Modularization has three purposes from an engineering perspective

  • To make complexity manageable
  • To enable parallel work
  • To accommodate future uncertainty

The benefits of using a modular approach in software design are as follows

  • Modules are easy to replace
  • Each module captures one feature of the problem, so aiding comprehension (and hence maintenance); as well as providing a framework for designing as a team
  • A well-structured module can easily be reused for another problem
...read more.


  1. Appropriation of value

Layering is a specific architecture in which modules share a vertical relationship: Each layer is dependent on the layers below. The layers are thereby complementary, and all layers are necessary to support an application. The figure below shows an example of infrastructure layering.


The layered architecture has profound implications for industry structure. Specialization tends to occur at the individual layers, rather than being associated with narrower classes of applications. This moves away from vertical integration and towards horizontal integration, and no single company can provide a complete integrated solution to the customer. Competition forms at the individual layers, and customers (or a system integrator or intermediary) must integrate products together for a complete solution.

  1. Value for customers and end-users

Customers resist large monolithic applications which minimize the customer’s integration costs but also constrain functionality and incur greater switching costs. Modular software if accompanied with the option for matching and mixing products from different suppliers provides an alternative. Modular software provides higher flexibility and extensibility to meet process differences and variations.

  1. Value for suppliers

Suppliers can reduce their development costs by investing in components that can be reused in multiple applications. Modularity in software creates value in the form of real options to improve a system by experimenting with new implementations and substituting any superior ones that are found.

  1. Value for systems integrators

Systems integrators add value by assembling components into systems and provisioning the application.

  1. Pricing

Modular design is essential for two pricing strategies for extracting value.

Value pricing or price discrimination involves segmenting customers into groups and charging different prices. A common approach is creating different product variants and let customers self-select based on their willingness to pay. The design must allow different combinations of features and performance sets.

Bundling involves packaging different software products or feature sets to sell as a unit. In anticipation of bundling, the design of individual products—both internal and external —should anticipate opportunities to compose its constituent products.

  1. Increasing vendor cooperation

Encouraging complementary solutions from other vendors increases value, although with little differentiation from competitors who can exploit the same complements. Two ways to encourage complementary solutions are standardization and APIs. Open APIs invite extension through complementary products or context-specific add-ons by the user. However, they also cede market share in the interest of encouraging innovation, broader choice, and customization. An API creates an implicit, long-term obligation for customer support. Proprietary solutions offer greater opportunity for innovation and differentiation from competitors but cause customer concern about lock-in and fewer complementarities. Standardization ensures interoperability with complements and is popular with the customers. However it increases competitive pressures as it gives the customer an opportunity to mix and match solutions from different suppliers.

  1. Costs

A supplier’s costs include first-copy development and testing, distribution, customer support, and recurring development. Three important market-related cost factors are platform and distribution, recurring costs, and reuse and multiple uses. An application-as-service business model eliminates the customer’s platform dependency. The model reduces the supplier’s development costs by reducing or eliminating the number of heterogeneous platforms that must be supported. In addition, the model reduces the customer’s costs by shifting user support from software supplier to service provider.

A supplier can reduce development costs through code reuse or buying/licensing components.

  1. Object oriented software development

Object oriented software development is a paradigm that supports modularization and reuse. It views a system as a collection of self-contained objects which include both data and processes. The objectives of object oriented development are

  • Build objects as individual pieces and then put together to form a system. They can be reused over and over in many different systems without affecting other components.
  • Allow analysts to break a complex system into smaller, more manageable components, to work on the components individually, and to more easily piece the components back together to form a system. This modularity makes system development easier to grasp, easier to share among members of a project team, and easier to communicate to users who are needed to provide requirements and confirm how well the system meets the requirements through the Systems Development Life Cycle (SDLC).
  • Allow creation of reusable pieces that can be reused in other systems or as starting points for other projects.
...read more.


A clear plan to handle the delivery and accommodation of the hardware to minimize disruption to the workplace (e.g. workplace and workstation layout, cable installation and management).

Phased rollout

Big Bang rollout

Preferred for Complex, mission critical applications, to reduce various business and technology risks

Preferred for small and non-mission

critical applications and for some

COTS package implementations.

Reduces the impact or Organizational change from introduction of new technology, training large user bases and so on.

High risk, especially if using new technologies and/or methodologies.

Need to design and develop throwaway interfaces to support legacy co-existence.

May not require designing and development of throwaway interfaces to support legacy co-existence, with the legacy system that is being replaced.

Additional time required for training and testing of each release.

Training and Testing will be a one time effort.

Need to maintain both old and new applications during the transition period.

May not necessitate maintenance of both old and new applications at any time.

The following table compares the two approaches.


  • Industrial and Economic Properties of Software - Technology, Processes, and Value -David G. Messerschmitt Department of Electrical Engineering and Computer Sciences University of California Berkeley, California, USA
  • Software Creation Industry- Software Ecosystems – MIT Press
  • Modularity in the Design of Complex Engineering Systems - Carliss Y. Baldwin, Kim B. Clark January, 2004
  • From Subroutines to Subsystems: Component-Based Software Development -Paul C. Clements
  • Software Engineering Institute, Carnegie Mellon University
  • Marketplace Issues in Software Planning and Design - David G. Messerschmitt, University of California, Berkeley Clemens Szyperski, Microsoft Research
  • The Structure and Value of Modularity in Software Design - Kevin J. Sullivan William G. Griswold Yuanfang Cai, Ben Hallen
  • The limits of software – Grady Booch – IBM Software Group
  • System analysis and design – Alan Dennis and Barbara Haley Wixom
  • Developer Works articles - www.ibm.com/developer
  • Overview of Modular Product Development CHUN-CHE HUANG Laboratory of Intelligent Systems and Information Management Department of Information Management National Chi-Nan University Puli, Taiwan, R.O.C.
  • http://www.tcs.com/0_whitepapers/htdocs/engineering/towards_more_manageable_customized_servers.pdf

...read more.

This student written piece of work is one of many that can be found in our University Degree Software Engineering section.

Found what you're looking for?

  • Start learning 29% faster today
  • 150,000+ documents available
  • Just £6.99 a month

Not the one? Search for your essay title...
  • Join over 1.2 million students every month
  • Accelerate your learning by 29%
  • Unlimited access from just £6.99 per month

See related essaysSee related essays

Related University Degree Software Engineering essays

  1. Programming Concepts. Andora Video is a small shop selling videos. The owner, Raul, wishes ...

    double vdSubtotal = vdPrice * vdQty; System.out.println("Subtotal: " + vdSubtotal); // Discount is calculated depending on the quantity if (vdQty >= 15) discount = disFor15Plus * vdSubtotal; else if (vdQty >= 10) discount = disFor10To14 * vdSubtotal; else if (vdQty >= 5)

  2. MS Office solutions. Fantasy mobiles require: ...

    This is so that I can access the visual basic editor. I then went about creating a worksheet and named it 'inventory'. I added make, model and stock quantity columns and below them entered relevant data. The actual range of data underneath the model column header had to be collectively named in order for it to be identified.

  1. 3ISE517 Internet Application Programming - CGI

    The server sends back a HTTP response to the browser, containing the HTML code for the webpage. The web browser would then interpret the HTML tags and display the web page. Using the Common Gateway Interface The Common Gateway Interface (CGI)

  2. 3SFE504 - Object Oriented Programming - Linear and Independent Hash Table code

    //Definition.h #include<string> using namespace std; class Definition { public: Definition(); ~Definition(); void setDefinition(string); //setter method void setNext(Definition*); //setter method string getDefinition(); //getter method Definition* getNext(); // Definition pointed to getNext method private: string definition; Definition* next; }; //Definition.cpp #include<iostream> #include "Definition.h" #include<string> using namespace std; Definition::Definition()

  1. Rich Internet Applications

    Adobe believes that RIA: - 'offer a rick, engaging experience that improves user satisfaction and increases productivity using the broad reach of the internet'. [http: 2] This is merely saying that Adobe are enabling developers to build applications that can do so much more than just view HTML data and

  2. software program specification and code for a DVD store

    { totalcost=DVDcost*number; cout << "\nSmall orders may be dispatched by special delivery to arrive within 2 hours."; cout << "\nTotal cost including VAT is: "; cout << totalcost+VAT; // total cost including VAT } else { totalcost=DVDcost*number; cout << "\nTotal cost including VAT is: "; cout << totalcost+VAT; } cout<<endl<<endl;

  1. Evaluating Websites Usability - comparing 5 websites.

    There are links to apply for course through the CAO system or directly to Lit. This is good but does not offer a status report on how the application progressing. Other Useful Information: 1. In the ?About? drop down menu there is good link to ?Academic Council?, Freedom of Information?, ?Governing Body?, ?Report/ Procedures/ Plans? and ?Useful links?.

  2. Abstract This report is dedicated to demonstrating and critically reviewing new features and developments ...

    Windows 7 provides improvements to the Windows Plug and Play infrastructure that support detecting and grouping various functions of a certain device. Grouping one or more device functions into a single device container lets Windows 7 represent these functions as a single "piece of plastic."

  • Over 160,000 pieces
    of student written work
  • Annotated by
    experienced teachers
  • Ideas and feedback to
    improve your own work