0% found this document useful (0 votes)
23 views17 pages

001 Software Processes 20250120

The document discusses the concept of a software process, which is a method for producing software that includes various stages such as specification, design, and maintenance. It highlights the importance of having a defined process for effective, predictable, and repeatable software development, as opposed to relying on informal or implicit processes that can lead to issues like burnout and unpredictability. Additionally, it emphasizes the role of people, technology, and methods in creating a successful software product.

Uploaded by

MANI 96 FF
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views17 pages

001 Software Processes 20250120

The document discusses the concept of a software process, which is a method for producing software that includes various stages such as specification, design, and maintenance. It highlights the importance of having a defined process for effective, predictable, and repeatable software development, as opposed to relying on informal or implicit processes that can lead to issues like burnout and unpredictability. Additionally, it emphasizes the role of people, technology, and methods in creating a successful software product.

Uploaded by

MANI 96 FF
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Introduction to Software

Process

Malik Nabeel Ahmed Awan, PhD


How many Programmers
2
does it take to change a light bulb?
 Programmer - None: A defective light bulb is a hardware
problem.
 Engineer - Six:
 Analyst to write the specification.
 Architect to design a light-bulb changing procedure.
 Developer to change the light bulb.
 Tester to test it.
 Documenter to write RUP project reports.
 Auditor to verify that the process was followed.
What is a Software Process?
3

A process is a method for doing or producing something.


A software process is a method for producing software.

"Producing software" includes Managing the project involves


▪ specification ▪ obtaining resources
▪ design ▪ measuring
▪ construction ▪ tracking
▪ documentation ▪ reviews
▪ transition ▪ analyzing results and acting
on them
▪ maintenance
▪ improvement
Do You Have a Process?
4

Everyone who develops software uses a process.


 Process may not be formal.

 You may even be aware of it (not "defined").

 It changes every time you develop a new application.


Exercise
5

 Example – 1
 Identifya process you use repeatedly in your daily life.
 Why do you follow this process?

 Are there any advantages to using a process?

 Have you improved your process?

 Example – 2
 What process "procedures" or "activities" did you use in any of your
previous project?
Process Disadvantages
6

• overhead
• diminish sense of spontaneity or creativity
• may be the wrong process for the job
What is the Most Common Software Process?
7

1. "Code and fix"


2. ad hoc (chaos)
My Software Process
• Long used process …
1. think about the problem
2. start coding
3. as code grows, I realize that I need to restructure parts of
it.
• modify previous code to support new, improved structure.
• goto step 2.
Do We Need a Formal Process?
8

Teams can be effective without a formal software process!


 Teams can have “jack-of-all-trades” programmers who understand the business
of the organization.

 Excellent, motivated developers take initiative and build the software without
consensus or planning.

 A highly capable development manager may be willing to put in an enormous


effort.

 Motivated developers put in extra time to get the project done.


Problems with an Implicit Process
9

1. Depends a lot on motivated, talented individuals.


 what happens if your best programmer/architect quits?
2. Not repeatable or predictable.
 if you can't predict how long the next project will take, then how can you bid
(estimate cost)?
3. Stress / burn-out.
 Too much pressure on team.
 Uncertainty and O.T. lead to frustration, burn-out.
 No slack time for HR development.
Another Problem...
10

1. We learn programming on small projects.


2. We develop an implicit process that works well...
we get "A"s in our courses!
Obviously, we are great "software engineers"!

Problem:
our implicit process doesn't scale to large problems.
Why a Defined Process?
11

 More Effective
 less time spent on planning, estimates, decisions
 Predictable
 Repeatable (related to predictability)
 Trackable (measuring predictability)
 Maintainability
 Quality
 Capability Improvement
 use what you learn from past experience
Creating a Defined Process
12

 Meta-thinking
 thinking about what you know / do

 Humans are the only animal that consciously changes his behavior
 "learnfrom experience"
 improvement - creative thinking & insight
4 key factors in software development speed
13

People
– ability, knowledge, skills, motivation
Process
– Customer focus
– QA, risk management, lifecycle planning, revision control, ...
Product
– Size and characteristics, phasing
Technology
– Product or software development environment
– Tools
The Role of Process
14

People Technology

Methods

The Desired Product


The Role of Process
15

People Technology

"the glue that binds


Methods
[guides] people, Process
methods, and
technology to create
a product."

The Desired Product


The Role of Process
16

People Technology

Roles: Methods
Task Task

Activities: Analysis Design Implement Test

Use Case
Artifacts:
Desired Product
Description ...
Prerequisite...
Main Scenaria .....
1.....
2.....
3.....
Extensions: ...

Communicate: Measurements, Milestones, Documents


17

THANK YOU

You might also like