Unit 2 | SPM Notes | AKTU Notes


Unit 2 | SPM Notes | AKTU Notes


    Project Life Cycle and Effort Estimation

    Project Life Cycle: It represents different stages a software project goes through, from planning to delivery. The common stages are:

    1. Requirement Analysis – Understanding what the software should do.

    2. Design – Creating a blueprint of how the software will work.

    3. Development (Coding) – Writing the actual code.

    4. Testing – Checking for errors and fixing them.

    5. Deployment – Releasing the software for use.

    6. Maintenance – Updating and fixing issues after release.


    Effort Estimation: Predicting how much time, cost, and work is required to complete a project. It helps in budgeting, resource allocation, and scheduling.

    Software Process and Process Models

    A software process is a set of steps followed to develop software efficiently. Different process models define how these steps are carried out.

    Some common process models include:
    • Waterfall Model – A step-by-step, linear approach (once a step is completed, it cannot be changed).

    • Iterative Model – Develops software in repeated cycles, improving with each version.

    • Spiral Model – Focuses on risk management by developing in phases.

    • V-Model – Similar to Waterfall but includes testing at each stage.

    Choice of Process Models

    Choosing the right process model depends on:

    • Project Size – Large projects may need Spiral or Iterative models.

    • Project Complexity – Complex projects may use Agile methods.

    • Customer Requirements – If requirements change frequently, Agile is better.

    • Development Time – Rapid Application Development (RAD) is used when software needs to be delivered quickly.

    Rapid Application Development (RAD)

    RAD is a fast and flexible way to develop software. It focuses on:

    • Quick Prototyping – Creating early versions for feedback.

    • Minimal Planning – Less focus on documentation.

    • Customer Involvement – Clients give feedback at every stage.
    Example: Developing a mobile app where users test early versions and suggest improvements.

    Agile Methods

    Agile is a modern approach to software development. It focuses on:

    • Short development cycles (sprints) – Software is developed in small parts.

    • Customer feedback at every stage – Continuous improvements.

    • Team collaboration – Developers, testers, and customers work together.
    Example: Companies like Google and Amazon use Agile for continuous updates in their software.

    Dynamic System Development Method (DSDM)

    DSDM is an Agile-based framework that:
    • Focuses on user involvement.

    • Ensures projects are delivered on time.

    • Allows changes even in later stages.
    Example: Banking software development, where user feedback is essential.

    Extreme Programming (XP)

    XP is an Agile method that focuses on:

    • Frequent releases – Small updates are made regularly.

    • Pair programming – Two developers work together to improve quality.

    • Continuous testing – Bugs are fixed as soon as they are found.
    Example: Used in game development to fix issues quickly.

    Managing Interactive Processes

    Interactive processes involve:
    • Continuous communication with users.

    • Frequent updates and feedback collection.

    • Adapting to changes during development.
    This approach is commonly used in:
    • E-commerce websites (like Amazon, Flipkart).

    • Mobile applications (like Instagram, WhatsApp).

    Basics of Software Estimation

    Software estimation helps in predicting resources, time, and cost required for development. It involves:

    • Effort Estimation – How much work is needed?

    • Cost Estimation – How much money is required?

    • Time Estimation – How long will it take?
    Example: If an app development takes 5 developers working for 2 months, effort estimation helps calculate total work hours.

    Effort and Cost Estimation Techniques

    Different methods are used to estimate effort and cost:

    1. Expert Judgment – Based on previous experience.

    2. Analogy-Based Estimation – Comparing with similar past projects.

    3. Parametric Estimation – Using formulas and models to predict cost.

    4. COCOMO Model – A widely used cost estimation method.

    COSMIC Full Function Points

    COSMIC (Common Software Measurement International Consortium) is a method used to measure software size and complexity.

    • It calculates function points based on the number of inputs, outputs, and data movements in a system.

    • It helps in effort estimation and productivity analysis.
    Example: Measuring the size of an inventory management system before development.

    COCOMO II (Constructive Cost Model II)

    COCOMO II is a mathematical model used to estimate:
    • Effort (person-months) required for a project.

    • Cost (budget) needed.

    • Time (schedule) for completion.
    It classifies software projects into:
    • Organic – Small, simple projects (e.g., a college website).

    • Semi-Detached – Medium projects (e.g., an office management system).

    • Embedded – Large, complex projects (e.g., an airline reservation system).

    Formula:

    Effort = a * (Size)^b

    A Parametric Productivity Model

    • A parametric model uses mathematical formulas to estimate software cost, effort, and time.

    • It considers various factors like team size, complexity, and productivity.

    • Example models: COCOMO II, Function Point Analysis (FPA).
    Example: If a banking application takes 100 function points, the model predicts effort and cost based on past data.


    No comments:

    Post a Comment