comp3521 Ch15

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

In most engineering disciplines, how are systems typically designed?

  • By focusing on original development and minimizing the use of external components.
  • By composing existing components that have been used in other systems. (correct)
  • By purchasing off-the-shelf software and integrating it.
  • By developing completely novel systems for each unique problem.

Which factor has significantly contributed to the increased focus on reuse-based development in software engineering over the past decade?

  • Reduced emphasis on software validation and verification.
  • A shift towards prioritizing original development over reusing existing components.
  • The need to achieve better software, more quickly and at a lower cost. (correct)
  • A decline in the complexity of software systems.

Which of the following reuse types involves using complete systems, including multiple application programs?

  • Object and function reuse
  • Application reuse
  • System reuse (correct)
  • Component reuse

An application is incorporated without change into another, or application families are developed. This is an example of...

<p>Application reuse. (A)</p> Signup and view all the answers

What is the focus of object and function reuse within software engineering?

<p>Reusing small-scale software components that implement a single well-defined object or function. (C)</p> Signup and view all the answers

Bringing a system to market as early as possible is often more important than overall development costs. Which of the following benefits of software reuse does this reflect?

<p>Accelerated development (D)</p> Signup and view all the answers

How does software reuse contribute to the effective use of specialists in a development team?

<p>It enables specialists to develop reusable software that encapsulates their knowledge, rather than repeatedly solving the same problems. (B)</p> Signup and view all the answers

Why is reused software often considered more dependable than newly developed software?

<p>Reused software has been tried and tested in working systems, so design and implementation faults should have been found and fixed. (D)</p> Signup and view all the answers

Which of the following benefits of software reuse most directly addresses project management concerns?

<p>Reduced process risk (A)</p> Signup and view all the answers

How does the reuse of standard user interfaces contribute to improved dependability for end users?

<p>It ensures that all applications use the same menu formats, reducing user errors due to familiarity. (A)</p> Signup and view all the answers

One potential problem with software reuse is the cost of creating, maintaining, and using a component library. Which outcome would most likely increase these costs?

<p>Development processes are not adapted to ensure that the library is used. (B)</p> Signup and view all the answers

What is a significant challenge related to finding, understanding, and adapting reusable software components?

<p>Making engineers reasonably confident of finding a component in the library before including a component search as part of their normal development process. (B)</p> Signup and view all the answers

Under what circumstance might reusing a software system or component lead to increased maintenance costs?

<p>If the source code of a reused software system or component is not available. (A)</p> Signup and view all the answers

Why might a lack of tool support pose a problem for development that incorporates software reuse?

<p>It may be difficult or impossible to integrate these tools with a component library system. (A)</p> Signup and view all the answers

What is the 'Not-invented-here' syndrome, and how does it relate to software reuse?

<p>A tendency among software engineers to rewrite components because they believe they can improve on them. (C)</p> Signup and view all the answers

Which of the following statements best describes the scope of the 'reuse landscape'?

<p>It covers the range of possible reuse techniques, from simple functions to complete application systems. (A)</p> Signup and view all the answers

Which approach to software reuse involves collections of abstract and concrete classes adapted and extended to create application systems?

<p>Application frameworks (D)</p> Signup and view all the answers

Selecting standard software architectures that support common types of application systems to use as the basis of applications, is an example of...

<p>Architectural patterns. (D)</p> Signup and view all the answers

Which approach to software reuse involves integrating two or more application systems to provide extended functionality?

<p>Application system integration (D)</p> Signup and view all the answers

What distinguishes aspect-oriented software development from component-based software engineering in the context of software reuse?

<p>Aspect-oriented development weaves shared components into an application at different places during compilation, while component-based development involves integrating collections of objects that conform to component-model standards. (A)</p> Signup and view all the answers

How are configurable application systems designed?

<p>To be configured to the needs of specific system customers. (D)</p> Signup and view all the answers

What role do design patterns play in supporting software reuse?

<p>They show generic abstractions that occur across applications as design patterns using abstract and concrete objects. (D)</p> Signup and view all the answers

