SlideShare a Scribd company logo
1 of 29
1
UNIT – 1 [PART – 1]
INTRODUCTION TO SOFTWARE ENGINEERING
1.1 Introduction
* No one could foreseen that software become embedded in systems of all kinds. i.e.,
Medical, Telecommunication, Military, Industrial, Entertainment etc.,
* As software importance has grown, millions of computer programs generated and
would have to be corrected, adapted and enhanced
* These maintenance activities would absorb more people and more resources than all
work applied to the creation of new software
* So the software community attempted to develop technologies that will make it easier,
faster and less expensive to build and maintain high-quality computer programs
* However we have yet to develop a software technology that does it all
* So to achieve this, we need a frame work that encompasses a process, a set of methods
and an array of tools
* This frame work is referred to as Software Engineering
1.2 The Evolving Role of Software
* Today software takes a dual role
=> As a Product
=> A vehicle for delivering a product
(1) As a Product:
* It delivers the computing potential embodied by hardware [i.e.,

Network of

computers that are accessible by local hardware]
* Whether the software reside within a cellular phone or operates inside a mainframe
computer, it is an information transformer that
=> Producing, Managing, Acquiring, Modifying (Or) transmitting
information
(2) A vehicle for delivering a product:
* Software delivers the most important products of our time information, such as
=> It transforms personnel data [eg.,an individual financial transaction]
=> It manages business information to enhance competitiveness
2
=> It provides a gateway to worldwide information networks
[eg.,the internet]
=>Provides the means for acquiring information in all of its forms
1.3 Adaptation of Software Engineering Practices:
* The Dramatic improvements in,
=> Hardware performance
=> Profound changes in computing architecture
=> Vast increase in memory and storage capacity
=> Exotic input and output options
* All the above have participated more sophisticated and complex computer based system
* Sophisticated and complexity produce good results, when system succeeds else a huge
problem may arise for those who build complex system
* Today huge software industries replaced the lone programmer by teams of software
specialist, each focusing on one part of technology required to deliver a complex
application
* The questions that were asked of the lone programmer are the same questions that are
asked when modem computer systems are built. They are,
(1) Why does it take so long to get software finished?
(2) Why are development costs so high?
(3) Why can’t we find all errors before we give the software to our
customers?
(4) Why do we spend so much time and effort maintaining existing
programs?
(5) Why do we continue to have difficulty in measuring progress as software
Is being developed and maintained?
* These questions demonstrate industries to concern about software and the manner in
which it is developed
* This concern has lead to the adaptation of software engineering practice
3
1.4 Software:
Definition:
“ It is a set of instruction that when executed provide desired features, functions
and performance”
(Or)
“ It is a data structure that enable the programs to adequately manipulate
information”
(Or)
“ It is a documents that describe the operation and use of programs”
1.5 Software Characteristics:
* The characteristics of software are different from characteristics of hardware:
(1) Software is developed (Or) engineered; it is not manufactured in the classical
sense
* In both software development and hardware manufacturing high quality is
achieved using good design
* The manufacturing phase for hardware can introduce quality problems, which
are non-existent (Or easily corrected) for software
* Both the activities dependent on people, but the relationship between people
applied and work accomplished is entirely different
* Both activities require the construction of a “Product”, but the approaches are
different
* Software engineering costs are concentrated in engineering
(2) Software doesn’t “wear out”
* The hardware exhibits relatively high failure rates early in its life, these
failures are caused due to design (Or) manufacturing defects
* Once defects are corrected the failure rate drops to a steady-state level, for some
period of time
* As time passes, hardware components suffer from the cumulative effects of
Dust, Vibration, abuse, temperature extremes and other environmental maladies
4
* The failure rate rises again, stated simply the hardware begins to “wear out”.
This is shown below using “Bath Tub Curve”

“Infant Mortality”

“Wear Out”

Failure
Rate

Time

* Software is not susceptible to the environmental maladies
* The failure rate curve for software, should take the form of “Idealized Curve”

Increased Failure rate due
to Side Effects

Failure
Rate
Actual Curve
Change
Idealized Curve
Time
5
* Early in the life of a program, undiscovered errors causes high failure rates
* Once these errors are corrected (without introducing other errors), the curve
Flattens
* So, it is clear that;
=> Software doesn’t wear out, but it does deteriorate
* Software will undergoes changes during its life time
* The errors will be introduced as changes are made. This causes the failure rate to spike
* Before the curve can return to the original steady state failure, another changes is
requested causing the curve to spike again
* So due to changes the software is deteriorating
* The software maintenance involves more complexity than hardware maintenance
because,
=> When hardware components wear out, it is replaced by spare part, but
there are no software parts
(3) Although the industry is moving toward component – based construction, most
software continues to be custom built
* In hardware world, component reuse is a natural part of the engineering process
* But in software world it has to be achieved on a broad scale
* A software component should be designed and implemented that can be reused in
different programs
Example:
* Today’s user interfaces built with reusable components that enable;
=> Creation of windows
=> Pull-down Menus &
=> Wide variety of interaction mechanism
1.6 The Changing nature of Software
* There are seven broad categories of computer software, that continuing challenges for
software engineers are:
(1) System Software: It is a collection of programs written to service other programs
6
=> Some system software processes complex, but determinate information
structure and some other processes largely indeterminate data
Example:
=> Compilers, editors and file management utilities
Characteristics:
=> Heavy interaction with computer hardware
=> Heavy usage by multiple users
=> Complex data structures
=> Multiple external interfaces
=> Concurrent operation
(2) Application Software:
* It is a stand alone program, that solve a specific business need
* This software process business (Or) Technical decision making. In addition it is used to
control business functions in real time
Example:
=> Point – of – sale transaction processing
=> Real – time manufacturing process control
(3) Engineering / Scientific Software:
* This software used in various applications such as;
=> Astronomy
=> Molecular biology
=> Automated Manufacturing etc.
* Modern application within the scientific / engineering area is moving away from
conventional numerical algorithm
* Computer aided design, system simulation and other interactive application, begun to
take on real – time
(4) Embedded Software:
* This Software resides within a product (Or) System
* It is used to implement and control features and functions for the end user and for the
system itself
Example:
7
=> Keypad control for a microwave oven
=> Digital Functions in an automobile such as fuel control, dash board
Displays and braking system etc.,
(5) Product-line Software:
* It is designed to provide a specific capability, for use by many different customers
* This software focuses on esoteric market place and address mass consumer market
Example:
=> Word processing
=> Spread sheets
=> Computer Graphics
=> Multimedia and entertainment etc.,
(6) Web Applications:
* This Software span a wide array of applications
* Web applications are evolving into sophisticated computing environment, that not only
provide stand alone features, computing functions and content to end users, but also
integrate corporate database and business application
(7) Artificial Intelligence Software:
* This software makes use of non numerical algorithms, to solve complex problems
* Applications with in this area include;
=> Robotics
=> Expert Systems
=> Pattern recognition
=>Theorem proving and game playing
***********************************************************************
*
Note:
Legacy Software’s:
* This software system developed decades ago [i.e., older programs] and it have been
continually modified to meet changes in business requirements and computing platforms
8
* The Proliferation of such systems is causes headache for large organizations who find
them costly to maintain and risky to evolve
***********************************************************************
*
1.7 Software Myths:
* It is beliefs about software
* The process used to built it, can be traced to the earliest days of computing
* The myth – have a number of attributes that have made them insidious [i.e. proceeding
inconspicuously but harmfully]
* For instance myths appear to be reasonable statements of facts [Sometimes containing
elements of truth]
(1) Management Myths:
* Managers in most disciplines are often under pressure to maintain budget, keep
schedules from slipping and improve quality
* A software manager often grasp at belief in a software myth, if that belief will lessen
the pressure
Myth 1:
We already have a book that is full of standards and procedures for building
software…..Won’t that provide my people with everything they need to know?
Reality:
=> The book of standards may well exists……But is it used?
=> Are software practitioners aware of its existence?
=> Does it reflect modern software engineering practices?
=> Is it complete? Is it adaptable?
=> Is it streamlined to improve time to delivery while still maintaining a
Focus on quality?
* In many cases the answer to all of these questions is NO
Myth 2:
If we get behind schedule, we can add more programmers and catch up [Some times
called ‘Mongolian horde Concept”]
Reality:
9
* Adding people to a late software project makes it later
* As new people are added, people who were working must spend time in educating the
new comers, there by reducing the amount of time spent on productive development
effort
* People can be added, but only in a planned and well coordinated manner
Myth 3:
If I decide to out source the software project to a third party, I can just relax and let
that firm build it
Reality:
* If an organization does not understand, how to manage and control software projects
internally, it will invariably struggle when it out sources software projects
(2) Customer Myths:
* The customer who requests computer software may be,
=> a person
=> a technical group
=> a marketing / sales department (Or)
=> an outside company
* In many cases customer believes myths about software
* Myths lead to false expectations (by the customer) and ultimately, dissatisfaction with
the developer
Myth 1:
A general statement of objectives is sufficient to begin writing programs – We can fill
in the detail later
Reality:
* An ambiguous statement {i.e. having two meanings} leads to a serious of problems
* But Unambiguous statements are developed only through effective and continuous
communication between customer and developer
* So comprehensive and stable statements of requirements is not always possible
Myth 2:
Project requirements continually change, but changes can be easily accommodated
because software is flexible
10

