Lecture 2

Download as pdf or txt
Download as pdf or txt
You are on page 1of 34

System Analysis and Design -2

(IS-352)
Lecture 2
Introduction to the Course

Dr. Wael Abbas


2022 - 2023
Software Process Model
A software process model is an abstract representation of a process.
It presents a description of a process from some particular
perspective.
A structured set of activities required to develop a software system.

All software processes involve


 Specification – defining what the system should do;
 Design and implementation – defining the organization of
the system and implementing the system;
 Validation – checking that it does what the customer wants;
 Evolution – changing the system in response to changing
customer needs.

3
Software Process Models Categories
 Plan-driven
All of the process activities are planned in advance and progress is
measured against this plan.
Waterfall, Incremental, Reuse-oriented, Spiral
 Agile
Planning is incremental and it is easier to change the process to reflect
changing customer requirements.
eXtreme Programming (XP), Scrum, Lean, Crystal, Kanban

 most practical processes include elements of both plan-driven and agile


approaches.

 There are no right or wrong software processes.

4
5
Code and fix

Without much of a design in the way, programmers


immediately begin producing code. At some
point, testing begins (often late in the development
cycle), and the inevitable bugs must then be fixed
before the product can be shipped.

6
Therefore, this model is only appropriate when the requirements are
well-understood and changes will be fairly limited during the design
process
Traditional Software
Development
• Less communication.
• Requirements process in sealed before
Analysis and design process.
• Take more than estimated time and estimated
budget.

12
AGILE
The Goals of Agile Modeling

• To put into practice, a collection of values,


principles and practices pertaining to effective
and light-weight modeling.

15
Agile Manifesto (2001)

http://agilemanifesto.org/
Agile Manifesto (2001)
Individuals & interactions over process and tools

process

Company

tools

Process and tools are important but people behind the process are even more

http://agilemanifesto.org/
Agile Manifesto (2001)
Working software over comprehensive documentation

Requirements
document Issue document

Company Technical
Risk document
document

Bug sheet Test case


document

http://agilemanifesto.org/
Agile Manifesto (2001)
Customer collaboration over contract negotiation

Company

contract

client

Customer change
Expected != actual
(CR)

Build feedback loop with client

http://agilemanifesto.org/
Agile Manifesto (2001)
Respond to change over following a plan

Static roadmap : silent client with no requirement change

Dynamic roadmap

http://agilemanifesto.org/
Agile mindset
Agile is a mindset that help to deliver software despite uncertainty and risk

• Value
• Validation
• Adapt your plan
• Deliver fast
• Deliver frequent
• Team ownership
• Continuous improvements

http://agilemanifesto.org/
Principles behind the Agile Manifesto

1. Our highest priority is to satisfy the customer through early and continuous delivery
of valuable software.

2. Welcome changing requirements, even late in development. Agile processes


harness change for the customer's competitive advantage.

3. Deliver working software frequently, from a couple of weeks to a couple of months,


with a preference to the shorter timescale.

4. Business people and developers must work together daily throughout the project.

5. Build projects around motivated individuals. Give them the environment and
support they need, and trust them to get the job done.

6. The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation.
Principles behind the Agile Manifesto
7. Working software is the primary measure of progress.

8. Agile processes promote sustainable development. The sponsors, developers,


and users should be able to maintain a constant pace indefinitely.

9. Continuous attention to technical excellence and good design enhances agility.

10. Simplicity--the art of maximizing the amount of work not done--is essential.

11. The best architectures, requirements, and designs emerge from self-organizing
teams.

12. At regular intervals, the team reflects on how to become more effective, then
tunes and adjusts its behavior accordingly.
SCRUM
Scrum Overview

• Scrum is an Agile process;


• Used to manage complex projects since 1990;
• Delivers business functionality in 30 days;
• Business sets the priorities;
• Teams self-organize to determine the best way
to deliver the highest priority features.
• Scalable to distributed, large, and long projects;
• Extremely simple but very hard!
Scrum - framework

• Sprint planning – “definition of Done”


• Sprint review – “the demo”
• Sprint retrospective
• Daily scrum meeting

Scrum master team

Product owner
Team

• Seven (plus/minus two) members


• Is cross-functional (Skills in testing, coding, architecture etc.)
• Selects the Sprint goal and specifies work results
• Has the right to do everything within the boundaries of the project
guidelines to reach the Sprint goal
• Organizes itself and its work
• Demos work results to the Product Owner.
Cross functional team
Doesn’t mean everyone has to know everything
I can test, but I’m Skills Needed to implement Top X backlog items
Product not so good at it. I don’t know CM
Backlog Test DB Domain CM at all. But I’m
Web Java willing to learn!
I’m good at Java!
Lisa

Joe
Fred
Jenny

David

Erik

I won’t even go
near a database!

Henrik Kniberg
Scrum Master

• Ensure that the team is fully functional and productive


• Enable close cooperation across all roles and functions
• Remove barriers
• Shield the team from external interferences during the Sprint
• Ensure that the process is followed, including issuing invitations to Daily
Scrum, Sprint Review and Sprint Planning meetings.
Product Owner

• Define the features of the product.


• Decide on release date and content.
• Be responsible for the profitability of the
product (ROI).
• Prioritize features according to market value.
• Adjust features and priority every iteration, as
needed
• Accept or reject work results.
Burndown Chart

You might also like