introduction to mis chapter 12 systems development jerry post technology toolbox infopath technology...

69
Introduction to MIS Chapter 12 Systems Development Jerry Post Technology Toolbox InfoPath Technology Toolbox: Programming in Excel Cases: Government Agencies

Upload: alberta-nicholson

Post on 11-Jan-2016

238 views

Category:

Documents


4 download

TRANSCRIPT

Introduction to MIS Chapter 1

Introduction to MISChapter 12Systems Development

Jerry PostTechnology Toolbox InfoPathTechnology Toolbox: Programming in ExcelCases: Government Agencies1Technology Toolbox: InfoPath

Use the sample Expense Report to create a form.Use the designer to verify or alter the design.Publish it and e-mail to test it.Function BlackScholes(CallPut As String, StockPrice As Double, ExercisePrice As Double, _TimeLeft As Double, rate As Double, volatility As Double) As DoubleDim d1 As Double, d2 As Doubled1 = (Math.Log(StockPrice / ExercisePrice) + (rate + volatility ^ 2 / 2) * TimeLeft) / _ (volatility * Math.Sqr(TimeLeft))d2 = d1 - volatility * Math.Sqr(TimeLeft)If (Left(CallPut, 1) = "c") ThenBlackScholes = StockPrice * Application.WorksheetFunction.NormSDist(d1) _- ExercisePrice * Exp(-rate * TimeLeft) * Application.WorksheetFunction.NormSDist(d2)ElseBlackScholes = ExercisePrice * Exp(-rate * TimeLeft) * _Application.WorksheetFunction.NormSDist(-d2) - StockPrice * _Application.WorksheetFunction.NormSDist(-d1) End IfEnd FunctionTechnology Toolbox: Programming Excel=BlackSholes(call, B2, B3, B4, B5, B6)BlackScholesVB.xlsstock price60call2.133368exercise price65put5.846282time left0.25rate0.08volatility0.3Cases: Government AgenciesCommon ProblemsConfusion 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.Cafasso 1994Success & FailureReasons for SuccessUser InvolvementExecutive management supportClear requirementsProper planningRealistic expectationsReasons for FailureLack of user inputIncomplete requirementsChanging requirements and specificationsLack of executive supportLack of technical skills6Build or Buy OptionsPurchase complete solutionAssemble from componentsOutsource or contract programmersCustom programmingDevelopment timeLonger development time means more risk, possibly higher costs. But it also enables you to create a more customized solution.

Primary Methodology ChoicesPrototyping

End user development

Systems development life cycle

Large projects, formal controlSingle user, reports and one-time computationsDecision support, analyses, and reportsCustom CodeGet custom/unique codeSpecial featuresIntegrate with existing systemsNeed programmersHire or outsourceManage themNeed to maintain the codeYour upgradesSystem upgrades (Windows changes)Outsourcing and Contract ProgrammersPart time or task-orientedNegotiate time, price, outcomeCommunicationNeed to know exactly what system will doNeed to communicate accuratelyNeed to monitor progressIn tight economy it can be hard to find good programmersBest if you can specific a fixed-price contract but the output has to be precisely defined(More detail in Chapter 13)ComponentsCommercialbuy elementsFree/open sourceSome are good, some are weak: testHaving access to code helps, in case you need to rewrite themProblems with upgradesComponent upgrades, break compatibilityWindows or system upgrades might mean need for new componentswhich might disappearWeb servicesConsider how long the system will need to be in operation

Programming BasicsSequential execution: Statements are executed in order.Parallel execution: Groups of code are executed at the same time.Variables: Containers to hold dataComputationsConditions: If Then Else Loops: While EndSubroutines and Functions: Break code into manageable pieces.Input/Output: Transferring data

Objects: Code pieces purchased or created to do specific tasks.Sample Code StructureVariable Total = 0Open SalesWhile NOT Sales.EOFTotal = Total + Sales.ValueSales.MoveNextEndPrint TotalClose SalesDeclare and initialize variable

Loop through file/query one row at a time until end of fileRetrieve value and accumulate in Total variable

