A Review of Information System Process

download A Review of Information System Process

of 20

Transcript of A Review of Information System Process

  • 7/31/2019 A Review of Information System Process

    1/20

    LITERATURE REVIEW

    2.0 INTRODUCTION

    The literature review covers a review and survey on different areas of the research

    study. These areas are very important as they will in one way or the other be

    employed in the research development. Areas covered include system design

    technology and methodologies, system development life cycle, system development

    process activities and models. These areas also elaborate on system analysis methods

    and processes in details so as to enable reliable and accuracy in data gathering and

    analysis processes of the research. Also covered is the system implementation

    activities which includes system deployment, installation, testing and maintenance

    activities and models. Several models, techniques, approaches, strategies and

    methodologies were reviewed and compared in relation to the research area. A review

    of an already developed system that is closely related to the project was carried out

    also.

    First to be reviewed is the review of a related exiting Sales/Food service management

    Information system.

    2.1 A REVIEW OF FOOD SERVICE MANAGEMENT INFORRMATION

    SYSTEM V(FMIS V)

    The Foodservice Management Information System (FMIS V) sold by Genesistems,

    Inc. since 1980 on mini and super mini computers is now available on low cost

    personal computers and popular networks under FMIS V. According to Genesistems'

    President Eric Muench, new programming languages have provided a method of

    allowing Genesistems' proven FMIS system to operate with the same speed and

    flexibility on the new popular personal computers that was formerly available only on

    larger computers. This brings the cost of an automated solution for the foodservice

    operator down to a price that is affordable.

    "The manager must be able to determine prices and schedules, make forecasts,

    perform an ongoing audit of inventory and other company assets, and monitor

    performance. More and more managers are turning to the computer to provide this

    information on a timely basis," he said.

  • 7/31/2019 A Review of Information System Process

    2/20

    "Traditionally, foodservice institutions have had weak in-house accounting systems

    based on tedious manual procedures," Muench continued. "The result has been poor

    cost control. Food cost information is generally outdated before manual computations

    can even be completed. FMIS V solves these and other problems at a reasonable

    cost."

    FMIS V consists of the following modules: general ledger, accounts payable, payroll,

    bank reconciliation, inventory control, recipe control, sales analysis, and management

    report writing. Telecommunications input is available for certain cash registers. All

    modules are integrated and provide full accounting information automatically to the

    general ledger for up-to-date financial statements.

    General Ledger

    The General Ledger module is the center of the accounting system. It is a powerful

    yet easy to use module that can accommodate a single unit restaurant as well as a

    large multiple unit operation. The General Ledger is automatically updated from all

    other modules being operated. Both 12 and 13 period accounting are supported. The

    Trial Balance Report and General Ledger Report provide the necessary documentation

    and audit trails required of a professional accounting system. Financial Statements can

    be designed to your specifications by you within the General Ledger module. The

    optional Management Report Writer gives you the added ability to print complex

    financial statements that consolidate or compare multiple time periods and units if

    necessary. Account budgets may be set up and used in forecasting and comparisons to

    actual activity.

    Accounts Payable

    The Accounts Payable module is designed to allow you to better manage your vendor

    invoices and payments. Inventory purchases that are entered will be automatically

    updated to the Inventory, Recipe, and Sales Analysis modules without any additional

    work. Invoices may be entered in summary, detail, or a combination of the two. By

    entering invoices, you are creating the capability of accumulating unpaid invoices

    easily at any time. A purchase history by vendor is also maintained, and check

    payment can be accomplished easily in a method that is convenient for your

    operation. This module lets you stay on top of your outstanding invoices so that

    invoices are never paid for twice.

  • 7/31/2019 A Review of Information System Process

    3/20

    Payroll

    The Payroll module is designed for time entry, printing payroll checks, general ledger

    distribution and year-end W-2 forms. It can operate on a daily, weekly, bi-weekly,

    semi-monthly, or monthly basis with all input verified, copied, and employee records

    updated during the End-Pay-Period procedure. Other useful options are included such

    as payroll history inquiry, earnings summary report, employee payroll history, tip

    allocation, tip reporting and is integrated to the optional Federal Magnetic Media

    Reporting module.

    The module is easy to use due to its one-step nature. After set-up with a General

    Ledger file and initial data entry, payroll tracking becomes relatively easy. Time is

    entered, then the register is printed. If corrections are necessary, they can be made to

    the appropriate entries and the register re-printed. After everything balances, checks

    and reports are printed and then the pay period can be closed.

    This module is designed to operate in conjunction with other modules that may be

    installed. Programs are explained as if the General Ledger module were included.

    Information is transferred to all integrated modules as a function of the End-Pay-

    Period procedure or is transferred each month through the End-of-Month posting

    procedure.

    Bank Reconciliation

    The Bank Reconciliation module is used to manage your bank accounts. It is

    automatically updated as checks are written and deposits are entered. A simple

    method of canceling checks allows you to reconcile the account to the bank statement

    in very little time. Multiple bank accounts can be maintained simply and easily. Ahistorical check register is maintained for up to five years for your review.

    Other features includes Accurate, "on demand" financial statements tighten

    management control and eliminate monthly accounting fees, True, double entry

    accounting with forced balancing of entries eliminates costly posting errors,

    Comparisons of business units permit management to make intelligent analysis and

    take effective action, Reporting accommodates easy consolidation of multiple units or

    companies for corporate requirements, Simple invoice entry organizes and validates

    invoices for accuracy and automatically updates the Inventory module if necessary,

  • 7/31/2019 A Review of Information System Process

    4/20

    Accounts Payable Cash Requirements Report provides immediate access to a list of

    currently due invoices and the total cash required, Controlled payment of Accounts

    Payable invoices eliminates duplicate payments, conserves cash, and accrues interest,

    Selection and printing of Accounts Payable computer checks saves time and

    eliminates errors, Bank Reconciliation provides an easy way to control and reconcile

    any bank accounts.

    Inventory Control

    The Inventory Control module is designed to allow you a fast and easy way to keep

    track of your inventory. You are able to track what you have purchased and what

    prices you are paying from various suppliers for any length of time. In-house batch

    production items can be processed along with multiple location transfers. Inventory is

    first categorized into major classifications that you choose such as meat, dairy and

    produce. Inventory can be kept on a perpetual basis by entering your purchases for

    those items and taking a physical count monthly or as frequently as desired to get your

    actual usage on each item. Inventory may also be kept on a periodic basis which does

    not require entering all your purchases. The periodic method allows for entry of a

    physical count and last cost at any point in time and will automatically extend the

    inventory for you. Both methods provide inventory count sheets by specific storage

    location and fast inventory count entry methods. The two methods can also be

    combined to allow detailed control of high cost items and less detailed control of less

    significant items.

    Recipe Control

    The Recipe Control module works hand in hand with the Inventory Control module. It

    provides you with an organized method of entering your recipes. You can take

    advantage of the ability to monitor your costs at all times before cost increases erode

    your profit margins. Unlimited levels of sub-recipes can be maintained very easily.

    Recipes can include a plate cost for items that you may not want to set up. Recipes

    can be costed in seconds at Last Cost or Average Cost and can be printed or displayed

    on the screen. Each recipe can also have detailed preparation instructions set up for

    use as a training manual. Other features include Quick, accurate food and beverage

    cost percentages can spot increasing costs before it is too late, "What If" capability for

    quick, profitable decisions on effect of price and cost changes to a menu or individual

    item, Easy, timely, accurate trend information on profit margins and popularity of

  • 7/31/2019 A Review of Information System Process

    5/20

    menu items, Regular variance reporting on Actual versus Potential Inventory Usage

    flags items to watch for excessive use, Prompt, accurate comparisons of multi-unit

    sales for better management analysis and decisions, Server analysis tells you who is

    and who isn't selling items such as specials and desserts, Usage, waste and pilferage

    information is available at any time for management corrective action to maximize

    profits, Inventory Use and Purchase History allows more accurate inventory planning,

    Provides a clear, precise way of standardizing recipes for easier employee use,

    Inventory transfers between multiple units are tracked for proper allocation of charges

    and better management relations, Inventory Production allows the tracking of in-

    house prep items to show actual inventory usage and real costs, Friendly, flexible set

    up allows you to track only information you need and not data that you don't care

    about.

    Sales Analysis

    The Sales Analysis module completes the operations triangle. Both Inventory and

    Recipe Control are related heavily to Sales Analysis. Menu items are set up and

    defined at this point. A menu item can refer to a recipe or directly to an inventory

    item. Daily sales can be entered manually or transferred from a point of sale device if

    one is available. Sales history is maintained on a daily basis for any number of years.

    Entering your sales will generate your potential or optimal use of each inventory item

    and will give you an actual versus potential usage variance. Sales trends can be

    tracked in a wide variety of methods using the Management Report Writer. Sales

    Analysis gives you the capability to stay on top of your margins and control them

    before they can hurt you.

    Management Report Writing

    The Report Writer module allows the creation of custom reports wanted by individual

    companies. The flexibility and adaptability of this module allows for seemingly

    unlimited variations of report types. This module is limited only by your imagination.

    Thirty-six columns are available for mathematical and statistical computations (only

    limited by your printer's capability). Data to be printed on these reports can be drawn

    from a variety of sources. The most common source is General Ledger and the Report

    Writer is particularly suited to producing complex financial statements. Reports can

    also be produced based on data from Sales Analysis or from the Statistics section of

    the Management Report Writer.

  • 7/31/2019 A Review of Information System Process

    6/20

    2.2 SYSTEMS DESIGN

    Systems design is the process of defining the architecture, components, modules,

    interfaces, and data for a system to satisfy specified requirements. One could see it as

    the application ofsystems theory to product development. There is some overlap with

    the disciplines ofsystems analysis, systems architecture and systems engineering. If

    the broader topic ofproduct development "blends the perspective of marketing,

    design, and manufacturing into a single approach to product development," then

    design is the act of taking the marketing information and creating the design of the

    product to be manufactured. Systems design is therefore the process of defining and

    developing systems to satisfy specified requirements of the user. Until the 1990s

    systems design had a crucial and respected role in the data processing industry. In the

    1990s standardization of hardware and software resulted in the ability to build

    modular systems. The increasing importance of software running on generic platforms

    has enhanced the discipline ofsoftware engineering. System design comprises of

    several activities, phases and sections. These sections has several outputs and

    deliverables. All the results of the system design phases is to ensure an effective

    breakdown and decomposition of the system to be developed. First of the phases is

    the logical design

    2.2.1 Logical design

    The logical design of a system pertains to an abstract representation of the data flows,

    inputs and outputs of the system. This is often conducted via modelling, using an

    over-abstract (and sometimes graphical) model of the actual system. In the context of

    systems design are included. This is aimed at complete definition of the processes

    activities of the system so as to ensure a proper definition of the logic of the system.

    2.2.2 Physical design

    The physical design relates to the actual input and output processes of the system.

    This is laid down in terms of how data is input into a system, how it is

    verified/authenticated, how it is processed, and how it is displayed as output.

    Physical design, in this context, does not refer to the tangible physical design of an

    information system. To use an analogy, a personal computer's physical design

    involves input via a keyboard, processing within the CPU, and output via a monitor,

    printer, etc. It would not concern the actual layout of the tangible hardware, which for

    http://en.wikipedia.org/wiki/Datahttp://en.wikipedia.org/wiki/Systemhttp://en.wikipedia.org/wiki/Requirementhttp://en.wikipedia.org/wiki/Systems_theoryhttp://en.wikipedia.org/wiki/Product_developmenthttp://en.wikipedia.org/wiki/Systems_analysishttp://en.wikipedia.org/wiki/Systems_architecturehttp://en.wikipedia.org/wiki/Systems_engineeringhttp://en.wikipedia.org/wiki/Product_developmenthttp://en.wikipedia.org/wiki/Systemhttp://en.wikipedia.org/wiki/Requirementhttp://en.wikipedia.org/wiki/Data_processinghttp://en.wikipedia.org/wiki/Standardizationhttp://en.wikipedia.org/wiki/Modularity_%28programming%29http://en.wikipedia.org/wiki/Software_engineeringhttp://en.wikipedia.org/wiki/Software_engineeringhttp://en.wikipedia.org/wiki/Modularity_%28programming%29http://en.wikipedia.org/wiki/Standardizationhttp://en.wikipedia.org/wiki/Data_processinghttp://en.wikipedia.org/wiki/Requirementhttp://en.wikipedia.org/wiki/Systemhttp://en.wikipedia.org/wiki/Product_developmenthttp://en.wikipedia.org/wiki/Systems_engineeringhttp://en.wikipedia.org/wiki/Systems_architecturehttp://en.wikipedia.org/wiki/Systems_analysishttp://en.wikipedia.org/wiki/Product_developmenthttp://en.wikipedia.org/wiki/Systems_theoryhttp://en.wikipedia.org/wiki/Requirementhttp://en.wikipedia.org/wiki/Systemhttp://en.wikipedia.org/wiki/Data
  • 7/31/2019 A Review of Information System Process

    7/20

  • 7/31/2019 A Review of Information System Process

    8/20

    Requirements analysis - analyzes the needs of the end users or customers

    Benchmarkingis an effort to evaluate how current systems perform

    Systems architecture - creates a blueprint for the design with the necessaryspecifications for the hardware, software, people and data resources. In many cases,

    multiple architectures are evaluated before one is selected.

    Designdesigners will produce one or more 'models' of what they see a systemeventually looking like, with ideas from the analysis section either used or discarded.

    A document will be produced with a description of the system, but nothing is specific

    they might say 'touchscreen' or 'GUI operating system', but not mention any

    specific brands;

    Computer programming and debugging in the software world, or detailed design inthe consumer, enterprise or commercial world - specifies the final system

    components.

    System testing - evaluates the system's actual functionality in relation to expected orintended functionality, including all integration aspects.

    2.3 SYSTEMS DEVELOPMENT LIFE CYCLE

    A life cycle is a diagrammatical illustration of all the activities, processes,activities

    and operation that are carried out step by step from the beginning to the end of a

    particular development project or object.

    The Systems Development Life Cycle (SDLC), or Software Development Life Cycle

    in systems engineering, information systems and software engineering, is a process of

    creating or altering information systems, and the models and methodologies that

    people use to develop these systems.

    In software engineering the SDLC concept underpins many kinds of software

    development methodologies. These methodologies form the framework for planning

    and controlling the creation of an information system: the software development

    process.

    Systems Development Life Cycle (SDLC) is a process used by a systems analyst to

    develop an information system, including requirements, validation, training, and user

    http://en.wikipedia.org/wiki/Designhttp://en.wikipedia.org/wiki/Computer_programminghttp://en.wikipedia.org/wiki/Debugginghttp://en.wikipedia.org/wiki/System_testinghttp://en.wikipedia.org/wiki/Methodologieshttp://en.wikipedia.org/wiki/Methodologieshttp://en.wikipedia.org/wiki/System_testinghttp://en.wikipedia.org/wiki/Debugginghttp://en.wikipedia.org/wiki/Computer_programminghttp://en.wikipedia.org/wiki/Design
  • 7/31/2019 A Review of Information System Process

    9/20

    (stakeholder) ownership. Any SDLC should result in a high quality system that meets

    or exceeds customer expectations, reaches completion within time and cost estimates,

    works effectively and efficiently in the current and planned Information Technology

    infrastructure, and is inexpensive to maintain and cost-effective to enhance. Computer

    systems are complex and often (especially with the recent rise of Service-Oriented

    Architecture) link multiple traditional systems potentially supplied by different

    software vendors. To manage this level of complexity, a number of SDLC models or

    methodologies have been created, such as "waterfall"; "spiral"; "Agile software

    development"; "rapid prototyping"; "incremental"; and "synchronize and stabilize".

    SDLC models can be described along a spectrum of agile to iterative to sequential.

    Agile methodologies, such as XP and Scrum, focus on lightweight processes which

    allow for rapid changes along the development cycle. Iterative methodologies, such as

    Rational Unified Process and Dynamic Systems Development Method, focus on

    limited project scope and expanding or improving products by multiple iterations.

    Sequential or big-design-up-front (BDUF) models, such as Waterfall, focus on

    complete and correct planning to guide large projects and risks to successful and

    predictable results.Other models, such as Anamorphic Development, tend to focus on

    a form of development that is guided by project scope and adaptive iterations of

    feature development.

    In project management a project can be defined both with a project life cycle (PLC)

    and an SDLC, during which slightly different activities occur. According to Taylor

    (2004) "the project life cycle encompasses all the activities of the project, while the

    systems development life cycle focuses on realizing the product requirements".

    2.4.1 History

    The Systems Life Cycle (SLC) is a methodology used to describe the process for

    building information systems, intended to develop information systems in a very

    deliberate, structured and methodical way, reiterating each stage of the life cycle. The

    systems development life cycle, according to Elliott & Strachan & Radford (2004),

    "originated in the 1960s,to develop large scale functional business systems in an age

    of large scale business conglomerates. Information systems activities revolved around

    heavy data processing and number crunching routines".

    http://en.wikipedia.org/wiki/Information_Technologyhttp://en.wikipedia.org/wiki/Number_crunchinghttp://en.wikipedia.org/wiki/Number_crunchinghttp://en.wikipedia.org/wiki/Information_Technology
  • 7/31/2019 A Review of Information System Process

    10/20

    Several systems development frameworks have been partly based on SDLC, such as

    the Structured Systems Analysis and Design Method (SSADM) produced for the UK

    government Office of Government Commerce in the 1980s. Ever since, according to

    Elliott (2004), "the traditional life cycle approaches to systems development have

    been increasingly replaced with alternative approaches and frameworks, which

    attempted to overcome some of the inherent deficiencies of the traditional SDLC".

    2.4.2 Systems development phases

    The System Development Life Cycle framework provides a sequence of activities for

    system designers and developers to follow. It consists of a set of steps or phases in

    which each phase of the SDLC uses the results of the previous one.

    A Systems Development Life Cycle (SDLC) adheres to important phases that are

    essential for developers, such as planning, analysis, design, and implementation, and

    are explained in the section below. A number of system development life cycle

    (SDLC) models have been created: waterfall, fountain, spiral, build and fix, rapid

    prototyping, incremental, and synchronize and stabilize. The oldest of these, and the

    best known, is the waterfall model: a sequence of stages in which the output of each

    stage becomes the input for the next. These stages and phases are elaborated and

    carefully studies and evaluated so as to attain a well grounded understanding on their

    several areas and domain as they will eventually be employed in the research

    development. These stages can be characterized and divided up in different ways,

    including the following:

    Project planning, feasibility study: Establishes a high-level view of the intendedproject and determines its goals.

    An important task in creating a software product is extracting the requirements or

    requirements analysis. Customers typically have an abstract idea of what they want as

    an end result, but not what software should do. Incomplete, ambiguous, or even

    contradictory requirements are recognized by skilled and experienced software

    engineers at this point. Frequently demonstrating live code may help reduce the risk

    that the requirements are incorrect.

    Once the general requirements are gathered from the client, an analysis of the scope

    of the development should be determined and clearly stated. This is often called a

    scope document.

  • 7/31/2019 A Review of Information System Process

    11/20

    Certain functionality may be out of scope of the project as a function of cost or as a

    result of unclear requirements at the start of development. If the development is done

    externally, this document can be considered a legal document so that if there are ever

    disputes, any ambiguity of what was promised to the client can be clarified

    Systems analysis, requirements definition: Defines project goals into defined

    functions and operation of the intended application. Analyzes end-user information

    needs.

    Systems design: Describes desired features and operations in detail, including screenlayouts, business rules, process diagrams, pseudocode and other documentation.

    Implementation: The real code is written here.

    Integration and testing: Brings all the pieces together into a special testingenvironment, then checks for errors, bugs and interoperability.

    Acceptance, installation, deployment: The final stage of initial development, wherethe software is put into production and runs actual business.

    Maintenance: What happens during the rest of the software's life: changes,correction, additions, moves to a different computing platform and more. This, the

    least glamorous and perhaps most important step of all, goes on seemingly forever.

    In the following example these stage of the Systems Development Life Cycle are

    divided in ten steps from definition to creation and modification of IT work products:

    The tenth phase occurs when the system is disposed of and the task performed is

    either eliminated or transferred to other systems. The tasks and work products for

    each phase are described in subsequent chapters.

    Not every project will require that the phases be sequentially executed. However, the

    phases are interdependent. Depending upon the size and complexity of the project,

    phases may be combined or may overlap.

    2.4.3 System analysis

    The goal ofsystem analysis is to determine where the problem is in an attempt to fix

    the system. This step involves breaking down the system in different pieces to analyze

    http://en.wikipedia.org/wiki/Systems_analysishttp://en.wikipedia.org/wiki/Work_breakdown_structurehttp://en.wikipedia.org/wiki/Work_breakdown_structurehttp://en.wikipedia.org/wiki/Systems_analysis
  • 7/31/2019 A Review of Information System Process

    12/20

    the situation, analyzing project goals, breaking down what needs to be created and

    attempting to engage users so that definite requirements can be defined.

    Requirements analysis sometimes requires individuals/teams from client as well as

    service provider sides to get detailed and accurate requirements; often there has to be

    a lot of communication to and from to understand these requirements. Requirement

    gathering is the most crucial aspect as many times communication gaps arise in this

    phase and this leads to validation errors and bugs in the software program.

    2.4.4 Design

    In systems design the design functions and operations are described in detail,

    including screen layouts, business rules, process diagrams and other documentation.The output of this stage will describe the new system as a collection of modules or

    subsystems.

    The design stage takes as its initial input the requirements identified in the approved

    requirements document. For each requirement, a set of one or more design elements

    will be produced as a result of interviews, workshops, and/or prototype efforts.

    Design elements describe the desired software features in detail, and generally include

    functional hierarchy diagrams, screen layout diagrams, tables of business rules,

    business process diagrams, pseudocode, and a complete entity-relationship diagram

    with a full data dictionary. These design elements are intended to describe the

    software in sufficient detail that skilled programmers may develop the software with

    minimal additional input design.

    2.4.5 Testing

    Software testing is an integral and important phase of the software development

    process. This part of the process ensures that defects are recognized as soon as

    possible.

    The code is tested at various levels in software testing. Unit, system and user

    acceptance testings are often performed. This is a grey area as many different

    opinions exist as to what the stages of testing are and how much if any iteration

    occurs. Iteration is not generally part of the waterfall model, but usually some occur at

    this stage. In the testing the whole system is test one by one

    http://en.wikipedia.org/wiki/Requirements_analysishttp://en.wikipedia.org/wiki/Systems_designhttp://en.wikipedia.org/wiki/Systems_designhttp://en.wikipedia.org/wiki/Requirements_analysis
  • 7/31/2019 A Review of Information System Process

    13/20

    Following are the types of testing:

    Defect testing the failed scenarios, including defect tracking Path testing Data set testing Unit testing System testing Integration testing Black box testing White box testing Regression testing Automation testing User acceptance testing Performance testing

    2.4.6 Operations and maintenance

    The deployment of the system includes changes and enhancements before the

    decommissioning or sunset of the system. Maintaining the system is an important

    aspect of SDLC. As key personnel change positions in the organization, new changes

    will be implemented, which will require system updates.

    Implementation is the part of the process where software engineers actually program

    the code for the project.

    Documenting the internal design of software for the purpose of future maintenance

    and enhancement is done throughout development. This may also include the writing

    of an API, be it external or internal. The software engineering process chosen by thedeveloping team will determine how much internal documentation (if any) is

    necessary. Plan-driven models (e.g., Waterfall) generally produce more

    documentation than Agile models.

    Deployment starts after the code is appropriately tested, is approved for release and

    sold or otherwise distributed into a production environment.

    Software Training and Support is important and a lot of developers fail to realize that.

    It would not matter how much time and planning a development team puts into

    creating software if nobody in an organization ends up using it. People are often

    http://en.wikipedia.org/wiki/Software_releasehttp://en.wikipedia.org/wiki/Software_release
  • 7/31/2019 A Review of Information System Process

    14/20

    resistant to change and avoid venturing into an unfamiliar area, so as a part of the

    deployment phase, it is very important to have training classes for new clients of your

    software.

    Maintaining and enhancing software to cope with newly discovered problems or new

    requirements can take far more time than the initial development of the software. It

    may be necessary to add code that does not fit the original design to correct an

    unforeseen problem or it may be that a customer is requesting more functionality and

    code can be added to accommodate their requests. If the labor cost of the maintenance

    phase exceeds 25% of the prior-phases' labor cost, then it is likely that the overall

    quality of at least one prior phase is poor. In that case, management should consider

    the option of rebuilding the system (or portions) before maintenance cost is out of

    control.

    Comparison of Methodology Approaches

    SDLC RAD Open Source Objects JAD Prototyping End User

    Control Formal MIS Weak Standards Joint User User

    Time Frame Long Short Medium Any Medium Short Short

    Users Many Few Few Varies Few One or Two One

    MIS staff Many Few Hundreds Split Few One or Two None

    Transaction/DSS Transaction Both Both Both DSS DSS DSSInterface Minimal Minimal Weak Windows Crucial Crucial Crucial

    Documentation

    and trainingVital Limited Internal In Objects Limited Weak None

    Integrity and

    securityVital Vital Unknown In Objects Limited Weak Weak

    Reusability Limited Some Maybe Vital Limited Weak None

    2.4.7 Strengths and weaknesses

    Few people in the modern computing world would use a strict waterfall model for

    their Systems Development Life Cycle (SDLC) as many modern methodologies have

    superseded this thinking. Some will argue that the SDLC no longer applies to models

    like Agile computing, but it is still a term widely in use in Technology circles. The

    SDLC practice has advantages in traditional models of software development, that

    lends itself more to a structured environment. The disadvantages to using the SDLC

    methodology is when there is need for iterative development or (i.e. web development

    or e-commerce) where stakeholders need to review on a regular basis the softwarebeing designed. Instead of viewing SDLC from a strength or weakness perspective, it

  • 7/31/2019 A Review of Information System Process

    15/20

    is far more important to take the best practices from the SDLC model and apply it to

    whatever may be most appropriate for the software being designed.

    A comparison of the strengths and weaknesses of SDLC:

    Strength and Weaknesses of SDLC

    Strengths Weaknesses

    Control. Increased development time.

    Monitor Large projects. Increased development cost.

    Detailed steps. Systems must be defined up front.

    Evaluate costs and completion targets. Rigidity.

    Documentation. Hard to estimate costs, project overruns.

    Well defined user input. User input is sometimes limited.

    Ease of maintenance.

    Development and design standards.

    Tolerates changes in MIS staffing.

    An alternative to the SDLC is Rapid application development, which combines

    prototyping, Joint Application Development and implementation of CASE tools. The

    advantages of RAD are speed, reduced development cost, and active user involvement

    in the development process.

    2.5 SOFTWARE DEVELOPMENT MODELS

    Several models exist to streamline the development process. Each one has its pros and

    cons, and it's up to the development team to adopt the most appropriate one for the

    project. Sometimes a combination of the models may be more suitable.

    2.5.1 Waterfall model

    The waterfall model shows a process, where developers are to follow these phases in

    order:

    1. Requirements specification (Requirements analysis)2. Software design3. Implementation and Integration4. Testing (or Validation)5. Deployment (or Installation)6. Maintenance

    http://en.wikipedia.org/wiki/Software_Requirements_Specificationhttp://en.wikipedia.org/wiki/Requirements_analysishttp://en.wikipedia.org/wiki/Software_designhttp://en.wikipedia.org/wiki/System_integrationhttp://en.wikipedia.org/wiki/Software_testinghttp://en.wikipedia.org/wiki/Validationhttp://en.wikipedia.org/wiki/Software_deploymenthttp://en.wikipedia.org/wiki/Installation_%28computer_programs%29http://en.wikipedia.org/wiki/Software_maintenancehttp://en.wikipedia.org/wiki/Software_maintenancehttp://en.wikipedia.org/wiki/Installation_%28computer_programs%29http://en.wikipedia.org/wiki/Software_deploymenthttp://en.wikipedia.org/wiki/Validationhttp://en.wikipedia.org/wiki/Software_testinghttp://en.wikipedia.org/wiki/System_integrationhttp://en.wikipedia.org/wiki/Software_designhttp://en.wikipedia.org/wiki/Requirements_analysishttp://en.wikipedia.org/wiki/Software_Requirements_Specification
  • 7/31/2019 A Review of Information System Process

    16/20

    In a strict Waterfall model, after each phase is finished, it proceeds to the next one.

    Reviews may occur before moving to the next phase which allows for the possibility

    of changes (which may involve a formal change control process). Reviews may also

    be employed to ensure that the phase is indeed complete; the phase completion

    criteria are often referred to as a "gate" that the project must pass through to move to

    the next phase. Waterfall discourages revisiting and revising any prior phase once it's

    complete. This "inflexibility" in a pure Waterfall model has been a source of criticism

    by supporters of other more "flexible" models.

    2.5.2 Spiral model

    The key characteristic of a Spiral model is risk management at regular stages in the

    development cycle. In 1988, Barry Boehm published a formal software system

    development "spiral model", which combines some key aspect of the waterfall model

    and rapid prototyping methodologies, but provided emphasis in a key area many felt

    had been neglected by other methodologies: deliberate iterative risk analysis,

    particularly suited to large-scale complex systems.

    The Spiral is visualized as a process passing through some number of iterations, with

    the four quadrant diagram representative of the following activities:

    1. formulate plans to: identify software targets, selected to implement the program,clarify the project development restrictions;

    2. Risk analysis: an analytical assessment of selected programs, to consider how toidentify and eliminate risk;

    3. the implementation of the project: the implementation of software development andverification;

    Risk-driven spiral model, emphasizing the conditions of options and constraints in

    order to support software reuse, software quality can help as a special goal of

    integration into the product development. However, the spiral model has some

    restrictive conditions, as follows:

    1. The spiral model emphasizes risk analysis, and thus requires customers to accept thisanalysis and act on it. This requires both trust in the developer as well as the

    willingness to spend more to fix the issues, which is the reason why this model is

    often used for large-scale internal software development.

    http://en.wikipedia.org/wiki/Barry_Boehmhttp://en.wikipedia.org/wiki/Waterfall_modelhttp://en.wikipedia.org/wiki/Rapid_application_developmenthttp://en.wikipedia.org/wiki/Rapid_application_developmenthttp://en.wikipedia.org/wiki/Waterfall_modelhttp://en.wikipedia.org/wiki/Barry_Boehm
  • 7/31/2019 A Review of Information System Process

    17/20

    2. If the implementation of risk analysis will greatly affect the profits of the project, thespiral model should not be used.

    3. Software developers have to actively look for possible risks, and analyze it accuratelyfor the spiral model to work.

    The first stage is to formulate a plan to achieve the objectives with these constraints,

    and then strive to find and remove all potential risks through careful analysis and, if

    necessary, by constructing a prototype. If some risks cannot be ruled out, the customer

    has to decide whether to terminate the project or to ignore the risks and continue

    anyway. Finally, the results are evaluated and the design of the next phase begins.

    2.5.3 Iterative and incremental development

    Iterative development prescribes the construction of initially small but ever-larger

    portions of a software project to help all those involved to uncover important issues

    early before problems or faulty assumptions can lead to disaster. Iterative processes

    can assist with revealing design goals of a client who does not know how to define

    what they want.

    Nimble Rabbit is a flexible development process or framework with a set of practicesand overlapping roles that are intended to help define what the developers do well,

    and the solutions to improve those processes which fall short. Nimble Rabbit is

    specifically designed to work well in a telecommuting/distributed environment. It is

    intended to avoid many of the false assumptions and traps of existing agile

    frameworks such as Scrum.

    2.5.4 Agile development

    Agile software development uses iterative development as a basis but advocates a

    lighter and more people-centric viewpoint than traditional approaches. Agile

    processes use feedback, rather than planning, as their primary control mechanism. The

    feedback is driven by regular tests and releases of the evolving software.

    There are many variations of agile processes:

    In Extreme Programming (XP), the phases are carried out in extremely small (or"continuous") steps compared to the older, "batch" processes. The (intentionally

    incomplete) first pass through the steps might take a day or a week, rather than the

    http://ntobjectives.com/culture-nimble-rabbithttp://en.wikipedia.org/wiki/Extreme_Programminghttp://en.wikipedia.org/wiki/Extreme_Programminghttp://ntobjectives.com/culture-nimble-rabbit
  • 7/31/2019 A Review of Information System Process

    18/20

    months or years of each complete step in the Waterfall model. First, one writes

    automated tests, to provide concrete goals for development. Next is coding (by a pair

    of programmers), which is complete when all the tests pass, and the programmers

    can't think of any more tests that are needed. Design and architecture emerge out of

    refactoring, and come after coding. Design is done by the same people who do the

    coding. (Only the last featuremerging design and codeis common to all the

    other agile processes.) The incomplete but functional system is deployed or

    demonstrated for (some subset of) the users (at least one of which is on the

    development team). At this point, the practitioners start again on writing tests for the

    next most important part of the system.

    Scrum

    2.5.6 Code and fix

    "Code and fix" development is not so much a deliberate strategy as an artifact of

    naivet and schedule pressure on software developers. Without much of a design in

    the way, programmers immediately begin producing code. At some point, testing

    begins (often late in the development cycle), and the inevitable bugs must then be

    fixed before the product can be shipped.

    2.5.7 Process improvement models

    Capability Maturity Model Integration

    The Capability Maturity Model Integration (CMMI) is one of the leading models and

    based on best practice. Independent assessments grade organizations on how well they

    follow their defined processes, not on the quality of those processes or the software

    produced. CMMI has replaced CMM.

    ISO 9000

    ISO 9000 describes standards for a formally organized process to manufacture a

    product and the methods of managing and monitoring progress. Although the standard

    was originally created for the manufacturing sector, ISO 9000 standards have been

    applied to software development as well. Like CMMI, certification with ISO 9000

    does not guarantee the quality of the end result, only that formalized business

    processes have been followed.

    ISO 15504

    ISO 15504, also known as Software Process Improvement Capability Determination

    (SPICE), is a "framework for the assessment of software processes". This standard is

    http://en.wikipedia.org/wiki/Refactoringhttp://en.wikipedia.org/wiki/Scrum_%28development%29http://en.wikipedia.org/wiki/Programmerhttp://en.wikipedia.org/wiki/Source_codehttp://en.wikipedia.org/wiki/Software_testinghttp://en.wikipedia.org/wiki/Computer_bughttp://en.wikipedia.org/wiki/Computer_bughttp://en.wikipedia.org/wiki/Software_testinghttp://en.wikipedia.org/wiki/Source_codehttp://en.wikipedia.org/wiki/Programmerhttp://en.wikipedia.org/wiki/Scrum_%28development%29http://en.wikipedia.org/wiki/Refactoring
  • 7/31/2019 A Review of Information System Process

    19/20

    aimed at setting out a clear model for process comparison. SPICE is used much like

    CMMI. It models processes to manage, control, guide and monitor software

    development. This model is then used to measure what a development organization or

    project team actually does during software development. This information is analyzed

    to identify weaknesses and drive improvement. It also identifies strengths that can be

    continued or integrated into common practice for that organization or team.

    2.5.8 Formal methods

    Formal methods are mathematical approaches to solving software (and hardware)

    problems at the requirements, specification and design levels. Examples of formal

    methods include the B-Method, Petri nets, Automated theorem proving, RAISE and

    VDM. Various formal specification notations are available, such as the Z notation.

    More generally, automata theory can be used to build up and validate application

    behaviour by designing a system of finite state machines.

    Finite state machine (FSM) based methodologies allow executable software

    specification and by-passing of conventional coding

    Formal methods are most likely to be applied in avionics software, particularly where

    the software is safety critical. Software safety assurance standards, such as DO178B

    demand formal methods at the highest level of categorization (Level A).

    Formalization of software development is creeping in, in other places, with the

    application of Object Constraint Language (and specializations such as Java Modeling

    Language) and especially with Model-driven architecture allowing execution of

    designs, if not specifications.

    Another emerging trend in software development is to write a specification in some

    form of logic (usually a variation of FOL), and then to directly execute the logic as

    though it were a program. The OWL language, based on Description Logic, is an

    example. There is also work on mapping some version of English (or another natural

    language) automatically to and from logic, and executing the logic directly. Examples

    are Attempto Controlled English, and Internet Business Logic, which does not seek to

    control the vocabulary or syntax. A feature of systems that support bidirectional

    English-logic mapping and direct execution of the logic is that they can be made to

    explain their results, in English, at the business or scientific level.

    http://en.wikipedia.org/wiki/Petri_nethttp://en.wikipedia.org/wiki/Z_notationhttp://en.wikipedia.org/wiki/Web_Ontology_Languagehttp://en.wikipedia.org/wiki/Attempto_Controlled_Englishhttp://en.wikipedia.org/wiki/Attempto_Controlled_Englishhttp://en.wikipedia.org/wiki/Web_Ontology_Languagehttp://en.wikipedia.org/wiki/Z_notationhttp://en.wikipedia.org/wiki/Petri_net
  • 7/31/2019 A Review of Information System Process

    20/20