Software Engineering
What should we do when management
demands that we make a deadline that is
impossible?
Software project scheduling is an activity
  that distributes estimated effort across the
  planned project duration by allocating the
  effort to specific software engineering tasks.

Macroscopic schedule- identifies all major
 software engineering activities and the
 product functions to which they are applied.
 Compartmentalization
 Interdependency
   Time allocation
   Effort validation
   Defined responsibilities
   Defined outcomes
   Defined milestones
Example:
 four software engineers – 5000 LOC/year
…but when placed in a team
       6 potential communication paths
…assume the team productivity
       250 LOC/year
Therefore,
  team productivity is…
      20,000-(250*6)=18,500 LOC/year– 7.5%
…in 2 months remaining, 2 additional people
 are added in team in which the
 communication paths escalates to 14.
…productivity input of the new staff
      840*2=1680 LOC

Team productivity…
     20,000+1680-(250*14)=18,180 LOC/year
E = L3/( P3t4 )
  where E =effort expended(person-years)
         t = time duration in years
Consider:
 A real-time software project estimated at
 33,000 LOC, 12 person-years of effort.

     //               ~ 3.8 person-years.

Project scheduling and tracking

  • 1.
  • 2.
    What should wedo when management demands that we make a deadline that is impossible?
  • 3.
    Software project schedulingis an activity that distributes estimated effort across the planned project duration by allocating the effort to specific software engineering tasks. Macroscopic schedule- identifies all major software engineering activities and the product functions to which they are applied.
  • 4.
     Compartmentalization  Interdependency  Time allocation  Effort validation  Defined responsibilities  Defined outcomes  Defined milestones
  • 5.
    Example: four softwareengineers – 5000 LOC/year …but when placed in a team 6 potential communication paths …assume the team productivity 250 LOC/year Therefore, team productivity is… 20,000-(250*6)=18,500 LOC/year– 7.5%
  • 6.
    …in 2 monthsremaining, 2 additional people are added in team in which the communication paths escalates to 14. …productivity input of the new staff 840*2=1680 LOC Team productivity… 20,000+1680-(250*14)=18,180 LOC/year
  • 7.
    E = L3/(P3t4 ) where E =effort expended(person-years) t = time duration in years
  • 8.
    Consider: A real-timesoftware project estimated at 33,000 LOC, 12 person-years of effort. // ~ 3.8 person-years.

Editor's Notes

  • #3 1. Perform a detailed estimate using historical data from past projects.2. Using an incremental process model, develop a software engineering strategy that will deliver critical functionality by the imposed deadline, but delay other functionality until later.3. Meet with the customer.4. Offer the incremental development strategy as an alternative
  • #5 Compartmentalization. The project must be compartmentalized into a number of manageable activities and tasks.Interdependency. The interdependency of each compartmentalized activity or task must be determined. Some tasks must occur in sequence while others can occur in parallel.Time allocation. Each task to be scheduled must be allocated some number of work units.Effort validation. Every project has a defined number of staff membersDefined responsibilities. Every task that is scheduled should be assigned to a specific team member.Defined outcomes. Every task that is scheduled should have a defined outcome.Defined milestones. Every task or group of tasks should be associated with a project milestone.