Software Engineering Tutorial

Introduction SDLC Objectives of Software Design Conceptual and Technical Design in Software Engineering Coupling in Software Engineering Information System for Strategic Advantage Advantages and Disadvantages of V-Model Documentation Guidelines in Software Engineering Application Software

SDLC Models

Agile Model Big-bang Model Incremental Model Iterative Model Prototype Model RAD Model Spiral Model V-Model Waterfall Model

Software Management

Project Management Project Management Activities Project Management Tools

Software Metrics

Software Quality Metrics Halstead's Software Metrics Object Oriented Metrices Data Structure Metrics Overall Equipment Effectiveness Some Important Quality Metrics

Project Planning

Software project planning Cost Estimation Model

Software Configuration

Software Configuration Management Project Monitoring and Control

System Design

Strategies for System Design Caching in System Design Load Balancer – System Design Dropbox - System Design Netflix - System Design Twitter - System Design

Misc

Routing Requests through Load Balancers Object Oriented Analysis and Design in Software Engineering Online Library Management System ER Diagram in Software Engineering Umbrella Activities in Software Engineering Difference between V-Model and Waterfall Model Timeboxing Model in Software Engineering Flowcharts and their Uses Overview of Fish SDLC Model Characteristics of Testable Software Component Design in Software Engineering Project Planning in Software Engineering Software Process Characteristics Types of Systems in Software Engineering Advantages and Disadvantages of using ERP systems Architectural Design Elements in Software Engineering Debugging Strategies in Software Engineering Design Techniques in Software Engineering Software Design Strategies Characteristics of SRS in Software Engineering Coding Conventions in Software Engineering Components of Software in Software Engineering Domain Requirements in Software Engineering Feasibility Study in Software Engineering Metrics of Source Code Role of System Analyst in Software Engineering SQA Plan in Software Engineering

Project Planning in Software Engineering

To start a software project, it is critical to identify the tasks to be completed and correctly manage job allocation among employees participating in the program development. As a result, planning is critical since it leads to effective software development.

Project planning is a structured and unified management process that focuses on the actions necessary for the project's effective completion. It prevents project difficulties like as changes in project or organizational objectives, a lack of resources, and so forth. Project planning also aids in the better exploitation of resources and the most efficient use of project time.

The following are the other project planning objectives:

  • It describes the project management team members duties and responsibilities.
  • It guarantees that the project team in charge operates in accordance with the company goals.
  • It verifies the schedule's practicality and user needs.
  • It establishes the project's limits.

Several people contribute to the project's planning. Senior management and the project management team are examples of this. Senior management is assigned to hiring members of the team and providing project resources. The project management team, which typically consists of project managers and developers, is in charge of planning, deciding, and tracking the project's operations.

The tasks completed by personnel participating in the software project are listed below.

Project Planning in Software Engineering

Individuals participating in a software project's tasks

Senior Leadership

  • It approves the project
  • It hires staff, and provides the necessary resources
  • It examines the project plan to ensure that it meets the business objectives.
  • It resolves disagreements among team members.
  • It considers potential dangers to the project so that suitable precautions may be taken to avoid them.

Project Management Group

  • Examines the project plan and performs project completion processes.
  • Manages all aspects of the project.
  • Plans the budget and resource distribution.
  • Aids in distributing resources, project management, and issue resolution, among other things.
  • Recognizes the goals of the project and devises strategies to achieve them.
  • Devotes sufficient time and effort to attain the desired goals.
  • Methods and tools for the project are chosen.

Effective project planning ensures that the undertaking begins with established tasks.  Effective project planning helps to keep extra expenditures to a minimum while the project is in process.

Some guidelines are followed for good project planning. These guidelines are as follows: 

  • Planning is required: Before beginning a project, it is necessary to plan. Objectives and timelines must be clear and comprehensible for efficient planning.
  • Risk assessment: Before beginning the work, upper management and the task management team should examine the potential hazards. For instance, a client may wish to update the project's requirements while it is still in process. In this instance, time and cost estimates should be based on those criteria (new requirements).
  • Monitoring the project plan: Once a project plan is completed, it should be monitored and adjusted as needed.
  • Meet requirements for quality and offer high-quality results: The project plan should outline methods that the project management team may use to assure software quality.The project's duration and cost are calculated based on the approach used to ensure quality.
  • Flexibility to adapt changes is described as follows: The outcome of project planning is documented in the form of a project plan, which should enable for new modifications to be incorporated while the project is underway.

