Академический Документы
Профессиональный Документы
Культура Документы
Building the IS
Develop Custom Application In-house Buying Packaged System and Customize it Rely on a external resource to build the system.
In-house applications Software packages Outsourced Custom solutions Application Service provider (SaaS) Do not consider implementation options till the company has a clear set of goals and objectives for it business needs.
Project Mgmt.
Time Frame
Flexible
Short
Short / Flexible
Microsoft is the leader in prepackaged software production. Prepackaged software is off-the-shelf software. Often, prepackaged software is turnkey software
(i.e. not customizable).
Firms like Infosys, TCS, WIPRO, Accenture, EDS etc are leading custom software producers. Consulting firms develop software to meet the clients specific requirements. Consulting firms are usually called when the client company does not have inhouse expertise or manpower available to develop the system.
Enterprise Resource Planning (ERP) systems that integrate individual traditional business functions into modules enabling a single seamless transaction to cut across functional boundaries. SAP is the leading vendor of ERP systems.
ASP: an organization that hosts and runs computer applications for other companies, typically on a per-use or license basis Business Growth limits the use of application through ASPs.
In-House Development
If sufficient system development expertise with the chosen platform exists in-house, then some or all of the system can be developed by the organizations own staff. Often, there are a variety of sources used, with in-house staff playing a role as well as consultants or ERP vendors.
Cost Functionality Vendor support Viability of vendor Flexibility Documentation Response time Ease of installation
What is a system?
A system is a group of interacting, interrelated, and interdependent components that form a complex and unified whole. Has a objective Has a boundary Has importance Has a purpose Has a nature (closed/open and probabilistic / deterministic)
Get Business Requirements Model / re-Model them to get better control, better results Increase the efficiencies of the business processes
Systems analysis and design is a systematic approach to identifying problems, opportunities, and objectives; analyzing the information flows in organizations; and designing computerized information systems to solve a problem
Understanding of organizations objectives, structure and processes Knowledge of how to exploit information technology for advantage
Programmers (Developers)
Convert specifications into instructions that the computer understands Write documentation and testing programs
Business Managers
Have power to fund projects and allocate resources Set general requirements and constraints for projects
Database Administrator
Internal Auditors
IS Manager (Project Manager) May have a direct role in systems development if the project is small Typically involved in allocating resources to and overseeing system development projects. Systems Analyst Key individual in the systems development process Analytical Understanding of organizations Problem solving skills System thinking Ability to see organizations and information systems as systems Technical Understanding of potential and limitations of technology Management Ability to manage projects, resources, risk and change Interpersonal Effective written and oral communication skills
Methodologies
Techniques
Processes that the analyst follows to ensure thorough, complete and comprehensive analysis and design
Computer programs that aid in applying techniques
Tools
Data
Understanding the source and use of data is the key to good system design Various techniques are used to describe data and the relationship amongst data Groups of data that move and flow through the system
Data Flows
Include description of sources and destination for each data flow Describe steps that transform data and events that trigger the steps
Processing Logic
Traditional methodology for developing, maintaining, and replacing information systems Phases in SDLC:
Phases are not necessarily sequential Each phase has a specific outcome and deliverable Individual companies use customized life cycles
Helps organization to determine whether or not resources should be dedicated to a project. Two Activities
Formal preliminary investigation of the problem at hand Presentation of reasons why system should or should not be developed by the organization
Feasibility Analysis
Users and analysts familiarity with the business application area Familiarity with technology
Project size
Organizational Feasibility
If we build it, will they come?
Strategic alignment
How well do the project goals align with business objectives? Project champion(s) Organizational management System users adaptability
Stakeholder analysis
Identify costs and benefits Assign values to costs and benefits Determine cash flow Assess financial viability
Net present value (NPV) Return on investment (ROI) Break even point (BEP)
Analysis
Determine requirements
Learn the who, what, where, when and the why for these
Design
Logical Design
Physical Design
Implementation
Maintenance
One phase begins when another completes, little backtracking and looping
System requirements locked in after being determined (can't change) Limited user involvement (only in requirements phase) Too much focus on milestone deadlines of SDLC phases to the detriment of sound development practices
Agile Methodologies
Structured process involving users, analysts, and managers Several-day intensive workgroup sessions Purpose: to specify or review system requirements
Methodology to decrease design and implementation time Involves: prototyping, JAD, CASE tools, and code generators
Prototyping
Iterative development process: Requirements quickly converted to a working system System is continually revised Close collaboration between users and analysts
Prototyping
Agile Methodologies
Motivated by recognition of software development as fluid, unpredictable, and dynamic Three key principles
Adaptive rather than predictive Emphasize people rather than roles Self-adaptive processes
eXtreme Programming
Short, incremental development cycles Automated tests Two-person programming teams Coding and testing operate together Advantages:
Based on objects rather than data or processes Object: a structure encapsulating attributes and behaviors of a real-world entity Object class: a logical grouping of objects sharing the same attributes and behaviors Inheritance: hierarchical arrangement of classes enable subclasses to inherit properties of superclasses
CASE Tools
CASE tools are automated, microcomputer-based software packages for systems analysis and design Project dictionary/workbook: system description and specifications Diagramming tools Example products: Oracle Designer, Rational Rose Facilitate creation of a central repository for system descriptions and specifications
CASE Tools
To increase analyst productivity Facilitate communication among analysts and users Providing continuity between life cycle phases To assess the impact of maintenance
Clarity of User Requirements Familiarity with Technology System Complexity System Reliability Short Time Schedules Schedule Visibility
Your Turn
Suppose you are an analyst for the ABC Company, a large consulting firm with offices around the world. The company wants to build a new knowledge management system that can identify and track the expertise of individual consultants anywhere in the world on the basis of their education and the various consulting projects on which they have worked. Assume that this is a new idea that has never before been attempted in ABC or elsewhere. ABC has an international network, but the offices in each country may use somewhat different hardware and software. ABC management wants the system up and running within a year. What methodology would you recommend ABC Company use? Why?