What is the primary purpose of 'legacy system wrapping' in the context of software reuse?

<p>To define a set of interfaces and providing access to these legacy systems through these interfaces. (A)</p> Signup and view all the answers

How does model-driven engineering support software reuse?

<p>Software is represented as domain models and implementation independent models and code is generated from these models. (B)</p> Signup and view all the answers

A generator system embeds knowledge of a type of application and is used to generate systems in that domain from a user-supplied system model. This is an example of using which approach that supports software reuse?

<p>Program generators (D)</p> Signup and view all the answers

Which of the following approaches to software reuse focuses on generalizing an application type around a common architecture to adapt it for different customers?

<p>Software product lines (A)</p> Signup and view all the answers

Integrating two or more distributed systems to create a new system is an example of...

<p>Systems of systems. (B)</p> Signup and view all the answers

When planning for software reuse, which factor helps to determine the types of components or systems that should be considered for reuse?

<p>The criticality of the software and its non-functional requirements. (A)</p> Signup and view all the answers

What is the role of abstract and concrete classes in application frameworks?

<p>To provide a reusable architecture for a family of related applications. (A)</p> Signup and view all the answers

What architectural pattern is commonly used in web application frameworks (WAFs) for managing user interaction?

<p>Model-View-Controller (B)</p> Signup and view all the answers

In the Model-View-Controller (MVC) pattern, what is the role of the 'Controller'?

<p>To handle user input and update the model and view. (C)</p> Signup and view all the answers

What feature is commonly included in modern web application frameworks to enable more interactive web pages?

<p>AJAX support (B)</p> Signup and view all the answers

Why can extending frameworks be challenging?

<p>Because the complexity of frameworks means that it takes a long time to use them effectively. (A)</p> Signup and view all the answers

What is the primary characteristic of 'System infrastructure frameworks'?

<p>They support the development of system infrastructures such as communications, user interfaces and compilers. (A)</p> Signup and view all the answers

What is the function of 'Middleware integration frameworks'?

<p>To provide standards and classes that support component communication and information exchange. (D)</p> Signup and view all the answers

Which statement best describes the difference between application frameworks and software product lines regarding object-oriented features?

<p>Application frameworks rely on object-oriented features like polymorphism, while product lines need not be object-oriented. (A)</p> Signup and view all the answers

How do software product lines differ from application frameworks in their focus?

<p>Application frameworks focus on providing technical support; product lines embed domain and platform information. (A)</p> Signup and view all the answers

What is a critical characteristic of product line architectures that enables modification and separation of different subsystems?

<p>Loose coupling between subsystems to allow for independent changes. (D)</p> Signup and view all the answers

What is involved during component selection in deployment time configuration?

<p>Selecting the modules in a system that provide the required functionality. (A)</p> Signup and view all the answers

What is a key characteristic of an application system product designed for application system reuse?

<p>It can be adapted for different customers without changing the source code of the system. (C)</p> Signup and view all the answers

In the context of application system reuse, what does 'COTS' stand for?

<p>Commercial Off-The-Shelf (D)</p> Signup and view all the answers

What is a potential problem associated with application system reuse regarding the evolution of the system?

<p>The COTS product vendor controls system support and evolution. (A)</p> Signup and view all the answers

In reuse-based software engineering, what distinguishes 'application reuse' from 'component reuse'?

<p>Application reuse involves incorporating applications without change or developing application families, whereas component reuse focuses on reusing parts of an application, from subsystems to single objects. (B)</p> Signup and view all the answers

When considering the 'reuse planning factors' for a software project, how might a short 'development schedule' influence decisions?

<p>A short development schedule highlights the need to focus on reusing well-understood components to save time. (D)</p> Signup and view all the answers

Within the scope of software reuse, how do 'program generators' differ from 'program libraries'?

<p>Program generators use a model to create systems, while program libraries provide commonly used abstractions for direct use. (C)</p> Signup and view all the answers

