.

Friday, September 20, 2019

Project development management process

Project development management process INTRODUCTION PROJECT MANAGEMENT: is the art and science of planning, organizing and managing, the vision, task, and resources to bring about the successful completion of specific project goals and objectives. Project Management in software development process can be referred to as the application of management techniques and system execution of a software project through the projects life-cycle in order to achieve predetermined objectives of scope, quality, time and cost to the equal satisfaction of those involved. It involves planning, monitoring, and control of people, process and event that take place as software evolves from an initial concept to an operational implementation. [6] SOFTWARE: Software comprises of programs and associated data and documentation. Each of these items is a part of software development process. The main problems for software development currently are: high cost, low quality and frequent changes causing change and rework. Software has become a limiting factor in the evolution of computer-based systems. The intent of software development is to produce a framework for building higher quality software. In order to achieve successful and quality software certain methods and criteria need to be followed. These methods and criteria are classified as the software development processes. [6] SOFTWARE DEVELOPMENT PROCESSES: is a structure imposed on the development of a software product. The process includes the phase approach to software development, software development models, the software development processes and the software project management processes. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process. These processes are carried out in a step by step criteria so as to come up with a successful project where by a successful project start with a step back and understanding business drivers, the problem or opportunity that accelerates the project. [6] A PHASED APPROACH TO SOFTWARE DEVELOPMENT A development process consists of various phases, with each phase ending with a defined output. The phases are performed in an order specified by the software development process model. The primary reason for using a phased process is that it breaks the problem of developing software into successfully performed set of phases, each handling a different concern of software development. This ensures that the cost of development is lower than what it would have been if the whole problem were tackled together. [4][6][2] Furthermore, a phase software developmental approach allows proper checking of quality and progress at some defined points during the development. In general, any problem solving in software must consist of these activities during the development process: requirement specification, system design, detailed design, coding and testing, deployment and conversion as shown in figure 1. [6] Requirement Specifications: defines the objectives of new or modified system and lists a detailed statement of the functions that new system must perform. Analysis: during analysis, the focus is on building models that unambiguously determine the problem for which a software solution is being constructed. At this stage the limitations of the target environment is not given a priority. Design: the analysis model is adapted such that it serves as the basis for implementation in the target environment. Hence, the design deals with transforming or refining the analysis model into a design model that determines how to eventually obtain a working system. Implementation: at this stage, the coding of the system is performed Testing: testing deals with the validation of software at various levels. Testing can be categorized as follows: Unit: deals with testing the smallest units of the designed software. Integration: integration testing deals with testing the application that has been (partially) put together by integrating the smallest software units. Basically it involves testing individual software modules as a group. Validation: this involve in testing whether the software functions in a manner expected by the user. System: this is carried out at the after the integration and validation testing, system testing deals with different test whose primary purpose is to fully exercise the computer-based system. Although each test has a different purpose, all work should verify that all system elements have been properly integrated and perform allocated functions. Recovery: recovery testing involves system tests that force the software to fail in a variety of ways and verifies that recovery is properly performed. Security: this testing verifies that protection mechanisms built into a system will, in fact, protect it from improper usage and unauthorized access. It ensures adherence to restrictions on command usage, access to data, and access requirement according to associated privileges. Stress: the stress testing involves executing a system in a manner that demands resources in abnormal quantity, frequency, or volume. In other words, stress testing helps find out the level of robustness and consistent or satisfactory performance even when the limits for normal operation for the system software is crossed. Conversion: during this phase, the old system is substitute by the new system that has been developed. Four approaches can be adopted to achieve the conversion transformation [Harold] namely: Parallel: in this approach both the old and new system are run together until everyone involve in the project is convinced that the old one can be safely taken out of operation. Direct Cutover: at this stage, the old system is discarded and replaced by the new one, all at the same time. Pilot study: during the pilot study approach, the new system is introduced into a very limited area of the organization. It is not introduced any further into the rest of the organization as long as the pilot system does not begin running smoothly. Phased: the phased approach involve the introduction of the new system in stages. The pilot study approach can be considered as a special case of this approach. Maintenance: software maintenance process is the modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment. At this stage the system has to be kept operational. The nature and extent of activity during this process depend on the type of software being developed. For some support software, the maintenance and operation phase may be very active due to changing user needs. [7] SOFTWARE DEVELOPMENT PROCESSES Software development processes are the structures or processes imposed on the development of a software product. To produce a successful and qualitative software product certain processes management criteria need to be considered. [6] A process is a particular method of doing something, generally involving a number of steps or operations. A software development project will have at least development activities and project management activities. The development process focuses on the activities directly related to the production of software that is design, coding, and testing. Project management processes focus on planning, estimation, scheduling and taking corrective action when things do not go as per plan. [6][7] Configuration management processes focus on change and configuration control, so that the correct, tested and approved version of software component are put together for delivery. The process management processes focus on the management and improvement of these processes. The four named processes will be discussed in detail. Development Processes: these processes specify the major development and quality assurance activities that need to be performed in the project, and hence form the core of the software development processes. [7] Software development activity like any production activity is carried out in a sequence of steps, each step performing a well-defined activity leading to the satisfaction of the project goals, with the output of one step forming the input into the next step. One of the aims of any process should be to prevent defect from a phase to pass on to the next phase. This requires verification and validation activity at the end of each step. Verification checks the consistency of input into a phase, while validation activities check the consistency with user needs. There is a clearly defined output of a phase, which can be verified by some means, and the input into the next phase. Such outputs of a development process are called work products. These could be requirements documents, design documents, code, and prototype. [5] As a development process typically contains a sequence of step, the criteria for exit and entry from the phase are to be defined. These generally depend on the implementation of the process. Besides the verification and validation criteria, the development step needs to produce some information for the management process. Information has to flow from development process. An example of a typical step in a development process is illustrated in figure 2. [8] Project Management Processes: the project management component of the software process specifies all the activities that need to be done by the project management to ensure that the cost and quality objectives are met. Project management is an integrated part of software development. To meet the cost, quality and schedule objectives, resources have to be properly allotted to each activity for the project, the progress of the different activities has to be monitored, and corrective action taken, if needed. The processes focus on issues like planning a project, estimating resources, and schedule and monitoring and controlling the project. The basic task is to plan the detailed implementation of the process for a particular project and ensure that the plan is followed. [5][6] Software Configuration Management Processes: throughout development, software consist of a collection of items, such as programs, data and documents that can be easily changed. These changes do happen often. The easily changeable nature of software and the fact that changes often take place require that changes take place in a controlled manner. Software configuration Management systematically controls the changes that take place during development. Basically it is the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines. It is also the process of changing requests and verifying the completeness and correctness of item. These processes are considered independent of the development process, because development processes cannot accommodate changes at any time during development. [6] Process Management Processes: software processes are also not static entities. Process management processes concentrate on the changes that need to be done to improve the process. The three important entities that software development deals with are processes, projects and products. The various software processes ensure that the activities require to develop software are carried out in a controlled manner. [6] CONCLUDE SUMMARY Software development management process consist of various phases, each phase ending with a successful defined output, making it possible to move to the next phase accordingly. The phases are performed in an order specified by the process model criteria being followed. The software development process goes through several phases just like the software development life cycles. The software development process consists of four management processes which are development processes, project management processes, software configuration management processes and the process management processes. The four Ps extremely vital for software project development management are people, product, process and project. All four play equally important roles in the success of a project.

No comments:

Post a Comment