Best Practices and Supporting ToolsModels - PowerPoint PPT Presentation

1 / 27
About This Presentation
Title:

Best Practices and Supporting ToolsModels

Description:

Best practice guidelines can be identified in each software lifecycle phase ... Best practices are utilized by HP in developing large software systems ... – PowerPoint PPT presentation

Number of Views:63
Avg rating:3.0/5.0
Slides: 28
Provided by: ics9
Category:

less

Transcript and Presenter's Notes

Title: Best Practices and Supporting ToolsModels


1
Best Practices and Supporting Tools/Models
  • Jesse Hsia
  • Kaman Cheung

2
Topics of Discussion
  • Definition
  • Common best practice software lifecycle
    guidelines/principles
  • Hewlett Packard Example
  • Best practice tools and models
  • COCOMO/COCOMO II
  • COCOTS
  • PSP
  • Lessons Learned

3
Definition What is Best Practice?
  • Best practice refers to accomplishing a task in
    the best way.
  • Best practice can be guidelines or principles in
    accomplishing a task.

4
Advantages of Improving Software Process
  • Greater efficiency
  • Better value for money
  • Better quality
  • Greater Customer satisfaction
  • Competitive advantage

5
Guidelines
  • Best practice guidelines can be identified in
    each software lifecycle phase
  • Some general/managerial guidelines
  • Assign a project manager for each project
  • Have a separate quality assurance manager
  • Constant customer input throughout the phases
  • Train all newly appointed managers
  • Maintain awareness of latest software engineering
    technology
  • Ensure availability of non-software resources
  • Have procedures for controlling changes to code,
    requirements, design, etc.

6
Planning
  • Using a formal cost estimation model
  • Using formal methods to estimate software size
    and schedule
  • Conduct risk assessment
  • Evaluate alternatives

7
Requirements/Design
  • Use prototyping methods to capture requirements
    elements
  • Allow only project managers to produce estimates
    and control changes
  • Use a data dictionary for systems design and
    development

8
  • Implementation
  • Establish coding standards
  • Keep records which would allow quick and accurate
    reconstruction of all current versions
  • Testing
  • Plan testing before coding
  • Log implementation problems and track their
    solution
  • Gather statistics on sources of errors for
    analysis
  • Ensure that every function is tested
  • Validation and Verification
  • Conduct periodic reviews of the status of the
    project
  • Conduct inspection and walkthroughs at each stage

9
Hewlett Packard
  • Best practices are utilized by HP in developing
    large software systems consisting of multiple
    components.
  • Some of the practices are
  • Set list of criteria for all systems
    (interoperability)
  • Specified reliability
  • Remaining defect density
  • Depth of code testing
  • Scheduled software inspections (defect
    prevention)
  • Requiring documentation and clarification
  • Use of tools to test code coverage
  • Standardize types of defects to allow failure
    analysis

10
USC Computer Science
  • WinWin approach with WinWin Lifecycle process
  • Used in USC computer science department
  • Students developed application for USC library
  • Win-win situation for students
  • Win-win situation for faculty
  • Win-win situation for client (library)

11
(No Transcript)
12
Tools and Models COCOMO II
  • COCOMO (1981) COCOMO II (1995)
  • Developed by Barry Boehm and colleagues in USC
  • Three main goals of COCOMO II
  • Develop a software cost estimation model that is
    tailored to software processes and practices of
    the 21st century
  • Develop software cost database to help improve
    cost estimation
  • To provide analysis and tools to software systems
    to improve their software lifecycle costs and
    schedule
  • COCOMO II determines cost of software projects
    by
  • Source Lines of Code
  • Function Points
  • Effort Multipliers
  • Scale Factors

13
Tools and Models (cont)
  • COCOTS (Boehm) cost estimation model based on
    todays commercial-off-the-shelf (COTS) software
    packages.
  • Cost determined by
  • Assessment
  • Tailoring
  • Glue Code
  • Volatility
  • Still in experimental phase
  • Complementary to COCOMO II

14
Personal Software Process (PSP)
  • What is PSP?
  • Why should anyone use PSP?
  • How does PSP work? Benefits? Disadvantages?
  • What qualities does it effect?
  • Why doesnt anyone use it?

15
What is PSP?
  • PSP was introduced in 1995 by Watts S. Humphrey
    in the book A Discipline for Software
    Engineering
  • Supported by SEI
  • Supported by Department of Defense

16
Why should anyone use PSP?
  • Software Crisis
  • Quality software, where is it?
  • What deadline?
  • How much was it again?
  • Examples that show a need for best practices like
    PSP
  • Ariane 5
  • Therac-25

17
How does PSP work?
  • Introduction of the Personal Software Process
  • Features
  • Hands-on intro to basic disciplines needed for
    good software engineering.
  • Helps students develop habits they will need for
    professional work
  • Focuses on habits needed for time management and
    quality assurance
  • Essentially its documentation and the analysis of
    data
  • Disciplines in PSP

18
PSP
  • Time Management
  • Time Log
  • Engineering Worksheet
  • Weekly Time Budget
  • Period and Product Planning
  • Weekly Activity Summary
  • Job Number Log

19
PSP
  • Making Commitments and Schedules
  • Commitments List
  • Gantt Chart
  • Handling Defects
  • Defect Recording Log
  • PSP Project Plan Summary

20
Gantt Chart
21
Benefits of PSP
  • Estimation accuracy increased considerable
  • Number of defects introduced per 1000 lines of
    code (KLOC) decreased by a factor of two
  • Number of defects per (KLOC) to be found late
    during the development decreases by a factor of
    three or more
  • EASY TO LEARN!

22
Challenges to Results
  • Using a defined and measured personal software
    process by Watts Humphrey??
  • Case Studies have showed that results stated are
    lower then published
  • although the realistic improvements are smaller
    than many may expect, it does indeed produce the
    benefits it claims to produce

23
Disadvantages of PSP
  • Results not Guaranteed
  • Labor intensive
  • Tedious Task
  • Lack of Support Tools

24
What qualities does it effect?
  • Reuseability
  • Safety
  • Many other qualities

25
Why doesnt anyone use it?
  • Businesses arent willing to spend the time and
    the money
  • Self Discipline
  • People dont like change
  • Learning Curve
  • But are these good enough reason?!

26
Is it Worth it?
  • Legal Benefits
  • Cost Benefits
  • Productivity Benefits
  • Cost of Human life
  • Software is everywhere now, is it worth it to you?

27
Lessons learned
  • There are managerial and technical best practices
  • It is best practice to cost estimation models and
    code testing tools
  • Software quality can be achieved by following
    best practices
  • Importance of software quality
Write a Comment
User Comments (0)
About PowerShow.com