$30 off During Our Annual Pro Sale. View Details »

CSC307 Lecture 16

CSC307 Lecture 16

Introduction to Software Engineering
Cost Estimation and Final Review
(202307)

Javier Gonzalez-Sanchez
PRO

July 25, 2023
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    CSC 307
    Introduction to Software Engineering
    Lecture 16:
    Cost Estimation & Final Review
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    www.javiergs.com
    Building 14 -227
    Office Hours: By appointment

    View Slide

  2. jgs
    Final Review

    View Slide

  3. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 4
    Summary
    Plan-Based Approaches Agile Approaches
    waterfall
    V-model
    Prototyping
    Kanban XP
    SCRUM

    View Slide

  4. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 5
    Stories and Tasks
    … move the pacman
    … show the pacman
    … move a ghost
    … show a ghost
    … show power pills
    stories tasks (new)
    … show a maze

    View Slide

  5. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 6
    Let’s Work

    View Slide

  6. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 7
    Relationships
    Association Directed
    Association
    Reflexive
    Association
    Multiplicity
    Aggregation Composition Generalization Realization

    View Slide

  7. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 8
    public class A extends B {
    C c1, c2;
    public A() {
    c1 = new C();
    }
    public void method() {
    D d = new D();
    d.working();
    }
    }
    Public class X {
    public void m() {
    B var = new A();
    double x – Math.sqrt(5);
    }
    }
    public class B implements E {
    public B() {
    C c1 = new C();
    }
    public void method() {
    B b = new B();
    b.sleep();
    }
    }
    public class Y {
    A [] a = new A[5];
    }
    Lab

    View Slide

  8. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 9
    Let’s Work

    View Slide

  9. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 10
    GoF Patterns

    View Slide

  10. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 11
    § Students and Staff members can request the Library to notify him/her when a Book becomes
    available.
    § Also, they can reserve the book. Before reserving a Book for someone the Library check, for
    students, with the Registrar, if the Student is currently enrolled, and for employees, with
    Human Resources if the employee has an active contract.
    Case 4

    View Slide

  11. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 12
    Let’s Work

    View Slide

  12. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 13
    Question 2

    View Slide

  13. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 14
    Question 2

    View Slide

  14. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 15
    Let’s Work

    View Slide

  15. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 16
    Example A

    View Slide

  16. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 17
    Let’s Work

    View Slide

  17. jgs
    One Last Topic

    View Slide

  18. jgs
    Constructive Cost Model
    Cocomo

    View Slide

  19. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 20
    Regression-Based Model

    View Slide

  20. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 21
    § The constructive cost model was developed by Barry Boehm (the Spiral
    model guy) in the late 1970 and published in Software Engineering
    Economics.
    § It is a model for estimating effort, cost, and schedule for software projects.
    § It drew on a study of 63 projects at TRW Aerospace.
    § The study examined projects ranging in size from 2,000 to 100,000 lines of
    code and diverse programming languages.
    § These projects were based on the waterfall model of software development
    (prevalent in 1981).
    COCOMO

    View Slide

  21. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 22
    COCOMO II

    View Slide

  22. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 23
    COCOMO II Web Tool by USC
    http://softwarecost.org/tools/COCOMO/

    View Slide

  23. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 24
    1. Software Size (Lines of Code)
    2. Software Scale Drivers: sources of exponential effort variation
    3. Software Cost Drivers: sources of linear effort variation. They group in 4
    categories: product, platform, personnel and project
    Factor are rated between very low and very high per rating guidelines
    Factors of development cost

    View Slide

  24. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 25
    COCOMO II - Inputs

    View Slide

  25. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 26
    Scale Drivers Rating
    Scale Factors (Wi) Very Low Low Nominal High Very High Extra High
    Precedentedness
    (PREC)
    thoroughly
    unprecedented
    largely
    unprecedented
    somewhat
    unprecedented
    generally
    familiar
    largely
    familiar
    throughly
    familiar
    Development
    Flexibility (FLEX)
    rigorous occasional
    relaxation
    some
    relaxation
    general
    conformity
    some
    conformity
    general
    goals
    Architecture/Risk
    Resolution (RESL)*
    little (20%) some (40%) often (60%) generally
    (75%)
    mostly
    (90%)
    full (100%)
    Team Cohesion
    (TEAM)
    very difficult
    interactions
    some difficult
    interactions
    basically
    cooperative
    interactions
    largely
    cooperative
    highly
    cooperative
    seamless
    interactions
    Process Maturity
    (PMAT)
    Weighted average of “Yes” answers to CMM Maturity Questionnaire
    * % significant module interfaces specified, % significant risks eliminated

    View Slide

  26. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 27
    COCOMO II - Inputs




    🔄

    View Slide

  27. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 28
    1.1. Required Reliability (RELY)
    1. 2. Data Base Size (DATA)
    1. 3. Complexity (CPLX)
    1. 4. Developed for Reusability (RUSE)
    1. 5. Documentation (DOCU)
    Cost Drivers | Product Factors

    View Slide

  28. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 29
    2.1 Analyst capability (ACAP)
    2.2 Programmer (Software Engineer) capability (PCAP)
    2.3. Applications experience (APEX)
    2.4. Platform (or VM) experience (PLEX)
    2.5. Language and tool experience (LTEX)
    2.6. Personnel continuity (PCON)
    Cost Drivers | Personnel factors

    View Slide

  29. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 30
    3.1. Time constraint (TIME)
    3.2. Storage constraint (STOR)
    3.3. Platform volatility (PVOL)
    Cost Drivers | Platform Factors

    View Slide

  30. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 31
    Project Factors
    4.1. Use of Software tools (TOOL)
    4.2. Multisite development (SITE)
    4.3. Required schedule - stretch-out or acceleration (SCED)
    Cost Drivers | Project Factors
    Multisite development

    View Slide

  31. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 32
    § Somerville, Chapter 23
    Reference

    View Slide

  32. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 33
    Questions

    View Slide

  33. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 34
    Office Hours
    Tuesday and Thursday 3 - 5 pm
    But an appointment required
    Sent me an email – [email protected]

    View Slide

  34. jgs

    View Slide

  35. jgs
    CSC 307
    Introduction to Software Engineering
    Lab 16:
    Final Project
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    www.javiergs.com
    Building 14 -227
    Office Hours: By appointment

    View Slide

  36. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 37
    Think about this
    Work in your Final Project

    View Slide

  37. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 38
    Let’s Work

    View Slide

  38. jgs
    CSC 307 Introduction to Software Engineering
    Javier Gonzalez-Sanchez, Ph.D.
    [email protected]
    Summer 2023
    Copyright. These slides can only be used as study material for the class CSC308 at Cal Poly.
    They cannot be distributed or used for another purpose.

    View Slide