Kung Chapter 2 Flashcards
(28 cards)
challenges of system development
manage clients changing needs
divide work between large teams
ensure proper communication and coordination
develop systems that fulfil all the requirements
create systems that are easy to understand, maintain and test
what is a software process
series of phases activities to construct a software system, each phase producing some artefacts that are the inputs to others
what is the waterfall software process
follows a linear sequence of steps: planning, design, construction, maintenance
advantages of waterfall
simplifies planning
good for complex, large systems
disadvantages of waterfall
can’t respond to requirements change
customers can’t reap benefit of system during long development period
what is the unified process (UP) software process
framework that guides the development of software through iterative and incremental cycles. integrates best practices of different methodologies.
phases of the UP
inception
elaboration
construction
transition
inception phase of UP
define project vision (high level requirements) and determine if it is feasible (cost, time)
elaboration phase of UP
refining the requirements and defining the architecture
detailed design (data models, UI, security protocols)
construction phase of UP
system is built
continuous integration and testing
transition phase of UP
moving system into production and delivering to user
now in maintenance mode
what is iterative and incremental development
system is developed in cycles where each increment adds functionality and each iteration improves code and stability of the software incorporating feedback from stakeholders and users
role of use cases in UP
capture functional requirements from user perspective.
each use case defines how the user interacts with the system to achieve something
can make sure system meets user requirements
how to adapt UP for smaller teams
reducing the formality of certain phases and focusing on the most essential practices
follow key phases of UP
agile process
iterative and flexible. many iterations of the same phases,
phases of agile
requirements analysis, design, implementation, testing, deployment
agile manifesto
individuals and interactions»_space; processes and tools
working software»_space; comprehensive documentation
customer collaboration»_space; contract negotiation
responding to change»_space; following a plan
agile principles
user involvement is imperative
team must be empowered to make decisions
requirements evolve but timescale is fixed
capture requirements at a high level
iterative and incremental approach
frequent delivery
complete each feature before moving on
testing is integrated throughout
collaborative and cooperative approach with stakeholders
prototyping model
build a prototype to get user feedback. used to acquire and validate the requirements and assess feasibility of project, constraints and requirements.
evolutional prototyping model
prototyping evolves into the final system, avoiding throwaway prototypes. development of exploratory types of systems like intelligent systems. not good if we need a predictable schedule
benefits of a software methodology
helps dev team focus on important tasks
improves collaboration and communication
improves software productivity and quality
forms the basis for progress improvement because there are measures of progress
basis for process automation because large portions of the steps can be mechanically done
facilitates training of newcomers and enables less experienced developers to produce quality software
types of methodologies
normative: based on solutions or steps known to work
rational: based on methods and techniques
participative: stakeholder based and aspects of customers involvement
heuristic: based on lesson’s learned
roles in scrum methodology
product owner, scrum master, development team
hooker, prop, rest of the forwards…
scrum process
backlog prioritisation
sprint planning
daily scrum meetings
sprint execution
sprint review and retrospective