CMM-Base Appraisal for Internal Process Improvement (CBA-IPI)
diagnostic technique for assessing maturity of a software organization
ISO/IEC 15504 (SPICE)
Standard that defines a set of requirements for software process assessment.
ISO 9001:2000 for Software
generic standard for any organization that wants to improve overall quality.
Prescriptive Process Model
Model with structure, order following a sequence of defined guidelines for progress. Prescribed set of process elements, framework activities, software engineering actions, tasks, work products, quality Assurance and Change Control Mechanisms
Classic Life Cycle or V-Model, Sequential model starting with requirements gathering and progresses through planning modeling, constructing and deploying. Oldest Paradigm
Problems with waterfall
1. projects rarely flow sequentially 2. difficult to fully realize customer requirements 3. customer patience is key, long time until finished product.
two common evolutionary process models
Prototyping and Spiral Model
is a practice-based methodology for effective modeling and documentation of software-based systems.
UML representation of the business and problem domains are created
Models are translated into source code.
Series of tests are designed and executed to uncover errors and to ensure that a source code meets requirements.
Software increment is delivered and feedback from end users is obtained.
Dynamic Systems Development Method (DSDM) Activities
1. Feasibility Study 2. Business Study 3. Iterative Cycles
Feasibility Study (DSDM)
study the basic buisness requirements and contraints
Business Study (DSDM)
ids functional and informal requirements
Iterative Cycles (DSDM)
Provide incremental prototypes for demo, intent is to gather additional requirements.
Project Management (AUP)
Tracks changes and progress
Environmental Management (AUP)
tracks the environment of the software (infrastructure)
Agile Methods are also know as......
Active vs Passive Communicators
Active: achieved by team dynamics Passive: achieved by information radiators.
Acceptance / Customer Tests (XP)
focuses on overall system features and functionality viewable by the customer.
Agile Process Models
Extreme Programming (XP) Scrum Dynamic Systems Development Method (DSDM) Agile Modeling (AM) Agile Unified Process (AUP)
Extreme Programming (XP)
Object-Oriented Approach, Agile
Extreme Programming (XP) Values
Communication - Dev and Stakeholder Simplicity - design current not future needs Feedback - implement software, unit testing Courage Respect
Extreme Programming (XP) Key Activiites
Planning Design - CRC Cards Coding Testing
Industrial Extreme Programming (XP)
brings in test driven management, establishing measurements through out.
Issues with Extreme Programming (XP)
Requirement Volatility Conflicting Customer Needs Requirements are Expressed informally Lack of formal design
Small teams, process orientated, frequent increments, testings and documentation occurs during build, ability to declare product done any time.
Scrum Process Patterns
Backlog Sprints Scrum Meetings - What was done, what obstacles, what will you do. Demos
Dynamic Systems Development Methods (DSDM)
Framework for building and maintaining systems, Pareto Principle, incremental, time boxes
Guiding Principles for Dynamic Systems Development Methods (DSDM)
Active User Involvement Teams empowered Iterative and incremental development All changes are reversible requirements are base lined at a high level Testing through out life cycle collaborative and cooperative
Lifecycle Activities for Dynamic Systems Development Methods (DSDM)
Feasibility Study Business Study Functional Model Iteration Design and Build Iteration Implementation
Agile Modeling (definition)
Practice Based, light weight methodology for effective modeling and documentation
Agile Modeling Principle
Model with a purpose. Use Multiple Models Travel Light (keep models with long-term value) Content is more important that representation know the models and tools you use to create them adapt locally
Agile Modeling Requirements Gathering and Analysis Modeling
Work collaboratively, collaborative analysis continues with customer.
Agile Unified Process Activities
Inception, Elaboration, Construction, Transition
Agile Unified Process Iterations addresses
Modeling - UML of business and problem domains Implementation Testing Deployment Configuration and Project Management Environmental Management
Generic Process Framework
Communication Planning Modeling Construction Deployment
Linear Process Flow, Iterative Process Flow, Parallel Process Flow
Each software engineering actions is associated with a framework activity, small one person projects do not require task sets as large and detailed as larger more complex projects.
Process Pattern Template
Pattern Name Forces Type - Stage Patterns - Task Patterns - Phase Patterns Initial Context Solutions Resulting Context Related Patterns Known Used / Examples
Process Assessment and Improvement
Standard CMMI Assessment Method for Process Improvement (SCAMPI)
CMM-Based Appraisal for Internal Process Improvement (CBAIPI)
Software Process Models
Concurrent Development Model
Specialized Process Models
Formal Methods Model
Aspect-Oriented Software Development
Use-case driven, architecture centric, iterative, and incremental software process
Unified Process Phases
Inception, Elaboration, Construction, Transition, Production
Personal Software Process (PSP)
Emphasizes personal measurement of both work products and quality of work products
Stresses importance of identifying errors early and to understand the types of errors
Personal Software Process (PSP) Framework Activities
Technique that translates customer needs into software - Customer Voice Table
Function deployment used to determine value
Information deployment identifies data objects
Task Deployment examines system behavior
Value Analysis - conducted to determine priority
Elicitation Work Products
Statement of Need Bounded statement of scope List of Stakeholders Description of systems tech environment List of requirements Set of usage scenarios Prototypes
Use Case Template
· Use Case Name · Primary actor · Goal in context · Preconditions · Trigger · Scenario details · Exceptions · Priority · When available · Frequency of use · Channel to actor · Secondary actors · Channels to secondary actors · Open issues
· Analysis Model Elements
Scenario-based elements (use cases describe system from user perspective)
Class-based elements (relationships among objects manipulated by actors and their attributes are depicted as classes)
Behavioral elements (depict system and class behavior as states and transitions between states)
Flow-oriented elements (shows how information flows through the system and is transformed by the system functions)
Requirements Model Objectives
· Describe what the customer requires. · Establish a basis for the creation of a software design. · Devise a set of requirements that can be validated once the software is built.
· Scenario-based (system from the user's point of view) · Data (shows how data are transformed inside the system) · Class-oriented (defines objects, attributes, and relationships) · Flow-oriented (shows how data are transformed inside the system) · Behavioral (show the impact of events on the system states)
Considers data and processes that transform data as separate entities o Data objects are modeled to define their attributes and relationships o Process are modeled to show how they transform data as it flows thought the system
Focuses on the definition of classes and the manner in which they collaborate to effect the customer requirements
Captures the interaction between actors, listing activities performed by a single actor to accomplish a single function
UML Swimlane Diagram
Shows flow of activities in use case as well as indicating which actor has responsibilities for activity rectangle actions.
responsibilities are represented by parallel line segments that divide the diagram
Class Based Modeling
Defines the objects a system manipulates, operations applied to objects, and the collaborations occurring between classes.
Elements of a Class Model
Classes, Objects, Attributes, Operations, CRC Models, Collaboration Diagrams and packages.
Class-Responsibility-Collaborator (CRC) Modeling
Index Cards that represent classes, one card per class, divided into 3 sections (class name, class responsibility, class collaborator)
What umbrella activity in the software project can result in models.