How does 'design time configuration' differ from 'deployment time configuration' in the context of software product lines?

<p>Design time configuration modifies the product line core by developing, selecting, or adapting components, whereas deployment time configuration involves configuring a generic system with customer-specific settings. (C)</p> Signup and view all the answers

When adapting a software product line for a specific customer, which of the following actions would be classified as 'component and system configuration'?

<p>Selecting specific modules to enable or disable certain functionality of the system. (B)</p> Signup and view all the answers

How does the use of 'service-oriented interfaces' simplify 'application system integration'?

<p>By providing access to an application's functionality through standardized interfaces. (D)</p> Signup and view all the answers

How do the goals of system infrastructure frameworks and middleware integration frameworks diverge?

<p>System infrastructure frameworks aid in developing system infrastructures, whereas middleware integration frameworks focus on ensuring component communication and information exchange. (B)</p> Signup and view all the answers

When undertaking application system reuse, what is the most significant risk associated with the 'COTS (Commercial Off-The-Shelf) product vendor controlling system evolution'?

<p>The COTS product may evolve in ways that no longer align with the organization's needs. (B)</p> Signup and view all the answers

What distinguishes 'application system products' designed for reuse from custom-built software applications?

<p>Application system products can be adapted for different customers without modifying their source code. (C)</p> Signup and view all the answers

In the context of application frameworks, what does extending a framework typically involve?

<p>Adding concrete classes that inherit operations from abstract classes in the framework. (B)</p> Signup and view all the answers

Why might the lack of local expertise pose a significant problem for system development based on application system reuse?

<p>There might be difficulties in customizing and supporting the reused system. (B)</p> Signup and view all the answers

What is a primary architectural requirement for software product lines to facilitate maintainability and customization?

<p>An architecture structured to separate different subsystems, allowing them to be independently modified. (A)</p> Signup and view all the answers

In the context of a Model-View-Controller (MVC) pattern used in web application frameworks, what action is triggered when a user interacts with a 'View'?

<p>The 'View' notifies the 'Controller' to handle the user input. (D)</p> Signup and view all the answers

How do software product lines leverage the concept of 'adaptation' to tailor applications for specific contexts?

<p>By using a common architecture and shared components that can be configured, modified, or selected to meet varying requirements. (A)</p> Signup and view all the answers

Which of the following scenarios exemplifies 'Legacy system wrapping' as an approach to software reuse?

<p>Implementing a set of interfaces to access a legacy system's functionality without altering its core code. (A)</p> Signup and view all the answers

How can software reuse contribute to 'standards compliance' in software development?

<p>By allowing the implementation of standards as a set of reusable components. (C)</p> Signup and view all the answers

Concerning software reuse, what is the role of 'Abstract' classes in application frameworks?

<p>Specify essential interfaces and behaviors that must be implemented by concrete subclasses. (C)</p> Signup and view all the answers

What organizational dynamic can most directly counteract the 'Not-Invented-Here' syndrome when trying to promote software reuse?

<p>Incentivizing developers to contribute to and reuse existing components. (B)</p> Signup and view all the answers

How would selecting modules within a system to provide the required functionality be classified during deployment time configuration?

<p>Component selection (D)</p> Signup and view all the answers

An organization chooses to integrate two separate COTS (Commercial Off-The-Shelf) systems, one for CRM (Customer Relationship Management) and another for ERP (Enterprise Resource Planning). How would you categorize this approach?

<p>Application system integration (D)</p> Signup and view all the answers

With respect to defining levels of 'deployment time configuration', what action is represented by validation rules that should apply to information entered by users?

<p>Workflow and rule definition. (A)</p> Signup and view all the answers

What is a potential drawback of reusing software components when the source code is not available?

<p>Increased maintenance costs due to incompatibility with system changes (D)</p> Signup and view all the answers

Which task is most important when creating a framework?

<p>Planning for reuse through specialization and the addition of new objects. (A)</p> Signup and view all the answers

How do software product lines and frameworks differ?

