unit 8 design strategies and refactoring. key concepts design strategy deliverables requirements and...
TRANSCRIPT
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