Week 02 - Process Model - Updated
Week 02 - Process Model - Updated
Process Model
ISYS2089 – Software Engineering Fundamental
Week 02
RMIT Classification: Trusted
Overview
• Learning Outcomes
o CLO 1: explain and apply the main aspect of software
engineering
o CLO 2: evaluate requirements for a software system
• Purpose
o Understanding of the key concepts
• Topic Checklist
o Understand the different types of process model
o To be aware of process modeling to describe software
development processes explicitly
RMIT Classification: Trusted
Objectives
• To be aware of a number of generic models to structure the software
development process
3
RMIT Classification: Trusted
4
RMIT Classification: Trusted
5
RMIT Classification: Trusted
7
RMIT Classification: Trusted
8
RMIT Classification: Trusted
• But this approach did not scale well for larger applications
9
RMIT Classification: Trusted
Waterfall
• Discipline is enforced: Every phase in Waterfall has a start and end point,
and it’s easy to share progress with stakeholders and customers. By
focusing on requirements and design before writing code, the team can reduce
the risk of a missed deadline.
11
RMIT Classification: Trusted
12
RMIT Classification: Trusted
• Software isn’t delivered until late: The project has to complete two to
four phases before the coding actually begins. As a result,
stakeholders won’t see working software until late in the life cycle.
13
RMIT Classification: Trusted
14
RMIT Classification: Trusted
What is Agile?
15
RMIT Classification: Trusted
Extra Info
What is Agile ?
16
RMIT Classification: Trusted
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 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.
17
RMIT Classification: Trusted
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.
18
RMIT Classification: Trusted
Advantages of Agile
• Change is embraced: With shorter planning cycles, it’s easy to accommodate and
accept changes at any time during the project. There is always an opportunity to
refine and reprioritize the backlog, letting teams introduce changes to the project in
a matter of weeks.
• End-goal can be unknown: Agile is very beneficial for projects where the end-goal
is not clearly defined. As the project progresses, the goals will come to light and
development can easily adapt to these evolving requirements.
19
RMIT Classification: Trusted
Advantages of Agile
• Strong team interaction: Agile highlights the importance of frequent communication and
face-to-face interactions. Teams work together and people are able to take responsibility
and own parts of the projects.
• Customers are heard: Customers have many opportunities to see the work being
delivered, share their input, and have a real impact on the end product. They can gain a
sense of ownership by working so closely with the project team.
• Continuous improvement: Agile projects encourage feedback from users and team
members throughout the whole project, so lessons learned are used to improve future
iterations.
20
RMIT Classification: Trusted
Disadvantages of Agile
• Planning can be less concrete: It can sometimes be hard to pin down a solid delivery date. Because
Agile is based on time-boxed delivery and project managers are often reprioritizing tasks, it’s possible
that some items originally scheduled for delivery may not be complete in time. And, additional sprints
may be added at any time in the project, adding to the overall timeline.
• Team must be knowledgeable: Agile teams are usually small, so team members must be highly
skilled in a variety of areas. They also must understand and feel comfortable with the chosen Agile
methodology.
• Time commitment from developers: Agile is most successful when the development team is
completely dedicated to the project. Active involvement and collaboration is required throughout the
Agile process, which is more time consuming than a traditional approach. It also means that the
developers need to commit to the entire duration of the project.
21
RMIT Classification: Trusted
Disadvantages of Agile
• Documentation can be neglected: The Agile Manifesto prefers working software over
comprehensive documentation, so some team members may feel like it’s less important
to focus on documentation. While comprehensive documentation on its own does not
lead to project success, Agile teams should find the right balance between
documentation and discussion.
• Final product can be very different: The initial Agile project might not have a definitive
plan, so the final product can look much different than what was initially intended.
Because Agile is so flexible, new iterations may be added based on evolving customer
22
RMIT Classification: Trusted
23
RMIT Classification: Trusted
• Planning: Once an idea is deemed viable and feasible, the project team
comes together and works to identify features. The goal of this phase is to
break down the idea into smaller pieces of work (the features) then to
prioritize each feature and assign it to an iteration.
24
RMIT Classification: Trusted
• Implementation, coding or development: This phase is all about creating and testing
features, and scheduling iterations for deployment (following the iterative and incremental
development approach [IID]). The development phase starts with iteration 0, because
there are no features being delivered. This iteration lays down the foundation for
development, with tasks like finalizing contracts, preparing the environments, and
funding.
25
RMIT Classification: Trusted
26
RMIT Classification: Trusted
• Waterfall • Scrum
• V-model • Kanban
27
RMIT Classification: Trusted
RUP
28
RMIT Classification: Trusted
Phases
• Inception
o Initial scope, potential architecture, stakeholder
acceptance
• Elaboration
o Prove the systems architecture
• Construction
o Build working software, incremental basis, highest
priority first
• Transition
o Validate and deploy
RMIT Classification: Trusted
software development.
30
RMIT Classification: Trusted
Advantages of RUP
• This methodology emphasizes on accurate documentation
• It is proactively able to resolve the project risks that are associated with
the clients evolving requirements for careful changes and request
management
31
RMIT Classification: Trusted
Disadvantages of RUP
• The software developer needs to be expert in their work to develop
software under this methodology.
32
RMIT Classification: Trusted
V-Model
33
RMIT Classification: Trusted
Spiral Model
34
RMIT Classification: Trusted
http://www.youtube.com/watch?v=vmGMpME_phg&feature=related
RMIT Classification: Trusted
Disciplines
• Model
o Understand business & problem domain
o Identify a viable solution
• Implementation
o Transform model(s) into executable code
• Test
o Ensure quality
o Verify that requirements are met
RMIT Classification: Trusted
Disciplines
• Deployment
o Make system available to end users
• Configuration Management
o Manage access to project artifacts
o Control and manage changes
• Project management
o Managing risks, directing and coordinating people
• Environment
o Ensuring a proper process, guidance and tools
RMIT Classification: Trusted
Releases
Advantages of XP
• Extreme programming methodologies emphasis on customer
involvement
• This model helps to establish rational plans and schedules and to get
the developers personally committed to their schedules which are
surely a big advantage in the XP model
41
RMIT Classification: Trusted
Disadvantages of XP
• Focused on the code rather than design. Lack of defect documentation
may lead to the occurrence of similar bugs in the future.
42
RMIT Classification: Trusted
Pair Programming
in pairs
RMIT Classification: Trusted
Kanban
• Video: https://www.youtube.com/watch?v=0xN4rrTaOEA
44
RMIT Classification: Trusted
Scrum
• Video:
https://www.youtube.c
om/watch?v=vmGMp
ME_phg&ab_channel
=%C3%96rjanHillbom
45
RMIT Classification: Trusted
Scrum Framework
Roles
Product Owner
Scrum Master
Team
Ceremonies
Sprint planning
Sprint review
Sprint retrospective
Daily scrum meeting
Artifacts
Product backlog
Release backlog
Sprint backlog
Burndown charts
RMIT Classification: Trusted
Scrum Roles
• Product Owner
❑ Possibly a Project Sponsor or Analyst
❑ Decides features, prioritise features, determines scope, cost
• Scrum Master
❑ Typically a Project Manager or Team Leader
❑ Responsible for enacting Scrum values and practices
• Project Team
❑ 5-10 members; Teams are self-organizing
❑ Cross-functional: QA, Programmers, UI Designers, etc.
❑ Membership should change only between sprints
RMIT Classification: Trusted
❑ What (goal)
❑ Why (reason)
Sprint Meeting
• Inputs
❑ Team capacity, Release backlog, Business needs, Current
product, appropriate technology
• Sprint Prioritization
❑ Evaluate Release backlog, Identify sprint goals
❑ Output: Sprint Goals
• Sprint Planning
❑ Decide steps to achieve sprint goal (design), Create sprint
backlog (tasks) from release backlog items (user stories),
Estimate sprint backlog in hours
❑ Output: Sprint Backlog
42
RMIT Classification: Trusted
• Parameters
❑ Daily, ~15 minutes, Stand-up
Improve interface 8
...
...
Copyright Dale Stanbrough 2009
RMIT Classification: Trusted
Sprint Backlog
53
RMIT Classification: Trusted
75
60
45
Hours
30
15
0
Mon Tue Wed Thu Fri
References:
• Software Engineering Institute's CMMI website:
http://www.sei.cmu.edu/cmmi/
• AUP, http://www.ambysoft.com
• XP, http://www.azzurri.co.jp
• http://www.tatvasoft.com/blog/top-12-software-development-
methodologies-and-its-advantages-disadvantages/#anchor5
58