<p>Frameworks must be object-oriented, while product lines may not be. (A)</p> Signup and view all the answers

Flashcards

Software Reuse

Designing systems by composing existing components used in other systems.

System Reuse

Reusing complete systems, including multiple application programs.

Application Reuse

Reusing an application, either by incorporating it without change or by developing application families.

Component Reuse

Reusing components of an application, from subsystems to individual objects.

Signup and view all the flashcards

Object and Function Reuse

Reusing small-scale software components that implement a single, well-defined object or function.

Signup and view all the flashcards

Accelerated Development

Bringing a system to market early is often crucial. Software reuse speeds up production by reducing overall time.

Signup and view all the flashcards

Effective Use of Specialists

Specialists develop reusable software, encapsulating their knowledge for broader use.

Signup and view all the flashcards

Increased Dependability

Reused software is more dependable due to prior testing and fixing of faults.

Signup and view all the flashcards

Lower Development Costs

Reusing software reduces the amount of new code, lowering expenses.

Signup and view all the flashcards

Reduced Process Risk

Known costs of existing software reduce project cost estimation errors.

Signup and view all the flashcards

Standards Compliance

Reusable components implement standards, ensuring consistent user interfaces and reducing user errors.

Signup and view all the flashcards

Component Library Costs

Populating and maintaining a reusable component library can be costly.

Signup and view all the flashcards

Component Search and Adaptation

Finding, understanding, and adapting reusable components presents challenges.

Signup and view all the flashcards

Maintenance Costs with Code Reuse

Maintenance costs increase if source code is unavailable, leading to incompatibility.

Signup and view all the flashcards

Lack of Tool Support

Some software tools lack support for development with reuse, hindering integration.

Signup and view all the flashcards

"Not-Invented-Here" Syndrome

Software engineers may prefer rewriting components, distrusting or disliking reuse.

Signup and view all the flashcards

Reuse Landscape

The range of possible software reuse techniques, from simple functions to complete systems.

Signup and view all the flashcards

Application Frameworks

Collections of adapted abstract and concrete classes to create application systems.

Signup and view all the flashcards

Application System Integration

Integrating two or more application systems to provide extended functionality.

Signup and view all the flashcards

Architectural Patterns

Software architectures supporting common application system types.

Signup and view all the flashcards

Aspect-Oriented Development

Shared components woven into an application during compilation.

Signup and view all the flashcards

Component-Based Engineering

Systems developed by integrating components conforming to component-model standards.

Signup and view all the flashcards

Configurable Application Systems

Systems designed to be configured to specific customers needs.

Signup and view all the flashcards

Design Patterns

Generic abstractions that represent design patterns.

Signup and view all the flashcards

ERP Systems

Large-scale systems with generic business functionality configured for organizations.

Signup and view all the flashcards

Legacy System Wrapping

Legacy systems 'wrapped' by defining interfaces for access.

Signup and view all the flashcards

Model-Driven Engineering

Software represented as domain/ independent models; code generated from models.

Signup and view all the flashcards

Program Generators

System embeds application knowledge and generates systems from a user- supplied model.

Signup and view all the flashcards

Program Libraries

Libraries that implement commonly used abstractions for reuse.

Signup and view all the flashcards

Service-Oriented Systems

Systems developed by linking shared services.

Signup and view all the flashcards

Software Product Lines

An application type generalized around a common architecture for different customers.

Signup and view all the flashcards

Systems of Systems

Integrating 2 or more distributed systems to create a new system.

Signup and view all the flashcards

Framework definition

A reusable architecture providing for a family of related applications.

Signup and view all the flashcards

Application frameworks

Entities that are subsystem design, between system and component reuse.

Signup and view all the flashcards

Web application frameworks

Frameworks for dynamic website construction.

Signup and view all the flashcards

Model-view controller

System infrastructure framework for GUI design.

Signup and view all the flashcards

Extending frameworks

Extending generic frameworks to create a more specific application or subsystem.

Signup and view all the flashcards

System infrastructure framework

Frameworks that support communications, user interfaces and compilers.