Project planning consists of the following elements: project objective, the scope of the project, project planning method, and project plan. This information is critical for good project planning and assisting the project management team in meeting the needs of the users.

The Goal of the Project

A software project is carried out to achieve a certain goal, which is divided into two categories: project goals and business objectives.

The most typical project objectives are mentioned below:

  • Meet the needs of the user: After understanding the user requirements, it develops the project in accordance with them.
  • Meet your deadlines: Complete the project objectives as outlined in the plan for the project on time to ensure that the project is completed on time.
  • Stay inside your budget: Manage the entire project cost to ensure that the project stays within the budget.
  • Create high-quality deliverables: Guarantee that quality is taken into account for consistency and overall project performance.

Business Project Planning

Business objectives guarantee that the project meets the organizational objectives and criteria. These goals are often tied to business efficiency gains, client happiness, and quality enhancements.

The most typical company objectives are given below:

  • Processes should be evaluated: As the project continues, evaluate the business processes and make modifications as needed.
  • Refresh policies and procedures: Allow for the renewal of organizational policies and processes in order to fulfil duties successfully.
  • Maintain project timeliness: Reduce downtime (the period when no work gets done) causes such as resource unavailability during software development.
  • Enhance software: Use appropriate procedures to create software that satisfies organizational needs and gives the organization a competitive edge.

The Project's Scope

Before the project begins, the project management team decides the scope of the project using user requirements. This scope includes a full explanation of the software's functions, features, limitations, and interfaces. The tasks that the program is intended to do are described by functions. Features define the characteristics of software that are required by the user. Constraints are the constraints placed on software via hardware, memory, and other factors.

Interfaces define how software components (such as modules and functions) communicate with one another. The project scope also takes into account software performance, which is determined by the processing capabilities and reaction time necessary to create the result.

When the project scope has been decided, it is critical to fully comprehend it in order to design software that meets the needs of the users. Following that, the project's cost and time are estimated. If the project scope is not decided on time, the project might not get finished on time.

The following information is described in the project scope.

  • The project's elements that are included and omitted
  • The entities and processes
  • The capabilities and features of software that are required by the user.

Process of Project Planning

The project planning process entails a number of connected actions that are carried out in an organized manner for implementing user requirements in software, and it includes an overview of a series of project planning steps as well as the individual(s) responsible for carrying them out.

The project planning process also includes the following steps.

  • The project's goals and scope
  • Techniques for performing project planning
  • Individuals participating in the project's effort (in terms of time)
  • Timeline and milestones for the project
  • Project resources are required.
  • Risks related to the project

The project planning process includes numerous tasks that are necessary for completing a project in a methodical manner. These activities relate to a sequence of tasks completed over time in order to build software. These actions involve estimating the amount of time, effort, and finances needed, as well as the hazards connected with the project.

The following activities are part of the project planning process.

  • Identifying project requirements: Before beginning a project, it is critical to determine the project requirements, since this aid in the performance of activities in a methodical manner. These requirements include details on the project's scope, the data and functionality needed in the program and the roles of the project's team's management members.
  • Estimated cost identification: Along with the calculation of labour and time, it is vital to estimate the cost of a project. The cost calculation covers the cost of equipment, network connectivity, and the cost of hardware component maintenance. In addition, the cost of the persons participating in the project is estimated.
  • Risk identification: Risks are unanticipated events that have a negative impact on the project. A software project contains numerous risks (such as technical and business hazards), which impact the project timeline and raise the project cost. Identifying hazards when a project begins aids in comprehending the project's likely impact.
  • Critical success elements must be identified: Critical success elements are followed to ensure the success of a project. These are the conditions that increase the likelihood of a project's success. In general, these criteria include managerial support, an acceptable budget, an appropriate timetable, and qualified software developers.
  • Project charter creation: A project charter summarizes the project scope, level of quality, timeline, expenses, and resource restrictions as defined during project planning. It is developed by management for approval by the project's sponsor.
  • Creating a project plan: A project plan describes the resources accessible to the project, the persons engaged in the project and the timeline for completion.
  • Beginning of the project: The software project begins after the project planning is completed and resources are allotted to team members.