Reality:
* When requirements changes are requested early [before design (Or) code has been
started] cost impact is relatively small
* When requirement changes are requested after design (Or) code has been started cost
impact is too high
* The change can cause upheaval [i.e. Violent change (Or) disturbance] that require
additional resources and major design modification
(3) Practitioner’s Myth:
Myth 1:
Once we write the program and get it to work our job is done
Reality:
* Industry data indicate that between 60 and 80 percent of all efforts expended on
software will be expanded after it is delivered to the customer for the first time
Myth 2:
Until I get the program running – I have no way of assessing its quality
Reality:
* Apply any one of the effective software quality mechanism, from the beginning of the
project
* Software quality reviews are more effective than testing for finding certain classes of
software errors
Myth 3:
The only deliverable work product for a successful project is the working program
Reality:
* A work program is part of software configuration, that includes many elements
* But documentation only provides a foundation for successful engineering and support
for software
Myth 4:
Software engineering will make us create voluminous and unnecessary documentation
and will invariably slow us down
Reality:
11
* Software engineering is not about creating documents, it about creating quality
* So better quality leads to reduced rework
* Reduced rework leads to faster delivery times
Conclusion:
* Many software professionals recognizes the fallacy [i.e. mistaken belief] of software
myths, this will indirectly promote the poor management and technical practices
* But recognition of software realities is the first step toward formulation of practical
solutions for software engineering
12

UNIT – 1 [PART – II]
A GENERIC VIEW OF PROCESS
1.8 Software Engineering – A Layered Technology:

TOOLS
METHODS
PROCESS
A QUALITY FOCUS

(i) Quality Focus:
* Any engineering approach [including software engineering] must rest on an
organizational commitment to quality
* Total quality management promote a continuous process improvement, this leads to
development of effective approaches to software engineering
* The bedrock that supports software engineering is a quality focus
(ii) Process:
* The process layer is the foundation for software engineering
* It is the glue that holds the technology layers together and enables rational and timely
development of computer software
* It defines a framework that must be established for;
=> Effective delivery of software engineering technology
* The software process forms the basis for management control
* It establishes the context in which
=> Technical methods are applied
=> Work products are produced [i.e. models, documents, data,
reports, forms etc..]
13
=> Milestones are established
=> Quality is ensured and change is probably managed
(iii) Methods:
* It contains a broad array of tasks that include;
=> Communication
=> Requirement analysis
=> Design modeling
=> Program Construction
=> Testing and support
* It depends on a set of basic principles that
=> Govern each area of the technology
=> Include modeling activities and other descriptive techniques
(iv) Tools:
* It provide automated (Or) semi automated support for the process and the methods
* When tools are integrated information created by one tool can be used by another
1.9 A Process Framework:
* It identifying a small number of framework activities that are applicable to all software
projects, regardless of their size (Or) complexity
* The process framework include a set of umbrella activities, that are applicable across
the entire software process
Framework Activity:
* It contains a set of software engineering actions [A collection of related tasks that
produces a major software engineering work product]
Example:
Design is a software engineering action
* Each action contain individual work tasks
* The work tasks accomplish some part of the work implied by the action
14

Software Process

Process Framework
Umbrella Activities
Framework activity # 1
Software engineering action # 1.1
Work Tasks
Work Products
Quality Assurance Points
Project Milestones

Task Sets

Software engineering action # 1.k
Task Sets

Framework activity # n
Software engineering action # n.1
Work Tasks
Work Products
Quality Assurance Points
Project Milestones

Task Sets

Software engineering action # n. m
Task Sets

A Process Framework
15
1.10 Generic Framework Activities:
(1) Communication:
* It involves heavy communication and collaboration with the customer
* Also it includes requirement gathering and related activities
(2) Planning:
* It describes the
=> Technical tasks to be conducted
=> The risks that are expected
=> Resources that will be required
=> Work products to be produced
=> Work Schedule
(3) Modeling:
* It describes the creation of models – that allow the developer and the customer to
understand software requirements and design for those requirements
(4) Construction:
* It combines
=> Code generation [either manual (Or) automated]
=> Testing [Required uncovering errors in the code]
(5) Deployment:
* The software is delivered to customer
* Customer evaluates the delivered product
* Customer provides feedback based on the evaluation
* These generic framework activities can be used during the;
=> Development of small programs
=> Creation of large web applications
=> Engineering of large complex computer based systems
* The software process is different in each case, but framework activities remain same
1.11 Umbrella Activities:
(1) Software project tracking and control:
* Allow the software team to progress against the project plan
16
* If necessary take action to maintain schedule
(2) Risk Management:
* Find risks that may affect the outcome of the project (Or) quality of the product
(3) Software quality assurance:
* It defines and conducts the activities required to ensure software quality
(4) Formal Technical Reviews:
* Before propagated to the next action (Or) activity, remove uncover errors
(5) Measurements:
* It defines and collects process, projects and product measures that help the team in
delivering software
* It can be used in conjunction with other framework and umbrella activities
(6) Software configuration management:
* It manages the effects of change throughout the software process
(7) Reusability management:
* It establishes mechanism to achieve reusable components
* It defines criteria for work product reuse
(8) Work product preparation and production:
* It includes the activities required to create work products such as,
=> Models
=> Documents
=> Logs, forms and lists
1.12 The Capability Maturity Model Integration [CMMI]
* It is developed by Software Engineering Institute [SEI]
* It is a comprehensive process meta-model, that is predicated on a set of system
* A organization can reach a different levels of process capability and maturity by
develop a process model based on CMMI guidelines
* The CMMI represents a process meta-model in two different ways:
=> Continues Model
=> Staged Model
17
(1) Continuous Model:
* It describes a process in two dimensions as shown below;
* Each process area [e.g. Project planning, requirement management] is assessed against
specific goals and practices

5
4
Capability
Level
3
2
1
PP

REQM

MA

CM

PPQA

Process Area
CMMI Process Area Capability

PP – Project Planning
REQM – Requirements Managements
MA – Measurements and Analysis
CM – Configuration Management
PPQA – Process and Product QA
* Each process area is rated according to the following capability levels;
LEVEL 0: INCOMPLETE
* The process area [e.g. Requirement Management] is either
=> Not performed (Or)

