Unit - 6
Project management
Q1) Introduce software project management?
A1) Software project management (SPM) is a systematic approach to planning and directing software development initiatives. Software projects are planned, implemented, monitored, and controlled as part of project management.
The art and science of organizing and supervising software projects is known as software project management. It is a sub-discipline of software project management that deals with the planning, implementation, monitoring, and control of software projects.
It is a method of organizing, assigning, and scheduling resources in order to create computer software that meets criteria.
The client and the developers need to know the project's length, duration, and cost in software project management.
Need of Software Project Management
Software is a digital product that does not have a physical form. Software development is a relatively new field, with minimal expertise in creating software products. The majority of software solutions are customized to meet the needs of the client. The most important is that underlying technology evolves at such a quick pace that experience gained from one product may not be applicable to another. Because such economic and environmental restrictions raise the risk of software development, it is critical to effectively manage software projects.
It is vital for an organization to create a high-quality product while staying within the client's budgetary constraints and completing the project on time. As a result, software project management is required to take into account user needs as well as budget and schedule restrictions.
For software projects, the graphic above depicts triple limitations. It is an important component of software development to create a high-quality product while staying within the price constraints of the client and completing the project on time. This triple constraint triangle may be influenced by a number of internal and external factors. Any one of three factors can have a significant impact on the other two.
As a result, software project management is critical for incorporating user needs as well as budget and time restrictions.
Q2) Write the advantages of software project management?
A2) Advantages of Software Project Management
● It aids in software development planning.
● Software development is made simple to implement.
● Software project management includes issues such as monitoring and regulating.
● Overall, it reduces the amount of time and money spent on software development.
Q3) Define project planning?
A3) Software project planning is a work that must be completed before software development can begin. It's there to help with software development, but it doesn't entail any specific action that has anything to do with software production; rather, it's a collection of many procedures that help with software production.
Once a project is determined to be feasible, computer code project managers develop the project. Even before any development activity begins, project design is conducted and finalized. Following are the steps involved in project planning:
Estimating the project's later characteristics:
● Project size - What are the potential drawbacks in terms of the effort and time required to build the product?
● Cost - What percentage of the project's worth is it costing to develop?
● Duration - How long will it take for you to want complete development?
● Effort - What percentage of effort is required?
The accuracy of such estimations will determine the effectiveness of the next designing tasks.
● alternative resources and a planning force
● Plans for worker organization and staffing
● Identifying risks, analyzing them, and devising strategies to mitigate them.
● Various arrangements such as a quality assurance plan, configuration, management arrangement, and so on.
Q4) Write the order of precedence for project planning activity?
A4) Order of precedence for project planning activities
A project manager's many project-related estimates have already been mentioned. The figure below depicts the sequence in which critical project development activities are carried out. The first action is size estimate, which can be easily identified. Alternative estimations, such as the estimation of effort, cost, resource, and project length, are furthermore significant parts of project development.
Fig 1: Precedence ordering among planning activities
Q5) What do you mean by sliding window planning?
A5) Sliding Window Planning
Because adherence to incorrect time and resource estimates results in schedule slippage, project planning requires extreme caution and attention. Client dissatisfaction and a negative impact on team morale will result from schedule delays. It may potentially result in project failure.
Project design, on the other hand, can be a tough task. Creating accurate blueprints, particularly for huge structures, is quite difficult. Because the correct parameters, the scope of the project, project personnel, and other factors may change over the course of the project, this is a part of the problem. To overcome this disadvantage, most project managers approach project design in stages.
Managers are protected from making large commitments too early by designing a project in stages. Window design is the term for this technique of staggered design. Beginning with an initial set up, the project is planned more precisely in consecutive development stages using the window technique.
At the start of a project, project managers receive only a smattering of information on the project's important aspects. As the project goes through different phases, its data base improves step by step. After each section is completed, the project managers will set up each subsequent section more precisely and with increasing levels of confidence.
Q6) Describe project scheduling?
A6) In a project, project scheduling refers to a road map of all activities that must be completed in a specific order and within the time slots assigned to each task. Project managers typically define multiple tasks and project milestones and organize them according to a variety of parameters. They look for tasks that are in the critical route of the plan and must be completed in a specified order (due to task interdependency) and within the time allotted. Tasks that are not on the critical path are less likely to have an impact on the project's overall timetable.
For scheduling a project, it is necessary to -
● Determine all of the functionalities that are required to finish the project.
● Break down large tasks into smaller tasks.
● Determine the degree of interdependence between various activities.
● Determine the most likely size for the amount of time it will take to accomplish the tasks.
● Assign resources to various activities.
● Plan the start and end dates for various events.
● Determine the most important path. The set of actions that determine the project's duration is a significant way.
Identifying all of the functions required to finish the project is the first step in arranging a software plan. A strong understanding of the project's complexities and development process aids the supervisor in efficiently identifying the project's vital role. The large functions are then split down into a series of valid little activities that are assigned to different engineers. The structure of the job breakdown After the project manager has broken down the purpose and constructed the work breakdown structure, formalism assists the manager in systematically breaking down the function; he must uncover the dependencies among the tasks. The order in which the various events are carried out is determined by the dependencies among the various activities.
If the outcomes of one action A are required by another activity B, activity A must be scheduled after activity B. Function dependencies, in general, describe a partial ordering among functions, i.e., each service may precede a subset of other functions, but other functions may not have any precedence ordering defined between them (called concurrent function). The pattern of an activity network defines the dependencies between the activities.
Following the processing of the activity network representation, resources are given to each activity. A Gantt chart is commonly used to allocate resources. Following the completion of resource allocation, a PERT chart is created. The PERT chart is a handy tool for monitoring and controlling programmes. The project plan must breakdown the project functions into a series of activities in order to schedule tasks. It is necessary to specify the time frame in which each action should be completed.
A milestone is the point at which an action comes to a finish. By auditing the timely completion of milestones, the project manager keeps track on the project's function. If he examines that the milestones start getting delayed, then he has to handle the activities carefully so that the complete deadline can still be met.
Q7) Write the advantages of project scheduling?
A7) Advantages of Project Scheduling
Project schedules have a number of advantages in our project management:
● Simply put, it guarantees that everyone is on the same page in terms of task completion, dependencies, and deadlines.
● It aids in the early detection of difficulties and concerns such as a lack of or unavailability of resources.
● It also aids in the identification of relationships and the monitoring of the process.
● It allows for efficient budgeting and risk mitigation.
Q8) Explain risk management?
A8) All activities related to identifying, assessing, and planning for foreseeable and non-predictable hazards in the project are included in risk management. There's a chance you'll be exposed to the following dangers:
● Experienced personnel are departing the project, while fresh personnel are being hired.
● Organizational management changes.
● Changes in the requirements or a misinterpretation of the requirements.
● Underestimation of time and resources necessary.
● Technological advancements, environmental changes, and corporate competitiveness are all factors to consider.
Risk Management Process
In the risk management process, the following activities are involved:
● Identification - Make a list of all potential risks that may arise during the project.
● Categorize - Divide known risks into three categories based on their potential influence on the project: high, medium, and low risk intensity.
● Manage - Examine the likelihood of risks occurring at various stages. Make a strategy for avoiding or dealing with risks. Make an effort to keep their side effects to a minimum.
● Monitor - Keep a close eye on the potential dangers and their early warning signs. Also keep an eye on the consequences of any actions made to lessen or avoid them.
Classification
Risks can be classified into three categories that can harm a software project:
● Project risks
● Technical risks
● Business risks
- Project risks: Budgetary, scheduling, human, resource, and customer-related issues are all examples of project hazards. Schedule slippage is a critical project risk. It's difficult to track and control a software project since software is intangible. Controlling something that cannot be identified is extremely difficult. The plan executive can notice the product taking shape in any production programme, such as vehicle manufacture.
- Technical risks: Potential technique, implementation, interface, testing, and maintenance issues are all technical hazards. An ambiguous specification, an incomplete specification, a changing specification, technical ambiguity, and technical obsolescence are all part of it. The majority of technical hazards arise from the development team's lack of project expertise.
- Business risks: This form of risk includes the possibility of developing a fantastic product that no one wants, as well as the possibility of losing budgetary or manpower commitments.
Q9) What are the principles of risk management?
A9) Principle of Risk Management
● Global Perspective - We review the larger system description, design, and implementation in this section. We consider the likelihood and potential consequences of a risk.
● Take a forward-looking view - Consider the threat that might occur in the future and make future preparations for guiding the following events.
● Open Communication - This allows for a free flow of information between the client and the team members, ensuring that everyone is aware of the dangers.
● Integrated management - In this approach, risk management is integrated into the project management process.
● Continuous process - Risks are tracked continuously throughout the risk management paradigm at this step of the process.
Q10) What is change management?
A10) In software development, change management refers to the transition from an existing state of a software product to a better state of the product. Modifications to artifacts, such as code changes, process changes, or documentation changes, are controlled, supported, and managed by it. Where CCP (Change Control Process) primarily identifies, documents, and authorizes software application changes.
Each software development process follows the Software Development Life Cycle (SDLC), which ensures that each phase is completed in the proper order to produce a high-quality software product. Despite the fact that Change Management is not included in any of the stages of the SDLC, it is critical to the entire software development process. Change management tools are used for a variety of goals, including adopting, controlling, representing, and enacting the desired change. Change management tools for Flow Charting, Project Planning, Data Collection, and other tasks, for example.
Source of Change
Various reasons may arise during the development process that necessitate the implementation of certain changes in the product. These sources are as follows)
● Business reorganization
● New Market conditions
● New equipment
● Fixing any bugs/errors
● New customer needs
● Performance or reliability improvement
● Budgetary or scheduling constraints
Q11) Write the importance of change management?
A11) Importance of Change Management
● For the purpose of improving performance.
● For the purpose of promoting engagement.
● For the purpose of increasing innovation.
● In order to incorporate new technologies.
● For the purpose of adopting new requirements.
● In order to save money.
Q12) What are the process of change management?
A12) Process of Change Management
When a software application or product undergoes any modifications in an IT environment, it goes through the following sequential processes:
● Creating a request for change
● Reviewing and assessing a request for change
● Planning the change
● Testing the change
● Creating a change proposal
● Implementing changes
● Reviewing change performance
● Closing the process
Q13) Define software reengineering?
A13) Software re-engineering is the process of examining and altering a system in order to reassemble it in a new form. Software re-engineering is the application of Re-Engineering ideas to the software development process. It has a favorable impact on software cost, quality, customer service, and delivery time. We improve software through Software Re-engineering to make it more efficient and effective.
Software Re-engineering is a software development technique that aims to make a software system more maintainable. Re-engineering is the process of examining and altering a system in order to reassemble it in a new form. Reverse engineering, forward engineering, rebuilding, and other sub-processes are all part of this process.
Objectives of Re-engineering
● To describe a cost-effective system evolution alternative.
● The purpose of this document is to describe the activities involved in the software maintenance process.
● To discuss the problems of data re-engineering and to distinguish between software and data re-engineering.
Re-Engineering cost factors
● The quality of the re-engineered software.
● Engineering availability is supported by the tool.
● The degree to which data conversion is required.
● Expert staffing for re-engineering is available.
Q14) Write the advantages of software reengineering?
A14) Advantages of Re-engineering
● Reduced Risk - Because the programme is already in place, the risk is lower than if it were developed from scratch. There are numerous issues that might arise during the creation of new software, including development issues, personnel issues, and specification issues.
● Reduction in Costs – Re-engineering is less expensive than designing new software.
● Business Rules Revealed - When a system is re-engineered, business rules that have been embedded in the system are rediscovered.
● Better Use of Existing Personnel - During re-engineering, existing staff expertise can be preserved and expanded to accommodate new capabilities.
Q15) What are the disadvantages of software reengineering?
A15) Disadvantages of Re-engineering
● There are practical limits to how much reengineering can be done.
● Manual data management is required for major architectural modifications or dramatic reorganization of the systems.
● A re-engineered system is unlikely to last as long as a fresh system built with modern software re-engineering methods.
Q16) Describe the activity of software reengineering?
A16) Software Re-Engineering Activities
Fig 2: Software reengineering activity
- Inventory Analysis
Every software company should keep track of all of its apps.
● Inventory can be as simple as a spreadsheet model with data that provides a complete description of each running application.
● Candidates for re-engineering emerge when this data is sorted according to business criticality, lifespan, current maintainability, and other locally important factors.
● The resource can then be assigned to a re-engineering candidate application.
2. Document reconstructing
A system's documentation either explains how it works or how to use it.
● It is necessary to update the documentation.
● It's possible that properly documenting an application isn't required.
● The system is mission-critical, and it needs to be completely re-documented.
3. Reverse Engineering
Reverse engineering is the process of recovering a design. Data, architectural, and procedural design information are extracted from an existing programme using reverse engineering techniques.
4. Code Reconstructing
● A reconstructing tool is used to analyze the source code in order to reconstruct it. Structured programming construct violations are noticed, and the code is subsequently recreated.
● The rearranged code is then inspected and tested to ensure that no problems have arisen.
5. Data Restructuring
● Reverse engineering is the first step in data rearrangement.
● The current data architecture is examined, and data models that are required are defined.
● Data objects and attributes are identified, and the quality of the existing data structure is assessed.
6. Forward Engineering
Forward Engineering, also known as renovation or reclamation, not only recovers design knowledge from current software, but also uses it to update or reconstitute the system in order to improve its overall quality.
Unit - 6
Project management
Q1) Introduce software project management?
A1) Software project management (SPM) is a systematic approach to planning and directing software development initiatives. Software projects are planned, implemented, monitored, and controlled as part of project management.
The art and science of organizing and supervising software projects is known as software project management. It is a sub-discipline of software project management that deals with the planning, implementation, monitoring, and control of software projects.
It is a method of organizing, assigning, and scheduling resources in order to create computer software that meets criteria.
The client and the developers need to know the project's length, duration, and cost in software project management.
Need of Software Project Management
Software is a digital product that does not have a physical form. Software development is a relatively new field, with minimal expertise in creating software products. The majority of software solutions are customized to meet the needs of the client. The most important is that underlying technology evolves at such a quick pace that experience gained from one product may not be applicable to another. Because such economic and environmental restrictions raise the risk of software development, it is critical to effectively manage software projects.
It is vital for an organization to create a high-quality product while staying within the client's budgetary constraints and completing the project on time. As a result, software project management is required to take into account user needs as well as budget and schedule restrictions.
For software projects, the graphic above depicts triple limitations. It is an important component of software development to create a high-quality product while staying within the price constraints of the client and completing the project on time. This triple constraint triangle may be influenced by a number of internal and external factors. Any one of three factors can have a significant impact on the other two.
As a result, software project management is critical for incorporating user needs as well as budget and time restrictions.
Q2) Write the advantages of software project management?
A2) Advantages of Software Project Management
● It aids in software development planning.
● Software development is made simple to implement.
● Software project management includes issues such as monitoring and regulating.
● Overall, it reduces the amount of time and money spent on software development.
Q3) Define project planning?
A3) Software project planning is a work that must be completed before software development can begin. It's there to help with software development, but it doesn't entail any specific action that has anything to do with software production; rather, it's a collection of many procedures that help with software production.
Once a project is determined to be feasible, computer code project managers develop the project. Even before any development activity begins, project design is conducted and finalized. Following are the steps involved in project planning:
Estimating the project's later characteristics:
● Project size - What are the potential drawbacks in terms of the effort and time required to build the product?
● Cost - What percentage of the project's worth is it costing to develop?
● Duration - How long will it take for you to want complete development?
● Effort - What percentage of effort is required?
The accuracy of such estimations will determine the effectiveness of the next designing tasks.
● alternative resources and a planning force
● Plans for worker organization and staffing
● Identifying risks, analyzing them, and devising strategies to mitigate them.
● Various arrangements such as a quality assurance plan, configuration, management arrangement, and so on.
Q4) Write the order of precedence for project planning activity?
A4) Order of precedence for project planning activities
A project manager's many project-related estimates have already been mentioned. The figure below depicts the sequence in which critical project development activities are carried out. The first action is size estimate, which can be easily identified. Alternative estimations, such as the estimation of effort, cost, resource, and project length, are furthermore significant parts of project development.
Fig 1: Precedence ordering among planning activities
Q5) What do you mean by sliding window planning?
A5) Sliding Window Planning
Because adherence to incorrect time and resource estimates results in schedule slippage, project planning requires extreme caution and attention. Client dissatisfaction and a negative impact on team morale will result from schedule delays. It may potentially result in project failure.
Project design, on the other hand, can be a tough task. Creating accurate blueprints, particularly for huge structures, is quite difficult. Because the correct parameters, the scope of the project, project personnel, and other factors may change over the course of the project, this is a part of the problem. To overcome this disadvantage, most project managers approach project design in stages.
Managers are protected from making large commitments too early by designing a project in stages. Window design is the term for this technique of staggered design. Beginning with an initial set up, the project is planned more precisely in consecutive development stages using the window technique.
At the start of a project, project managers receive only a smattering of information on the project's important aspects. As the project goes through different phases, its data base improves step by step. After each section is completed, the project managers will set up each subsequent section more precisely and with increasing levels of confidence.
Q6) Describe project scheduling?
A6) In a project, project scheduling refers to a road map of all activities that must be completed in a specific order and within the time slots assigned to each task. Project managers typically define multiple tasks and project milestones and organize them according to a variety of parameters. They look for tasks that are in the critical route of the plan and must be completed in a specified order (due to task interdependency) and within the time allotted. Tasks that are not on the critical path are less likely to have an impact on the project's overall timetable.
For scheduling a project, it is necessary to -
● Determine all of the functionalities that are required to finish the project.
● Break down large tasks into smaller tasks.
● Determine the degree of interdependence between various activities.
● Determine the most likely size for the amount of time it will take to accomplish the tasks.
● Assign resources to various activities.
● Plan the start and end dates for various events.
● Determine the most important path. The set of actions that determine the project's duration is a significant way.
Identifying all of the functions required to finish the project is the first step in arranging a software plan. A strong understanding of the project's complexities and development process aids the supervisor in efficiently identifying the project's vital role. The large functions are then split down into a series of valid little activities that are assigned to different engineers. The structure of the job breakdown After the project manager has broken down the purpose and constructed the work breakdown structure, formalism assists the manager in systematically breaking down the function; he must uncover the dependencies among the tasks. The order in which the various events are carried out is determined by the dependencies among the various activities.
If the outcomes of one action A are required by another activity B, activity A must be scheduled after activity B. Function dependencies, in general, describe a partial ordering among functions, i.e., each service may precede a subset of other functions, but other functions may not have any precedence ordering defined between them (called concurrent function). The pattern of an activity network defines the dependencies between the activities.
Following the processing of the activity network representation, resources are given to each activity. A Gantt chart is commonly used to allocate resources. Following the completion of resource allocation, a PERT chart is created. The PERT chart is a handy tool for monitoring and controlling programmes. The project plan must breakdown the project functions into a series of activities in order to schedule tasks. It is necessary to specify the time frame in which each action should be completed.
A milestone is the point at which an action comes to a finish. By auditing the timely completion of milestones, the project manager keeps track on the project's function. If he examines that the milestones start getting delayed, then he has to handle the activities carefully so that the complete deadline can still be met.
Q7) Write the advantages of project scheduling?
A7) Advantages of Project Scheduling
Project schedules have a number of advantages in our project management:
● Simply put, it guarantees that everyone is on the same page in terms of task completion, dependencies, and deadlines.
● It aids in the early detection of difficulties and concerns such as a lack of or unavailability of resources.
● It also aids in the identification of relationships and the monitoring of the process.
● It allows for efficient budgeting and risk mitigation.
Q8) Explain risk management?
A8) All activities related to identifying, assessing, and planning for foreseeable and non-predictable hazards in the project are included in risk management. There's a chance you'll be exposed to the following dangers:
● Experienced personnel are departing the project, while fresh personnel are being hired.
● Organizational management changes.
● Changes in the requirements or a misinterpretation of the requirements.
● Underestimation of time and resources necessary.
● Technological advancements, environmental changes, and corporate competitiveness are all factors to consider.
Risk Management Process
In the risk management process, the following activities are involved:
● Identification - Make a list of all potential risks that may arise during the project.
● Categorize - Divide known risks into three categories based on their potential influence on the project: high, medium, and low risk intensity.
● Manage - Examine the likelihood of risks occurring at various stages. Make a strategy for avoiding or dealing with risks. Make an effort to keep their side effects to a minimum.
● Monitor - Keep a close eye on the potential dangers and their early warning signs. Also keep an eye on the consequences of any actions made to lessen or avoid them.
Classification
Risks can be classified into three categories that can harm a software project:
● Project risks
● Technical risks
● Business risks
- Project risks: Budgetary, scheduling, human, resource, and customer-related issues are all examples of project hazards. Schedule slippage is a critical project risk. It's difficult to track and control a software project since software is intangible. Controlling something that cannot be identified is extremely difficult. The plan executive can notice the product taking shape in any production programme, such as vehicle manufacture.
- Technical risks: Potential technique, implementation, interface, testing, and maintenance issues are all technical hazards. An ambiguous specification, an incomplete specification, a changing specification, technical ambiguity, and technical obsolescence are all part of it. The majority of technical hazards arise from the development team's lack of project expertise.
- Business risks: This form of risk includes the possibility of developing a fantastic product that no one wants, as well as the possibility of losing budgetary or manpower commitments.
Q9) What are the principles of risk management?
A9) Principle of Risk Management
● Global Perspective - We review the larger system description, design, and implementation in this section. We consider the likelihood and potential consequences of a risk.
● Take a forward-looking view - Consider the threat that might occur in the future and make future preparations for guiding the following events.
● Open Communication - This allows for a free flow of information between the client and the team members, ensuring that everyone is aware of the dangers.
● Integrated management - In this approach, risk management is integrated into the project management process.
● Continuous process - Risks are tracked continuously throughout the risk management paradigm at this step of the process.
Q10) What is change management?
A10) In software development, change management refers to the transition from an existing state of a software product to a better state of the product. Modifications to artifacts, such as code changes, process changes, or documentation changes, are controlled, supported, and managed by it. Where CCP (Change Control Process) primarily identifies, documents, and authorizes software application changes.
Each software development process follows the Software Development Life Cycle (SDLC), which ensures that each phase is completed in the proper order to produce a high-quality software product. Despite the fact that Change Management is not included in any of the stages of the SDLC, it is critical to the entire software development process. Change management tools are used for a variety of goals, including adopting, controlling, representing, and enacting the desired change. Change management tools for Flow Charting, Project Planning, Data Collection, and other tasks, for example.
Source of Change
Various reasons may arise during the development process that necessitate the implementation of certain changes in the product. These sources are as follows)
● Business reorganization
● New Market conditions
● New equipment
● Fixing any bugs/errors
● New customer needs
● Performance or reliability improvement
● Budgetary or scheduling constraints
Q11) Write the importance of change management?
A11) Importance of Change Management
● For the purpose of improving performance.
● For the purpose of promoting engagement.
● For the purpose of increasing innovation.
● In order to incorporate new technologies.
● For the purpose of adopting new requirements.
● In order to save money.
Q12) What are the process of change management?
A12) Process of Change Management
When a software application or product undergoes any modifications in an IT environment, it goes through the following sequential processes:
● Creating a request for change
● Reviewing and assessing a request for change
● Planning the change
● Testing the change
● Creating a change proposal
● Implementing changes
● Reviewing change performance
● Closing the process
Q13) Define software reengineering?
A13) Software re-engineering is the process of examining and altering a system in order to reassemble it in a new form. Software re-engineering is the application of Re-Engineering ideas to the software development process. It has a favorable impact on software cost, quality, customer service, and delivery time. We improve software through Software Re-engineering to make it more efficient and effective.
Software Re-engineering is a software development technique that aims to make a software system more maintainable. Re-engineering is the process of examining and altering a system in order to reassemble it in a new form. Reverse engineering, forward engineering, rebuilding, and other sub-processes are all part of this process.
Objectives of Re-engineering
● To describe a cost-effective system evolution alternative.
● The purpose of this document is to describe the activities involved in the software maintenance process.
● To discuss the problems of data re-engineering and to distinguish between software and data re-engineering.
Re-Engineering cost factors
● The quality of the re-engineered software.
● Engineering availability is supported by the tool.
● The degree to which data conversion is required.
● Expert staffing for re-engineering is available.
Q14) Write the advantages of software reengineering?
A14) Advantages of Re-engineering
● Reduced Risk - Because the programme is already in place, the risk is lower than if it were developed from scratch. There are numerous issues that might arise during the creation of new software, including development issues, personnel issues, and specification issues.
● Reduction in Costs – Re-engineering is less expensive than designing new software.
● Business Rules Revealed - When a system is re-engineered, business rules that have been embedded in the system are rediscovered.
● Better Use of Existing Personnel - During re-engineering, existing staff expertise can be preserved and expanded to accommodate new capabilities.
Q15) What are the disadvantages of software reengineering?
A15) Disadvantages of Re-engineering
● There are practical limits to how much reengineering can be done.
● Manual data management is required for major architectural modifications or dramatic reorganization of the systems.
● A re-engineered system is unlikely to last as long as a fresh system built with modern software re-engineering methods.
Q16) Describe the activity of software reengineering?
A16) Software Re-Engineering Activities
Fig 2: Software reengineering activity
- Inventory Analysis
Every software company should keep track of all of its apps.
● Inventory can be as simple as a spreadsheet model with data that provides a complete description of each running application.
● Candidates for re-engineering emerge when this data is sorted according to business criticality, lifespan, current maintainability, and other locally important factors.
● The resource can then be assigned to a re-engineering candidate application.
2. Document reconstructing
A system's documentation either explains how it works or how to use it.
● It is necessary to update the documentation.
● It's possible that properly documenting an application isn't required.
● The system is mission-critical, and it needs to be completely re-documented.
3. Reverse Engineering
Reverse engineering is the process of recovering a design. Data, architectural, and procedural design information are extracted from an existing programme using reverse engineering techniques.
4. Code Reconstructing
● A reconstructing tool is used to analyze the source code in order to reconstruct it. Structured programming construct violations are noticed, and the code is subsequently recreated.
● The rearranged code is then inspected and tested to ensure that no problems have arisen.
5. Data Restructuring
● Reverse engineering is the first step in data rearrangement.
● The current data architecture is examined, and data models that are required are defined.
● Data objects and attributes are identified, and the quality of the existing data structure is assessed.
6. Forward Engineering
Forward Engineering, also known as renovation or reclamation, not only recovers design knowledge from current software, but also uses it to update or reconstitute the system in order to improve its overall quality.
Unit - 6
Project management
Q1) Introduce software project management?
A1) Software project management (SPM) is a systematic approach to planning and directing software development initiatives. Software projects are planned, implemented, monitored, and controlled as part of project management.
The art and science of organizing and supervising software projects is known as software project management. It is a sub-discipline of software project management that deals with the planning, implementation, monitoring, and control of software projects.
It is a method of organizing, assigning, and scheduling resources in order to create computer software that meets criteria.
The client and the developers need to know the project's length, duration, and cost in software project management.
Need of Software Project Management
Software is a digital product that does not have a physical form. Software development is a relatively new field, with minimal expertise in creating software products. The majority of software solutions are customized to meet the needs of the client. The most important is that underlying technology evolves at such a quick pace that experience gained from one product may not be applicable to another. Because such economic and environmental restrictions raise the risk of software development, it is critical to effectively manage software projects.
It is vital for an organization to create a high-quality product while staying within the client's budgetary constraints and completing the project on time. As a result, software project management is required to take into account user needs as well as budget and schedule restrictions.
For software projects, the graphic above depicts triple limitations. It is an important component of software development to create a high-quality product while staying within the price constraints of the client and completing the project on time. This triple constraint triangle may be influenced by a number of internal and external factors. Any one of three factors can have a significant impact on the other two.
As a result, software project management is critical for incorporating user needs as well as budget and time restrictions.
Q2) Write the advantages of software project management?
A2) Advantages of Software Project Management
● It aids in software development planning.
● Software development is made simple to implement.
● Software project management includes issues such as monitoring and regulating.
● Overall, it reduces the amount of time and money spent on software development.
Q3) Define project planning?
A3) Software project planning is a work that must be completed before software development can begin. It's there to help with software development, but it doesn't entail any specific action that has anything to do with software production; rather, it's a collection of many procedures that help with software production.
Once a project is determined to be feasible, computer code project managers develop the project. Even before any development activity begins, project design is conducted and finalized. Following are the steps involved in project planning:
Estimating the project's later characteristics:
● Project size - What are the potential drawbacks in terms of the effort and time required to build the product?
● Cost - What percentage of the project's worth is it costing to develop?
● Duration - How long will it take for you to want complete development?
● Effort - What percentage of effort is required?
The accuracy of such estimations will determine the effectiveness of the next designing tasks.
● alternative resources and a planning force
● Plans for worker organization and staffing
● Identifying risks, analyzing them, and devising strategies to mitigate them.
● Various arrangements such as a quality assurance plan, configuration, management arrangement, and so on.
Q4) Write the order of precedence for project planning activity?
A4) Order of precedence for project planning activities
A project manager's many project-related estimates have already been mentioned. The figure below depicts the sequence in which critical project development activities are carried out. The first action is size estimate, which can be easily identified. Alternative estimations, such as the estimation of effort, cost, resource, and project length, are furthermore significant parts of project development.
Fig 1: Precedence ordering among planning activities
Q5) What do you mean by sliding window planning?
A5) Sliding Window Planning
Because adherence to incorrect time and resource estimates results in schedule slippage, project planning requires extreme caution and attention. Client dissatisfaction and a negative impact on team morale will result from schedule delays. It may potentially result in project failure.
Project design, on the other hand, can be a tough task. Creating accurate blueprints, particularly for huge structures, is quite difficult. Because the correct parameters, the scope of the project, project personnel, and other factors may change over the course of the project, this is a part of the problem. To overcome this disadvantage, most project managers approach project design in stages.
Managers are protected from making large commitments too early by designing a project in stages. Window design is the term for this technique of staggered design. Beginning with an initial set up, the project is planned more precisely in consecutive development stages using the window technique.
At the start of a project, project managers receive only a smattering of information on the project's important aspects. As the project goes through different phases, its data base improves step by step. After each section is completed, the project managers will set up each subsequent section more precisely and with increasing levels of confidence.
Q6) Describe project scheduling?
A6) In a project, project scheduling refers to a road map of all activities that must be completed in a specific order and within the time slots assigned to each task. Project managers typically define multiple tasks and project milestones and organize them according to a variety of parameters. They look for tasks that are in the critical route of the plan and must be completed in a specified order (due to task interdependency) and within the time allotted. Tasks that are not on the critical path are less likely to have an impact on the project's overall timetable.
For scheduling a project, it is necessary to -
● Determine all of the functionalities that are required to finish the project.
● Break down large tasks into smaller tasks.
● Determine the degree of interdependence between various activities.
● Determine the most likely size for the amount of time it will take to accomplish the tasks.
● Assign resources to various activities.
● Plan the start and end dates for various events.
● Determine the most important path. The set of actions that determine the project's duration is a significant way.
Identifying all of the functions required to finish the project is the first step in arranging a software plan. A strong understanding of the project's complexities and development process aids the supervisor in efficiently identifying the project's vital role. The large functions are then split down into a series of valid little activities that are assigned to different engineers. The structure of the job breakdown After the project manager has broken down the purpose and constructed the work breakdown structure, formalism assists the manager in systematically breaking down the function; he must uncover the dependencies among the tasks. The order in which the various events are carried out is determined by the dependencies among the various activities.
If the outcomes of one action A are required by another activity B, activity A must be scheduled after activity B. Function dependencies, in general, describe a partial ordering among functions, i.e., each service may precede a subset of other functions, but other functions may not have any precedence ordering defined between them (called concurrent function). The pattern of an activity network defines the dependencies between the activities.
Following the processing of the activity network representation, resources are given to each activity. A Gantt chart is commonly used to allocate resources. Following the completion of resource allocation, a PERT chart is created. The PERT chart is a handy tool for monitoring and controlling programmes. The project plan must breakdown the project functions into a series of activities in order to schedule tasks. It is necessary to specify the time frame in which each action should be completed.
A milestone is the point at which an action comes to a finish. By auditing the timely completion of milestones, the project manager keeps track on the project's function. If he examines that the milestones start getting delayed, then he has to handle the activities carefully so that the complete deadline can still be met.
Q7) Write the advantages of project scheduling?
A7) Advantages of Project Scheduling
Project schedules have a number of advantages in our project management:
● Simply put, it guarantees that everyone is on the same page in terms of task completion, dependencies, and deadlines.
● It aids in the early detection of difficulties and concerns such as a lack of or unavailability of resources.
● It also aids in the identification of relationships and the monitoring of the process.
● It allows for efficient budgeting and risk mitigation.
Q8) Explain risk management?
A8) All activities related to identifying, assessing, and planning for foreseeable and non-predictable hazards in the project are included in risk management. There's a chance you'll be exposed to the following dangers:
● Experienced personnel are departing the project, while fresh personnel are being hired.
● Organizational management changes.
● Changes in the requirements or a misinterpretation of the requirements.
● Underestimation of time and resources necessary.
● Technological advancements, environmental changes, and corporate competitiveness are all factors to consider.
Risk Management Process
In the risk management process, the following activities are involved:
● Identification - Make a list of all potential risks that may arise during the project.
● Categorize - Divide known risks into three categories based on their potential influence on the project: high, medium, and low risk intensity.
● Manage - Examine the likelihood of risks occurring at various stages. Make a strategy for avoiding or dealing with risks. Make an effort to keep their side effects to a minimum.
● Monitor - Keep a close eye on the potential dangers and their early warning signs. Also keep an eye on the consequences of any actions made to lessen or avoid them.
Classification
Risks can be classified into three categories that can harm a software project:
● Project risks
● Technical risks
● Business risks
- Project risks: Budgetary, scheduling, human, resource, and customer-related issues are all examples of project hazards. Schedule slippage is a critical project risk. It's difficult to track and control a software project since software is intangible. Controlling something that cannot be identified is extremely difficult. The plan executive can notice the product taking shape in any production programme, such as vehicle manufacture.
- Technical risks: Potential technique, implementation, interface, testing, and maintenance issues are all technical hazards. An ambiguous specification, an incomplete specification, a changing specification, technical ambiguity, and technical obsolescence are all part of it. The majority of technical hazards arise from the development team's lack of project expertise.
- Business risks: This form of risk includes the possibility of developing a fantastic product that no one wants, as well as the possibility of losing budgetary or manpower commitments.
Q9) What are the principles of risk management?
A9) Principle of Risk Management
● Global Perspective - We review the larger system description, design, and implementation in this section. We consider the likelihood and potential consequences of a risk.
● Take a forward-looking view - Consider the threat that might occur in the future and make future preparations for guiding the following events.
● Open Communication - This allows for a free flow of information between the client and the team members, ensuring that everyone is aware of the dangers.
● Integrated management - In this approach, risk management is integrated into the project management process.
● Continuous process - Risks are tracked continuously throughout the risk management paradigm at this step of the process.
Q10) What is change management?
A10) In software development, change management refers to the transition from an existing state of a software product to a better state of the product. Modifications to artifacts, such as code changes, process changes, or documentation changes, are controlled, supported, and managed by it. Where CCP (Change Control Process) primarily identifies, documents, and authorizes software application changes.
Each software development process follows the Software Development Life Cycle (SDLC), which ensures that each phase is completed in the proper order to produce a high-quality software product. Despite the fact that Change Management is not included in any of the stages of the SDLC, it is critical to the entire software development process. Change management tools are used for a variety of goals, including adopting, controlling, representing, and enacting the desired change. Change management tools for Flow Charting, Project Planning, Data Collection, and other tasks, for example.
Source of Change
Various reasons may arise during the development process that necessitate the implementation of certain changes in the product. These sources are as follows)
● Business reorganization
● New Market conditions
● New equipment
● Fixing any bugs/errors
● New customer needs
● Performance or reliability improvement
● Budgetary or scheduling constraints
Q11) Write the importance of change management?
A11) Importance of Change Management
● For the purpose of improving performance.
● For the purpose of promoting engagement.
● For the purpose of increasing innovation.
● In order to incorporate new technologies.
● For the purpose of adopting new requirements.
● In order to save money.
Q12) What are the process of change management?
A12) Process of Change Management
When a software application or product undergoes any modifications in an IT environment, it goes through the following sequential processes:
● Creating a request for change
● Reviewing and assessing a request for change
● Planning the change
● Testing the change
● Creating a change proposal
● Implementing changes
● Reviewing change performance
● Closing the process
Q13) Define software reengineering?
A13) Software re-engineering is the process of examining and altering a system in order to reassemble it in a new form. Software re-engineering is the application of Re-Engineering ideas to the software development process. It has a favorable impact on software cost, quality, customer service, and delivery time. We improve software through Software Re-engineering to make it more efficient and effective.
Software Re-engineering is a software development technique that aims to make a software system more maintainable. Re-engineering is the process of examining and altering a system in order to reassemble it in a new form. Reverse engineering, forward engineering, rebuilding, and other sub-processes are all part of this process.
Objectives of Re-engineering
● To describe a cost-effective system evolution alternative.
● The purpose of this document is to describe the activities involved in the software maintenance process.
● To discuss the problems of data re-engineering and to distinguish between software and data re-engineering.
Re-Engineering cost factors
● The quality of the re-engineered software.
● Engineering availability is supported by the tool.
● The degree to which data conversion is required.
● Expert staffing for re-engineering is available.
Q14) Write the advantages of software reengineering?
A14) Advantages of Re-engineering
● Reduced Risk - Because the programme is already in place, the risk is lower than if it were developed from scratch. There are numerous issues that might arise during the creation of new software, including development issues, personnel issues, and specification issues.
● Reduction in Costs – Re-engineering is less expensive than designing new software.
● Business Rules Revealed - When a system is re-engineered, business rules that have been embedded in the system are rediscovered.
● Better Use of Existing Personnel - During re-engineering, existing staff expertise can be preserved and expanded to accommodate new capabilities.
Q15) What are the disadvantages of software reengineering?
A15) Disadvantages of Re-engineering
● There are practical limits to how much reengineering can be done.
● Manual data management is required for major architectural modifications or dramatic reorganization of the systems.
● A re-engineered system is unlikely to last as long as a fresh system built with modern software re-engineering methods.
Q16) Describe the activity of software reengineering?
A16) Software Re-Engineering Activities
Fig 2: Software reengineering activity
- Inventory Analysis
Every software company should keep track of all of its apps.
● Inventory can be as simple as a spreadsheet model with data that provides a complete description of each running application.
● Candidates for re-engineering emerge when this data is sorted according to business criticality, lifespan, current maintainability, and other locally important factors.
● The resource can then be assigned to a re-engineering candidate application.
2. Document reconstructing
A system's documentation either explains how it works or how to use it.
● It is necessary to update the documentation.
● It's possible that properly documenting an application isn't required.
● The system is mission-critical, and it needs to be completely re-documented.
3. Reverse Engineering
Reverse engineering is the process of recovering a design. Data, architectural, and procedural design information are extracted from an existing programme using reverse engineering techniques.
4. Code Reconstructing
● A reconstructing tool is used to analyze the source code in order to reconstruct it. Structured programming construct violations are noticed, and the code is subsequently recreated.
● The rearranged code is then inspected and tested to ensure that no problems have arisen.
5. Data Restructuring
● Reverse engineering is the first step in data rearrangement.
● The current data architecture is examined, and data models that are required are defined.
● Data objects and attributes are identified, and the quality of the existing data structure is assessed.
6. Forward Engineering
Forward Engineering, also known as renovation or reclamation, not only recovers design knowledge from current software, but also uses it to update or reconstitute the system in order to improve its overall quality.