Modern Systems Analysis and Design: Software Sourcing, Off-the-Shelf Evaluation, and Reuse Strategies
Fundamentals of Systems Sourcing and Outsourcing
Historical Context of Software Development:
- In early administrative computing, software development for organizations was conducted almost exclusively in-house and built entirely from scratch.
- Key historical milestones include J. Lyons & Sons developing the first business information system in the UK, and General Electric developing the first administrative information system (a payroll application) in the United States in
- Modern systems analysis and design has shifted from building every system component from scratch to identifying, sourcing, and combining existing software pieces, components, and third-party services into integrated business applications.
IT Outsourcing:
- Definition: Outsourcing is the practice of turning over responsibility for some or all of an organization's information systems applications and operations to an external firm.
- Core Strategic Motivators for Outsourcing:
- Freeing up internal resources to focus on core competencies.
- Increasing the revenue potential of the organization.
- Reducing time to market for products and services.
- Increasing process and operational efficiencies.
- Outsourcing noncore corporate activities that do not offer strategic competitive differentiation.
Categorization and Comparison of Software Sources

Overview of Primary Software Sources:
- Software components and systems are categorized into six primary sources: IT Services Firms, Packaged Software Providers, Enterprise Solutions Software, Cloud Computing, Open-Source Software, and In-House Development.
Information Technology (IT) Services Firms:
- Focus on helping client organizations develop custom information systems designed specifically for internal operational use.
- Employ highly skilled IT experts, software engineers, and management consultants.
- Selected when tasks require custom development, ongoing customer support, or when internal expertise is unavailable.
- Internal Staffing Requirements: Internal staff may be needed depending on the application and project scope.
- Example Firms: Accenture, Computer Sciences Corporation (CSC), IBM, HPE.
Packaged Software Providers:
- Produce commercial off-the-shelf (COTS) software designed to serve multiple market segments and generalized business processes.
- Prepackaged software is off-the-shelf and is not customizable.
- Standard off-the-shelf packages meet approximately of an average organization's functional requirements.
- Selected when the supported task is generic across industries.
- Internal Staffing Requirements: Requires some IS and business user staff to define requirements and evaluate candidate packages.
- Application Examples: Quicken, QuickBooks, Microsoft Word, TurboTax.
- Example Firms: Intuit, Microsoft, Oracle, SAP AG, Symantec.

Enterprise Solutions Software (Enterprise Resource Planning / ERP):
- ERP systems integrate individual traditional business functions (such as finance, human resources, sales, and manufacturing) into a series of unified modules so that a single transaction occurs seamlessly within a single information system rather than across separate systems.
- Key Advantages:
- Establishes a single central data repository, resulting in more consistent and accurate organizational data.
- Reduces ongoing system maintenance burdens.
- Selected for comprehensive systems that cross functional boundaries.
- Internal Staffing Requirements: Requires some internal staff, but relies heavily on specialized external implementation consultants.
- Example Vendors: SAP AG (the leading global ERP vendor) and Oracle.
Cloud Computing:
- Definition: The provision of computing resources, infrastructure, and software applications over the Internet, allowing clients to avoid direct investments in underlying infrastructure.
- Revenue and Delivery Models: Delivered via pay-per-use systems or Software as a Service (SaaS) licensing models.
- Market Size: The global cloud computing market was estimated at and projected to reach by
- Application Examples: Google Docs, Sheets, and Slides (online collaboration for documents, spreadsheets, and presentations) and Salesforce.com (Customer Relationship Management / CRM).
- Key Benefits:
- Frees internal staff from hardware and software management.
- Provides rapid deployment and instant access to software applications.
- Delivers corporate-quality software applications at lower costs.
- Key Concerns: Data security, privacy, vendor reliability, and system uptime.
- Example Firms: Amazon.com, Google, IBM, Microsoft, Salesforce.com.