The project end date is set once the project targets and business objectives have been decided. The project management team creates the project plan and schedule based on the project's completion date. The project manager presents the project strategy and finish date to senior management after studying the project plan. The project's progress is reported to management on a regular basis.

Similarly, after the project is finished, top management is notified. In the event of a project delay, the project plan is re-evaluated and remedial steps are made to complete the project. The project is monitored on a regular basis, and any changes to the project plan are communicated to top management.

Project Strategy

As previously stated, a project plan holds the results of project planning. It contains information regarding the project's end date, accomplishments, activities, and deliverables. It also specifies the project management team's roles and the resources needed for the project.

It also describes the software and hardware components (including compilers and interfaces) that will be utilized, as well as the procedures and standards that will be employed. Algorithms, tools, review procedures, design language itself, language for programming, and testing methodologies are among the approaches and standards covered.

A project plan assists a project manager in comprehending, monitoring, and controlling the progress of a software project. This strategy is intended to facilitate communication between users and the project management team. A project plan has a number of advantages, some of which are given below:

  • It guarantees that software is produced in accordance with the user requirements, project objectives, and scope.
  • It defines each managing the project team member's responsibility in the project.
  • It monitors the project's progress in accordance with the project plan.
  • It specifies the resources available and the actions to be carried out throughout software development.
  • It gives management an overview of the software project's expenses, which are calculated during project planning.

It should be noted that the subject matter of both project plans varies based on the sort of project being undertaken and user needs. The sections of an unusual project plan are as follows.

  • Overview: It describes the project's aims and gives information on the constraints affecting the software project.
  • Project management: It describes the project leadership members' duties for finishing the project.
  • Risk assessment: It describes the hazards that may emerge during software development and describes how to identify and mitigate the impact of risks.
  • Resources required: It describes the software and hardware components necessary to complete the software project. These resource needs are used to estimate costs.
  • Work breakdown: It describes the actions that comprise the project. It also defines the project activities' milestones and deliverables.
  • Timeline for the project: It specifies how actions are dependent on one another. The time needed by the project's administration team members to accomplish the project's tasks is calculated based on this.

Aside from these components, there are numerous plans that may be included in or related to a project plan. Quality assurance plans, verification and validation plans, configuration management plans, maintenance plans, and staffing plans are among them.

Plan for Quality Assurance

The quality management plan outlines the strategies and procedures that will be used to achieve the following goals.

  • Verify that the endeavour is organized in its management, development, and implementation.
  • Before delivering project deliverables to the user, ensure that they are of acceptable quality.

Plan for Verification and Validation

The validation and confirmation plan specifies the strategy, resources, and timetable utilized for system validation. The examination and approval plan, which includes the following components:

  • Information in general: The goal, scope, system summary, program sources, abbreviations and symbols, and sources of contact are all described. The technique for verifying and validating the system's components is described in the purpose. Scope describes the methods to be verified and validated in relation to the project. The system overview contains information on the organization in charge of the project as well as other details such as the systems name, network category, operational state of the system, and system atmosphere. The list of reference used in the formulation of the confirmation and validation plan is provided by project references. A list of terminology used in the paper is provided through acronyms and abbreviations. When consumers seek support from an organization for difficulties such as troubleshooting, points of contact give information to them.
  • Examines and walkthroughs: This page contains information regarding the timetable and processes. The schedule details the completion dates of the project's milestones. The duties related with evaluations and walkthroughs are described in procedures. Each team member double-checks the document for flaws and conformity with the project specifications. During walkthroughs, the project management team verifies the project's compliance with the software requirements specification (SRS).
  • Plan and techniques for system testing: This document describes the system test approach, database integrating, and platforms system integration. The system test approach offers an overview of the elements needed for database integration and guarantees that the application operates on at least two distinct platforms. The database integration technique explains how a database is linked to a graphical user interface (GUI).To test the platform, the platform system integration method is carried out on several operating systems.
  • Acceptance testing and delivery preparation: It describes the technique, acceptance criteria, and deployment procedure. The procedure specifies how acceptance testing on the program will be done to ensure its usability as necessary. Acceptances criteria state that software will only be approved if all of its components, features, and functions have been tested, including system integration testing. Furthermore, acceptance criteria determine if the program meets user expectations, such as having the capacity to run on several platforms. The installation technique shows how to install software based on the software that is being used.

