690 likes | 874 Views
Introduction to MIS. Chapter 12 Systems Development Jerry Post. Technology Toolbox InfoPath Technology Toolbox: Programming in Excel Cases: Government Agencies. Outline. How do you create the software tools needed for your organization?
E N D
Introduction to MIS Chapter 12 Systems Development Jerry Post Technology Toolbox InfoPath Technology Toolbox: Programming in Excel Cases: Government Agencies
Outline • How do you create the software tools needed for your organization? • What main options exist for building information systems? • How do you control a major development project? Why is control so important? • Is SDLC always the best approach? What other methodologies could be used? • How do you analyze and annotate a process-based system? • How is object-oriented design different from process design? • Can software be located in different places?
Runaway Projects $ 2012 2013 2014 • Technical measures • 2 - 5 times over budget • 2 - 5 times behind schedule • Missing technical objectives • Design problems • Duplication of efforts • Incompatibilities • User/designer conflicts
Common Problems • Confusion over who is working on each part. • Program portions do not work together. • Users have minimal and conflicting input. • Programmers and developers leave. • Work is duplicated or discarded. • Goals are uncertain or changing.
Success & Failure • Reasons for Success • User Involvement • Executive management support • Clear requirements • Proper planning • Realistic expectations • Reasons for Failure • Lack of user input • Incomplete requirements • Changing requirements and specifications • Lack of executive support • Lack of technical skills Cafasso 1994
Build or Buy Options Purchase complete solution Assemble from components Outsource or contract programmers Custom programming Development time Longer development time means more risk, possibly higher costs. But it also enables you to create a more customized solution.
Primary Methodology Choices Large projects, formal control Systems development life cycle Decision support, analyses, and reports Prototyping Single user, reports and one-time computations End user development
Custom Code • Get custom/unique code • Special features • Integrate with existing systems • Need programmers • Hire or outsource • Manage them • Need to maintain the code • Your upgrades • System upgrades (Windows changes)
Outsourcing and Contract Programmers • Part time or task-oriented • Negotiate time, price, outcome • Communication • Need to know exactly what system will do • Need to communicate accurately • Need to monitor progress • In tight economy it can be hard to find good programmers • Best if you can specific a fixed-price contract but the output has to be precisely defined • (More detail in Chapter 13)
Components • Commercial—buy elements • Free/open source • Some are good, some are weak: test • Having access to code helps, in case you need to rewrite them • Problems with upgrades • Component upgrades, break compatibility • Windows or system upgrades might mean need for new components—which might disappear • Web services • Consider how long the system will need to be in operation
Programming Basics Sequential execution: Statements are executed in order. Parallel execution: Groups of code are executed at the same time. Variables: Containers to hold data Computations Conditions: If – Then – Else Loops: While – End Subroutines and Functions: Break code into manageable pieces. Input/Output: Transferring data Objects: Code pieces purchased or created to do specific tasks.
Sample Code Structure Declare and initialize variable Loop through file/query one row at a time until end of file Retrieve value and accumulate in Total variable Variable Total = 0 Open Sales While NOT Sales.EOF Total = Total + Sales.Value Sales.MoveNext End Print Total Close Sales Sales Query/File Value 13 22 18 17 Open/start Memory Space Total: 0 13 Total = Total + Sales.Value 13 = 0 + 13
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.htmlhttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html Programming Languages (small list)
Individual Development: Pseudocode Project Evaluation (given a discount factor) Get list of cost items from the user (Description, value, time-incurred, probability-factor, category . . .) Examine each item in the list: Compute the present value of the cost: PV = Cost / ( (1 + rate) ^ time) Multiply by the probability factor: EV = probability * PV If item is in a special category, Then add or subtract correction: category = Land Add 10% category = Overhead Subtract 5% category = Labor Add 15% End If Accumulate the total value End of list Return the Total value
Event-Driven Environments Events for the Submit button. Check back tomorrow, there might be more.
Sample Javascript Web Event This simple code runs. But it is a terrible user interface. The art of programming revolves around building applications that solve problems and are easy to use. <input type="submit" value="Submit" name="submit" onmouseover="ShowMessage('Are you really done?');" /> <script language="javascript"> function ShowMessage(msg) { alert(msg); } </script> SampleJavaScript.html
Encapsulation Object Hierarchies Inheritance Polymorphism Object-Oriented Programming Account Object name: Number Beginning Balance Name Ending Balance Client Current Balance Manager Interest Rate Date Opened Object attributes/properties: Open Acct Accept Deposits Close Acct Withdrawal Pay Interest Object functions/methods: Savings Interest Rate Monthly Fees Checking Lowest Balance in Month Bad Check Charges Authorized Signature Pay Interest Compute Charges Print Quarterly Statement Print Monthly Statement Send Bad Check Notice Pay Interest Budget Saver Money Market Volume Fixed Fee Senior Citizen CD Student
Standards! Integrate Write code Build DB Find a problem Identify Management Functions and Operations Entire Organization Design Systems Data Programs Top-down and Bottom-up Management Functions Functions Operations Operations Operations Databases Databases Databases Databases Databases Programs Programs Programs Programs Programs Programs Programs Programs Programs
Risks on Large Projects • Personnel shortfalls • Unrealistic schedules and budgets • Developing the wrong functions and properties • Developing the wrong user interface • Gold plating (adding more functionality/features than necessary) • Continuing stream of requirements changes (scope creep) • Shortfalls in externally furnished components • Shortfalls in externally performed tasks • Real-time performance shortfalls • Straining computer-science capabilities Boehm, 1991
Communication: Adding People Adding people helps only if independent tasks can be assigned to each person. Adding people always increases communication needs.
Systems Development Life Cycle Feasibility & Planning Goals & plans Systems Analysis Business requirements Systems Design Technical Design Proposal Systems Implementation Problems & Improvements New System revisions revisions Existing System problems problems Systems Maintenance: Incremental changes
Detailed work plan Performance targets Practices & procedures User input & control Development Controls Blue Print/Planning
Feasibility • What exactly is the project and is it worth doing? • Scope and Goals • People/Groups • Benefits and Costs • Schedule • Alternatives
Systems Analysis • Understand the business/organization • Determine specific business requirements • Identify problems with existing systems • Find specific goals • Evaluate Alternatives (Buy v. Build) • Collect test cases
Systems Development • Design databases • Design user interface • Buy components • Design and write applications (15-30 percent of the total time) • Initial testing and feedback • Write documentation and help
Final testing Involve users Education and training Flexibility Recognize how the system will affect the business Encourage users to change Implementation plans Systems Implementation Education and training Changing Business operations
Implementation Options new Direct cutover old old old Parallel new store 1 new Pilot store 2 new store 3 new store 4 new old new dept or component 1 dept or component 2 Phased dept or component 3 dept or component 4
Comparison of Diagrams • Data Flow Diagram • Show process and flow of data. • Focus on process • Split by showing increasingly detailed levels of process. • Entity Relationship or Class Diagram • Describe business data objects. • Focus on data and relationships. • Split by entities or object inheritance.
SDLC Advantages & Disadvantages • Advantages • Control & targets • Formality • Financial controls • User input • Documentation • Testing • Ease of maintenance • Disadvantages • Increased costs • Increased time • Hard for DSS • Requires definitions up front • Rigid
Capability Maturity Model • Initial. Ad hoc development with undefined processes. Often driven by individual programmers. • Managed. Standard project management tools to track costs and schedules. Basic processes to ensure development is repeatable. • Defined. Management and development is defined and standardized. Processes are documented and followed. • Quantitatively Managed. Detailed measures are collected and evaluated. • Optimizing. Continuous improvement methods are applied to fine tune and improve the development process http://www.sei.cmu.edu/cmmi/ Evaluating an organization’s ability to develop software. Process improvement
Prototyping MIS Designer User Initial Interview Build Initial Prototype New Version Use Prototype Request changes Modify Prototype 1) User is satisfied 2) User and designer give up 3) Formal system is built from prototype 4) Need for application is removed 5) Process never ends Process repeats until:
Prototyping Evaluation • Advantages • Get a working system earlier • User has more input • Designed to be modified • Problems • Need 4GL trained MIS staff • Too many users • Too many analysts • Never finish • "Loss" of management control • Best uses • Single user • Reports • Input screens • Self-contained applications
Extreme Programming and Agile Development Release 1.0 Release 1.1 time • Target release dates. • Build test cases. • Write code and test it. • Release product. • Add features for next release. Paired programming Test cases Inputs: 16, 7, 19 Output: 91
Goals Primary Needs Computations Forms Database Joint Application Design Get everyone together to identify the primary elements of the design with no distractions.
Teamwork Development Coordination Technology Information Sharing Change Monitoring Control Data Sharing Concurrency Control Consistency Enforcement Product User Access Control
Open Source Development • Lead developer • Multiple programmers • Everyone can see and modify the source code • Typically, user companies pay for support—sometimes to the lead developer • See GNU (Richard Stallman) and http://www.sourceforge.net
End-user Development • Advantages • Faster • Cheaper • Get what you want • Disadvantages/Problems • Lack of documentation • Individual/personal differences • Pre-packaged software limitations • Takes User time
End-user DevelopmentWhen to Call for Help • Many people use the system • PC versus central computer • Need documentation • Individual user differences • Need to train users • Commercial software limits • User time is expensive • Mission critical application • Additional testing • Many modifications • Need security & control • Need to integrate • Use corporate data • Tie to existing software • Connect to network • Database Integrity • Avoid duplicate data • Changes to corporate data
Who Should Develop Systems? • MIS • Size: Many users • Complexity: Different departments • Long development time • SDLC large project controls • Cost of user time • Critical Information • Major changes to central data base • Formal testing • Expensive hardware • Formal feasibility • Compatibility • Specialized knowledge • End User • One-time code • Can purchase pre-packaged solutions • Highly trained users • How Can MIS Help? • Easy access to data/database • Advice and help • Testing & quality control • Training & tutorials • Support/Help Center
Choosing Methodologies Methods can be combined in a project.
A Systems Approach to Process Analysis • Systems • Input, Process, Output • Divide and Conquer • Goals and Objectives • Control and Feedback • Diagramming Systems • Common Systems Problems Basic Systems input output Process
Goals and Feedback Process Input Output Goal Analyze Control Feedback
System boundary: The Zoo Requests & Comments Suppliers Members Donors Visitors Money Animal Feed Invoices The Zoo Health Data Education Baby Animals Visitor Counts Other Zoos Registration Papers Educational Materials
Subsystems: The Zoo Donor & Public Relations Animal Care Manage Human Resources Produce Management Reports Manage Facilities
Data Flow Diagram Objects External Entity External Entity Process Data Store (file) Data Flow Data Flow Feedback and Control Data Feedback and Control Data
The Zoo: Level 0 zoo booster members public/ zoo visitors donors animal requests PR data receipts etc. other zoos & breeders money & requests public requests 4 animal care 1 donor and public relations receipts needs & budgets health research 2 produce mgt. reports specialist request animal status emp. schedule emp. reports maint. & building request 3 manage human resources hours, benefits, etc. specialist request maintenance schedule employees employee schedule 5 manage facilities pay data, requests Management reports Usage reports certification agencies management
adopt an animal files The Zoo: Level 1 public/ zoo visitors money & comments donors zoo booster members receipts newsletter notices, etc. PR data receipts etc. money & requests money & suggestions 1.2 handle donor requests 1.1 produce PR & outreach programs 1.3 org. booster services & meetings donor requests booster requests needs & plans money, data, visitor statistics donor lists public requests 1.4 track needs and donor programs needs & plans 1.5 produce accounting & reports expenses & budget needs & budgets animal needs public requests accounting reports
Systems: Data Dictionary • Processes • Animal Care Description • Donor & Public Relations . . . • Employee Relations . . . • Entities • Certification Agencies . . . • Donors . . . • Data • Accounting Reports . . . • Certification Reports . . .