Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and...

Post on 17-Dec-2015

217 views 0 download

Tags:

Transcript of Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and...

Unit 8

Design Strategies and Refactoring

Key ConceptsDesign strategy deliverablesRequirements and constraintsOutsourcingSources of softwarePlatform requirementsRefactoring benefitsRefactoring techniques

Why three? One for high-functionality high-cost solution, one for minimum functionality low-cost solution, and one for middle-of-the-road

Deliverables for Design Strategy Selection

Features are determined from requirements.

Constraints pertain to limitations on development efforts.

Generating a Design StrategyDivide requirements (obtained during

requirements gathering and structuring) into sets of capabilities, categorized by level of necessity

Enumerate different potential implementation environments (hardware and system software platforms)

Propose different sourcing possibilities for obtaining the necessary software

What Is Outsourcing?The practice of turning over responsibility

of some or all of an organization’s information systems applications and operations to an outside firm

Can produce cost savings for the client, by leveraging the outsourcer’s economies of scale

Main Sources of SoftwareIT Service FirmsPackaged Software ProvidersCustom Software ProducersEnterprise Solutions SoftwareOpen Source SoftwareIn-house Development

Information Technology Service FirmsIBM is a leading IT service firm

Help develop custom information systems for internal use

Develop, host and run applications for clients

Provide other services

Package Software ProvidersMicrosoft is a leading package software

provider

Packaged software is off-the-shelf software

Range from general-purpose to narrow-niche focus

May be turnkey (preconfigured) or modifiable

Many factors go into selection of off-the-shelf software, many of which are relevant for other software purchases.

Vendor support and viability are always among the most important criteria.

Custom Software ProducersFirms like Accenture and CapGemini are

leading custom software producers.

Consulting firms that develop software to meet the client’s specific requirements

Consulting firms are usually called when the client company does not have in-house expertise or manpower available to develop the system.

What Is an RFP?Request for Proposal – a document

provided to vendors to ask them to propose hardware and/or software products or services that will meet the requirements of an organization’s new information system

Based on vendor bids, analyst selects best candidates

Enterprise Solutions SoftwareEnterprise Resource Planning (ERP)

software – integrates individual traditional business functions modules enabling a single seamless transaction cut across functional boundariesSAP AG is the leading vendor of ERP systems

Enterprise Application Suite (EAS)ERP system with a browser-based interface

Other enterprise software solutions include:BizTalk – BackOffice information flowSharePoint – Document sharing, records

management, and workflow

Open Source SoftwareFreely availableIncludes both final product and source

codeDeveloped by a community rather than a

companyExamples: MySQL (database), Firefox

(browser), Linux (operating system)Profit potentials:

Maintenance and serviceFree version with fewer features, for-cost

version with more features

Validating Purchased Software InformationUse a variety of information sources:

Vendor’s proposalRunning software through a series of testsFeedback from other users of the vendor’s

productIndependent software testing servicesArticles in trade publications

In-house DevelopmentIf sufficient system development expertise

with the chosen platform exists in-house, then some or all of the system can be developed by the organization’s own staff

Often, there are a variety of sources that are used, with in-house staff playing a role as well as consultants or ERP vendors

Hardware and System IssuesReasons to stay with old platform

Reasons to change to new platform

Lower cost installation

Familiarity of IS staffEase of integration

with existing applications

Less need for data and software conversions

New components may not be compatible with old platform

New platform provides opportunity for organization to improve its technology holdings

New platform serves as impetus for significant business process changes

Example: Pine Valley Furniture• System requirements categorized into

mandatory, essential, and desired capabilities

• Constraints established

• Low-end, high-end, and moderate design strategies are generated

• Weighted approach used to compare alternative design strategies

Server/Object Framework is the highest scoring alternative

3-Tier architecture is scalable, and consists of a Web server providing the interface to the Internet in the 1st tier, an application server running the business rules of the application in the 2nd tier, and the corporate databases in the 3rd tier

RefactoringModify internal structure of code without

changing code functionalityBenefits:

Code is more readable and self-documentingCode is easier to modify and maintainCode has less redundancy

Refactoring Process

Code SmellsLiteralsVariable names that are not descriptiveCode that is no longer usedIrrelevant commentsMethods that do too muchRedundant codeData-only classesClasses with too many methodsRemove Legacy Codes

Refactoring TechniquesCode Smell Refactoring Technique

Literals Use descriptive constants

Variable names Replace with names that describe the business process

Unused code Delete

Irrelevant comments

Delete

Lengthy methods

Break into smaller chunks

Redundant code

Create a method

Data-only classes

Restructure into classes with methods

Large classes Break into smaller classes