Software Development Activities, Processes, Techniques - PowerPoint PPT Presentation

Loading...

PPT – Software Development Activities, Processes, Techniques PowerPoint presentation | free to download - id: 454f77-MWI4M



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

Software Development Activities, Processes, Techniques

Description:

Agile Software Development Techniques and Methodologies Structured Programming, Functional Decomposition, Entity-Relationship analysis Object Oriented Programming – PowerPoint PPT presentation

Number of Views:47
Avg rating:3.0/5.0
Slides: 19
Provided by: DavidCl155
Learn more at: http://cse.spsu.edu
Category:

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: Software Development Activities, Processes, Techniques


1
Software Development Activities, Processes,
Techniques Assessment
  • Software Development Activities Req. Processing,
    Architecting, Designing, Coding, Testing,
    Integrating, etc.
  • Software Development Processes
  • Waterfall
  • Spiral
  • Prototyping Rapid Evolutionary
  • Iterative
  • Agile
  • Software Development Techniques and Methodologies
  • Structured Programming, Functional Decomposition,
    Entity-Relationship analysis
  • Object Oriented Programming
  • Clean Room set of techniques (formal
    specification, formal design and verification,
    statistical testing, quality modeling)
  • Defect Prevention set of techniques (root cause
    analysis, reviews formal inspections,
    implementing preventive actions)
  • Agile Methodologies
  • Assessments
  • SEIs Capability Maturity Model (CMM/CMMI)
  • Software Productivity Research (SPR)
  • Malcolm Baldrige National Quality Award (MBNQA)
  • ISO 9000

2
Software Development Activities
  • Direct Development Activities (Pre-Release)
  • Requirement Gathering and Analysis (of all
    deliverables)
  • Design and Specifications
  • Implementation (of code, test cases,
    documentation, help, etc.)
  • Unit and Functional Test
  • Component Test
  • Regression Test and System Test
  • Packaging and Release
  • Customer Alpha and Beta Tests
  • Direct Development Activities (Post-Release)
  • Problem Identification or debugging (for fixing
    bugs)
  • Problem Tracking (for managing bug fixes)
  • (same activities as above ---- for multiple
    releases of product)
  • Special Package and Release for Emergency Fixes
    and releases

3
Supporting Software Development Activities
  • Indirect Activities that Support Development
  • Reviews and Inspections (may be considered
    direct like testing activity)
  • Test Scaffolding
  • Estimation and Projection
  • Status Management Reports (big area)
  • Change Control
  • Configuration Management
  • Quality Assurance
  • Customer Satisfaction Survey and Analysis
  • Measurements and Analysis
  • Development Tools
  • All phases of Development and post-release
    Support tool
  • Version and configuration management tool
  • supports indirect activities
  • All types of Management Activities and Reports
  • All types Measurements, Estimation, Projection

4
2 Well Known Processes
  • Waterfall
  • Go through the development activities
    sequentially like a cascading waterfall and
    relatively rigid
  • Focus on the deliverables from each stage of the
    process (great for contracts and mile-stones
    tracking)
  • Started some 30 years ago, and used by large
    complex projects
  • Spiral
  • A refinement over the Waterfall approach
    development by Boehm at TRW (applied to several
    government contracts --- for risk averse
    projects)
  • Divides the Process into 4 major portions
  • Identify objectives (allows incorporation of
    goals)
  • Analyze risks and prototyping (this requires
    skills)
  • Develop and Test (perform the task)
  • Review and Plan (allows incorporation of good
    planning)

5
Other Process Models
  • Prototyping
  • Iterate in the gathering and understanding of the
    requirements
  • Include the building prototypes before full scale
    development
  • Prototypes may include low-tech paper user
    interface diagrams all the way to using very
    advanced tools to create scenarios
  • Has two major approaches
  • Rapid Prototypes - where the prototypes are built
    but may be thrown away ( e.g. high risk, proof
    of concept or quick and dirty )
  • Evolutionary Prototypes - where the first
    prototype is built based on some relatively well
    established requirements, refined, and evolved as
    opposed to thrown away
  • Iterative
  • First establish the requirements and put together
    a solid design
  • Iterate in the implementation of risk analysis,
    prototype, code, tests, and integration of the
    pieces as they get completed.

When do you stop prototyping ? When do you stop
the Design ?
6
Software Development Techniques
  • Early Techniques
  • Structured Programming
  • Functional Decomposition
  • Strong cohesion
  • Loose coupling
  • Focus on data Entity Relationship
  • Clean Room
  • Championed by Rick Linger Harlan Mills of
    Structured Prog.
  • Based on Formal Correctness and Verification
    Methods
  • Defect Prevention
  • Analyze problem and identify root cause
  • Suggest preventive actions and elimination of
    root causes
  • Implement the suggestions
  • Test to show correctness versus test to find
    error
  • Object Oriented Programming
  • Views and models the user requirements as
    objects or classes
  • Design and develops using objects or classes
    which includes both
  • attributes (data)
  • functional capabilities (functions)

7
Agile Development Methodologies
  • Common points of preference and focus
  • People and interaction .vs.
    Process and tools
  • User/customer collaboration .vs. Negotiation
    and contracts
  • Flexibility and change .vs. Plan
    driven
  • Executable software .vs.
    Complete documentation
  • Incremental .vs.
    Complete system
  • Some noteworthy Agile methods
  • Extreme programming K. Beck
  • Scrum - (Taheuchi Nonaka) or Schwaber
  • Crystal family A. Cockburn
  • Feature Driven Development Palmer and Felsing