Others
18
=> Does not achieve all goals and objective, defined by CMMI for
level – 1 capability
LEVEL 1: PERFORMED
* All of the specific goals of the process area have been satisfied
* Work tasks required to produce defined work products are being conducted
LEVEL 2: MANAGED
* All level-1 criteria have been satisfied
* All people doing the work have access to adequate resources to get the job
* All work tasks and work products are monitored, controlled and reviewed and are
evaluated for adherence to the process description
LEVEL 3: DEFINED
* All level – 2 criteria have been achieved
* The process is tailored from the organizations set of standard processes according to
organizations tailoring guidelines
LEVEL 4: QUANTITATIVELY MANAGED
* All level – 3 criteria have been achieved
* The process area is controlled and improved using measurements and quantitative
assessment
* Quantitative objectives and process performance are established in managing the
process
LEVEL 5: OPTIMIZED
* All level – 4 criteria have been achieved
* The process area is adapted and optimized using quantitative means to meet changing
customer needs
CMMI defines each process area in terms of specific goals and specific practices
(i) Specific Goals [SG]: It establish the characteristics that must exist, if the activities
implied by a process area are to be effective
(ii) Specific Practices [SP]: It refine a goal into a set of process – related activites
Example:
19
* Project planning is one the process area, defined by CMMI for project management
category
SG1: Establish Estimates
SP 1.1 – 1 Estimate the scope of the project
SP 1.2 – 1 Establish estimates of work product and task attributes
SP 1.3 – 1 Define Project Life cycle
SP 1.4 – 1 Determine estimates of effort and cost
SG2: Develop a project plan:
SP 2.1 – 1 Establish the budget and schedule
SP 2.2 – 1 Identify project risks
SP 2.3 – 1 Plan for data management
SP 2.4 – 1 Plan for project resources
SP 2.5 – 1 Plan for needed knowledge and skills
SP 2.6 – 1 Plan customer involvement
SP 2.7 – 1 Establish the project plan
SG3: Obtain commitment to the plan
SP 3.1 -1 Review plans that affect the project
SP 3.2 – 1 Reconcile work and resource levels
SP 3.3 – 1 Obtain plan commitment
* CMMI also defines a set of five generic goals and related practices for each process
area:
GG1: Achieve specific goals
GP 1.1 – Perform base practices
20
GG2: Institutionalize a managed process
GP 2.1 – Establish an organizational policy
GP 2.2 – Plan the process
GP 2.3 – Provide resources
GP 2.4 – Assign responsibility
GP 2.5 – Train people
GP 2.6 – Manage configurations
GP 2.7 – Identify and involve relevant stake holders
GP 2.8 – Monitor and control the process
GP 2.9 – Review status with higher level management
GG3: Institutionalize a defined process
GP 3.1 – Established a defined process
GP 3.2 – Collect improvement information
GG4: Institutionalize a quantitatively managed process
GP 4.1 – Establish quantitative objectives for the process
GP 4.2 – Stabilize sub process performance
GG5: Institutionalize an optimizing process
GP 5.1 – Ensure continuous process improvement
GP 5.2 – Correct root cause of the problem
(2) Staged CMMI Model:
* It defines the same process area, goals and practices as continuous model
* The staged model defines five maturity level, rather than five capability levels as in
continuous model
21
* To achieve a maturity level, the specific goals and practices associated with a set of
process area must be achieved
***********************************************************************
*
Note:
Task Set: It defines the actual work to be done, to accomplish the objectives of a
software engineering action.
Requirement gathering is an important software engineering action, that occurs
during the communication activity
Example:
* For simple projects task set for requirement gathering might be look like this;
=> Make a list of stake holders for a project
=> Invite all stake holders to an informal meeting
=> Ask each stake holders to make a list of features and functions
required
=> Discuss requirements and build a final list
=> Prioritize requirements
=> Note areas of Uncertainty
***********************************************************************
*
1.13 Process Patterns
Definition:
* It is defined as set of activities, actions, work tasks, work products and related
behaviors required to develop computer software
* In general terms it provides a template [i.e. a consistent method for describing an
important characteristic of the software process]
* By combining patterns a process meets the need of a project
* Patterns can be defined at any level of abstraction. For example it might be used to
describe
=> a complete process [ex: Prototyping]
=> an important framework activity [ex: Planning]
22
=> a task with in a frame work activity [ex: Project – Estimating]
Templates for describing a process pattern
(1) Pattern Name: It gives a meaningful name that describes its function with in the
software process
Example:
Customer – Communication
(2) Intent: The objective of the pattern is described
Example:
The intent of customer – communication is
=> to establish a collaborative relationship with the customer, in an
effort to define project scope, business requirements etc..
(3) Type: The pattern type is specified, it suggests three types:
(a) Task patterns: It define a software engineering action that is part of the process
and relevant to successful software engineering practice
Example:
Requirements gathering
(b) Stage pattern: It defines a frame work activity for the process [i.e. a stage pattern
incorporates multiple task patterns that are relevant to the stage]
Example:
Communication – This pattern would incorporate the task pattern requirement
gathering and others
(c) Phase patterns: It define the sequence of frame work activity that occur with the
process, even when the over all flow of activities is iterative in nature
Example:
Spiral model (Or) Prototyping
(4) Initial context: It describes the conditions under which the pattern applies. Some
queries asked prior to ignition of the pattern. They are
=> What organizational (Or) team related activities have already
occurred?
23
=> What is the entry state for the process?
=>What software engineering information (Or) project information
already exists?
Example:
Planning pattern [a stage pattern]
* It requires that;
=> Customer and software engineer have establish a collaborative
communication
=> Successful completion of a number of task patterns has occurred
=> Project scope, basic business requirements and project constraints are
known
(5) Problem: It described the problem to be solved by the pattern
Example:
The problem to be solved by customer communication might be;
=> Communication between developer and customer is inadequate
because an effective format for eliciting information is not established
=> a useful mechanism for recording is not created
=> Meaningful reviews are not conducted
(6) Solution: It describes the implementation of the pattern. It also discuss;
=> how the initial state of the process that exist before the pattern is
implemented
=> how software engineering information (Or) project information that is
available before initiation of the pattern
(7) Resulting Context: It describe the condition that will result, once the pattern has
been successfully implemented
* After the completion of the pattern we ask;
=> What team related activities must have occurred?
=> What is the exit state of the process?
=> What project information has been developed?
(8) Related patterns: A list of process pattern, that are directly related to this one are
provided as a hierarchy (Or) or in some other diagrammatic form
24
Example:
The stage pattern communication includes the task patterns such as
=> Project team assembly
=> Collaborative guideline definition
=> Scope – Isolation
=> Requirement – gathering
=> Constraint – description and
=> Model creation
(9) Known uses / examples: It indicates the specific instances in which the pattern is
applicable
Example:
Communication is mandatory at the beginning of every software project, it is
recommended throughout software project
Conclusion:
* Process patterns provide an effective mechanism for describing any software process
* It enables a software organization to develop hierarchical process description
* Once process patterns have been developed, they can be reused for definition of process
variants [i.e. a customized process model can be defined by a software team, using the
patterns as building blocks for the process model]
1.14 Process Assessment:
* The software process gives no guarantee that;
=> Software will be delivered on time
=> it will meet the customer needs
* In addition the process should be accessed to ensure that it meets a set of basic process
criteria that have been essential for a software engineering
* The relationship between the software process and methods applied for assessment and
improvement are shown below
25

Software
Process

Is
Examined by

Identify
Modifications to

Identify
Capabilities and risks of

Software process
Assignment

Leads
to
Software process
Improvement

Leads
to
Motivates

Capability
determination