Signup and view all the flashcards

Middleware integration frameworks

Framework that supports communication and information exchange.

Signup and view all the flashcards

Enterprise application frameworks

Framework that supports the development of telecoms and financial.

Signup and view all the flashcards

Software product lines

Adaptation involves configuration, components and the system.

Signup and view all the flashcards

Base applications

Product lines based on reusable cores can offer infrastructure support and configuration language.

Signup and view all the flashcards

Application frameworks and product lines

Rely on polymorphism to implement patterns, but not object oriented.

Signup and view all the flashcards

Product line architecture

Product line must be structured to separate, modify and access subsystems.

Signup and view all the flashcards

Vehicle dispatching

Aim to allocate vehicles to handle incidents.

Signup and view all the flashcards

Platform specialization

Develop different application versions for platforms.

Signup and view all the flashcards

Environment specialization

Used for different operating environments.

Signup and view all the flashcards

Functional specialization

Versions created for different customer needs.

Signup and view all the flashcards

Process Specialization

Versions created to support business processes.

Signup and view all the flashcards

Design time configuration

Organization modifies common core.

Signup and view all the flashcards

Deployment time configuration

Generic system configures the customer.

Signup and view all the flashcards

Component selection

Modules selected in system for functionality.

Signup and view all the flashcards

Workflow and rule definition

Workflows defined by rules and user validation.

Signup and view all the flashcards

Parameter definition

Specify values of system parameters that reflect the created instance.

Signup and view all the flashcards

Application system reuse

Adapted for customers without changing system source code.

Signup and view all the flashcards

Enterprise Resource Planning (ERP)

An ERP system that supports common business processes such as ordering and invoicing.

Signup and view all the flashcards

ERP architecture

Supports different business functions.

Signup and view all the flashcards

ERP configurations

Selecting functionality from system.

Signup and view all the flashcards

Integrated application systems

May need the use of two or more products.

Signup and view all the flashcards

Design choices

Which systems offer the most appropriate functionality?

Signup and view all the flashcards

Service-oriented interfaces

Allowing system functionality access through interface.

Signup and view all the flashcards

Application system integration problems

Application systems may be less effective.

Signup and view all the flashcards

Study Notes

Software Reuse Overview

  • Software reuse involves designing systems by assembling existing components already used in other systems
  • Focus on original development in software engineering has shifted as software reuse has been recognised as a means to improve software quality, speed, and cost
  • There has been a substantial shift toward reuse-based development in the last decade

Reuse-Based Software Engineering Types

  • System reuse comprises reusing entire systems that may include multiple application programs
  • Application reuse includes incorporating applications without changes or developing application families
  • Component reuse includes reusing application components from subsystems down to individual objects
  • Object and function reuse covers reusing small components implementing specific objects or functions

Benefits of Software Reuse

  • Accelerated development enables quicker time to market
  • Reusing software speeds up system production due to reduced development and validation time
  • Effective use of specialists allows application experts to develop reusable software that encapsulates their knowledge
  • Increased dependability arises from using well-tested software with identified and fixed faults
  • Lower development costs result from needing to write fewer lines of code
  • Reduced process risk is achieved because the cost of existing software is already known when compared to estimated development costs
  • Standards compliance can be implemented through reusable components, such as consistent user interface menus, which improves dependability by creating familiar interfaces

Problems With Reuse

  • Creating, maintaining, and using a component library can be expensive
  • Development processes must be adapted to ensure library usage
  • Finding, understanding, and adapting reusable components can be difficult with Engineers needing confidence in finding components before including a component search
  • Increased maintenance costs occur when the source code of reused software is unavailable as reused elements become incompatible with system changes
  • Lack of tool support occurs because some software tools do not support development with reuse and may be hard to integrate with component library systems
  • The Not-invented-here syndrome stems from some engineers preferred to rewrite components, believing they can make improvements; this is partly due to confidence and partly due to the idea that writing original code is more challenging

