Week 2: Software Process - CS 427
software process
A framework for the tasks that are required to build high-quality software. Alternatively, a set of activities performed toward a specific purpose.
LS - ES (also LF - EF works, but we aren't given LF)
How to calculate slack time? (ES = earliest time when the activity can be started. LS = latest time when the activity must be started. CR = Critical path length. EF = earliest finish time)
E
Which of the following belong to the support phase of IEEE 1074? A) Evaluation B) Software configuration management C) Documentation development D) Training E) All of the above
D
Which of the following is NOT a benefit of pair programming? A) Happier programmers B) Higher quality code C) Higher efficiency D) Better planning
A
Which of the following is a major reason to choose a PERT chart over a Gantt chart? A) Need to find a critical path B) Managing tasks while project is happening C) Need to show dependencies D) Project has few dependencies
A
Which of the following is a reason NOT to choose the Scrum process? A) Product features have high inter-dependencies and are difficult to be split into potentially shippable increments. B) Team members have very high skills. C) Customers have changing requirements. D) Requirement changes are unpredictable.
A (because the waterfall process is a plan-based approach, and plan-based approaches should be used when the requirements don't change much)
Which of the following is a situation under which using a waterfall model may be undesirable? A) Frequently changing requirements B) Mission-critical use case C) Customer with clear objective D) Large development team
C
Which of the following is not an XP practice? A) Frequently rewriting code without changing behavior B) Pair programming C) Write formal specifications after implementations D) Plan each iteration at the beginning of the iteration
B
Which of the following is not part of pre-development? A) Concept exploration B) Project planning C) System allocation D) System importation
D
Which of the following is not part of project management? A) Project initiation B) Project planning C) Project monitoring and control D) Requirements solicitation
B
Which of the following process model is a risk-driven one? A) Waterfall B) Spiral C) RUP
elapsed time
The amount of time that passes on the clock to do a user story or feature. Ex: 2 to 2.5 hours for an NBA game.
A
Which of the following is an Agile process? A) eXtreme programming B) Waterfall C) RUP D) Bazaar
waterfall model (process: requirements analysis -> design checking -> implementation and unit testing -> integration and system testing -> maintenance regression testing)
(Plan-driven) A breakdown of project activities into linear sequential phases, meaning they are passed down onto each other, where each phase depends on the previous one.
spiral model
(Plan-driven) An abstract description of the systems life cycle where there are four defined quadrants: -Determine objectives -Identify and resolve risks -Development and test -Plan the next iteration Once one stage of development has gone full circle, the next please takes place, and so on until completion.
rational unified process (RUP)
(Plan-driven) An object-oriented systems development methodology. Establishes four phases of development: inception, elaboration, construction, and transition. Each phase is organized into a number of separate iterations.
F
(T/F): A recent trend in the software industry is that Waterfall process is outdated and Agile process should be always preferred.
F (agile development is more tolerant towards experienced programmers)
(T/F): Agile development is more tolerant toward a team with mostly novice programmers
F (customers write the user stories and choose stories to match the given budget, ex: 12 weeks)
(T/F): In a planning game, a developer should write a concise user story and assign reasonable story points
T
(T/F): In a waterfall process, one should move to the next phase only when its preceding phase is reviewed and verified.
F (risk management reduces the loss of risk items BEFORE the loss might happen)
(T/F): Risk management reduces the loss of risk items after the loss happens
F
(T/F): The more experienced programmer should take the role of driver in pair programming
F (it's part of the implementation phase; system testing is part of the integration phase)
(T/F): Unit testing is part of Integration phase in the modified waterfall process.
PERT (Program Evaluation and Review Technique)
-Model for project management and planning -Represents tasks and their dependencies -Estimates amount of time for each task -Compute the time for the entire project and the critical path
A
A software system contains two components. Between the following two practices, which one will usually cost fewer man-hours to produce the two components? A) Two developers working in parallel B) Two developers engaging in pair-programming developing the components sequentially
C (the scrum model is an agile model, and agile models should be used when requirements can change frequently and the project is a low-stakes one; the waterfall and spiral models are plan-driven)
A team of 6 developers have been assigned to develop a web application to monitor statuses of the used 3rd party services (whose requirements can be updated frequently and which are not mission/financial/safety-critical ones). Which of the following software development models best suits the purpose? A) Waterfall Model B) Spiral Model C) Scrum Model D) Chaos Model
C (this is wrong because a culture with more predictability and order is true for plan-driven approaches while the opposite is true for agile approaches)
A team of software engineers decide to use Agile methodology for their new software project. Which of the following is not a justifying reason for their choice? A) The customers are constantly anticipating new features for the software to be developed B) As a start-up company, the development team is rather small C) In a recently conducted questionnaire, the software engineers in the team commonly indicate that they prefer an ordered culture D) Majority of the software engineers in the team are having high skill levels, being hired from top software companies in recent years.
project velocity
A team's rate of progress based on the amount of work done in the previous iteration(s)
gantt chart
A time and activity bar chart that is used for planning, managing, and controlling major programs that have a distinct beginning and end.
story point
A unit of measurement for expressing the overall size of a user story or feature.
project management, pre-development, development, post-development, support
Activity groups in IEEE 1074 (5)
eXtreme Programming (XP)
An agile process (radically different from waterfall) with the following big ideas: -Don't write too much documentation (working code is the main written product) -Implement features one by one (iterative process) -Release code frequently -Work closely with customer -Communicate with a lot of team members
scrum process
An agile process that works by stringing together a series of sprints to build incremental, viable products. A major advantage to this approach is that it is more flexible to requirement changes (which are very common).
plan-driven, agile
Criticality: If the project has high-stakes with respect to comfort, money, and/or lives, use the _________ process. If it's a low-stakes project, use the _________ process.
agile, plan-driven
Culture: If your team prefers less predictability and more change, use the _________ process. If your team prefers predictability and less change, use the _________ process.
distributed process
Dividing a task into component parts that can be processed on multiple computers, accessible to all on Internet (ex: Bazzar)
plan-driven, agile
Dynamism: If the project has a low level of requirements and technology changes, use the _________ process. If the project has a substantial level of both, use the _________ process.
slack
Extra time that is available for task completion (activities not on the critical path have this).
B
Extreme Programming (XP) has which of the following advantages? A) Comprehensive documentation is prepared throughout the process. B) The customers are closely engaged throughout the process, not just only the beginning. C) All features are released at once D) The resulting software has high fault tolerance.
C
In a PERT chart, which of the following statements is correct? A) An arrow edge between two events indicates the data flow across the two events. B) The label on the arrow edge represents the importance of the event. C) The graph for the PERT chart is a directed acyclic graph. D) Events on the critical path have slack time.
critical path
In a PERT network, the sequence of tasks that takes the longest time to complete
E
Which of the following belong to post-development activities? A Installation B) Maintenance C) Retirement D) Operation and support E) All of the above
size (of team), criticality, dynamism, personnel (skill level of team members), culture (predictability/order vs. change)
List the 5 critical factors to help you choose between agile vs. plan-driven methodology.
software requirements, design, implementation
List the parts of the development phase in IEEE 1074 (3).
agile, plan-driven
Personnel: If your team is highly skilled and adaptable, use the _________ process. If your team is less skilled or incapable/unwilling to collaborate, use the _________ process.
agile process
Prioritizing individuals and interactions, frequent delivery of working software, customer collaboration, and flexible response to change (ex: eXtreme Programming/XP, Scrum)
plan-driven process
Processes where all of the process activities are planned in advance and progress is measured against this plan (ex: waterfall, spiral, RUP, cleanroom)
B
Scrum Process does not include which of the following activities? A) Daily Scrum Meeting B) Quarterly Team Reflection C) Prioritizing Product-Backlog Tasks D) Delivering Product Increment After a Sprint
agile, plan-driven
Size: If your team has less than 12 people (or size of basketball team), you should use the __________ process. If your team has between 50 to 100 people (or size of football team), you should use the _________ process.
B
The Elaboration stage in the Rational Unified Process includes which of the following activities: A) Implement further improvement from initial version B) Implement initial version C) Determining features D) Testing/using the software
ideal time
The amount of time a user story or feature takes when stripped of all peripheral activities. Ex: 48 minutes for an NBA game
B
The preceding free lancer developer, Jane, decides to purchase an off-site backup plan. What type of risk mitigation strategy is she using? A) Risk avoidance B) Risk protection C) Risk acceptance D) Risk monitoring
risk management
To identify, address, and eliminate risk items BEFORE they become either threats to successful operation or major sources of software rework.
C
What is a desirable unit used for estimate time of a user story? A) Hour B) Man-hour C) Story point D) Linus
A
What is risk exposure? A) Expected value of loss B) Maximum loss possible C) Cost of project D) Probability of the loss
C (since these tasks all combine to take the longest)
What tasks should you give highest priority to optimize? A) Tasks with longest slack B) Tasks with shortest slack C) Tasks on the critical path D) Longest tasks
D
When is a programming task completed in XP? A) When refactoring completes B) When all system tests pass C) When an initial version is written D) When all unit tests pass
B
When is the initial version built in RUP? A) Inception B) Elaboration C) Construction D) Transition
B (waterfall is a plan-driven methodology, which is better for high stakes projects; other two choices are agile)
Which following process is suitable for developing a control module for a nuclear power plant? A) eXtreme Programming B) Waterfall C) Scrum
A, B
Which of the following are actions to mitigate risks of changing requirements? A) Iterative Development B) On-site customer C) Pair Programming D) Detailed Documentations
A, B, C, D, E
Which of the following are strategies of risk planning? A) Information Buying B) Contingency Plans C) Risk Reduction D) Risk Acceptance E) Risk Avoidance
A, C, D
Which of the following are true about pair programming (select multiple): A) Pair programming produces higher quality code B) Pair programming costs fewer man-hours to finish a project C) Pair should work on the same computer D) The roles of driver and observer should be periodically switched
D (plan-driven methodology is used for high-stake projects; software for rockets is the only high-stake project out of all the choices)
Which of the following projects prefers plan-driven methodology over agile methodology? A) Chatting-room website B) Video-game simulator C) Phone calculator D) Software for rockets
D
Which of the following situation belongs to risks in software development? Choose the single best answer. A) Late delivery B) Wrong feature requirement C) Team dissolution D) All of the above
D
Which of the followings is not a XP practice? A) Test-driven development B) Planning game C) Pair programming D) Sequential design
agile
Which process should a startup company that is developing a web app (which is a totally new kind in the market for gamification of music composition) choose?
C
Who are the most common writers for user stories (i.e., features)? A) Users B) Developers C) Customers
B
Who typically estimates the time (i.e., size) to do each user story? A) Users B) Developers C) Customers