Software process assessment – Different approaches
(1) Standard CMMI Assessment Methods for Process Improvement [SCAMPI]
* It provides a five step process assessment model. They are
(i) Initiating
(ii) Diagnosing
(iii) Establishing
(iv) Acting
(v) Learning
(2) CMM – Based Appraisal for Internal Process Improvement [CBAIPI]
* It provides a diagnosing techniques for assessing the relatively maturity of a software
organization
(3) SPICE [ISO / IEC 15504]
* It defines a set of requirements for software process assessment
26
* This standard helps the organization in developing an objective evaluation of any
defined software process
(4) ISO 9001: 2000 for Software
* This standard is applied to any organization that wants to improve;
=> the over all quality of the products, systems, services it provides
* This standard is directly applicable to software organizations and companies
* This standard uses a “Plan – do – Check – act” cycle that is applied to quality
management elements of software projects
Plan => It establishes the process objectives, activities and tasks necessary to achieve
high quality software and resultant customer satisfaction
Do => It implements the software products [including both framework and umbrella
activities]
Check => It monitors are measures the process to ensure that all requirements established
for quality management have been achieved
Act => It initiates the software process improvement activities that continually work to
improve the process
1.15 Personal process models
Personal Software Process [PSP]:
* PSP emphasizes personal measurement of both work product that is produced and the
resultant quality of the work product
* In addition PSP makes the practitioner responsible for project planning [e.g. estimating
and scheduling] and empowers to control the quality of all software work products that
are developed
PSP – Five Framework Activities:
(1) Planning:
* This activities isolates requirements
* Based on these develops both size and resource estimates
27
* In addition a defect estimates [i.e. the number of defects projected for the work] is
made
* Finally the development tasks are identified and a project schedule is created
* All defects metrics are recorded in a worksheet
(2) High Level Design:
* External specification for each component to be constructed are developed and a
component design is created
* When uncertainty exists prototypes are built
* All issues are recorded and tracked
(3) High Level Design review:
* Formal verification methods are applied to find uncover errors in the design
* Metrics are maintained for all important tasks and work results
(4) Development:
* The component level design is refined and reviewed
* Code is generated, reviewed, compiled and tested
* Metrics are maintained for all important tasks and work results
(5) Postmortem:
* Using the measures and the metrics collected the effectiveness of the process is
determined
* Measures and metrics provide guidance for modifying the process to improve its
effectiveness
Conclusion:
* PSP stresses each software engineer to identify errors early and important to understand
the types of errors that he is likely to make
* When PSP is properly introduced the software engineering productivity and quality are
significant
Drawbacks:
* PSP is intellectually challenging
* Training is relatively lengthy and training costs are high
* The required level of measurement is difficult for many software people
28
1.16 Team Process Model [TSP]
* Te goal of TSP is to built a “Self-Directed” project team that organizes itself to produce
high quality software
* The self-directed team defines the roles and responsibilities for each team member
=> Tracks quantitative project data [productivity and quality]
=> Identifies a team process that is appropriate for the project
=> Identify a strategy for implementing the process
=> Continually access the risk and reacts to it
=> Tracks, manages and reports project status
TSP – Objectives:
(i) Build Self-Directed teams, that plan and tracks their work, establish goals and own
their process and plans
* The self-directed team may contain 3 to 20 engineers
(ii) Show managers how to coach and motivate their teams
* Also show how to help them sustain peak performance
(iii) Accelerate software process improvement by making CMM Level – 5 behaviors
normal and expected
(iv) Provide improvement guidance to high maturity organizations
(v) Facilitate university teaching of industrial grade team skills
TSP – Framework activities:
=> Launch
=> High Level Design
=> Implementation
=> Integration and Testing
=> Postmortem
* Tsp makes use of wide variety of
=> Scripts
=> Forms and Standards that guide the members in their work
Example: Launch Script
29
=> Review project objectives with management and agree on and
document team goals
=> Establish team roles
=> Define the teams development process
=> Make a quality plan and set quality targets
=> Plan for the needed support facilities
=> Produce an over all development strategy
=> Make a development plan, for the entire project
=> Make detailed plans for each engineer for the next phase
=> Merge the individual plan into a team plan
=> Rebalance team workload to achieve a minimum overall schedule
=> Assess project risks and assign tracking responsibility for each key risk
Conclusion:
* Like PSP, TSP is a rigorous approach to software engineering that provides distinct and
quantifiable benefits in productivity and quality

More Related Content

What's hot

PROTOTYPE APPLICATION IN ANDROID PLATFORM FOR SYSTEM ADMINISTRATION OF HPC CL...
PROTOTYPE APPLICATION IN ANDROID PLATFORM FOR SYSTEM ADMINISTRATION OF HPC CL...PROTOTYPE APPLICATION IN ANDROID PLATFORM FOR SYSTEM ADMINISTRATION OF HPC CL...
PROTOTYPE APPLICATION IN ANDROID PLATFORM FOR SYSTEM ADMINISTRATION OF HPC CL...IJITCA Journal
 
Nature and Qualities of Software, Types of Software
Nature and Qualities of Software, Types of SoftwareNature and Qualities of Software, Types of Software
Nature and Qualities of Software, Types of SoftwareRaja Adapa
 
Software Development Software development process
Software Development Software development processSoftware Development Software development process
Software Development Software development processimtiazalijoono
 
Introduction to Embedded Systems
Introduction to Embedded SystemsIntroduction to Embedded Systems
Introduction to Embedded SystemsMohamed Tarek
 
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTESTYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTESWE-IT TUTORIALS
 
Owny IT Desktop Monitoring Featurelist
Owny IT Desktop Monitoring FeaturelistOwny IT Desktop Monitoring Featurelist
Owny IT Desktop Monitoring FeaturelistNCS Computech Ltd.
 
Tideway Foundation For Ms Operations Manager
Tideway Foundation For Ms Operations ManagerTideway Foundation For Ms Operations Manager
Tideway Foundation For Ms Operations ManagerPeter Grant
 
A LOG-BASED TRACE AND REPLAY TOOL INTEGRATING SOFTWARE AND INFRASTRUCTURE
A LOG-BASED TRACE AND REPLAY TOOL INTEGRATING SOFTWARE AND INFRASTRUCTUREA LOG-BASED TRACE AND REPLAY TOOL INTEGRATING SOFTWARE AND INFRASTRUCTURE
A LOG-BASED TRACE AND REPLAY TOOL INTEGRATING SOFTWARE AND INFRASTRUCTUREijseajournal
 
SE Introduction sharbani bhattacharya
SE Introduction sharbani bhattacharyaSE Introduction sharbani bhattacharya
SE Introduction sharbani bhattacharyaSharbani Bhattacharya
 
Evolve automation v1.01 - White Paper
Evolve automation v1.01 - White PaperEvolve automation v1.01 - White Paper
Evolve automation v1.01 - White PaperNimit Shishodia
 

What's hot (20)

PROTOTYPE APPLICATION IN ANDROID PLATFORM FOR SYSTEM ADMINISTRATION OF HPC CL...
PROTOTYPE APPLICATION IN ANDROID PLATFORM FOR SYSTEM ADMINISTRATION OF HPC CL...PROTOTYPE APPLICATION IN ANDROID PLATFORM FOR SYSTEM ADMINISTRATION OF HPC CL...
PROTOTYPE APPLICATION IN ANDROID PLATFORM FOR SYSTEM ADMINISTRATION OF HPC CL...
 
4213ijsea06
4213ijsea064213ijsea06
4213ijsea06
 
Nature and Qualities of Software, Types of Software
Nature and Qualities of Software, Types of SoftwareNature and Qualities of Software, Types of Software
Nature and Qualities of Software, Types of Software
 
Hardware-Software Codesign
Hardware-Software CodesignHardware-Software Codesign
Hardware-Software Codesign
 
Software Development Software development process
Software Development Software development processSoftware Development Software development process
Software Development Software development process
 
Introduction to Embedded Systems
Introduction to Embedded SystemsIntroduction to Embedded Systems
Introduction to Embedded Systems
 
Chapter # 1
Chapter # 1Chapter # 1
Chapter # 1
 
Dl Brochure Oee
Dl Brochure OeeDl Brochure Oee
Dl Brochure Oee
 
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTESTYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
 
EGENindepth_v3_recto
EGENindepth_v3_rectoEGENindepth_v3_recto
EGENindepth_v3_recto
 
Embedded operating systems
Embedded operating systemsEmbedded operating systems
Embedded operating systems
 