The Reuse Landscape

  • Reuse involves various approaches beyond merely reusing system components
  • Reuse is possible at different levels ranging from simple functions to total application systems
  • The reuse landscape encompasses a variety of potential reuse techniques

Approaches That Support Software Reuse

  • Application Frameworks are collections of abstract and concrete classes adapted and extended to create application systems
  • Application System Integration includes two or more application systems integrated to provide extended functionality
  • Architectural Patterns are standard software architectures supporting common application system types and used as the basis for applications
  • Aspect-Oriented Software Development concerns shared components woven into an application at different compilation places
  • Component-Based Software Engineering builds Systems by integrating components conforming to component-model standards
  • Configurable Application Systems are domain-specific systems designed to be configured to meet specific customer needs
  • Design Patterns include generic abstractions occurring across applications, are represented as design patterns, and show abstract and concrete objects and interactions
  • ERP Systems are large-scale systems encapsulating generic business functionality with rules configured for an organization
  • Legacy System Wrapping entails legacy systems ‘wrapped’ by defining interfaces to provide access to these systems
  • Model-Driven Engineering means software is represented as domain models, and implementation-independent models and code are then generated
  • Program Generators include a generator system embedding knowledge of an application type and generates systems via a user-supplied system model
  • Program Libraries are class and function libraries that implement commonly used abstractions for reuse
  • Service-Oriented Systems include systems developed by linking shared services, which may be externally provided
  • Software Product Lines are an application type generalized around a common architecture for adaptation to different customers
  • Systems of Systems integrate two or more distributed systems to create a new system

Reuse Planning Factors

  • Consider the software's development schedule
  • Consider the software's expected lifetime
  • Take into account the development team's background, skills, and experience
  • Consider the criticality of the software and its non-functional requirements
  • Consider the application domain
  • Take into account the software's execution platform

Application Frameworks

  • Frameworks are moderately large entities, somewhere between system and component reuse, that can be reused
  • Frameworks are subsystem designs made of abstract and concrete classes, plus the interfaces between them
  • The subsystem is implemented by adding components to fill parts of the design and by instantiating the abstract classes in the framework

Web Application Frameworks (WAFs)

  • WAFs support the construction of dynamic websites as front-ends for web applications
  • WAFs are available for commonly used web programming languages like Java, Python and Ruby
  • Interaction models are based on the Model-View-Controller composite pattern

Model-View-Controller (MVC)

  • MVC is a system infrastructure framework for GUI design
  • MVC allows for multiple object presentations and separate interactions with these presentations
  • The MVC framework includes instantiating several patterns

WAF Features

  • Security includes classes that implement user authentication and access
  • Dynamic Web Pages involve classes to create web page templates and populate with dynamic content from system database
  • Database Support involves frameworks offering classes with abstract interfaces to different databases
  • Session management involves classes for creating and managing sessions with classes usually inside the WAF implementation
  • User interaction includes web frameworks with AJAX support, that allows more interactive web pages

Extending Frameworks

  • Frameworks are generic and extended to create specific applications or subsystems and provide a skeleton architecture for the system
  • Extending frameworks involves adding concrete classes inheriting operations from abstract classes and adding methods called in response to recognized events
  • A problem with frameworks is their complexity, which means it takes time to use them effectively

Framework Classes

  • System infrastructure frameworks support the development of system infrastructures, like communications, user interfaces, and compilers
  • Middleware integration frameworks encompass standards and classes supporting component communication and information exchange
  • Enterprise application frameworks supports the development of specific application types, such as telecommunications or financial systems

Software Product Lines

  • Software product lines, or application families, are applications with generic functionality adapted and configured for use in a specific context
  • Software product lines consist of applications with a common architecture and shared components, each specialized to reflect different requirements
  • Adaptation to the software may include component and system configuration, adding new components, selecting components from a library, or modifying components to meet new requirements

Base Applications

  • Core components provide infrastructure support and are typically not modified
  • Configurable components are modified and configured to specialize them to a new application; they can sometimes be reconfigured without changing code using a built-in component configuration language
  • Specialized, domain-specific components may be replaced when creating product lines