Memory SpaceTotal: 0Sales Query/FileValue13221817Open/startTotal = Total + Sales.Value13 = 0 + 1313Programming Languages (small list)LanguageMain Purpose or ContextJavaGeneral purpose.Designed to run on servers and clients.C#, VB, ASP .NETMicrosoft used for Web servers and applications. Managed code.Javascript, HTML5Script language for Web page interactivity.C++, CCompiled, powerful, lower-level languages often used for systems and tools or where speed is critical.PHP, PERL, Python, RubyWeb server scripting/dynamic languages often used on Linux/UNIX or Apache Web servers.Objective-CApples language for iPhone/iPad applications.Flash, (Adobe) Silverlight (Microsoft)Special purpose Web add-ins with code to control interactivity. Silverlight uses C# or VB.COBOLOlder business applications and SAP.FORTRANOlder scientific programming applications. See F#.http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html 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 * PVIf item is in a special category, Then add or subtract correction:category = LandAdd 10%category = OverheadSubtract 5%category = LaborAdd 15%End IfAccumulate the total valueEnd of listReturn the Total valueIndividual Development: Pseudocode15Event-Driven Environmentsonactivateonafterupdateonbeforeupdateonbeforecopyonbeforecutonbeforedeactivateonbeforeeditfocusonbeforepasteonbeforeupdateonbluronclickoncontextmenuoncontrolselectoncopyoncutondatabindingondblclickondeactivateondisposedondragondragendondragenterondragleaveondragoverondroponerrorupdateonfilterchangeonfocusonfocusinonfocusoutonhelponinitonkeydownonkeyuponloadonlosecaptureonmousedownonmouseenteronmouseleaveonmousemoveonmouseoutonmouseoveronmousewheelonmoveonmoveendonmovestartonpasteonprerenderonpropertychangeonreadystatechangeonresizeonresizeendonresizestartonselectstartonserverclickonunload

Events for the Submit button.

Check back tomorrow, there might be more.Sample Javascript Web Event

function ShowMessage(msg){ alert(msg);}

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.SampleJavaScript.htmlObject name:Object attributes/properties:Object functions/methods:Interest RateMonthly FeesPay InterestCompute ChargesPrint Quarterly StatementNumberBeginning BalanceNameEnding BalanceClientCurrent BalanceManagerInterest RateDate OpenedOpen AcctAccept DepositsClose AcctWithdrawalPay InterestLowest Balance in MonthBad Check ChargesAuthorized SignaturePrint Monthly StatementSend Bad Check NoticePay InterestBudget SaverSavingsAccountCheckingMoney MarketSenior CitizenCDFixed FeeStudentVolumeObject-Oriented ProgrammingEncapsulationObject HierarchiesInheritancePolymorphism18ManagementFunctionsOperationsDatabasesProgramsProgramsProgramsFunctionsOperationsOperationsDatabasesDatabasesDatabasesDatabasesProgramsProgramsProgramsProgramsProgramsProgramsTop-downandBottom-upIdentify ManagementFunctions andOperationsEntire OrganizationDesign SystemsDataProgramsStandards!IntegrateWrite codeBuild DBFind a problem19Risks on Large ProjectsPersonnel shortfallsUnrealistic schedules and budgetsDeveloping the wrong functions and propertiesDeveloping the wrong user interfaceGold plating (adding more functionality/features than necessary)Continuing stream of requirements changes (scope creep)Shortfalls in externally furnished componentsShortfalls in externally performed tasksReal-time performance shortfallsStraining computer-science capabilitiesBoehm, 1991Communication: Adding PeopleAdding people helps only if independent tasks can be assigned to each person.Adding people always increases communication needs.Existing SystemSystems Maintenance: Incremental changesFeasibility &PlanningSystemsAnalysisSystemsDesignSystemsImplementationProblems &ImprovementsNew SystemProposalGoals & plansBusiness requirementsTechnical DesignproblemsrevisionsproblemsrevisionsSystems Development Life Cycle22Development ControlsDetailed work planPerformance targetsPractices & proceduresUser input & control

