Software Development Plan
(Life Cycle Objectives - LCO)

for

Serial Control Record(SCR) Builder for Serial Publications

Team 3: Clint Chua, In-Young Ko, Jong-Weon Lee, Jung-Won Park, and Ilmi Yoon
{chua, iko, jongweon, jungwonp, iyoon}@usc.edu

Computer Science Dept., University of Southern California, October 1997




Table of Contents

1. Objectives
1.1 System Objectives
1.2 System Scope and Context
1.3 Development Plan Objectives

2. Milestones and Products
2.1 Overall Development Strategy
2.1.1 Phase 1 - Core Capabilities
2.1.2 Phase 2 - Desired Capabilities
2.1.3 Milestones of the Development Process
2.2 Detailed Schedule of Deliverables
2.3 Detailed Development Milestones and Schedules

3. Responsibilities
3.1 Organizational Responsibilities
3.1.1 Global Organization Charts
3.1.2 Organizational Commitment Responsibilities
3.2 Development Responsibilities
3.2.1 Development Organization Charts
3.2.2 Staffing
3.2.3 Training
4. Approach

4.1 Risk Management
4.2 Development Phases
4.2.1 Plans and Requirements Phase
4.2.2 Product Design Phase
4.2.3 Programming Phases
4.2.4 Test Phase
4.3 Reviews
4.4 Documentation
4.5 Configuration Management
4.6 Quality Assurance
4.7 Facilities and Related Concerns

5. Resources
5.1 Work Breakdown Structure
5.2 Budgets

6. Assumptions

7. Notes

8. Glossary

APPENDIX A - COCOMO REPORT


Table of Figures

Table 2.1 Required Capabilities in Each Phases

Table 2.2 Summary of Deliverable Items

Table 3.1 Staffing Description


Figure 2.1 Gantt Chart for the Sequence of the Milestones

Figure 2.2 Gantt Chart for the Detailed Schedule of Deliverables

Figure 3.1 Global Organization Chart