Application Frameworks and Product Lines

  • Application frameworks use object-oriented features like polymorphism for extensions, while product lines do not need to be object-oriented
  • Application frameworks provide technical support, while product lines embed domain and platform information
  • Product lines often control equipment applications
  • Software product lines consist of a family of applications that are generally owned by the same organization

Product Line Architectures

  • Architectures must be structured in a way so as to separate different subsystems and be modifiable
  • Architectures should separate entities and their descriptions, with higher-level access to the entities via descriptions, not directly

Vehicle Dispatching

  • Specialized resource management system aims to allocate resources (vehicles) to handle incidents
  • Adaptations occur at the UI level (operator display and comms), I/O management level (authentication, reporting, and route planning), and resource management level (vehicle location and dispatch, managing vehicle status and incident logging)
  • The database includes equipment, vehicle, and map databases

Product Line Specialization

  • Platform specialization includes different application versions developed for different platforms
  • Environment specialization includes different application versions created to handle different operating environments
  • Functional specialization concerns unique application versions for each customer’s specific requirements
  • Process specialization supports application versions supporting unique business processes

Product Instance Development

  • Elicit stakeholder requirements use existing family member as a prototype
  • Choose closest-fit family member entails finding the family member that best meets requirements
  • Renegotiate requirements involves adapting requirements as necessary to work within software capabilities
  • Adapt the Existing System includes developing new modules and making changes for family members
  • When delivering a new family member, document key features for further member development

Product Line Configuration Types

  • Design time configuration focuses on developing, selecting, or adapting components by the software org
  • Deployment time configurations designs the system configuration by incorporating customer specific knowledge

Levels of Deployment Time Configuration

  • Component selection is selecting the modules in a system what provide the required functionality
  • Workflow and rule definition entails defining workflows and validation rules for information entered by system users
  • Parameter definition includes specifying values of specific system parameters that reflect the created application instance

Application System Reuse

  • Application system products are software systems adapted for different customers without changing the source code
  • Application systems have generic features and can be reused in different environments
  • Application system products are adapted using built in configuration mechanisms to tailor functionality to customer needs
  • An example is a hospital patient record system with separate input forms and output reports defined for unique types of patient

Benefits of Application System Reuse

  • Rapid deployment of reliable systems
  • Easier to determine if applications are suitable due to visibility of functionality
  • Avoids some development risks
  • Businesses can focus on their core activities without needing to allocate IT resources heavily
  • Technology updates are simplified as they the COTS vendor's responsibility

Problems of Application System Reuse

  • Requirements may need to be adapted to reflect functionality and mode of operation of COTS products
  • The COTS product may be based on assumptions practically impossible to change
  • Selecting the right COTS system can be difficult, especially as many products lack adequate documentation
  • There may be a lack of local expertise to support systems development
  • The COTS product vendor controls system support and evolution

Configurable Application Systems

  • Configurable application systems are generic systems designed to support a specific business type, activity, or complete enterprise
  • For example, systems that support dentists handle appointments, dental records, and patient recall
  • Domain-specific systems support specific business functions (e.g. document management) and are likely to be required by common users

COTS Solutions and Integrated Systems

  • Configurable application systems are single products which provide the functionality a customer requires
  • These are based around generic solutions and standardized processes
  • Development focuses on system configuration while the System vendor is responsible for maintenance and also provides the platform

ERP Systems

  • Enterprise Resource Planning (ERP) systems are generic systems that support common business processes, for instance, ordering, invoicing, and manufacturing
  • ERPs are widely used in large companies, representing the most common form of software reuse
  • The generic core is adapted by including modules and incorporating business processes and rules knowledge

ERP Architecture

  • A number of modules support business functions
  • Each module is associated with defined business processes, which also relate to activities inside that module
  • All modules share a common database that maintains business function information
  • Sets of business rules apply to all data in the database

ERP Configuration

  • Select required functionality from the system
  • Establish a data model that defines data structure in

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser