Program Design
Part of design phase of SDLC
Determine what code modules are required Determine how code modules will work together to form the programDevelop specific instructions for development team on how code modules should be written
Techniques in program designStructure chart Program specifications
Designing ProgramsPlanning before coding generally improves the development processNever begin writing code without having a
complete understanding of what code must doMitigates risk of:
Inefficient programs Incompatible programs Programs missing key functionality--- Program design goalProgram design that is modular and flexible
Top-down modular approach to designDetermine major program components first,then detailed sub-components supporting them Eases understanding and communication of designProcess of program decomposition
Designing ProgramsModular design advantagesCode that is easier to understand Code that is reusable Code that has less redundancy Code that is easier to maintainProgram modules should be decomposed until they perform a single function---Program design documentPrepared at completion of program designComponents Program structure chart Program specificationsStructure ChartHierarchical, high-level depiction of all
modular components of an programEmphasizes structure and reusability Modules should perform a single functionDetails sequence, selection, and iteration of modules--- Structure Chart SyntaxModulesControl module Higher-level module that contains logic for calling and controlling sub-component modulesSubordinate module Low-level module contains logic for performing
specific function when called by the control moduleLibrary module Generic module used by multiple control module. Loops Iteration – execution of subordinate modules repeated Conditional line Selection – subordinate execution based on condition.Couples
Shows information passed between modules Data couples Passing data
Control couples Passing parameters, flags, system messages---Building a structure chart --Types of processesAfferent Provide inputs into the systemCentral Perform critical functions in the system operationEfferent Produce outputs of the system---Module structures 1.Transaction structure Control module calls subordinate modules based upon a condition or selection that handle specific transactions Correspond to higher levels of DFD and structure chart 2.Transform Structure Control module calls several subordinate modules in sequence to create a specific output Forms a process to transform inputs into an output Correspond to lower levels of DFD and structure char--Program design guidelines 1.High Cohesion-- Modules should perform a single function efficiently Modules easy to understand and develop 2.Loose coupling
Modules are independent from one another Data passed between modules is limited Modules easy to modify without impacting others 3.High fan-in
Multiple control modules should call a single subordinate module Sign of proper module reuse 4.Low fan-out Single control module has few subordinate modules Maximum of seven subordinate modules per control Control modules are not overly complex. Program specification -- Explicit instructions for development team on how code modules should be writtenDevelop program specification for each module in structure chart.Program information Events that trigger functionality in the program Inputs and outputs Structured English and pseudocode |
|
|
System Acquisitions and Arch
System acquisition strategiesApproaches to system acquisition Influences on acquisition strategy Selecting an acquisition strategy---Architecture design
Elements of an architecture design Creating an architecture design--Approaches to System Acquisition Three ways to approach creation of a systemCustom development Packaged software Outsourcing--Systems Acquisition and ArchitectureSystem acquisition strategiesApproaches to system acquisition Influences on acquisition strategySelecting an acquisition strategyArchitecture designElements of an architecture design Creating an architecture design---Approaches to System AcquisitionThree ways to approach creation of a system1.Custom development 2.Packaged software: 3.Outsourcing---Influences on Acquisition Strategy 1.Business need2.Time frame3.Inhouse experience---Selecting an Acquisition Strategy
Alternative matrixEvaluate pros and cons of design alternatives Weight criteria according to importance Avoid subjective bias toward preferences
Independent ratings by each analyst--Architecture DesignInformation systems are distributedArchitecture design determines how system
will be distributed across computersNon-functional requirements play key role---VirtualizationServer virtualizationPartitioning physical server into several
independent virtual serversReduced hardware requirementsStorage virtualizationCombining multiple storage devices into single
virtual storage spaceImproved storage and retrieval speed--Creating an Architecture DesignNon-functional requirements used to guide
architecture design decisionsOperational requirements Performance requirements Security requirements Cultural and political requirements |
|
|
Implementation
ImplementationConstruction of the new systemThorough job in analysis and design phases lead to a successful implementation of the system
Developing the system’s softwareLargest component of SDLC in time and cost Generally presents the fewest problemsDesign and execution of system testing Develop system documentation---Managing the Programming Process
Coordinating programming activitiesRegular meetings Programming standards and guidelines Software development areas Development, testing, and productionCode management systems Version control Program log Program check-in / check-out---TestingWriting programs is fun Testing and documentation are not Professional organizations spend more time
and money in testing than writing programsRisk associated with system failure is severeTesting is insurance; expenditure justifiedTesting often performed by systems analyst Four types of tests Unit, integration, system, and acceptance tests Most errors found in integration and system testing---Developing DocumentationSystem documentationCreated in analysis and design phases
Enable maintenance of system after installationUser documentation
User manuals, training manuals, help systems Designed to assist users of the system Good documentation takes time Allocate resources to documentation in project plan---Organizational TransitionPeople are generally resistant to changeBusiness processes and computer systems become habitual, people become comfortableImplementation of a new system challenging Managing organizational change Unfreeze, transition, refreeze Prior SDLC phases help users prepare for change Migration plan guides the transition Post-implementation establishes new system-- Migration plan
Decisions, plans, procedures guiding transition Conversion strategy Business contingency plan--Conversion strategyConversion style Defines how abruptly the new system is introducedConversion locations Defines what portion of the organization transitionsConversion styleDirect conversion
Instant replacement of the old system with the new High risk Any problems have dramatic impact on organization---Business contingency planning
Withstand impact of problems with new systemProper project management and migration planning helps to ensure smooth transitionParallel conversion provides a fallback Plan for worst-case scenario – no system--Post-Implementation ActivitiesInstitutionalize use of new systemEstablish as normal way of doing business Refreeze organization after successful transition Three key post-implementation activities System support Maintenance Project assessmentSystem supportProviding assistance to users after
implementationSystem transferred to operations group Provide online support, guides, FAQs Help desk Level 1 and 2 support staff---System maintenanceRefining system after implementation to ensure
it continues to meet business needsSubstantially more resources devoted to system maintenance than initial developmentChange request Changes performed through smaller SDLC cycle Bug fixes – highest priority Enhancements – second priorityProject assessmentOrganizational learning Understand successes and failures in system development activitiesProject team review Focuses on way project team performed activitiesSystem review Focuses on extent system provided benefits promised |
|
Created By
Metadata
Comments
No comments yet. Add yours below!
Add a Comment
Related Cheat Sheets