Chapter 2 The Software Process Discussion of the Software Process:

advertisement
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Chapter 2
The Software Process
Discussion of the Software Process:
Process Framework, CMM, and Patterns
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
The Process
• What is a Process?
A roadmap (predefined steps) to produce a quality product or
accomplish a specific task.
- Building a car
- Student registration
• What is Software Process?
A predefined series of steps (called framework or approach)
to guide us in the development of high quality software
products.
Is software process same as software engineering?
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Software Engineering (1)
Software engineering involves Process (management and
control), Methods (“how to“ technical tasks), and tools
(support) with the goal of producing high quality software
products.
tools
methods
process model
a “quality” focus
Software Engineering Layers
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Software Engineering (2)
Software is engineered through three essential phases:
- Discovery (definition) (What to do)
Data, Functions, Behavior, Interface, Limitation and
Constraints, Validation Criteria, etc…
- Development (construction) (How to implement it)
Data Structures, Algorithms, Interface Characteristics, Error
Handling, etc…
- Support (maintenance)
Corrections and fixes, Changes to environment (HW and SW),
Functional enhancements, Interfacing, etc…
SE layers cover all three phases.
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Software Process
A software process consists of process (framework) activities
applied to all projects, such as
Discovery/communication, planning, modeling (requirements
analysis and design), construction (prototyping, coding, and
testing), deployment, and maintenance/support.
Each process activity has actions and task sets. (see figure 2.2)
work tasks, milestones, products, deliverables, and quality
assurance checkpoints, etc…
Umbrella activities are additional activities applied throughout the
process, and are independent of process activities.
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Umbrella Activities (1)
• Project management (planning, tracking and control)
• Formal technical reviews (reviews help identify errors as early
as possible)
• Quality control (reviews, inspections, and tests insure that the
product meets the requirements)
• Quality assurance (auditing and reporting of management
functions)
• Configuration management (Management and control of
changes while building the software)
• Document preparation and production (all sort of
documentations for the product and the process)
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Umbrella Activities (2)
• Reusability management (planning, defining, and applying
reusability)
• Measurements (metrics or data to assess product quality,
process effectiveness, and people efficiency)
• Risk management (risk identifying and developing plan to
mitigate, monitor, and manage such risks)
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Software Process Adaptability
Process activities will always be applied to every project …
BUT, the tasks (and degree of rigor) for each activity will vary
based on:
- the type/nature of project (entry point to the model)
- characteristics of the project
- concurrence/harmony of the project team
The “Prescriptive” nature of software process models (chapter 3)
lead to the “agile” process models (chapter 4):
- facilitate dynamic adaptability of changes
- effective response to changes (arguable!)
- introduction of agile process models (e.g., extreme
programming)
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Process Model Variations
Process models are not alike!
-
flow of and dependency among activities and tasks
task definition within each activity
product identification and requirement
degree of rigor of quality assurance tasks
degree of applicability of tracking and control activities
degree of customer involvement in the process
level of autonomy given to the project team
description of team organization and roles
overall process details and its degree of rigor
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Software Process Maturity (CMMI) (1)
CMMI (Capability Maturity Model Integration) is a model
(developed by SEI) to assess the maturity of an organization’s
software process.
The CMMI defines each process area ( in terms of “specific
goals” and the “specific practices” required to achieve these
goals.
– Specific Goals (SG) describe characteristics that must exist if the
activities implied by a process area are to be effective.
– Specific Practices (SP) refine a goal into a set of activities.
– Generic Goals (GG) and Generic Practices (GP) defined for each
process area in at each maturity level.
See page 29 for SGs, SPs, GGs, and GPs for Project Planning.
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Software Process Maturity (CMMI) (2)
CMMI consists of 5 maturity levels:
Level 0: Incomplete: Informal (ad hoc) process.
Level 1: Performed: Management process (scheduling and
tracking) in place and success can be repeated on similar
projects. Work tasks are defined and applied.
Level 2: Managed: The organization has a defined policy, all
needed resources are provided, customers actively involved,
and has monitoring/control procedures. All projects follow the
process approved by the organization.
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Software Process Maturity (CMMI) (3)
Level 3: Defined: The process is documented and standardized.
Organization-specific process and improvement guidelines
are defined.
Level 4: Quantitatively Managed: Quality and assurance
measures are in place and quantitative data is collected.
Level 5: Optimized: Continues process improvement capabilities.
Each level has Key Process Areas (KPAs) that must be practiced
to be at that level. (see figure 2.4, page 31)
Each KPA has goals, requirements, abilities/tools, tasks,
monitoring procedures, and verification methods.
Visit SEI Site: http://www.sei.cmu.edu/ for details.
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Process Patterns
Process patterns define a set of activities, actions, work tasks, or
work products.
Templates are used to define patterns (at different levels)
Typical examples:
–
–
–
–
–
Customer communication (a process activity)
Analysis (an action of modeling activity)
Requirements gathering (a work task of modeling activity)
Reviewing a work product (a work task quality control activity)
Test plan (a work product of construction activity)
Why define process patterns?
See page 32 for a sample template.
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Process Assessment
The process should be assessed to ensure that it meets a set of
basic process criteria that are essential for a successful
software engineering.
The assessment process should lead to capability determination
and process improvement.
Many different assessment options are available:
• SCAMPI (Standard CMMI Assessment Method for Process
Improvement)
• CBA IPI (CMM-Based Appraisal for Internal Process Improvement)
• SPICE (ISO/IEC 15504)
• ISO 9001:2000 for software
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Process and Assessment Relationship
Software Process
is examined by
identifies
modifications to
identifies capabilities
and risk of
Software Process
Assessment
leads to
Software Process
Improvement
motivates
leads to
Capability
Determination
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Personal Software Process
PSP is a metrics-based approach intended for individual software
developers (to develop proper development practices).
It emphasizes the measurement of the product and its quality.
It stresses the need to identify and track errors early, and to
understand the types and causes of errors.
It is based on five framework activities:
– Planning
– High-level design
– High-level design review
– Development
– Postmortem (analysis of gather data and errors for
improvement)
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Team Software Process
TSP is a metrics-based approach intended to facilitate selfdirected software development teams.
It emphasizes self-management, from planning to metrics
analysis (to improve the teams’ development practices).
TSP activities:
– Each project starts with a script that defines the tasks to be
accomplished (planning)
– Teams are self-directed (management)
– Measurement is encouraged (data collection)
– Measures are analyzed with the intent of improving the
team process (develop metrics)
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Process Technology Tools (1)
Tools to facilitate process adoption and implementation in an
organization. Mainly, work tasks organization, work flow,
progress control and monitoring, work status, checklists, use of
other tools, and others…
Taxonomy of CASE Tools:
-
Business process engineering tools
Process modeling and management tools
Project planning tools
Risk analysis tools
Project management tools
Requirements tracing tools
Metrics and management tools
Documentation tools
System software tools
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Process Technology Tools (2)
-
Quality assurance tools
Database management tools
Software configuration tools
Analysis and design tools
Prototyping and simulation tools
Interface design and development tools
Programming tools
Web development tools
Integration and testing tools
Static analysis tools
Dynamic analysis tools
Test management tools
Reengineering tools
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
The Goal: High Quality
The process has direct impact on the quality of the final
product.
Selecting the appropriate process for a given project leads
to a better product!
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Suggested Problems
Try to work problems 2.1, 2.3, 2.4, 2.5, 2.6, 2.10, and
2.12 from Chapter 2, page 43.
No submission is required for practice assignments.
Work it for yourself!
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Last Slide
End of chapter 2
Download