Software Development Activities, Processes, Techniques - PowerPoint PPT Presentation


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


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation

Software Development Activities, Processes, Techniques


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:


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

Title: Software Development Activities, Processes, Techniques

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

Software Development Activities
  • Direct Development Activities (Pre-Release)
  • Requirement Gathering and Analysis (of all
  • 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
  • Problem Tracking (for managing bug fixes)
  • (same activities as above ---- for multiple
    releases of product)
  • Special Package and Release for Emergency Fixes
    and releases

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

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
  • 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
  • Divides the Process into 4 major portions
  • Identify objectives (allows incorporation of
  • Analyze risks and prototyping (this requires
  • Develop and Test (perform the task)
  • Review and Plan (allows incorporation of good

Other Process Models
  • Prototyping
  • Iterate in the gathering and understanding of the
  • Include the building prototypes before full scale
  • 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 ?
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
  • 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
  • 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)

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
  • 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

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
  • Simple Design (Just enough to cover whats
  • Coding Standard (Facilitates better
  • Collective Code Ownership (Peer pressure to
    improve code)
  • Pair Programming (Feedback and shared
  • Refactoring (Continuous examination to improve
  • Continuous Functional and Unit Testing (100
  • Continuous Integration (integrating small
    functional releases)
  • 40 hour work (high morale and energy level)

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

Pair Programming
Functional Unit Test
Small Release
System Metaphors
Continuous Integration
Collective Code Ownership
Larger Release
Adhere to 40 hour work week as much as possible !
  • Currently (2010 2013 ----201x) popular
  • 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,
  • Scrum master leads team in enforcing rules and
    remove impediments (not a people manager)

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
  • Are there limits to these methodologies and
  • Large increments of work? (size limitation)
  • Large team? (size limitation)
  • Physically remote and multi-located (e.g.
    offshore distributed) ? (mode limitation)

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 )

SEIs Capability Maturity Model
  • Level 1 Initial stage where there is no process
    and activities are chaotic
  • Level 2 Fundamental Processes in place and
  • 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

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
  • Properly approved
  • .
  • .
  • Pages numbered
  • .

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

Integrated Quality Management System
Software Development Activities (pre-release)
Software Post-Release Activities
Req. Gathering Analysis
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.
Cust. Survey
Cust. support
Measurements ?
Req. Mgmt.
Design Prototyp.
Coding Debug.
Library Config. Mgmt
Testing Test Mgmt
Help Desk Problem Mgmt
Packaging Distribution
Schedule, Defect, Call, etc. Modeling
Measurements ?
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

We talked about processes, methodology and
assessment. Dont forget ---- we care about
assessing the PRODUCT, too!
Once Again ---- More
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