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?
70 trang |
Chia sẻ: baothanh01 | Lượt xem: 886 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Introduction to MIS - Chapter 12: Systems Development, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Introduction to MISChapter 12Systems DevelopmentJerry PostTechnology Toolbox InfoPathTechnology Toolbox: Programming in ExcelCases: Government AgenciesOutlineHow 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?Systems Development$20122013Runaway ProjectsTechnical measures2 - 5 times over budget2 - 5 times behind scheduleMissing technical objectivesDesign problemsDuplication of effortsIncompatibilitiesUser/designer conflicts2011123456789101112131415161718192021222324252627282930312014Common 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 skillsBuild 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 ChoicesPrototypingEnd user developmentSystems development life cycleLarge 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)ComponentsCommercial—buy 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 components—which might disappearWeb servicesConsider how long the system will need to be in operationProgramming 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 dataObjects: Code pieces purchased or created to do specific tasks.Sample Code StructureVariable Total = 0Open SalesWhile NOT Sales.EOF Total = Total + Sales.Value Sales.MoveNextEndPrint TotalClose SalesDeclare and initialize variableLoop through file/query one row at a time until end of fileRetrieve value and accumulate in Total variableMemory 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-CApple’s 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#. 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 valueEnd of listReturn the Total valueIndividual Development: PseudocodeEvent-Driven EnvironmentsonactivateonafterupdateonbeforeupdateonbeforecopyonbeforecutonbeforedeactivateonbeforeeditfocusonbeforepasteonbeforeupdateonbluronclickoncontextmenuoncontrolselectoncopyoncutondatabindingondblclickondeactivateondisposedondragondragendondragenterondragleaveondragoverondroponerrorupdateonfilterchangeonfocusonfocusinonfocusoutonhelponinitonkeydownonkeyuponloadonlosecaptureonmousedownonmouseenteronmouseleaveonmousemoveonmouseoutonmouseoveronmousewheelonmoveonmoveendonmovestartonpasteonprerenderonpropertychangeonreadystatechangeonresizeonresizeendonresizestartonselectstartonserverclickonunloadEvents for the Submit button.Check back tomorrow, there might be more.Sample Javascript Web Eventfunction 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 StatementNumber Beginning BalanceName Ending BalanceClient Current BalanceManager Interest RateDate OpenedOpen Acct Accept DepositsClose Acct Withdrawal Pay InterestLowest Balance in MonthBad Check ChargesAuthorized SignaturePrint Monthly StatementSend Bad Check NoticePay InterestBudget SaverSavingsAccountCheckingMoney MarketSenior CitizenCDFixed FeeStudentVolumeObject-Oriented ProgrammingEncapsulationObject HierarchiesInheritancePolymorphismManagementFunctionsOperationsDatabasesProgramsProgramsProgramsFunctionsOperationsOperationsDatabasesDatabasesDatabasesDatabasesProgramsProgramsProgramsProgramsProgramsProgramsTop-down and Bottom-upIdentify ManagementFunctions andOperationsEntire OrganizationDesign SystemsDataProgramsStandards!IntegrateWrite codeBuild DBFind a problemRisks 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 CycleDevelopment ControlsDetailed work planPerformance targetsPractices & proceduresUser input & controlBlue Print/PlanningFeasibilityWhat 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 casesSystems DevelopmentDesign databasesDesign user interfaceBuy componentsDesign and write applications (15-30 percent of the total time)Initial testing and feedbackWrite documentation and helpEducation and trainingChangingBusiness operationsSystems ImplementationFinal testingInvolve usersEducation and trainingFlexibilityRecognize how the system will affect the businessEncourage users to changeImplementation plansnewoldnewnewDirect cutoverParallelPilotnewPhasedolddept or component 1dept or component 2dept or component 3dept or component 4store 1store 2store 3store 4Implementation OptionsoldoldnewnewnewComparison 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.System EvaluationFeasibility Comparison Cost 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 Performance System 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 frontRigidCapability 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 process Evaluating an organization’s 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 endsPrototypingUserPrototyping EvaluationAdvantagesGet a working system earlierUser has more inputDesigned to be modifiedProblemsNeed 4GL trained MIS staffToo many usersToo many analystsNever finish"Loss" of management controlBest usesSingle userReportsInput screensSelf-contained applicationsExtreme Programming and Agile DevelopmenttimeInputs: 16, 7, 19Output: 91Test casesPaired programmingRelease 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 DesignGoalsPrimary NeedsComputationsFormsDatabaseGet everyone together to identify the primary elements of the design with no distractions.CoordinationTechnologyControlInformationSharingChangeMonitoringAccessControlDataSharingConsistencyEnforcementConcurrencyControlProductUserTeamwork DevelopmentOpen Source DevelopmentLead developerMultiple programmersEveryone can see and modify the source codeTypically, user companies pay for support—sometimes to the lead developerSee GNU (Richard Stallman) and End-user DevelopmentAdvantagesFasterCheaperGet what you wantDisadvantages/ProblemsLack of documentationIndividual/personal differencesPre-packaged software limitationsTakes User timeEnd-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 dataWho 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 usersHow Can MIS Help?Easy access to data/databaseAdvice and helpTesting & quality controlTraining & tutorialsSupport/Help CenterChoosing MethodologiesSDLCRADExtreme ProgrammingJADPrototypingEnd UserControlFormalMISTimeJointUserUserTime frameLongShortShortMediumShortShortUsersManyFewFewFewOne or twoOneMIS staffManyFewManyFewOne or twoNoneTrans/DSSTrans.BothBoth/DSSDSSDSSDSSInterfaceminimalMinimalGoodCrucialCrucialCrucialDocument. & TrainingGoodLimitedVariableLimitedWeakNoneIntegrity & SecurityVitalVitalGoodLimitedWeakWeakRe-usabilityLimitedSomeMaybeLimitedWeakNoneMethods can be combined in a project.Basic SystemsA Systems Approach to Process AnalysisSystemsInput, Process, OutputDivide and ConquerGoals and ObjectivesControl and FeedbackDiagramming SystemsCommon Systems ProblemsProcessinputoutputGoals and FeedbackInputProcessGoalOutputAnalyzeFeedbackControlSystem boundary: The ZooMembersDonorsVisitorsOther ZoosEducationVisitor CountsEducationalMaterialsBabyAnimalsRegistration PapersHealth DataTheZooMoneySuppliersRequests& CommentsAnimal FeedInvoicesSubsystems: The ZooAnimalCareDonor &PublicRelationsManageFacilitiesProduceManagementReportsManageHumanResourcesData Flow Diagram ObjectsExternal EntityData FlowFeedback and Control DataExternal EntityProcessData Store (file)Data FlowFeedback and Control DataThe 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, requestsreceiptsUsagereportsManagementreportsThe 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 requestsanimalneedsSystems: Data DictionaryProcessesAnimal Care DescriptionDonor & Public Relations . . .Employee Relations . . .EntitiesCertification Agencies . . .Donors . . .DataAccounting Reports . . .Certification Reports . . .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 listBoundariesDistributeEducationalMaterialsCreateEducationalMaterialsVisitorsProblem BoundaryProblem: Shortages of Educational MaterialsZoo system boundaryCommon Systems ProblemsDefective subsystemsWrong DataErrors in DataMissing feedback and controlNot responding to environmentReceiveOrdersCheckCustomerCreditCheckOrdersfor ErrorsIdentifying 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 ProcessesSDLC v. Object OrientedEventsMethodsObjectsSaleRecord SaleUpdate InventoryNotify Customer ServiceTransaction LogAccounts & LedgersInventoryCustomersEmployees (commissions)InventoryOrder/JITNotify SuppliersSchedule PaymentAccounts & LedgersSuppliersShipping/ReceivingInstallation& Maintenance Objects & EventsRolling 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 DiagramSimple Object Access ProtocolBank ServerYour Company ServerManager or ClientThe InternetYour Financial ApplicationBank ServiceCurrency converter: Date, InCurrency, OutcurrencySOAPTechnology Toolbox: InfoPathUse 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.Quick 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?Function BlackScholes(CallPut As String, StockPrice As Double, ExercisePrice As Double, _ TimeLeft As Double, rate As Double, volatility As Double) As Double Dim d1 As Double, d2 As Double d1 = (Math.Log(StockPrice / ExercisePrice) + (rate + volatility ^ 2 / 2) * TimeLeft) / _ (volatility * Math.Sqr(TimeLeft)) d2 = d1 - volatility * Math.Sqr(TimeLeft) If (Left(CallPut, 1) = "c") Then BlackScholes = StockPrice * Application.WorksheetFunction.NormSDist(d1) _ - ExercisePrice * Exp(-rate * TimeLeft) * Application.WorksheetFunction.NormSDist(d2) Else BlackScholes = 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.3Quick 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?Cases: Government Agencies