Project Execution & Termination Life Cycle Execution Presented by: Basker George Life Cycle (LC) Execution (实行) Executing Life Cycle for a project is an important activity. It is the longest activity during which the project’s process is executed. It is the main Engineering activity for building software. Proper LC execution is the focus of Software Product Engineering KPA of CMM Level 3 Cont… The Life Cycle activities include: Design Coding Integration (综合) Testing There are two approach that can be followed for the Life Cycle. The first Approach to LC In this approach each stage has a detailed process definition. Support material document (文档) describe how each step is to be executed. Hence a new comer (新来者) can easily learn the methodology & execute the process effectively using documentation. The Second Approach to LC In this approach, main focus is on the output & its quality rather than methodology Output of each stage is of primary importance Detailed step is used as guidelines (指导方针). Infosys uses a mixed approach…. Cont… The main source supporting Life Cycle execution are: Activities (活动性) checklist: This consists of lowest level activities for process definition. Guidelines: This describe the methodology for executing different phase… Cont… Templates (模板) : Define the structure & contents of the outputs of some stages. Review (回顾) checklist: List the issues to look for while reviewing the output of each stage. High Level Design It is a Stage of the Life Cycle Logical view of the computer implementation (执行) is developed. Main outputs are: Document describing functional (功能的) design Database design. Operating environment architecture Functional Architecture (建筑) It specifies the project’s overall layered architecture. Example : Client layer, Server Layer, Application server layer & Database layer.. It explains How security is handled Validation to be done Exceptions to be handled… Database Design Indicates tables needed in the system Attributes of each table, Primary Key, Foreign Key… Stored procedures, Views & triggers Detailed Design The two main output during detailed design are: Logic design of the components identified in the high-level design Unit test plan for each unit of the system Cont… During this phase implementation for the module identified in high level design is specified. All algorithms & data structure issues (难题) are resolved during this phase. When detailed design phase is ready, the specified logic is coded using the required programming language. Build Phase During this activity, each module is coded & undergoes unit testing The logic of detailed design is converted to the required programming language. Coding standard for the selected language play a important role. Using a checklist code review is done Code Review Checklist 1. 2. 3. 4. 5. Completeness Does the program handle all condition, function, & updates given in the specification? Are inline comments used judiciously? Are all design issues handled? Have all user interface handled? Are all boundary testing/debugging condition addressed? Code Review Checklist 1. 2. 3. 4. 5. 6. 7. 8. Logic and Correctness Are all input parameter checked? Are all subscript out-of-range condition checked? Are results of error checks reported to the calling programs? Are code layout & coding standards satisfied? Is any hard-coding done? Is any unwarranted coding done? Are any uninitialized variables present? Are any non terminating loop present Code Review Checklist 9. 10. 11. 12. 13. Logic & correctness …cont… Does each program has one entry & one exit point? Are all declared variables used? Is the program logic correct? Is the program modular? Is the code reusable? Code Review Checklist 1. 2. 3. 4. 5. Reliability, portability Have performance/efficiency check been done? Is code independent of the character & word size of the platform? Are records updated/deleted in the same order through out the system? Do comments correspond to the logic being described? Are error conditions comprehensively & consistently handled? Code Review Checklist 1. 2. 3. 4. Maintainability Does the program have proper indentation? Is there a description at the beginning of the program that gives details such as description of program functionality, the author, called program, calling program, so on? Are the comments current & do they clarify the functions of each program/module? Are the data names descriptive? Code Review Checklist Traceability 1. 2. Can the program source be traced to the program specification? Are all copy books used cross-referenced? System Testing System testing has two phase System test planning System test Activity System test planning can be performed after High level design has been completed System Testing Activity can take place only after all modules have been coded & unit tested, i,e after Build Phase. Cont… The out put of System test planning stage is TEST PLAN. During testing activity, TEST PLAN is executed. The output is SYSTEM TEST REPORT The report specifies which test passed & which caused error. The report is then reviewed & approved The defect found are logged in the DEFECT CONTROL SYSTEM The logged defects are the tracked (跟踪) to closure Acceptance Test & Installation The software that is developed to be considered successful, should be accepted by the customer. The customer performs some acceptance test in the environment in which the software will operate. Acceptance test works similar to system Testing. An acceptance test plan is written & executed. When the test result satisfies the acceptance criteria, the software is accepted. Cont… The acceptance test is prepared & executed by the customer with the help of vendor. Defects found during acceptance test is fixed by the development team. Both AT & installation require instruction how to load the software in production environment. Cont… A “release note “ is therefore prepared for the project. This document contains information about Directories to create Where to place files The tables in the system Stored procedures Strategy (策略) for populating (板上组装) the database Software needed for client & server & source files of software.