- Introduction to Software Engineering
- The Evolving Role Of Software
- Changing Nature Of Software
- Software Myths
- A Generic View of Process
- Software Engineering- A Layered Technology
- A Process Framework
- The capability maturity model integration (CMMI)
- Process Patterns
- Process Assessment
- Personal And Team Process Models
- Process Models
- The Waterfall Model
- Incremental Process Models
- Evolutionary Process Models
- The Unified Process Model
Personal and team process models
The best software process is one that is closely aligned with the people performing the work. Each software engineer should create a process that suits their individual needs while also supporting the goals of the team and the organization. Alternatively, the team can create a shared process that balances individual and organizational objectives.
Personal Software Process (PSP)
The Personal Software Process (PSP) focuses on the individual engineer, emphasizing measurement of both the work product and its quality.
Framework activities of PSP
Planning
Requirements are identified.
Size and resource estimates are developed.
A defect estimate is created.
All data is recorded using worksheets or templates.
Development tasks are listed, and a project schedule is prepared.
High-level design
External specifications for components are developed.
Component designs are created.
Prototypes are built to resolve uncertainties.
Issues are recorded and tracked.
High-level design review
Formal verification techniques are used to detect design errors.
Metrics are recorded for all important tasks and outputs.
Development
Component-level designs are refined and reviewed.
Code is written, reviewed, compiled, and tested.
Metrics are maintained throughout.
Postmortem
Collected metrics are analyzed to evaluate process effectiveness.
Metrics guide changes to improve future process performance.
Key points
PSP encourages engineers to identify and understand their own errors early.
It provides a disciplined, metrics-based approach to software engineering.
Team Software Process (TSP)
The Team Software Process (TSP) aims to build a self-directed project team that is organized and accountable for producing high-quality software.
Objectives of TSP
Create self-directed teams that manage their own planning, tracking, goal-setting, and process ownership.
Teams can be software-only or integrated product teams (IPTs) of 3 to 20 engineers.
Teach managers how to coach, motivate, and sustain high team performance.
Speed up software process improvement by adopting behaviors aligned with CMM Level 5.
Offer improvement guidance to high-maturity organizations.
Support university instruction in industrial-grade team skills.
Characteristics of a TSP team
Defines roles and responsibilities for every member.
Tracks quantitative project data.
Establishes a team-specific software process.
Develops a strategy to implement the process.
Defines local standards for software engineering work.
Continuously assesses and responds to project risks.
Monitors and reports project status.