8
Extreme Programming (XP)
  • A Programming practice or set of principles
    originated by Kent Beck in the mid-90s.
  • Based on the concept of quick and constant
    Feedback Mechanism involving
  • Planning Game (Small Units of Requirements)
  • Onsite Customer (Immediate and better feedback)
  • Metaphor (Use one set of metaphor for
    design/architecture)
  • Simple Design (Just enough to cover whats
    needed)
  • Coding Standard (Facilitates better
    communication)
  • Collective Code Ownership (Peer pressure to
    improve code)
  • Pair Programming (Feedback and shared
    improvements)
  • Refactoring (Continuous examination to improve
    code)
  • Continuous Functional and Unit Testing (100
    completion)
  • Continuous Integration (integrating small
    functional releases)
  • 40 hour work (high morale and energy level)

9
Extreme Programming Process
loosely defined
Onsite Customers
Simple Design
Coding standards
Planning Game

Pair Programming
Functional Unit Test
Small Release
System Metaphors
Continuous Integration
Refactoring
Collective Code Ownership
Larger Release
Adhere to 40 hour work week as much as possible !
10
Scrum
  • Currently (2010 2013 ----201x) popular
    methodology
  • Another Agile process --- similar to XP
  • Small time-boxed unit of development (1wk - 1
    month) --- called SPRINT.
  • Has time- boxed daily scrum meeting to share
  • what was done yesterday,
  • what is to be done today, and
  • what impediment, if any, exist
  • Burn chart to show sprint status
  • Sprint Planning meeting to plan each sprint
  • 3 major roles of people
  • Product owner represents users and stakeholders
  • Development team designers, coders, testers,
    etc.
  • Scrum master leads team in enforcing rules and
    remove impediments (not a people manager)

11
What about all these processes and methodologies?
  • Do we gain productivity ?
  • Do we gain quality ?
  • Do we reduce cost?
  • Do we gain on technology, function/features ?
  • How would we know and what do we use to measure
    these?
  • Are there limits to these methodologies and
    processes?
  • Large increments of work? (size limitation)
  • Large team? (size limitation)
  • Physically remote and multi-located (e.g.
    offshore distributed) ? (mode limitation)

12
Software Development Process Assessment
  • More Recognized
  • SEIs Capability Maturity Model (CMM) and CMMI
  • ISO 9000 (the software registration 90019003)
  • Others (Less Recognized)
  • Software Productivity Research (SPR)
  • Malcolm Baldrige National Quality Award
  • IEEE Standards (730-1984 983-1986 )

13
SEIs Capability Maturity Model
  • Level 1 Initial stage where there is no process
    and activities are chaotic
  • Level 2 Fundamental Processes in place and
    Repeatable
  • Requirements Management
  • Software Project Planning
  • Software Project Tracking and Oversight
  • Software Configuration Management
  • Software Quality Assurance
  • Software Subcontract Management
  • Level 3 Management Processes getting integrated
    and Defined
  • Organization Process Focus
  • Organization process Definition
  • Training Program
  • Integrated software Management
  • Software Product Engineering
  • Intergroup Coordination
  • Peer Reviews
  • Level 4 Processes are measurable and Managed
  • Process Measurement and Analysis
  • Quality Management

14
ISO 9000
  • International Standards Organization sponsored
  • Very Popular in Europe in 1980s 1990s
  • Popular in the Manufacturing Industry
  • ISO 9001 is for the software industry and 9003 is
    the guideline describing 9001
  • Has a total of 20 categories (see text book-
    chapter 2) including
  • Design control
  • Inspection
  • Purchasing
  • -statistical techniques (product metrics
    process metrics)
  • etc.
  • Heavy Emphasis on Document Control
  • Document must be adequate for purpose of
    performance
  • Properly approved
  • .
  • .
  • Pages numbered
  • .

Note
15
Other Assessments
See Textbook chapter-2 for more details
  • Malcolm Baldrige
  • US Government sponsored Quality Award
  • Touches on more than quality processes (1
    leadership, 2 customer sat., 3 human resources,
    4quality results, 5 strategic quality planning,
    6 information analysis, 7 quality assurance of
    products and services ) total of 7 categories
  • Not just for software
  • SPR
  • Much like CMM
  • Started by Caper Jones (like Watts Humphrey who
    started SEI was an IBMer)
  • IEEE Standard
  • Not an assessment but more of a quality plan

16
Integrated Quality Management System
Software Development Activities (pre-release)
Software Post-Release Activities
Req. Gathering Analysis
Design
Coding Implem.
Testing integration
Packaging, Releasing, Installing
Problem identif. support
Problem resolution adaptation
Product update releasing
Measurements ?
Supporting Activities
Reviews Inspect.
Recruit. team bld.
Change Control
Config. mgmt
Status tracking report.
Q.A.
Cust. Survey
Cust. support
Escalat.
Translat.
Measurements ?
Tools
Req. Mgmt.
Design Prototyp.
Coding Debug.
Library Config. Mgmt
Testing Test Mgmt
Help Desk Problem Mgmt
Transl.
Packaging Distribution
Schedule, Defect, Call, etc. Modeling
Measurements ?
17
Some Recent Emphasis on Process
Realization of the need for active management
of process
  1. Get Full Management buy in
  2. Understanding and focusing on customers
  3. Usage of statistical analysis and control
  4. Strive for continuous improvement

18
We talked about processes, methodology and
assessment. Dont forget ---- we care about
assessing the PRODUCT, too!
Once Again ---- More
IMPORTANTLY Spending
time, effort and money on the topics in this
lecture and in this course must produce a return
such as - faster to market -
improved customer satisfaction - improved
product (reliability, functionality, performance,
etc.) - higher morale and more
efficient/productive work force
About PowerShow.com