Tuesday, June 20, 2006

Software Engineering Processes

Software Engineering Series Part 1

Good Software System

  • Is of good quality - has well defined purpose, meets the business needs, is usable; is reliable, accurate, fast, available
  • Is well designed - design is extensible to meet the future change requirements; maintenance is easy

Process Definition

  • Process - Ordered set of steps intended to achieve a goal. Another definition is - One or more agents acting in defined roles to carry out the process steps to accomplish the overall process goals. At the end of a step, process artefacts may be created or modified
  • Software process documents how software projects are initiated, managed, implemented, concluded and improved
Characteristics of good Software Process
  • Clearly defines the deliverables and the product
  • Correctly defines the sequence and interrelations of activities needed to produce the software
  • Clearly defines the roles and responsibilities
  • Has an effective Process control; defines how the activities are to be performed; methodologies, standards, reviews etc
Software Engineering Processes
  • Software Development Lifecycle
  • Software Process Management
  • Software Project Management
  • Software Product Management
  • Software Quality Management
Issues in managing and Improving Process
  • Choosing a Process - need to understand the details of the process and the interaction between the chosen process and methodology chosen. To improve an existing process, the current process needs to be understood, the weakpoints need to be identified, understand how it needs to be improved, implement and measure the improvement
  • Process is followed - Ensure that deliverables of each step is produced; Exit criteria for the current step is met; Entry criteria for the next step is met
Uses of Software Process modelling
  • Facilitate human understanding and communication
  • Support process improvement
  • Support process and project management
  • Process automation
Perspectives in Process
  • Functional - what process elements are being performed; what are the information entities involved
  • Behavioural - When and what process elements are being performed; consider timing and sequential issues
  • Organisational - When and by whom the process elements are being performed; How entities are transferred
  • Informational - What are the entities, their structure and relationships in the organization
SADT - Structured Analysis Design Technique
  • Inputs - Things used and transformed by Activity to Output
  • Activity - Atomic step of a process
  • Output - Things into which inputs are transformed by a process
  • Triggers - event or a directive to begin the activity
  • Control and Guiding Mechanism - Document or information items that will guide or constrain activities
  • Resource Mechanism - how the activities are realized
Definition of Project
  • Scope and Objective
  • Team of people
  • Timeline and budget
  • Risks
  • Pricess to achieve objective
Objectives of Project Management
  • Define Scope, Process and objective of Project
  • Process used to achieve the project objectives
  • Team/Resources
  • Costing and Schedule
  • Risks Management
  • Project Control
  • Quality Management
Project Planning Process
  • Define the Project Deliverables
  • Identify and evaluate Project Risks
  • Determine how to manage Project Risks
  • Develop WBS
  • Identify Staffing and Resources
  • Effort estimate required to complete tasks
  • Estimate Project Costs
  • Identify Dependencies and establish Schedule
Project Plan Contents
  • Intrduction
  • Document SDLC
  • Project Structure
  • Deliverables
  • Work Plan - WBS/Resource/Estimate
  • Project Schedule
  • Project Cost
  • Risk Management Plan
Project Planning Guidelines
  • Make sure that scope of each level in WBS gets mapped to tangible tasks
  • Make sure that all tasks have estimates
  • Make sure that no Task at level 1 (Phase) is longer than 1 year
  • Only plan the next phase in detail
  • Ensure that detailed planning level is no longer than 1 month and the lowest level of task greater than 2 work weeks.
Definition of Risk
  • Potential for harm arising out of either a current process or a future event that may harm the software being developed in a negative way (functionality, reliability, usability, performance, schedule, cost)
Risk Management
  • Risk Assessment - Identification, Anlysis, Prioritization
  • Risk Control - Planning, Resolution, Monitoring
Risk Resolution Techniques
  • Contingency Planning
  • Accept Risk and live with it
  • Avoid Risk - for example by doing something differently, so that the risk is not in the picture at all
  • Investigate to understand the risk so that we can resolve the risk after understanding it better
  • Transfer to somebody else who can handle the risk

Definition of Quality
  • Meeting the agreed requirements
  • Zero defects
Quality Acitvities (http://geekswithblogs.net/srkprasad/archive/2004/04/29/4489.aspx)
  • Quality Assurance - Preventing defects in deliverables by establishing project quality standards and procedures for the entire SDLC. A set of activities designed to ensure that the development and/or maintenance process is adequate to ensure a system will meet its objectives. In other words, Quality Assurance makes sure you are doing the right things, the right way. It is more on the Process end, rather than on the Product end.
  • Quality Control - Inspection of deliverables for defects, reviews, testing, walk-thrroughs etc. Quality Control makes sure the results of what you've done are what you expected.
  • http://c2.com/cgi/wiki?QualityAssuranceIsNotQualityControl
Quality Plan
  • Standards and Guidelines
  • Techniques and Tools
  • Software Configuration Management
  • Test Strategy
  • Project Procedures
  • Reviews
  • Approval Process
  • Change Management
  • Progress Reporting
Purpose of Project Control
  • To ensure that project runtime runs along the planned activities as listed in the Project Plan.
  • Ensure that the project completes successfully according to the scope and quality specification laid out in the Project plans.
Activities in Project Control
  • Day to day Project Control, monitoring and reporting
  • Tasking Project Staff
  • People Leadership
  • Technical Leadership
  • Vendor Management
  • Quality Management
  • Risk Resolution
  • Change Control

0 Comments:

Post a Comment

<< Home