Blue Print/Planning23FeasibilityWhat exactly is the project and is it worth doing?Scope and GoalsPeople/GroupsBenefits and CostsScheduleAlternativesSystems AnalysisUnderstand the business/organizationDetermine specific business requirementsIdentify problems with existing systemsFind specific goalsEvaluate Alternatives (Buy v. Build)Collect test cases

Systems DevelopmentDesign databasesDesign user interfaceBuy componentsDesign and write applications (15-30 percent of the total time)Initial testing and feedbackWrite documentation and help

Education and trainingChangingBusiness operationsSystems ImplementationFinal testingInvolve usersEducation and trainingFlexibilityRecognize how the system will affect the businessEncourage users to changeImplementation plans27newoldnewnewDirect cutoverParallelPilotnewPhasedolddept or component 1dept or component 2dept or component 3dept or component 4store 1store 2store 3store 4Implementation Optionsoldoldnewnewnew28Comparison of DiagramsData Flow DiagramShow process and flow of data.Focus on processSplit by showing increasingly detailed levels of process.Entity Relationship or Class DiagramDescribe business data objects.Focus on data and relationships.Split by entities or object inheritance.29System EvaluationFeasibility ComparisonCost and BudgetCompare actual costs to budget estimates.Time EstimatesWas project completed on time?Revenue EffectsDoes system produce additional revenue?Maintenance CostsHow much money and time are spent on changes?Project GoalsDoes system meet the initial goals of the project?User SatisfactionHow do users (and management) evaluate the system?System PerformanceSystem ReliabilityAre the results accurate and on time?System AvailabilityIs the system available on a continuous basis?System SecurityDoes the system provide access only to authorized users?SDLC Advantages & DisadvantagesAdvantagesControl & targetsFormalityFinancial controlsUser inputDocumentationTestingEase of maintenanceDisadvantagesIncreased costsIncreased timeHard for DSSRequires definitions up frontRigid31Capability Maturity ModelInitial. 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 processhttp://www.sei.cmu.edu/cmmi/ Evaluating an organizations ability to develop software.Process improvementBuild Initial PrototypeUse PrototypeModify PrototypeRequest changesNew VersionMIS DesignerInitial InterviewProcess repeats until:1) User is satisfied2) User and designer give up3) Formal system is built from prototype4) Need for application is removed5) Process never endsPrototypingUser33Prototyping EvaluationAdvantagesGet a working system earlierUser has more inputDesigned to be modified

ProblemsNeed 4GL trained MIS staffToo many usersToo many analystsNever finish"Loss" of management controlBest usesSingle userReportsInput screensSelf-contained applications34Extreme Programming and Agile DevelopmenttimeInputs: 16, 7, 19Output: 91

Test casesPaired programming

Release 1.0Release 1.1 Target release dates. Build test cases. Write code and test it. Release product. Add features for next release.

Developing systems is generally a team effort among MIS developers and business users. Groupware, CASE, and development tools are often used to facilitate communication and coordination.Developing Systems with TeamsJoint Application Design

GoalsPrimary NeedsComputationsFormsDatabaseGet everyone together to identify the primary elements of the design with no distractions.CoordinationTechnologyControlInformationSharingChangeMonitoringAccessControlDataSharingConsistencyEnforcementConcurrencyControlProductUserTeamwork Development38Open Source DevelopmentLead developerMultiple programmersEveryone can see and modify the source codeTypically, user companies pay for supportsometimes to the lead developerSee GNU (Richard Stallman) and http://www.sourceforge.net End-user DevelopmentAdvantagesFasterCheaperGet what you want

Disadvantages/ProblemsLack of documentationIndividual/personal differencesPre-packaged software limitationsTakes User time40End-user DevelopmentWhen to Call for HelpMany people use the systemPC versus central computerNeed documentationIndividual user differencesNeed to train usersCommercial software limitsUser time is expensiveMission critical applicationAdditional testingMany modificationsNeed security & controlNeed to integrateUse corporate dataTie to existing softwareConnect to networkDatabase IntegrityAvoid duplicate dataChanges to corporate data41Who Should Develop Systems?MISSize: Many usersComplexity: Different departmentsLong development timeSDLC large project controlsCost of user timeCritical InformationMajor changes to central data baseFormal testingExpensive hardwareFormal feasibilityCompatibilitySpecialized knowledgeEnd UserOne-time codeCan purchase pre-packaged solutionsHighly trained users

