Download as PPTX, PDF, TXT or read online on Scribd
Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1/ 58
SOFTWARE
ENGINEERING SOFTWARE PROJECT MANAGEMENT Here are some articles that gives you a deep understanding of Software Project Management (SPM):
10.Software Project Management
1.Project Management Process Complexities 2.Project size estimation techniques 11.Quasi renewal processes 3.System configuration management 12.Reliability Growth Models 4.COCOMO Model 13.Jelinski Moranda software reliability model 5.Capability maturity model (CMM) 14.Schick-Wolverton software reliability 6.Integrating Risk Management in SDLC | model Set 1 15.Goel-Okumoto Model 7.Integrating Risk Management in SDLC | Set 2 16.Mills’ Error Seeding Model
8.Integrating Risk Management in SDLC | 17.Basic fault tolerant software
Set 3 techniques
9.Role and Responsibilities of a software 18.Software Maintenance
Project Manager Software Project Management(SPM) Software Project Management (SPM) involves planning, organizing, and controlling software development projects to ensure they are completed on time, within budget, and according to specified quality standards. Project scheduling is responsible activity of project manager. What is the Project Management Process? Project Management is the discipline of planning, monitoring, and controlling software projects, identifying the scope, estimating the work involved, and creating a project schedule. Along with it is also responsible for keeping the team up to date on the project’s progress handling problems and discussing solutions. Project Scheduling Project schedule simply means a mechanism that is used to communicate and know about that tasks are needed and has to be done or performed and which organizational resources will be given or allocated to these tasks and in what time duration or time frame work is needed to be performed. Effective project scheduling leads to success of project, reduced cost, and increased customer satisfaction. Scheduling in project management means to list out activities, deliverables, and milestones within a project that are delivered. It contains more notes than your average weekly planner notes. The most common and important form of project schedule is Gantt chart. GANTT CHART Project Scheduling Project Scheduling Process : The manager needs to estimate time and resources of project while scheduling project. All activities in project must be arranged in a coherent sequence that means activities should be arranged in a logical and well-organized manner for easy to understand. Initial estimates of project can be made optimistically which means estimates can be made when all favorable things will happen and no threats or problems take place. The total work is separated or divided into various small activities or tasks during project schedule. Then, Project manager will decide time required for each activity or task to get completed. Even some activities are conducted and performed in parallel for efficient performance. The project manager should be aware of fact that each stage of project is not problem-free. Project Scheduling Resources required for Development of Project : •Human effort •Sufficient disk space on server •Specialized hardware •Software technology •Travel allowance required by project staff, etc. Project Scheduling Advantages of Project Scheduling : There are several advantages provided by project schedule in our project management: •It simply ensures that everyone remains on same page as far as tasks get completed, dependencies, and deadlines. •It helps in identifying issues early and concerns such as lack or unavailability of resources. •It also helps to identify relationships and to monitor process. •It provides effective budget management and risk mitigation. Phases of Project Management Process Phases of Project Management Process 1. Project Initiation/Feasibility Study: A feasibility study explores system requirements to determine project feasibility. The goal is to determine whether the system can be implemented or not. The process of feasibility study takes as input the required details as specified by the user and other domain-specific details. The output of this process simply tells whether the project should be undertaken or not and if yes, what would the constraints be. Additionally, all the risks and their potential effects on the projects are also evaluated before a decision to start the project is taken. This phase of Project Management involves defining the project, identifying the stakeholders, and establishing the project’s goals and objectives. Phases of Project Management Process 2. Project Planning: In this phase of Project Management, the project manager defines the scope of the project, develops a detailed project plan, and identifies the resources required to complete the project. A detailed plan stating a stepwise strategy to achieve the listed objectives is an integral part of any project. Planning consists of the following activities: •Set objectives or goals •Develop strategies •Develop project policies Phases of Project Management Process •Determine courses of action •Making planning decisions •Set procedures and rules for the project •Develop a software project plan •Prepare budget •Conduct risk management •Document software project plans This step also involves the construction of a work breakdown structure(WBS). It also includes size, effort, schedule, and cost estimation using various techniques. WORK BREAKDOWN STRUCTURE (WBS) WORK BREAKDOWN STRUCTURE (WBS) Phases of Project Management Process 3. Project Execution: The Project Execution phase of the Project Management process involves the actual implementation of the project, including the allocation of resources, the execution of tasks, and the monitoring and control of project progress. A project is executed by choosing an appropriate software development lifecycle model (SDLC). It includes several steps including requirements analysis, design, coding, testing and implementation, testing, delivery, and maintenance. Many factors need to be considered while doing so including the size of the system, the nature of the project, time and budget constraints, domain requirements, etc. An inappropriate SDLC can lead to the failure of the project. Phases of Project Management Process 4. Project Monitoring and Controlling: This phase of Project Management involves tracking the project’s progress, comparing actual results to the project plan, and making changes to the project as necessary. In the project management process, in that third and fourth phases are not sequential in nature. These phase will run regularly with the project execution phase. These phase will ensure that project deliverable are need to meet. During the monitoring phase of the project management phases. The manager will respond to the proper tracking the cost and effort during the process. This tracking will not ensure that budget is also important for the future projects. Phases of Project Management Process 5. Project Closing: There can be many reasons for the termination of a project. Though expecting a project to terminate after successful completion is conventional, at times, a project may also terminate without completion. Projects have to be closed down when the requirements are not fulfilled according to given time and cost constraints. This phase of Project Management involves completing the project, documenting the results, and closing out any open issues. Phases of Project Management Process Some reasons for failure include: •Fast-changing technology •The project running out of time •Organizational politics •Too much change in customer requirements •Project exceeding budget or funds Once the project is terminated, a post-performance analysis is done. Also, a final report is published describing the experiences, lessons learned, and recommendations for handling future projects. Principles of Project Management The project should be effective so that the project begins with well- defined tasks. Effective project planning helps to minimize the additional costs incurred on the project while it is in progress. 1.Planning is necessary: Planning should be done before a project begins. 2.Risk analysis: Before starting the project, senior management and the project management team should consider the risks that may affect the project. Principles of Project Management 3.Tracking of project plan: Once the project plan is prepared, it should be tracked and modified accordingly. 4.Most quality standards and produce quality deliverables: The project plan should identify processes by which the project management team can ensure quality in software. 5.Description of flexibility to accommodate changes: The result of project planning is recorded in the form of a project plan, which should allow new changes to be accommodated when the project is in progress Advantages of the Project Management process: •Provides a structured approach to managing projects. •Helps to define project objectives and requirements. •Facilitates effective communication and collaboration among team members. •Helps to manage project risks and issues. •Ensures that the project is delivered on time and within budget. Disadvantages of the Project Management Process: •Can be time-consuming and bureaucratic •May be inflexible and less adaptable to changes •Requires a skilled project manager to implement effectively •May not be suitable for small or simple projects. What is a Project life Cycle in Project Management? The Project Life Cycle is a framework that outlines the phases a project goes through from initiation to closure. It typically includes five main phases. Each phase has specific objectives, activities, and deliverables, and the Project Life Cycle provides a structured approach for managing and executing projects efficiently. The Project Life Cycle helps project managers and teams understand the project’s progression, allocate resources effectively, manage risks, and ensure successful project outcomes. Responsibilities of Software Project Manager: •Proper project management is essential for the successful completion of a software project and the person who is responsible for it is called the project manager. •To do his job effectively, the project manager must have a certain set of skills. TASK: PROJECT MANAGER Discuss both the job responsibilities of a project manager and the skills required by him. PROJECT SIZE ESTIMATION TECHNIQUES Project Size Estimation Techniques Project size estimation is determining the scope and resources required for the project. 1.It involves assessing the various aspects of the project to estimate the effort, time, cost, and resources needed to complete the project. 2.Accurate project size estimation is important for effective and efficient project planning, management, and execution. Importance of Project Size Estimation Here are some of the reasons why project size estimation is critical in project management: 1.Financial Planning: Project size estimation helps in planning the financial aspects of the project, thus helping to avoid financial shortfalls. 2.Resource Planning: It ensures the necessary resources are identified and allocated accordingly. 3.Timeline Creation: It facilitates the development of realistic timelines and milestones for the project. Importance of Project Size Estimation 4.Identifying Risks: It helps to identify potential risks associated with overall project execution. 5.Detailed Planning: It helps to create a detailed plan for the project execution, ensuring all the aspects of the project are considered. 6.Planning Quality Assurance: It helps in planning quality assurance activities and ensuring that the project outcomes meet the required standards. Who Estimates Projects Size? Here are the key roles involved in estimating the project size: 1.Project Manager: Project manager is responsible for overseeing the estimation process. 2.Subject Matter Experts (SMEs): SMEs provide detailed knowledge related to the specific areas of the project. 3.Business Analysts: Business Analysts help in understanding and documenting the project requirements. 4.Technical Leads: They estimate the technical aspects of the project such as system design, development, integration, and testing. Who Estimates Projects Size? 5.Developers: They will provide detailed estimates for the tasks they will handle. 6.Financial Analysts: They provide estimates related to the financial aspects of the project including labor costs, material costs, and other expenses. 7.Risk Managers: They assess the potential risks that could impact the projects’ size and effort. 8.Clients: They provide input on project requirements, constraints, and expectations. Different Methods of Project Estimation 1.Expert Judgment: In this technique, a group of experts in the relevant field estimates the project size based on their experience and expertise. This technique is often used when there is limited information available about the project. 2.Analogous Estimation: This technique involves estimating the project size based on the similarities between the current project and previously completed projects. This technique is useful when historical data is available for similar projects. 3.Bottom-up Estimation: In this technique, the project is divided into smaller modules or tasks, and each task is estimated separately. The estimates are then aggregated to arrive at the overall project estimate. Different Methods of Project Estimation 4.Three-point Estimation: This technique involves estimating the project size using three values: optimistic, pessimistic, and most likely. These values are then used to calculate the expected project size using a formula such as the PERT formula. 5.Function Points: This technique involves estimating the project size based on the functionality provided by the software. Function points consider factors such as inputs, outputs, inquiries, and files to arrive at the project size estimate. 6.Use Case Points: This technique involves estimating the project size based on the number of use cases that the software must support. Use case points consider factors such as the complexity of each use case, the number of actors involved, and the number of use cases. Different Methods of Project Estimation 7.Parametric Estimation: For precise size estimation, mathematical models founded on project parameters and historical data are used. 8.COCOMO (Constructive Cost Model): It is an algorithmic model that estimates effort, time, and cost in software development projects by taking into account several different elements. 9.Wideband Delphi: Consensus-based estimating method for balanced size estimations that combines expert estimates from anonymous experts with cooperative conversations. 10.Monte Carlo Simulation: This technique, which works especially well for complicated and unpredictable projects, estimates project size and analyses hazards using statistical methods and random sampling. Estimating the Size of the Software Estimation of the size of the software is an essential part of Software Project Management. It helps the project manager to further predict the effort and time that will be needed to build the project. Here are some of the measures that are used in project size estimation: 1. Lines of Code (LOC) As the name suggests, LOC counts the total number of lines of source code in a project. The units of LOC are: 1.KLOC: Thousand lines of code 2.NLOC: Non-comment lines of code 3.KDSI: Thousands of delivered source instruction Estimating the Size of the Software •The size is estimated by comparing it with the existing systems of the same kind. The experts use it to predict the required size of various components of software and then add them to get the total size. •It’s tough to estimate LOC by analyzing the problem definition. Only after the whole code has been developed can accurate LOC be estimated. This statistic is of little utility to project managers because project planning must be completed before development activity can begin. •Two separate source files having a similar number of lines may not require the same effort. A file with complicated logic would take longer to create than one with simple logic. Proper estimation may not be attainable based on LOC. The length of time it takes to solve an issue is measured in LOC. This statistic will differ greatly from one programmer to the next. A seasoned programmer can write the same logic in fewer lines than a newbie coder. Estimating the Size of the Software Advantages: 1.Universally accepted and is used in many models like COCOMO. 2.Estimation is closer to the developer’s perspective. 3.Both people throughout the world utilize and accept it. 4.At project completion, LOC is easily quantified. 5.It has a specific connection to the result. 6.Simple to use. Estimating the Size of the Software Disadvantages: 1.Different programming languages contain a different number of lines. 2.No proper industry standard exists for this technique. 3.It is difficult to estimate the size using this technique in the early stages of the project. 4.When platforms and languages are different, LOC cannot be used to normalize. Estimating the Size of the Software 2. Number of Entities in ER Diagram ER model provides a static view of the project. It describes the entities and their relationships. The number of entities in the ER model can be used to measure the estimation of the size of the project. The number of entities depends on the size of the project. This is because more entities needed more classes/structures thus leading to more coding. Advantages: 1.Size estimation can be done during the initial stages of planning. 2.The number of entities is independent of the programming technologies used. Estimating the Size of the Software Disadvantages: 1.No fixed standards exist. Some entities contribute more to project size than others. 2.Just like FPA, it is less used in the cost estimation model. Hence, it must be converted to LOC. Estimating the Size of the Software 3. Total Number of Processes in DFD Data Flow Diagram(DFD) represents the functional view of software. The model depicts the main processes/functions involved in software and the flow of data between them. Utilization of the number of functions in DFD to predict software size. Already existing processes of similar type are studied and used to estimate the size of the process. The sum of the estimated size of each process gives the final estimated size. Estimating the Size of the Software Advantages: 1.It is independent of the programming language. 2.Each major process can be decomposed into smaller processes. This will increase the accuracy of the estimation. Disadvantages: 1.Studying similar kinds of processes to estimate size takes additional time and effort. 2.All software projects are not required for the construction of DFD. Estimating the Size of the Software 4. Function Point Analysis In this method, the number and type of functions supported by the software are utilized to find FPC(function point count). The steps in function point analysis are: 1.Count the number of functions of each proposed type. 2.Compute the Unadjusted Function Points(UFP). 3.Find the Total Degree of Influence(TDI). 4.Compute Value Adjustment Factor(VAF). 5.Find the Function Point Count(FPC). Estimating the Size of the Software The explanation of the above points is given below: 1. Count the number of functions of each proposed type: Find the number of functions belonging to the following types: •External Inputs: Functions related to data entering the system. •External outputs: Functions related to data exiting the system. •External Inquiries: They lead to data retrieval from the system but don’t change the system. •Internal Files: Logical files maintained within the system. Log files are not included here. •External interface Files: These are logical files for other applications which are used by our system. Estimating the Size of the Software 2. Compute the Unadjusted Function Points(UFP): Categorize each of the five function types as simple, average, or complex based on their complexity. Multiply the count of each function type with its weighting factor and find the weighted sum. The weighting factors for each type based on their complexity are as follows: Estimating the Size of the Software 3. Find the Total Degree of Influence: Use the ’14 general characteristics of a system to find the degree of influence of each of them. The sum of all 14 degrees of influence will give the TDI. The range of TDI is 0 to 70. The 14 general characteristics are: Data Communications, Distributed Data Processing, Performance, Heavily Used Configuration, Transaction Rate, On-Line Data Entry, End-user Efficiency, Online Update, Complex Processing Reusability, Installation Ease, Operational Ease, Multiple Sites and Facilitate Change. Each of the above characteristics is evaluated on a scale of 0-5. Estimating the Size of the Software 4. Compute Value Adjustment Factor(VAF): Use the following formula to calculate VAF: VAF = (TDI * 0.01) + 0.65 5. Find the Function Point Count: Use the following formula to calculate FPC: FPC = UFP * VAF Estimating the Size of the Software Advantages: 1.It can be easily used in the early stages of project planning. 2.It is independent of the programming language. 3.It can be used to compare different projects even if they use different technologies(database, language, etc). Disadvantages: 1.It is not good for real-time systems and embedded systems. 2.Many cost estimation models like COCOMO use LOC and hence FPC must be converted to LOC. When Should Estimates Take Place? Project size estimates must take place at multiple key points throughout the project lifecycle. It should take place during the following stages to ensure accuracy and relevance: 1.Project Initiation: Project is assessed to determine its feasibility and scope. 2.Project Planning: Precise estimates are done to create a realistic budget and timeline. 3.Project Execution: Res-estimation when there are significant changes in scope. 4.Project Monitoring and Control: Regular reviews to make sure that the project is on track. 5.Project Closeout: Comparing original estimates with actual outcomes and documenting estimation accuracy. Challenges in Project Size Estimation Project size estimation can be challenging due to multiple factors. Here are some factors that can affect the accuracy and reliability of estimates: 1.Unclear Requirements: Initial project requirements can be vague or subject to change, thus making it difficult to estimate accurately. 2.Lack of Historical Data: Without access to the data of similar past projects, it becomes difficult to make informed estimates, thus estimates becoming overly optimistic or pessimistic and leading to inaccurate planning. 3.Interdependencies: Project with numerous interdependent tasks are harder to estimate due to the complicated interactions between components. Challenges in Project Size Estimation 4.Productivity Variability: Estimating the productivity of resources and their availability can be challenging due to fluctuations and uncertainties. 5.Risks: Identifying and quantifying risks and uncertainties is very difficult. Underestimating the potential risks can lead to inadequate contingency planning, thus causing the project to go off track. Improving Accuracy in Project Size Estimation Improving the accuracy of project size estimation involves a combination of techniques and best practices. Here are some key strategies to enhance estimation accuracy: 1.Define Clear Requirements: Ensure all project requirements are thoroughly documented and engage all stakeholders early and frequently to clarify and validate the requirements. 2.Use Historical Data: Use data from similar past projects to make informed estimates. 3.Use Estimation Techniques: Use various estimation techniques like Analogue Estimation, Parametric Estimation, Bottom-Up Estimation, and Three-Point Estimation. Improving Accuracy in Project Size Estimation 4.Break Down the Project: Use Work Breakdown Structure (WBS) and detailed take analysis to make sure that each task is specific and measurable. 5.Incorporate Expert Judgement: Engage subject matter experts and experienced team members to provide input on estimates. Future of Project Size Estimation The future of project size estimation will be shaped by the advancements in technology and methodologies. Here are some key developments that can define the future of project size estimation: 1.Smarter Technology: Artificial intelligence (AI) could analyze past projects and code to give more accurate forecasts, considering how complex the project features are. 2.Data-Driven Insights: Instead of just lines of code, estimates could consider factors like the number of users, the type of software (mobile app vs. web app), and how much data it handles. Future of Project Size Estimation 3.Human-AI Collaboration: Combining human expertise with AI can enhance the decision-making process in project size estimation. 4.Collaborative Platforms: Tools that facilitate collaboration among geographically dispersed teams can help to enhance the project size estimation process. 5.Agile Methodologies: The adoption of agile methodologies can promote continuous estimation and iterative refinement. COST BENEFIT ANALYSIS