Chapter 2 Software Processes 1 30/10/2014
Chapter 2 Software Processes 1 30/10/2014
II
software system.
some particular perspective. It present the formal version of the software process
the process;
product produced.
Software process models categories
is measured against this plan. The start date and end date (delivery date)
customer requirements. only the start date and end date( delivery date ) are xed
What is the di erence between the unit testing and the
testers work?
Unit testing is making a program to test the code.
Testing is to see if the program is working properly.
Unit testing
8ساليد
Software process models
The only test executed by programmers. e.g,
public int sum(int a, int b) {
return a+b;
public void testSum() {
if(sum(3 , 4) != 7) {
System.out.println(“Error with 3 and 4”); }
if(sum(-33333 , 44444) != 11111) {
System.out.println(“Error with -33333 and -44444”); }
You can integrate the characteristics of more than one of Software process model
The waterfall model
منفصلة مراحل متميزة
▪ Plan-driven model. Separate and distinct phases of specification
and development.
Incremental development
▪ Specification, development and validation are interleaved. May
be plan-driven or agile.
Integration and configuration
In practice, most large systems are developed using a
process that incorporates elements from all of these
يدمج
models.
go back
s s
it
محددة
There are separate identified phases in the waterfall
/architecture
/ high level
▪
System and software design
5 ساليد design
▪
Implementation and unit testing
Low level design(UML class,…)
of accommodating change after the process is
قيد التنفيذ
underway. In principle, a phase has to be complete
before moving onto the next phase.
Integration of software model
30/10/2014 Chapter 2 Software Processes 8
requirements.
several sites.
تنسيق
Incremental development
تكرار Iteration ends with new version of the software(في كل مره تكتمل
This is a DFD.
Docs
Process
اصدار مبدئي
استخراج املتطلبات
Docs
Feasibility study
()دراسة جدوى
إصدارات وسيطة
Design+coding
إصدار نهائي
Testing
استيعاب
requirements is reduced.
▪ Customers are able to use and gain value from the software
documents that reflect every version of the system. فعال من حيث التكلفة/غير مجدي
تدهور
are added.
تناقض بني املتطلبات الجديدة بسبب القرارات الخاطئة السابقة بسبب تناقض متطلبات العميل
systems).
Requirements specification
Requirements refinement
Process activities
Process activities
are interleaved.
Software specification
development.
▪ Requirements specification
▪ Requirements validation
an executable system.
Program
Software design
Implementation Programming
Design activities
Architectural design, where you identify the overall
they are distributed.
Database design, where you design the system data
structures
and how these are to be represented in a
Has e.g, Student(ID, Name, …)
tables database.
Course(ID, Name, Semester, …)
Interface design, where you define the interfaces
between system components. If you intend to reues some software.
You will need to select existing models.
Component selection and design, where you search for
reusable components. If unavailable, you design how it
will operate.
30/10/2014 Chapter 2 Software Processes 23
System implementation
system.
process.
Validation
testing. We review requirements docs and design docs and contracts and the code
Stages of testing
At the end
Acceptance tests: are tests that the customer do by chosing a little parts of the
If the customer doesn’t care or doesn’t know about Acceptance tests we will
Testing stages
Component testing
of these entities.
System testing
is particularly important.
Customer testing
▪ Testing with customer data to check that the system meets the
customer’s needs.
process (V-model)
Software evolution
completely new.
System evolution
بسرعة
requirements
Agile development
Program specification, design and implementation are
inter-leaved
Iterations increments
Extensive tool support (e.g. automated testing tools)
e.g, if we are going to make new electronic gate for registrations in university Stakeholders for this
project are:-
Plan-driven development
14 11 11
development is possible
Agile development
I
development process.
Agile methods
Agile methods
excessive documentation
عدم الرضا
People not process The skills of the development team should be recognized and
exploited.
Team members should be left to develop their own
in 1998-1999 Trust developers ways
of working without prescriptive processes.
Embrace change Expect the system requirements to change and so design the
Maintain simplicity Focus on simplicity in both the software being developed and
the software.
The nature of some software requires that
If the customer want to be involved in the development we take into account the laws of the
process. Agile will be Appropriate. municipality and the ministry etc...
techniques.
to iterative development.
▪ All tests must be run for every build and the build is only
One Iteration=
كل دورة تعطينا
2 3
or cards
6 Y
by the Customer
Incremental planning Requirements are recorded on story cards and the stories to be
Small releases The minimal useful set of functionality that provides business
Simple design Enough design is carried out to meet the current requirements
Test-first development An automated unit test framework is used to write tests for a
Extreme
implemented. Make the unit test before the actual code
30/10/2014
It is not extreme to make thisChapter
when 3you
Agileare
Software Development
making user interface 43
Increased cost + di cult code, because each of the two colleagues is trying to show that he is the
best.
Pair programming Developers work in pairs, checking each other’s work and
Collective ownership The pairs of developers work on all areas of the system, so that
the whole system. After any such integration, all the unit tests in
the net effect is often to reduce code quality and medium term
productivity
code. The fth principle of agile methods: simple code, simple design
.كل فقرة= قصة مستعمل
.قصص املستعمل كل واحدة منهم يتم تحويلها الى بطاقات
.من املمكن ان يكون لقصة املستعمل اكثر من بطاقة
2
with team
2
3
Process measurement
▪ You measure one or more attributes of the software process or
product. These measurements forms a baseline that helps you
decide if process improvements have been effective.
Process analysis
▪ The current process is assessed, and process weaknesses and
bottlenecks are identified. Process models (sometimes called
process maps) that describe the process may be developed.
Process change
▪ Process changes are proposed to address some of the identified
process weaknesses. These are introduced and the cycle
resumes to collect data about the effectiveness of the changes.
Initial
▪ Essentially uncontrolled
Repeatable
▪ Product management procedures defined and used
Defined
▪ Process management procedures and strategies defined
and used
Managed
▪ Quality management strategies defined and used
Optimising
▪ Process improvement strategies defined and used
30/10/2014 Chapter 2 Software Processes 68
Discussion