Open-Source Software:
- Freely available software, including complete underlying source code, developed collaboratively by an open community of contributors.
- Delivers functional equivalence to commercial proprietary software.
- Software Examples: Linux operating system, MySQL database management system, Mozilla Firefox web browser.
- Primary Web Portal / Host: SourceForge.net.
- Commercial Business Models for Open-Source Software:
- Providing technical support, customization, and maintenance services.
- Selling enhanced, feature-rich commercial versions of the software.
- Internal Staffing Requirements: Requires IS and user staff to define requirements and evaluate open-source software packages.
In-House Development:
- Involves employing an organization's internal technical staff to design and construct information systems from scratch.
- Selected when internal resources and skilled staff are available, and the system must be fully customized.
- Considerations: Tends to increase long-term maintenance burdens. Organizations frequently implement hybrid solutions combining internal custom code with external software components.
Summary Tables of Software Sources:


Evaluation and Selection of Off-the-Shelf Software
Selection Criteria for Off-the-Shelf Software Packages:
- Cost: Detailed financial comparison of developing a system in-house versus purchasing or licensing a commercial software package.
- Functionality: The complete scope of tasks the software can execute, categorized into mandatory, essential, and desired features.
- Vendor Support: Assessment of whether the software vendor can provide reliable support, as well as the depth and availability of that support.
- Flexibility: The ease with which the software can be customized, configured, or adapted to match specific operational workflows.
- Documentation: Evaluation of the clarity, completeness, and currency of user manuals and technical system documentation.
Validating Purchased Software Information Using RFPs:
- Request for Proposal (RFP): A formal legal document provided to hardware and software vendors requesting detailed proposals on how their products and services will meet the specifications of a proposed system.
- Evaluation Steps when soliciting RFPs from multiple vendors:
- Establish an objective scoring weight and evaluation scale for each functional requirement and criteria item.
- Calculate a total cumulative score for each vendor proposal received.
- Select the vendor achieving the highest composite score.
Software Reuse Frameworks and Strategies
Fundamentals of Software Reuse:
- Definition: Software reuse is the practice of using previously written software resources—specifically objects, components, and modules—in new application development projects.
- Core Development Technologies Supporting Reuse:
- Object-Oriented Development: Uses object classes that encapsulate data attributes and operational behavior representing common business entities (such as employees or customers).
- Component-Based Development: Focuses on assembling pre-built components that range from tiny objects to full software assemblies handling discrete business tasks.
- Organizational Factors Influencing Successful Reuse:
- Deep domain knowledge within the target application area.
- Dedicated technical and customer support infrastructure.
- Strong commitment and strategic understanding from executive leadership.
- Well-defined, disciplined organizational software development processes.
- Highly skilled and experienced software engineering staff.
Investment Economics for Reusable Software Assets:

Reusable asset creation requires upfront resource investments compared to single-application development (Royce & Walker framework):
1-Project Solution: Baseline development cost and time for single-use application code.
2-Project Solution: Requires more cost and more schedule time than single-project code to design reusable components.
5-Project Solution: Requires more cost and more schedule time during initial development.
Many-Project Solution: Provides high value per unit investment over time as fixed development costs are amortized across numerous software projects.
Three Basic Process Steps of Software Reuse (Grinter, 2001):
Abstraction: Designing software assets explicitly to be reusable across multiple systems.
Storage: Building indexed repositories to store and distribute reusable software components.
Recontextualization: Providing documentation and technical context so developers can understand and adapt components for new applications.
- Four Approaches to Organizational Software Reuse (Griss, 2003):

- Ad hoc Approach:
- Reuse Level: None to low
- Cost: Low
- Policies and Procedures: None; individual developers independently locate or create reusable assets on their own initiative.
- Facilitated Approach:
- Reuse Level: Low
- Cost: Low
- Policies and Procedures: Developers are encouraged to reuse software assets, but compliance is voluntary.
- Managed Approach:
- Reuse Level: Moderate
- Cost: Moderate
- Policies and Procedures: The development, sharing, and adoption of reusable assets are mandatory; organizational policies are established for documentation, packaging, and certification.
- Designed Approach:
- Reuse Level: High
- Cost: High
- Policies and Procedures: Reuse is mandated across the organization; formal metrics track reuse effectiveness; code must be architected for reuse during initial development regardless of target application; often supported by a dedicated corporate office for software reuse.