Owny IT Desktop Monitoring Featurelist
Owny IT Desktop Monitoring FeaturelistOwny IT Desktop Monitoring Featurelist
Owny IT Desktop Monitoring Featurelist
 
Tideway Foundation For Ms Operations Manager
Tideway Foundation For Ms Operations ManagerTideway Foundation For Ms Operations Manager
Tideway Foundation For Ms Operations Manager
 
A LOG-BASED TRACE AND REPLAY TOOL INTEGRATING SOFTWARE AND INFRASTRUCTURE
A LOG-BASED TRACE AND REPLAY TOOL INTEGRATING SOFTWARE AND INFRASTRUCTUREA LOG-BASED TRACE AND REPLAY TOOL INTEGRATING SOFTWARE AND INFRASTRUCTURE
A LOG-BASED TRACE AND REPLAY TOOL INTEGRATING SOFTWARE AND INFRASTRUCTURE
 
Ch21 real time software engineering
Ch21 real time software engineeringCh21 real time software engineering
Ch21 real time software engineering
 
Embeddedsystems 091130091010-phpapp02
Embeddedsystems 091130091010-phpapp02Embeddedsystems 091130091010-phpapp02
Embeddedsystems 091130091010-phpapp02
 
SCCM 2007 Presentation
SCCM 2007 PresentationSCCM 2007 Presentation
SCCM 2007 Presentation
 
Ch25 configuration management
Ch25 configuration managementCh25 configuration management
Ch25 configuration management
 
SE Introduction sharbani bhattacharya
SE Introduction sharbani bhattacharyaSE Introduction sharbani bhattacharya
SE Introduction sharbani bhattacharya
 
Evolve automation v1.01 - White Paper
Evolve automation v1.01 - White PaperEvolve automation v1.01 - White Paper
Evolve automation v1.01 - White Paper
 

Viewers also liked (6)

Unit 1- FINAL VERSION
Unit 1- FINAL VERSIONUnit 1- FINAL VERSION
Unit 1- FINAL VERSION
 
Unit 1
Unit 1Unit 1
Unit 1
 
20150217220202 unit 1
20150217220202 unit 120150217220202 unit 1
20150217220202 unit 1
 
Unit 1 final
Unit 1 finalUnit 1 final
Unit 1 final
 
Unit 2
Unit 2Unit 2
Unit 2
 
Nota kpf 3012 pjj
Nota kpf 3012 pjjNota kpf 3012 pjj
Nota kpf 3012 pjj
 

Similar to Unit 1 final

Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMIEvolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMInimmik4u
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.pptWeek_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt23017156038
 
Chapter 01
Chapter 01Chapter 01
Chapter 01ryan aja
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docDrPreethiD1
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docDrPreethiD1
 
Software Process and Requirement
Software Process and RequirementSoftware Process and Requirement
Software Process and Requirementcricket2ime
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1Rupesh Vaishnav
 
127801976 mobile-shop-management-system-documentation
127801976 mobile-shop-management-system-documentation127801976 mobile-shop-management-system-documentation
127801976 mobile-shop-management-system-documentationNitesh Kumar
 
Techniques for Developing Systems in IT Management System
Techniques for Developing Systems in IT Management SystemTechniques for Developing Systems in IT Management System
Techniques for Developing Systems in IT Management SystemGruppo Banca Sella
 
Cake shop billing system
Cake shop billing systemCake shop billing system
Cake shop billing systemAkshita Pillai
 
Introduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information TechnologyIntroduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information TechnologyGaditek
 

Similar to Unit 1 final (20)

Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMIEvolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
 
SE
SESE
SE
 
SE Lecture 1.ppt
SE Lecture 1.pptSE Lecture 1.ppt
SE Lecture 1.ppt
 
SE Lecture 1.ppt
SE Lecture 1.pptSE Lecture 1.ppt
SE Lecture 1.ppt
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.pptWeek_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt
 
Software engg unit 1
Software engg unit 1 Software engg unit 1
Software engg unit 1
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.doc
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.doc
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Software Process and Requirement
Software Process and RequirementSoftware Process and Requirement
Software Process and Requirement
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
 
127801976 mobile-shop-management-system-documentation
127801976 mobile-shop-management-system-documentation127801976 mobile-shop-management-system-documentation
127801976 mobile-shop-management-system-documentation
 
Techniques for Developing Systems in IT Management System
Techniques for Developing Systems in IT Management SystemTechniques for Developing Systems in IT Management System
Techniques for Developing Systems in IT Management System
 
Cake shop billing system
Cake shop billing systemCake shop billing system
Cake shop billing system
 
Report final
Report finalReport final
Report final
 
Introduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information TechnologyIntroduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information Technology
 
Ch01lect1 et
Ch01lect1 etCh01lect1 et
Ch01lect1 et
 

More from sietkcse

Unit 7 final
Unit 7 finalUnit 7 final
Unit 7 finalsietkcse
 
Unit 6 final
Unit 6 finalUnit 6 final
Unit 6 finalsietkcse
 
Unit 5 final
Unit 5 finalUnit 5 final
Unit 5 finalsietkcse
 
Unit 4 final
Unit 4 finalUnit 4 final
Unit 4 finalsietkcse
 
Unit 3 final
Unit 3 finalUnit 3 final
Unit 3 finalsietkcse
 
Unit 2 final
Unit 2 finalUnit 2 final
Unit 2 finalsietkcse
 
Unit 8 final
Unit 8 finalUnit 8 final
Unit 8 finalsietkcse
 

More from sietkcse (7)

Unit 7 final
Unit 7 finalUnit 7 final
Unit 7 final
 
Unit 6 final
Unit 6 finalUnit 6 final
Unit 6 final
 
Unit 5 final
Unit 5 finalUnit 5 final
Unit 5 final
 
Unit 4 final
Unit 4 finalUnit 4 final
Unit 4 final
 
Unit 3 final
Unit 3 finalUnit 3 final
Unit 3 final
 
Unit 2 final
Unit 2 finalUnit 2 final
Unit 2 final
 
Unit 8 final
Unit 8 finalUnit 8 final
Unit 8 final
 

Recently uploaded

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 