How Can MIS Help?Easy access to data/databaseAdvice and helpTesting & quality controlTraining & tutorialsSupport/Help Center42Choosing MethodologiesSDLCRADExtreme ProgrammingJADPrototypingEnd UserControlFormalMISTimeJointUserUserTime frameLongShortShortMediumShortShortUsersManyFewFewFewOne or twoOneMIS staffManyFewManyFewOne or twoNoneTrans/DSSTrans.BothBoth/DSSDSSDSSDSSInterfaceminimalMinimalGoodCrucialCrucialCrucialDocument. & TrainingGoodLimitedVariableLimitedWeakNoneIntegrity & SecurityVitalVitalGoodLimitedWeakWeakRe-usabilityLimitedSomeMaybeLimitedWeakNoneMethods can be combined in a project.43Basic SystemsA Systems Approach to Process AnalysisSystemsInput, Process, OutputDivide and ConquerGoals and ObjectivesControl and FeedbackDiagramming SystemsCommon Systems ProblemsProcessinputoutput44Goals and FeedbackInputProcessGoalOutputAnalyzeFeedbackControl45System boundary: The ZooMembersDonorsVisitorsOther ZoosEducationVisitor CountsEducationalMaterialsBabyAnimalsRegistration PapersHealth DataTheZooMoneySuppliersRequests& CommentsAnimal FeedInvoices46Subsystems: The ZooAnimalCareDonor &PublicRelationsManageFacilitiesProduceManagementReportsManageHumanResources

47Data Flow Diagram ObjectsExternal EntityData FlowFeedback and Control DataExternal EntityProcessData Store (file)Data FlowFeedback and Control Data48The Zoo: Level 0public/zoo visitorsdonorszoo boostermembers1donor andpublic relations2producemgt. reports3managehumanresources4animalcare5managefacilitiesother zoos& breederscertificationagenciesmanagementmoney &requestsPR datareceiptsetc.public requestsneeds & budgetsanimal requestshealth researchmaintenanceschedulemaint. &buildingrequestspecialist requestemployeeschedulespecialist requestemp. scheduleemp. reportsemployeesanimal statushours,benefits,etc.pay data, requestsreceiptsUsagereportsManagementreports49The Zoo: Level 1public/zoo visitorsdonorszoo boostermembers1.2handledonorrequests1.1produce PR & outreachprograms1.3org. boosterservices &meetings1.4track needsand donorprograms1.5produceaccounting& reportsadopt an animalfilesreceiptsmoney &commentsPR datareceiptsetc.money &requestsnewsletternotices, etc.money &suggestionsboosterrequestsneeds &planspublic requestsneeds & budgetsneeds & plansdonorrequestsdonorlistsexpenses & budgetmoney, data,visitor statisticsaccountingreportspublic requestsanimalneeds50Systems: Data DictionaryProcessesAnimal CareDescriptionDonor & Public Relations. . .Employee Relations. . .EntitiesCertification Agencies. . .Donors. . .DataAccounting Reports. . .Certification Reports. . .51

Data DictionarySystem ProblemsDo not include data flows between external entities. Drop the line or make one of the entities internal.A process cannot invent data. It must have a data flow coming in to it.A process cannot be a black hole--data must flow out of the process. Maybe it should be a file instead.ManufacturerCustomerSell ProductsInvoicessales receiptorderspurchase orderswarranty registrationModify Reportsweekly reportdaily salesSave ReportsStore reportsInventory list53BoundariesDistributeEducationalMaterialsCreateEducationalMaterialsVisitorsProblem BoundaryProblem: Shortages of Educational MaterialsZoo system boundary54Common Systems ProblemsDefective subsystemsWrong DataErrors in DataMissing feedback and controlNot responding to environmentReceiveOrdersCheckCustomerCreditCheckOrdersfor Errors55Identifying Cause & Effect donorszoo boostermembersmoney &requestspublic requestsneeds & budgetsadopt an animalfilesmoney &suggestionsnewsletter,notices,etc.donor listsdonor requestsneeds &plansneeds &plansbooster requestsexpenses & budgetdonor list &animal needsanimal needs& plansProblemsSome animal budgets have excess $Some animal budgets have no money1.2Handledonorrequests1.3Boosterservices &meetingsPR datareceiptsetc.1.4Track needs& donorprogramsObject OrientationObject OrientationPropertiesMethodsInheritance PolymorphismBusiness Objects and Processes