Figure 3.2 Development Organization Chart


  1. Objectives

    1.1 System Objectives

    The Serial Control Record(SCR) Builder is a software system for the University of Southern California(USC) to automate the process of building the SCR database. The SCR database contains information about serial publications like magazines and journals and is used by the SIRSI library information system. Currently, the database building process is being done manually by the librarians. By using the SCR builder, the SCR database can be built more quickly and efficiently.

    Please refer to Section 1.1 of the Operational Concept Definition for a more detailed description of the system objectives.

    1.2 Development Plan Objectives


  2. Milestones and Products

    2.1 Overall Development Strategy

    We are using the Waterfall model as the software development process model for our project. The SCR Builder project is a software development process to simply automate the current manual tasks which is well understood by the stakeholders and simply takes long time. The growth envelop for the project is limited to medium, because only the number of users for the client programs - the mapping editor and the exception editor can be increased slightly but for the conversion batch processor. To ensure the reliable record conversion, the system should be robust. The system should detect all the system errors occurred during the conversion process. For the minor and recoverable errors the system should log the problem and do certain actions to recover from the problem. In case of critical system errors, the system should stop the conversion process and let the users to fix the problem and start again the process. We cannot find any available commercial-off-the-shelf(COTS) technology for the record conversion process. It is because the conversion process completely depends on the source and destination data formats.

    Based on the process model decision table, the Waterfall model is the most applicable software development process model for our project which has medium limited growth envelop, highly understandable requirements, robustness constraints, and no available COTS technology.

    We are considering two baselines for determining the life-cycle of this project, because it is uncertain whether or not CS577b students on next Spring semester will take this project or the USC library client will hire their own development team. To define the the key system features for each baseline, we divide the development process into two phases. The first phase is the development phase to include the the core capabilities into the system and the second phase is to develop the desired capabilities. In each phase, the required capabilities are categorized by the program components of the SCR builder system - the conversion batch processor, the mapping table editor and the exception editor.

    2.1.1 Phase 1 - Core Capabilities

    1. Conversion Batch Processor

      • Run in Command-line Mode

        Instead of supporting the Graphic User Interface(GUI) which causes the development process to spend more labor and time, a text-based command-line interface will be provided for the conversion batch processor during this phase. This interface relates to building all algorithms and base classes which are necessary to build the engine of the batch processor. Once these are completed, a simple command-line interface can be added on.

        For the conversion processor, the GUI is not so critical required feature, because the interface is needed only for starting or stop the processor and monitor the status of its working. Those interface components are simple and can be fully represented through the text-based interface.

      • Support the Status Messages

        The status messages include the number of records processed, number of exception records, number of non-exception records, number of system errors, time elapsed and expected time to completion. The status information is essential for the converter because the user needs these metrics not only as an indicator that processing is going on but also to measure the efficiency of the system.

        Since there is no GUI at this phase, all the status messages are displayed on the screen with text-based form.

      • Simple Error Messages and Error Logging

        The user needs the error messages to figure out the system errors occurred during the conversion process. The error messages are kept concise but enough for the user to decipher and correct the offending problem. The error messages may be either displayed directly to the screen when the errors are detected or logged into a error repository.

      • Satisfy the Minimum Success Rate of the Record Conversion

        The librarian suggested a guideline of the success rate of the record conversion. It is about 70% of the total records from the source files. The record conversion process should satisfy this guideline and generate exception records less than 30% of the total records.

      • SCR Specific Conversion Process

        In this phase, the conversion process only can do the conversion task which maps the well-known legacy data formats into the SCR format. There are three major legacy data formats - the USC record format, the Orion record format, and the FAXON record format. These different input sources are referenced by the conversion processor to generate a SCR for a serial publication.

        The general mapping problem which maps record formats between two arbitrary record formats will be considered in the next phase.

      • Prioritize the Input Sources

        When the conversion process converts a record for a serial publication, it should consider the three input sources in a prioritized order to avoid the conflicts among the different input data for a data item of the publication. The system will take in priority numbers and based on those number, resolve any conflicts that arise from the different input formats.

    2. Mapping Table Editor

      • Use Existing Text Editor

        To provide flexible conversion process, the mapping table editor should be supported. The user may need to specify specific mapping conditions for the conversion process to reduce the number of exception records and improve the accuracy of the conversion.

        The most simple way to provide the user the ability to edit the mapping table is using the existing text editors like 'emacs' or 'vi'. All the mapping conditions in the mapping table will be stored in a text file, and the user can open and edit the file by using the existing text editors.

    3. Exception Record Repository and Editor

      • Build a Small Exception Record Database

        All the exception records generated during the conversion process should be saved in a repository, and edited by the user through a certain editing tool to be converted into the valid SCRs.

        The exception record repository can be built by making an indexed file that supports random access. All the exception records will be stored in the exception record file with being indexed by record IDs, and can be accessed and edited by the user through a simple program which can manage the index files.

      • Monolithic Support

        The exception record file and the editing program can be integrated together to make the system simpler. It will be more flexible and usable to separate the exception record repository from the exception record editor. However, it will make the system more complex because it needs a communication mechanism between the two components.

        The exception editor will be a simple local indexed-file access program which can read, browse and edit the records in the indexed file. Care must be taken to build the monolithic system modularly since we need to break these two components into two separate entities later.

      • File Operations

        In addition to access and edit the exception record file, the system should support the user to save the modified exception record and print the content of an exception record in a human readable form.

    2.1.2 Phase 2 - Desired Capabilities

    1. Conversion Batch Processor

      • Run in Both Command-line and GUI-mode

        In addition to the text-based user interface, the GUI is supported at this phase. The GUI has more user-friendly features and the user can learn how to use the system more easily and quickly through the GUI.

        The GUI also help the users to operate the system more efficiently and correctly because the user can initiate or stop the conversion process by pressing buttons instead of writing command strings into the text-based interface.

        The user can select the interface mode when he/she runs the conversion batch processor by specifying an option. If the user want to run the program through a text mode terminal, he/she can select the text-mode interface instead of the GUI.

      • Encapsulate the Status Messages in the GUI

        If the user run the conversion processor in the GUI-mode, all the status information will be displayed on the same GUI interface instead of printing the status message to the screen.

        All the quantitative information can be displayed through the graphical progress bars in the GUI. This allow the user to monitor and understand the system status more easily and clearly.

      • Full Descriptive Error Messages and Error Logging

        More information and insight is added as part of the error messages. This includes possible sources of error, possible reason of error and possible corrective procedures. Those descriptive error messages are also logged into the error repository and can be browed by the user through the error message browser.

      • Satisfy More than the Minimum Success Rate

        The success rate of the record conversion can be improved by designing more complex and intelligent conversion algorithm or adding more input sources to the conversion process. In this phase, more elaborated work can be done on the conversion algorithm.

      • Generalized Conversion Process

        This system can be extended to solve the general record conversion problems in addition to the SCR specific conversion. The record mapping algorithm can be extended so that it can do the conversion task between arbitrary record formats.

        More complicate and flexible mapping table and mapping algorithm should be developed to perform the generalized conversion process.

    2. Mapping Table Editor

      • Integrated Mapping Table Editor

        Instead of using a existing text editor, we can preformat the mapping table as seen in the prototype. This would enable the user to modify the mapping table easily.

        The user can modify the predefined mapping conditions in the mapping table by editing the related fields in the mapping table editor or add more mapping conditions by connecting the new condition to the existing conditions with a boolean operator.

    3. Exception Record Repository and Editor

      • Separate the Exception Record Repository from Its Editor

        To provide the multiple access to the exception record repository and improve the usability, the exception record repository should be separated from the exception record editor. More than one librarian can access and edit the exception records at the same time if the exception record repository is maintained as a separate database in a designated server machine.

        The communication mechanism is needed to establish the connection and exchange messages between the exception record database server and the exception editor client. A synchronization mechanism should be considered to provide the multiple access to the exception record repository.


    This is the table to summarize the capabilities which should be considered at each phases of the development process.

    Program Components Phase 1 - Core Capabilities Phase 2 - Desired Capabilities
    Conversion Batch Processor Run in Command-line Mode


    Status Messages on the Text Screen


    Simple Error Messages and Error Logging

    Satisfy the Minimum Success Rate of the Record Conversion

    SCR Specific Conversion Process

    Prioritize the Input Sources

    Run in Both Command-line and GUI-mode

    Encapsulate the Status Messages in the GUI

    Full Descriptive Error Messages and Error Logging

    Satisfy More than the Minimum Success Rate

    Generalized Conversion Process

    Prioritize the Input Sources

    Mapping Table Editor Use Existing Text Editor Integrated Mapping Table Editor
    Exception Record Repository and Editor Monolithic Support by Indexed File with File Operations Separate the Exception Record Repository from Its Editor

    Table 2.1 Required Capabilities in Each Phases


    2.1.3 Milestones of the Development Process

    We determine the milestones for the development of the system based on the development of the major program components. These milestones include both phases of the development cycle. Followings are the detailed descriptions of the milestones.

    1. Milestone 1 (Core): Implement the batch processor with the following core capabilities:

      • Run in command-line mode only
      • Support all status messages
      • Status is written to the text-screen
      • Simple error messages and error logging
      • Satisfy minimum success rate of the record conversion
      • SCR specific conversion process
      • Prioritize the input source

    2. Milestone 2 (Core): Implement the exception record editor and exception record database with the following core capabilities:

      • Build a small exception record database that supports random access
      • Monolithic: Integrate the exception record database with the exception editor
      • File operations like, saving and printing

    3. Milestone 3 (Iterate): Separate the exception record editor and exception record database

      • Communication mechanism between the editor and the database
      • Synchronization mechanism to provide multiple access to exception records

    4. Milestone 4 (Evolve): Evolution of the batch processor

      • Generalized record conversion
      • Add the GUI to encapsulate the batch processor and its status bar

    5. Milestone 5 (Iterate): Implement the integrated GUI-based mapping table editor

    6. Milestone 6 (Evolve): Add all other desired features to the batch processor

      • Full descriptive error messages

    The sequence of the milestones is shown in the Figure 2.1. The total time for developing the system based on a semester term. The development process for the exception record database and editor(Milestone 2) can begin after implementing major parts of the conversion batch processor(Milestone 1). The separation of the exception record editor and exception record database(Milestone 3) can be done after constructing the monolithic version. The generalized record converter(Milestone 4) can be developed after building the SCR specific converter and in parallel with other development steps. The development of the GUI-based mapping table editor(Milestone 5) can start right after implementing the command-line version.

    Figure 2.1 Gantt Chart for the Sequence of the Milestones


    2.2 Detailed Schedule of Deliverables

    During the development process, we used the WinWin negotiation tool to develop the project artifacts among different stakeholders. The negotiated artifacts related to the basic and advanced features of the system and the system requirements and capabilities are determined based on these WinWin negotiation results.

    The prototype is developed to show the basic outline and components of the graphic user interface and the operational mechanism. It includes the three major program components of the system - the conversion batch processor, the mapping table editor, and the exception record editor. This prototype can be implemented after determining the system requirements and capabilities. Please refer to the prototype document for detailed description and feature of the prototype.

    There are two critical project milestones - the Life Cycle Objectives(LCO) and the Life Cycle Architecture(LCA).

    The LCO milestone involves establishing the system boundary and specifies the scope of the project by defining the top-level objectives of the system. The basic requirements, core and desired capabilities, basic architecture, software development plan, and feasibility rationale are the major elements of the LCO.

    The LCA milestone is the elaboration of the LCO elements. The definition of the system architecture is the most critical element of the LCA. The architecture definition includes the definitions of the system components, connectors, configurations, and constraints. The specifications of quality attribute levels and architectural evolution are also the key features of the LCA.

    In this semester, we will show the prototype and deliver the documents on the WinWin negotiation results, LCO, and LCA to the customer. Figure 2.2 shows the detailed schedule of the deliverables, and Table 2.2 summaries the deliverable items.

    Figure 2.2 Gantt Chart for the Detailed Schedule of Deliverables


    Title Delivery Date Item Format Completion Criteria
    WinWin Results Oct.15, 1997
    Document & Web Page All the Win conditions are covered, issues are resolved, and options are determined
    Initial Prototype Oct.15, 1997 Web Page Include all the major system components and shows the outline of the interface and operational mechanism
    LCO Draft Oct.22, 1997 Web Page Show the outline of the LCO documents
    LCO Package Oct.29, 1997 Documents & Web Pages Specify the system boundary and project scope
    LCA Draft Nov.26, 1997 Web Page Show the outline of the LCA documents
    LCA Package Dec.8, 1997 Documents & Web Pages Elaborate the LCO elements

    Table 2.2 Summary of Deliverable Items


    2.3 Detailed Development Milestones and Schedules

    None for the LCO.


  3. Responsibilities

    3.1 Organizational Responsibilities

    The stakeholders for this system are from the three major organizations at USC. The system developers of the SCR builder are the team 3 members of the CS577a class on Fall 1997. The users and system manager of the SCR builder are librarian of USC libraries, and the system working environment is managed by the University Computing Services(UCS).

    3.1.1 Global Organization Charts

    Figure 3.1 Global Organization Chart


    Figure 3.1 is the global organization hierarchy. It shows the responsibility relations between the various organizations involve the system development process, and identify the key responsible personnel.

    Three major organizations related to this project are part of the USC. The team 3 members of CS577a are responsible for the development of the SCR builder system. The librarians and programmer of the USC libraries are responsible for the system operation and management. The UCS supports and manages the working environment of the SCR builder.

    The librarians are the library staff and faculty and can be classified into three groups by their roles on the SCR database system. The record conversion operators initiate and monitor the conversion batch processor. The record mapping coordinators use the mapping table editor and the exception record editor to adjust the mapping conditions and add information into the exception records. The SCR database managers are not directly related to the SCR builder, but they are responsible to manage the SCR database which is build by the SCR builder.

    3.1.2 Organizational Commitment Responsibilities

    These are the description about the responsibilities of the personnel in each organizations.

    1. CS577a Team 3

      The team members are responsible for developing the SCR builder. For detailed description on the personnel responsibilities, please refer to the next section.

    2. USC Libraries

      • Record Conversion Operators

        Among the system users, the record conversion operators are the people who initiate the conversion batch processor and keep track of the correct operation of the conversion processing by checking the status messages generated.

      • Record Mapping Coordinators

        These are the people among the system users who can determines the mapping conditions and decide what the reasonable information is needed to be filled into the exception records. They are the main users for the mapping editor and the exception editor.

      • SCR Database Managers

        All the converted data of the serial publications will be loaded into the existing SIRSI's SCR database, and after that, the SCR database managers manage the database to insert a new record, delete an obsolete record, and modify incorrect information of a record.

      • System Manager

        The USC library has one computer programmer who can manage and develop computer softwares for the library information system. This person will be the major system manager of the SCR database builder. He will manage all the server and client site programs and detects abnormal operations of the system. He/She can solve minor problems on the computer system or the software system, and in case of the major software problems, he/she can contact to the system developer to solve the problem.

    3. University Computing Services(UCS)

      All the system working environment including the servers and the network systems are operated and managed by the UCS people. They are experts on computer systems and network systems.


    3.2 Development Responsibilities

    The team 3 of CS577a class consists of five students and we are responsible for developing the SCR builder. We manage and schedule the project, design the system architectures and functions based on the required capabilities, and develop prototypes. For detailed description on the personnel responsibilities, please refer to the next section.

    3.2.1 Development Organization Charts

    Figure 3.2 Development Organization Chart


    The project manager manages the project and is responsible for the feasibility rationale. He assures the consistency among all the elements of the project via analysis, measurement, etc. He analyze the business case for requirements and feasible architectures.

    The operation designer defines the top-level system objectives and scope by determining the system boundary, working environment, assumptions, and evolution parameters. He designs the operational concept, which is about the operations and maintenance scenarios, and organizational life-cycle responsibilities. He also identifies the life-cycle stake holders of the project.

    The initial prototype of the system is developed by the prototypest. Through the prototyping, developers can exercise the key usage scenarios and resolve the critical risks.

    The requirement designer defines the top-level functions, interfaces and quality attribute levels which includes the growth vectors and priorities. He also identifies the approach, resources, and assumptions of the development life-cycle.

    The architecture designer defines the feasible architecture which includes the physical and logical elements and relationships, and choices of COTS and reusable software elements. He identifies the infeasible architecture options.

    3.2.2 Staffing

    Table 3.1 describes the types of personnel required by the project, the number of personnel required to perform each major functions, and their responsibilities.

    Staff TitleTypeNumberResponsibilities
    Project Manager Manager 1 Manages the project and defines the feasibility rationale
    Operation Designer Analyst 1 Defines the operational concept and life-cycle plan
    Prototypest Programmer 1 Develops the initial prototype
    Requirement Designer Analyst 1 Define the system requirements and life-cycle plan
    Architecture Designer Analyst 1 Define the system and software architecture

    Table 3.1 Staffing Description


    3.2.2 Training

    This system will be implemented by either the CS577b team on Spring semester in 1998 or a programming team which will be hired by the library. The final system developer who will implement the system will train the librarians and programmer who will work with the system. For operators and mapping coordinators, they will guide the way to run and interact with the system. They will train the programmer to learn the basic managing functions for the system.


  4. Approach
  5. 4.1 Risk Management

    4.2 Development Phases

    4.2.1 Plans and Requirements Phase

    4.2.2 Product Design Phase

    4.2.3 Programming Phase

    4.2.4 Test Phase

       
    4.2.5 Implementation Phase
     
     
     
    4.3 Review

      4.4 Documentation
    The following documents are required by the project:
     

    4.5 Configuration Management

    4.6 Quality Assurance
    Please refer to Section 6 of Software and System Requirements Definition.
     

     
     

  6. Resources
  7. 5.1 Work Breakdown Structure

      Please refer to Fig. 5-1.
       
    5.2 Budgets
      Please refer to the Section 3.1 of Feasibility Rationale.
       

  8. Assumptions

  9.  

  10. Notes

  11.  

  12. Glossary