Unit 1 final

  • 1. 1 UNIT – 1 [PART – 1] INTRODUCTION TO SOFTWARE ENGINEERING 1.1 Introduction * No one could foreseen that software become embedded in systems of all kinds. i.e., Medical, Telecommunication, Military, Industrial, Entertainment etc., * As software importance has grown, millions of computer programs generated and would have to be corrected, adapted and enhanced * These maintenance activities would absorb more people and more resources than all work applied to the creation of new software * So the software community attempted to develop technologies that will make it easier, faster and less expensive to build and maintain high-quality computer programs * However we have yet to develop a software technology that does it all * So to achieve this, we need a frame work that encompasses a process, a set of methods and an array of tools * This frame work is referred to as Software Engineering 1.2 The Evolving Role of Software * Today software takes a dual role => As a Product => A vehicle for delivering a product (1) As a Product: * It delivers the computing potential embodied by hardware [i.e., Network of computers that are accessible by local hardware] * Whether the software reside within a cellular phone or operates inside a mainframe computer, it is an information transformer that => Producing, Managing, Acquiring, Modifying (Or) transmitting information (2) A vehicle for delivering a product: * Software delivers the most important products of our time information, such as => It transforms personnel data [eg.,an individual financial transaction] => It manages business information to enhance competitiveness
  • 2. 2 => It provides a gateway to worldwide information networks [eg.,the internet] =>Provides the means for acquiring information in all of its forms 1.3 Adaptation of Software Engineering Practices: * The Dramatic improvements in, => Hardware performance => Profound changes in computing architecture => Vast increase in memory and storage capacity => Exotic input and output options * All the above have participated more sophisticated and complex computer based system * Sophisticated and complexity produce good results, when system succeeds else a huge problem may arise for those who build complex system * Today huge software industries replaced the lone programmer by teams of software specialist, each focusing on one part of technology required to deliver a complex application * The questions that were asked of the lone programmer are the same questions that are asked when modem computer systems are built. They are, (1) Why does it take so long to get software finished? (2) Why are development costs so high? (3) Why can’t we find all errors before we give the software to our customers? (4) Why do we spend so much time and effort maintaining existing programs? (5) Why do we continue to have difficulty in measuring progress as software Is being developed and maintained? * These questions demonstrate industries to concern about software and the manner in which it is developed * This concern has lead to the adaptation of software engineering practice
  • 3. 3 1.4 Software: Definition: “ It is a set of instruction that when executed provide desired features, functions and performance” (Or) “ It is a data structure that enable the programs to adequately manipulate information” (Or) “ It is a documents that describe the operation and use of programs” 1.5 Software Characteristics: * The characteristics of software are different from characteristics of hardware: (1) Software is developed (Or) engineered; it is not manufactured in the classical sense * In both software development and hardware manufacturing high quality is achieved using good design * The manufacturing phase for hardware can introduce quality problems, which are non-existent (Or easily corrected) for software * Both the activities dependent on people, but the relationship between people applied and work accomplished is entirely different * Both activities require the construction of a “Product”, but the approaches are different * Software engineering costs are concentrated in engineering (2) Software doesn’t “wear out” * The hardware exhibits relatively high failure rates early in its life, these failures are caused due to design (Or) manufacturing defects * Once defects are corrected the failure rate drops to a steady-state level, for some period of time * As time passes, hardware components suffer from the cumulative effects of Dust, Vibration, abuse, temperature extremes and other environmental maladies
  • 4. 4 * The failure rate rises again, stated simply the hardware begins to “wear out”. This is shown below using “Bath Tub Curve” “Infant Mortality” “Wear Out” Failure Rate Time * Software is not susceptible to the environmental maladies * The failure rate curve for software, should take the form of “Idealized Curve” Increased Failure rate due to Side Effects Failure Rate Actual Curve Change Idealized Curve Time
  • 5. 5 * Early in the life of a program, undiscovered errors causes high failure rates * Once these errors are corrected (without introducing other errors), the curve Flattens * So, it is clear that; => Software doesn’t wear out, but it does deteriorate * Software will undergoes changes during its life time * The errors will be introduced as changes are made. This causes the failure rate to spike * Before the curve can return to the original steady state failure, another changes is requested causing the curve to spike again * So due to changes the software is deteriorating * The software maintenance involves more complexity than hardware maintenance because, => When hardware components wear out, it is replaced by spare part, but there are no software parts (3) Although the industry is moving toward component – based construction, most software continues to be custom built * In hardware world, component reuse is a natural part of the engineering process * But in software world it has to be achieved on a broad scale * A software component should be designed and implemented that can be reused in different programs Example: * Today’s user interfaces built with reusable components that enable; => Creation of windows => Pull-down Menus & => Wide variety of interaction mechanism 1.6 The Changing nature of Software * There are seven broad categories of computer software, that continuing challenges for software engineers are: (1) System Software: It is a collection of programs written to service other programs
  • 6. 6 => Some system software processes complex, but determinate information structure and some other processes largely indeterminate data Example: => Compilers, editors and file management utilities Characteristics: => Heavy interaction with computer hardware => Heavy usage by multiple users => Complex data structures => Multiple external interfaces => Concurrent operation (2) Application Software: * It is a stand alone program, that solve a specific business need * This software process business (Or) Technical decision making. In addition it is used to control business functions in real time Example: => Point – of – sale transaction processing => Real – time manufacturing process control (3) Engineering / Scientific Software: * This software used in various applications such as; => Astronomy => Molecular biology => Automated Manufacturing etc. * Modern application within the scientific / engineering area is moving away from conventional numerical algorithm * Computer aided design, system simulation and other interactive application, begun to take on real – time (4) Embedded Software: * This Software resides within a product (Or) System * It is used to implement and control features and functions for the end user and for the system itself Example:
  • 7. 7 => Keypad control for a microwave oven => Digital Functions in an automobile such as fuel control, dash board Displays and braking system etc., (5) Product-line Software: * It is designed to provide a specific capability, for use by many different customers * This software focuses on esoteric market place and address mass consumer market Example: => Word processing => Spread sheets => Computer Graphics => Multimedia and entertainment etc., (6) Web Applications: * This Software span a wide array of applications * Web applications are evolving into sophisticated computing environment, that not only provide stand alone features, computing functions and content to end users, but also integrate corporate database and business application (7) Artificial Intelligence Software: * This software makes use of non numerical algorithms, to solve complex problems * Applications with in this area include; => Robotics => Expert Systems => Pattern recognition =>Theorem proving and game playing *********************************************************************** * Note: Legacy Software’s: * This software system developed decades ago [i.e., older programs] and it have been continually modified to meet changes in business requirements and computing platforms
  • 8. 8 * The Proliferation of such systems is causes headache for large organizations who find them costly to maintain and risky to evolve *********************************************************************** * 1.7 Software Myths: * It is beliefs about software * The process used to built it, can be traced to the earliest days of computing * The myth – have a number of attributes that have made them insidious [i.e. proceeding inconspicuously but harmfully] * For instance myths appear to be reasonable statements of facts [Sometimes containing elements of truth] (1) Management Myths: * Managers in most disciplines are often under pressure to maintain budget, keep schedules from slipping and improve quality * A software manager often grasp at belief in a software myth, if that belief will lessen the pressure Myth 1: We already have a book that is full of standards and procedures for building software…..Won’t that provide my people with everything they need to know? Reality: => The book of standards may well exists……But is it used? => Are software practitioners aware of its existence? => Does it reflect modern software engineering practices? => Is it complete? Is it adaptable? => Is it streamlined to improve time to delivery while still maintaining a Focus on quality? * In many cases the answer to all of these questions is NO Myth 2: If we get behind schedule, we can add more programmers and catch up [Some times called ‘Mongolian horde Concept”] Reality:
  • 9. 9 * Adding people to a late software project makes it later * As new people are added, people who were working must spend time in educating the new comers, there by reducing the amount of time spent on productive development effort * People can be added, but only in a planned and well coordinated manner Myth 3: If I decide to out source the software project to a third party, I can just relax and let that firm build it Reality: * If an organization does not understand, how to manage and control software projects internally, it will invariably struggle when it out sources software projects (2) Customer Myths: * The customer who requests computer software may be, => a person => a technical group => a marketing / sales department (Or) => an outside company * In many cases customer believes myths about software * Myths lead to false expectations (by the customer) and ultimately, dissatisfaction with the developer Myth 1: A general statement of objectives is sufficient to begin writing programs – We can fill in the detail later Reality: * An ambiguous statement {i.e. having two meanings} leads to a serious of problems * But Unambiguous statements are developed only through effective and continuous communication between customer and developer * So comprehensive and stable statements of requirements is not always possible Myth 2: Project requirements continually change, but changes can be easily accommodated because software is flexible
  • 10. 10 Reality: * When requirements changes are requested early [before design (Or) code has been started] cost impact is relatively small * When requirement changes are requested after design (Or) code has been started cost impact is too high * The change can cause upheaval [i.e. Violent change (Or) disturbance] that require additional resources and major design modification (3) Practitioner’s Myth: Myth 1: Once we write the program and get it to work our job is done Reality: * Industry data indicate that between 60 and 80 percent of all efforts expended on software will be expanded after it is delivered to the customer for the first time Myth 2: Until I get the program running – I have no way of assessing its quality Reality: * Apply any one of the effective software quality mechanism, from the beginning of the project * Software quality reviews are more effective than testing for finding certain classes of software errors Myth 3: The only deliverable work product for a successful project is the working program Reality: * A work program is part of software configuration, that includes many elements * But documentation only provides a foundation for successful engineering and support for software Myth 4: Software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down Reality:
  • 11. 11 * Software engineering is not about creating documents, it about creating quality * So better quality leads to reduced rework * Reduced rework leads to faster delivery times Conclusion: * Many software professionals recognizes the fallacy [i.e. mistaken belief] of software myths, this will indirectly promote the poor management and technical practices * But recognition of software realities is the first step toward formulation of practical solutions for software engineering
  • 12. 12 UNIT – 1 [PART – II] A GENERIC VIEW OF PROCESS 1.8 Software Engineering – A Layered Technology: TOOLS METHODS PROCESS A QUALITY FOCUS (i) Quality Focus: * Any engineering approach [including software engineering] must rest on an organizational commitment to quality * Total quality management promote a continuous process improvement, this leads to development of effective approaches to software engineering * The bedrock that supports software engineering is a quality focus (ii) Process: * The process layer is the foundation for software engineering * It is the glue that holds the technology layers together and enables rational and timely development of computer software * It defines a framework that must be established for; => Effective delivery of software engineering technology * The software process forms the basis for management control * It establishes the context in which => Technical methods are applied => Work products are produced [i.e. models, documents, data, reports, forms etc..]
  • 13. 13 => Milestones are established => Quality is ensured and change is probably managed (iii) Methods: * It contains a broad array of tasks that include; => Communication => Requirement analysis => Design modeling => Program Construction => Testing and support * It depends on a set of basic principles that => Govern each area of the technology => Include modeling activities and other descriptive techniques (iv) Tools: * It provide automated (Or) semi automated support for the process and the methods * When tools are integrated information created by one tool can be used by another 1.9 A Process Framework: * It identifying a small number of framework activities that are applicable to all software projects, regardless of their size (Or) complexity * The process framework include a set of umbrella activities, that are applicable across the entire software process Framework Activity: * It contains a set of software engineering actions [A collection of related tasks that produces a major software engineering work product] Example: Design is a software engineering action * Each action contain individual work tasks * The work tasks accomplish some part of the work implied by the action
  • 14. 14 Software Process Process Framework Umbrella Activities Framework activity # 1 Software engineering action # 1.1 Work Tasks Work Products Quality Assurance Points Project Milestones Task Sets Software engineering action # 1.k Task Sets Framework activity # n Software engineering action # n.1 Work Tasks Work Products Quality Assurance Points Project Milestones Task Sets Software engineering action # n. m Task Sets A Process Framework
  • 15. 15 1.10 Generic Framework Activities: (1) Communication: * It involves heavy communication and collaboration with the customer * Also it includes requirement gathering and related activities (2) Planning: * It describes the => Technical tasks to be conducted => The risks that are expected => Resources that will be required => Work products to be produced => Work Schedule (3) Modeling: * It describes the creation of models – that allow the developer and the customer to understand software requirements and design for those requirements (4) Construction: * It combines => Code generation [either manual (Or) automated] => Testing [Required uncovering errors in the code] (5) Deployment: * The software is delivered to customer * Customer evaluates the delivered product * Customer provides feedback based on the evaluation * These generic framework activities can be used during the; => Development of small programs => Creation of large web applications => Engineering of large complex computer based systems * The software process is different in each case, but framework activities remain same 1.11 Umbrella Activities: (1) Software project tracking and control: * Allow the software team to progress against the project plan
  • 16. 16 * If necessary take action to maintain schedule (2) Risk Management: * Find risks that may affect the outcome of the project (Or) quality of the product (3) Software quality assurance: * It defines and conducts the activities required to ensure software quality (4) Formal Technical Reviews: * Before propagated to the next action (Or) activity, remove uncover errors (5) Measurements: * It defines and collects process, projects and product measures that help the team in delivering software * It can be used in conjunction with other framework and umbrella activities (6) Software configuration management: * It manages the effects of change throughout the software process (7) Reusability management: * It establishes mechanism to achieve reusable components * It defines criteria for work product reuse (8) Work product preparation and production: * It includes the activities required to create work products such as, => Models => Documents => Logs, forms and lists 1.12 The Capability Maturity Model Integration [CMMI] * It is developed by Software Engineering Institute [SEI] * It is a comprehensive process meta-model, that is predicated on a set of system * A organization can reach a different levels of process capability and maturity by develop a process model based on CMMI guidelines * The CMMI represents a process meta-model in two different ways: => Continues Model => Staged Model
  • 17. 17 (1) Continuous Model: * It describes a process in two dimensions as shown below; * Each process area [e.g. Project planning, requirement management] is assessed against specific goals and practices 5 4 Capability Level 3 2 1 PP REQM MA CM PPQA Process Area CMMI Process Area Capability PP – Project Planning REQM – Requirements Managements MA – Measurements and Analysis CM – Configuration Management PPQA – Process and Product QA * Each process area is rated according to the following capability levels; LEVEL 0: INCOMPLETE * The process area [e.g. Requirement Management] is either => Not performed (Or) Others
  • 18. 18 => Does not achieve all goals and objective, defined by CMMI for level – 1 capability LEVEL 1: PERFORMED * All of the specific goals of the process area have been satisfied * Work tasks required to produce defined work products are being conducted LEVEL 2: MANAGED * All level-1 criteria have been satisfied * All people doing the work have access to adequate resources to get the job * All work tasks and work products are monitored, controlled and reviewed and are evaluated for adherence to the process description LEVEL 3: DEFINED * All level – 2 criteria have been achieved * The process is tailored from the organizations set of standard processes according to organizations tailoring guidelines LEVEL 4: QUANTITATIVELY MANAGED * All level – 3 criteria have been achieved * The process area is controlled and improved using measurements and quantitative assessment * Quantitative objectives and process performance are established in managing the process LEVEL 5: OPTIMIZED * All level – 4 criteria have been achieved * The process area is adapted and optimized using quantitative means to meet changing customer needs CMMI defines each process area in terms of specific goals and specific practices (i) Specific Goals [SG]: It establish the characteristics that must exist, if the activities implied by a process area are to be effective (ii) Specific Practices [SP]: It refine a goal into a set of process – related activites Example:
  • 19. 19 * Project planning is one the process area, defined by CMMI for project management category SG1: Establish Estimates SP 1.1 – 1 Estimate the scope of the project SP 1.2 – 1 Establish estimates of work product and task attributes SP 1.3 – 1 Define Project Life cycle SP 1.4 – 1 Determine estimates of effort and cost SG2: Develop a project plan: SP 2.1 – 1 Establish the budget and schedule SP 2.2 – 1 Identify project risks SP 2.3 – 1 Plan for data management SP 2.4 – 1 Plan for project resources SP 2.5 – 1 Plan for needed knowledge and skills SP 2.6 – 1 Plan customer involvement SP 2.7 – 1 Establish the project plan SG3: Obtain commitment to the plan SP 3.1 -1 Review plans that affect the project SP 3.2 – 1 Reconcile work and resource levels SP 3.3 – 1 Obtain plan commitment * CMMI also defines a set of five generic goals and related practices for each process area: GG1: Achieve specific goals GP 1.1 – Perform base practices
  • 20. 20 GG2: Institutionalize a managed process GP 2.1 – Establish an organizational policy GP 2.2 – Plan the process GP 2.3 – Provide resources GP 2.4 – Assign responsibility GP 2.5 – Train people GP 2.6 – Manage configurations GP 2.7 – Identify and involve relevant stake holders GP 2.8 – Monitor and control the process GP 2.9 – Review status with higher level management GG3: Institutionalize a defined process GP 3.1 – Established a defined process GP 3.2 – Collect improvement information GG4: Institutionalize a quantitatively managed process GP 4.1 – Establish quantitative objectives for the process GP 4.2 – Stabilize sub process performance GG5: Institutionalize an optimizing process GP 5.1 – Ensure continuous process improvement GP 5.2 – Correct root cause of the problem (2) Staged CMMI Model: * It defines the same process area, goals and practices as continuous model * The staged model defines five maturity level, rather than five capability levels as in continuous model
  • 21. 21 * To achieve a maturity level, the specific goals and practices associated with a set of process area must be achieved *********************************************************************** * Note: Task Set: It defines the actual work to be done, to accomplish the objectives of a software engineering action. Requirement gathering is an important software engineering action, that occurs during the communication activity Example: * For simple projects task set for requirement gathering might be look like this; => Make a list of stake holders for a project => Invite all stake holders to an informal meeting => Ask each stake holders to make a list of features and functions required => Discuss requirements and build a final list => Prioritize requirements => Note areas of Uncertainty *********************************************************************** * 1.13 Process Patterns Definition: * It is defined as set of activities, actions, work tasks, work products and related behaviors required to develop computer software * In general terms it provides a template [i.e. a consistent method for describing an important characteristic of the software process] * By combining patterns a process meets the need of a project * Patterns can be defined at any level of abstraction. For example it might be used to describe => a complete process [ex: Prototyping] => an important framework activity [ex: Planning]
  • 22. 22 => a task with in a frame work activity [ex: Project – Estimating] Templates for describing a process pattern (1) Pattern Name: It gives a meaningful name that describes its function with in the software process Example: Customer – Communication (2) Intent: The objective of the pattern is described Example: The intent of customer – communication is => to establish a collaborative relationship with the customer, in an effort to define project scope, business requirements etc.. (3) Type: The pattern type is specified, it suggests three types: (a) Task patterns: It define a software engineering action that is part of the process and relevant to successful software engineering practice Example: Requirements gathering (b) Stage pattern: It defines a frame work activity for the process [i.e. a stage pattern incorporates multiple task patterns that are relevant to the stage] Example: Communication – This pattern would incorporate the task pattern requirement gathering and others (c) Phase patterns: It define the sequence of frame work activity that occur with the process, even when the over all flow of activities is iterative in nature Example: Spiral model (Or) Prototyping (4) Initial context: It describes the conditions under which the pattern applies. Some queries asked prior to ignition of the pattern. They are => What organizational (Or) team related activities have already occurred?
  • 23. 23 => What is the entry state for the process? =>What software engineering information (Or) project information already exists? Example: Planning pattern [a stage pattern] * It requires that; => Customer and software engineer have establish a collaborative communication => Successful completion of a number of task patterns has occurred => Project scope, basic business requirements and project constraints are known (5) Problem: It described the problem to be solved by the pattern Example: The problem to be solved by customer communication might be; => Communication between developer and customer is inadequate because an effective format for eliciting information is not established => a useful mechanism for recording is not created => Meaningful reviews are not conducted (6) Solution: It describes the implementation of the pattern. It also discuss; => how the initial state of the process that exist before the pattern is implemented => how software engineering information (Or) project information that is available before initiation of the pattern (7) Resulting Context: It describe the condition that will result, once the pattern has been successfully implemented * After the completion of the pattern we ask; => What team related activities must have occurred? => What is the exit state of the process? => What project information has been developed? (8) Related patterns: A list of process pattern, that are directly related to this one are provided as a hierarchy (Or) or in some other diagrammatic form
  • 24. 24 Example: The stage pattern communication includes the task patterns such as => Project team assembly => Collaborative guideline definition => Scope – Isolation => Requirement – gathering => Constraint – description and => Model creation (9) Known uses / examples: It indicates the specific instances in which the pattern is applicable Example: Communication is mandatory at the beginning of every software project, it is recommended throughout software project Conclusion: * Process patterns provide an effective mechanism for describing any software process * It enables a software organization to develop hierarchical process description * Once process patterns have been developed, they can be reused for definition of process variants [i.e. a customized process model can be defined by a software team, using the patterns as building blocks for the process model] 1.14 Process Assessment: * The software process gives no guarantee that; => Software will be delivered on time => it will meet the customer needs * In addition the process should be accessed to ensure that it meets a set of basic process criteria that have been essential for a software engineering * The relationship between the software process and methods applied for assessment and improvement are shown below
  • 25. 25 Software Process Is Examined by Identify Modifications to Identify Capabilities and risks of Software process Assignment Leads to Software process Improvement Leads to Motivates Capability determination Software process assessment – Different approaches (1) Standard CMMI Assessment Methods for Process Improvement [SCAMPI] * It provides a five step process assessment model. They are (i) Initiating (ii) Diagnosing (iii) Establishing (iv) Acting (v) Learning (2) CMM – Based Appraisal for Internal Process Improvement [CBAIPI] * It provides a diagnosing techniques for assessing the relatively maturity of a software organization (3) SPICE [ISO / IEC 15504] * It defines a set of requirements for software process assessment
  • 26. 26 * This standard helps the organization in developing an objective evaluation of any defined software process (4) ISO 9001: 2000 for Software * This standard is applied to any organization that wants to improve; => the over all quality of the products, systems, services it provides * This standard is directly applicable to software organizations and companies * This standard uses a “Plan – do – Check – act” cycle that is applied to quality management elements of software projects Plan => It establishes the process objectives, activities and tasks necessary to achieve high quality software and resultant customer satisfaction Do => It implements the software products [including both framework and umbrella activities] Check => It monitors are measures the process to ensure that all requirements established for quality management have been achieved Act => It initiates the software process improvement activities that continually work to improve the process 1.15 Personal process models Personal Software Process [PSP]: * PSP emphasizes personal measurement of both work product that is produced and the resultant quality of the work product * In addition PSP makes the practitioner responsible for project planning [e.g. estimating and scheduling] and empowers to control the quality of all software work products that are developed PSP – Five Framework Activities: (1) Planning: * This activities isolates requirements * Based on these develops both size and resource estimates
  • 27. 27 * In addition a defect estimates [i.e. the number of defects projected for the work] is made * Finally the development tasks are identified and a project schedule is created * All defects metrics are recorded in a worksheet (2) High Level Design: * External specification for each component to be constructed are developed and a component design is created * When uncertainty exists prototypes are built * All issues are recorded and tracked (3) High Level Design review: * Formal verification methods are applied to find uncover errors in the design * Metrics are maintained for all important tasks and work results (4) Development: * The component level design is refined and reviewed * Code is generated, reviewed, compiled and tested * Metrics are maintained for all important tasks and work results (5) Postmortem: * Using the measures and the metrics collected the effectiveness of the process is determined * Measures and metrics provide guidance for modifying the process to improve its effectiveness Conclusion: * PSP stresses each software engineer to identify errors early and important to understand the types of errors that he is likely to make * When PSP is properly introduced the software engineering productivity and quality are significant Drawbacks: * PSP is intellectually challenging * Training is relatively lengthy and training costs are high * The required level of measurement is difficult for many software people
  • 28. 28 1.16 Team Process Model [TSP] * Te goal of TSP is to built a “Self-Directed” project team that organizes itself to produce high quality software * The self-directed team defines the roles and responsibilities for each team member => Tracks quantitative project data [productivity and quality] => Identifies a team process that is appropriate for the project => Identify a strategy for implementing the process => Continually access the risk and reacts to it => Tracks, manages and reports project status TSP – Objectives: (i) Build Self-Directed teams, that plan and tracks their work, establish goals and own their process and plans * The self-directed team may contain 3 to 20 engineers (ii) Show managers how to coach and motivate their teams * Also show how to help them sustain peak performance (iii) Accelerate software process improvement by making CMM Level – 5 behaviors normal and expected (iv) Provide improvement guidance to high maturity organizations (v) Facilitate university teaching of industrial grade team skills TSP – Framework activities: => Launch => High Level Design => Implementation => Integration and Testing => Postmortem * Tsp makes use of wide variety of => Scripts => Forms and Standards that guide the members in their work Example: Launch Script
  • 29. 29 => Review project objectives with management and agree on and document team goals => Establish team roles => Define the teams development process => Make a quality plan and set quality targets => Plan for the needed support facilities => Produce an over all development strategy => Make a development plan, for the entire project => Make detailed plans for each engineer for the next phase => Merge the individual plan into a team plan => Rebalance team workload to achieve a minimum overall schedule => Assess project risks and assign tracking responsibility for each key risk Conclusion: * Like PSP, TSP is a rigorous approach to software engineering that provides distinct and quantifiable benefits in productivity and quality