Plan for Configuration Management

The configuration management strategy specifies the procedure for modifying the project scope. In general, the configuration management strategy is concerned with defining the project's current objectives and deliverable (software products that are provided to the user when software development is completed).

Maintenance Strategy

The maintenance plan defines the procedures and assets needed to make the program operational once it has been installed. The project management group (or software development group) does not always do maintenance tasks. In such cases, the duty of software maintenance is performed by a distinct team known as the software maintenance team.

The following sections compose the maintenance plan:

  • Background and Introduction: It provides a description of the software to be maintained as well as the services required. It also describes the extent of maintenance tasks to be carried out.
  • Cost: It specifies the money needed to carry out software upkeep and operational tasks.
  • Responsibilities and Roles: It describes the tasks and responsibilities of team members involved in software upkeep and functioning. It also specifies the abilities necessary to carry out maintenance and operational tasks. In addition to the software maintenance team, there is user support, instruction for users, and support employees.
  • Performance Indicators and Reporting: It identifies the performance metrics necessary for software maintenance. It also outlines how measurements necessary to improve service performance (for software) are documented and reported.
  • Management strategy: It identifies the procedures necessary for determining project maintenance priorities. Administration either refers to current techniques or develops new procedures for this aim. The management method also outlines how users participate in maintenance and operations, as well as how users and the project management team interact with one another.
  • Documentation methods: This section describes the documentation that has been developed for user reference. In general, documentation contains reports, information about software faults, error messages, and system documentation.
  • Education and Training: This section contains information on the training activities.
  • Acceptability: After the implementation and transition operations are completed, this establishes a point agreement among the task management team and the software maintenance team. After the agreement is reached, the software maintenance process begins.

Staffing Strategy

The staffing plan specifies the amount of people needed for a project. It entails choosing and allocating duties to members of the project management team. It describes the talents needed to complete the tasks necessary to create deliverables for the project and manage the undertaking. It also includes information about the project management team's resources, such as instruments, furnishings, and processes.

The team of project managers members' duties and responsibilities are defined by the staff planner so that they may communicate and coordinate according to the tasks allocated to them. It should be noted that, according to the scope and degree of difficulty of the project, the team in charge of managing it might be further subdivided into sub-teams.

The staff manager ensures that the necessary personnel with the necessary capabilities are available at the appropriate moment. The staff planner arranges the accessibility of staff for this purpose when the task's schedule is established. For example, at the beginning of a project, personnel may include a project management and a few engineers, however throughout software development, staff may include both software designers and software developers.

The following sections make up the staffing strategy:

  • Information in general: It provides information such as the project's name and the project manager in charge of the project. Furthermore, it gives the project's start and finish dates.
  • Evaluation of abilities: It provides information that is essential for skill evaluation. This data comprises the expertise, abilities, and expertise of the team members who are necessary to meet the project's objectives. It also indicates the total amount of team members needed for the project.
  • Personnel profile: It describes the employee profile needed for the project. Calendar time, persons engaged, and level of dedication are all included in the profile. Calendar time describes the time period, such as a month or quarter, during which individuals must accomplish the project. Individuals working in the project are given titles such as a project leader and developer. The utilization rate of persons, such as work completed on a full-time and part-time basis, is referred to as their level of commitment.
  • Organization diagram: It describes how the project management collaborators are organized. It also provides information such as each team member's name, classification, and position.

Conclusion

In conclusion, project planning is a subject that addresses how to accomplish a project within a specific timeline, typically with established phases and resources. Project planning is essential at all stages of a project. It outlines the fundamentals of a project. Project managers may use planning to transform an ethereal notion into a physical reality. The scope, budget, and deadline are the three primary components of a project plan. Project planning and management tools make the project planning procedure easier. The finest technologies promote stakeholder engagement, offer simple user interfaces, and include time tracking and billing.