unit 8 design strategies and refactoring. key concepts design strategy deliverables requirements and...

28
Unit 8 Design Strategies and Refactoring

Upload: lisa-spencer

Post on 17-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

Unit 8

Design Strategies and Refactoring

Page 2: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

Key ConceptsDesign strategy deliverablesRequirements and constraintsOutsourcingSources of softwarePlatform requirementsRefactoring benefitsRefactoring techniques

Page 3: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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

Page 4: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

Features are determined from requirements.

Constraints pertain to limitations on development efforts.

Page 5: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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

Page 6: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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

Page 7: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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

Page 8: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform
Page 9: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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

Page 10: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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

Page 11: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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.

Page 12: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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.

Page 13: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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

Page 14: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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

Page 15: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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

Page 16: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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

Page 17: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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

Page 18: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform
Page 19: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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

Page 20: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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

Page 21: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform
Page 22: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform
Page 23: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

Server/Object Framework is the highest scoring alternative

Page 24: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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

Page 25: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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

Page 26: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

Refactoring Process

Page 27: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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

Page 28: Unit 8 Design Strategies and Refactoring. Key Concepts Design strategy deliverables Requirements and constraints Outsourcing Sources of software Platform

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