57

SDLC v. Object Oriented58EventsMethodsObjectsSaleRecord Sale

Update Inventory

Notify Customer ServiceTransaction LogAccounts & LedgersInventoryCustomersEmployees (commissions)InventoryOrder/JITNotify Suppliers

Schedule PaymentAccounts & LedgersSuppliersShipping/ReceivingInstallation& Maintenance Objects & Events59Rolling Thunder Order Entry ProcessBicycleBikePartsBikeTubesComponentsOrder EntryClerkCustomerRetail StoreRetail dataCustomerChoicesBikeSizesEst. sizesPricingSelectSelectNew orderRolling Thunder Manufacturing ProcessBicycleBikePartsBikeTubesComponentsTubeMaterialQOHFrameAssemblerPainterInstallerInstallBuildPaintInstallQOHCustomerCustomerTransactionShipRolling Thunder Purchasing ProcessPurchaseOrderPurchaseItemsPurchaseOrderEmployeeReceiveComponentsQOHDock employeeManufacturerManufacturerTransactionPayableSome Classes for Rolling ThunderCustomerCustomerIDPhoneFirstNameLastNameAddressZIPCodeCityIDBalanceDueCustomerBicycleSerialNumberCustomerIDModelTypePaintIDFrameSizeOrderDateStartDateShipDateShipEmployeeFrameAssemblerPainterConstructionWaterBottleCustomNameLetterStyleIDStoreIDEmployeeID CustomerBikeTubesSerialNumberTubeNameTubeIDLengthBikePartsSerialNumberComponentIDSubstituteIDLocationQuantity ManufacturerManufacturerIDManufacturerNameContactNamePhone ComponentsComponentIDManufacturerIDProductNumberRoadCategoryLengthHeightWidthWeightDescriptionListPriceEstimatedCostQuantityOnHand1**1**111*Rolling Thunder Bicycle Class Diagram

Simple Object Access Protocol

Bank ServerYour Company ServerManager or ClientThe InternetYour Financial Application

Bank ServiceCurrency converter: Date, InCurrency, OutcurrencySOAPQuick QuizWhat standard business forms would you want to create electronically?

What security conditions would you impose when installing expense report forms on a SharePoint server?

What are the benefits of using digital forms instead of paper forms?Quick Quiz: Programming in Excel1.What does the statement If (ILeft(CallPut, 1) = c) do in the code?2.What security setting do you need for this function to work?3.How can a function directly alter several cells in a spreadsheet?ProcessesDescription . . .

Animal careFeed, clean, and vet care

Donor & public relationsHandle public requests and provide educational information

Employee relationsSchedule employees, process benefits, handle government reports

Facility managementHandle maintenance, new construction, planning

Produce mgt. reportsCollect data and produce summary reports for management

Entities

Certification agenciesGovernment and private agencies that create rules and regulate zoos

DonorsPeople and companies who donate money to the zoo

EmployeesPrimary (paid) workers, full-time and part-time

Other zoos and breedersZoos we trade with and share data with

Public/zoo visitorsDaily visits, we rarely keep data on individuals

Zoo booster membersMembers who donate money and time for minor benefits

Data

Accounting reportsStandard (GAAS) accounting reports for management

Certification reportsReports for certification agencies; produced annually

Facility reportsSummaries of work done and plans, mostly weekly

Needs and budgetsBudgets and special requests from animal care

Public requestsSuggestions and comments from the public

Sheet1YearRevenueCost200034,23127,333200139,98332,132200236,42131,456

Sheet1

RevenueCostSales and Costs

Sheet2

Sheet3