CSE360 Exam 1
Applications of Waterfall
Embedded systems Large systems across multiple companies safety critical systems
Scheduling principles
Compartmentalization: define distinct tasks inter dependency: indicate task interrelationship time allocation: work units, start/stop date, full/part time effort validation: be sure resources are available defined responsibilities: people must be assigned defined outcomes; each task must have an output defined milestones; review for quality
PERT planning
1. identify the specific activities and milestones 2. determine the proper sequence fo the activities 3. construct a network diagram 4. estimate the time required for each activity 5. determine the critical path 6. update the PERT chart as the project progresses
Software Engineering Code of Ethics and Professional Practice was developed by?
ACM/IEEE-CS Joint Task Force
A prototype
Can be used in the development of user interface can help with the elicitation of requirements
People management
Consistency, respect, inclusion, honesty
Prototyping
Establish Prototype objectives (prototyping plan), define functionality (Outline definition), Develop (executable prototype), Evaluate Prototype (Evaluation Report)
Scrum features
Development work is partitioned into "packets" Testing and documentation are on-going as the product is constructed Work occurs in "sprints" and is derived from a "backlog" of existing requirements Meetings are very short and sometimes conducted without chairs "demos" are delivered to the customer with the time-box allocated
Agile process
Human factors: process molds around the team test driven development: write tests before the code test automation: nightly builds are tested Customer involvement Pair programming Project management refactoring
SEI capability maturity model:
Initial: Essentially uncontrolled Repeatable: Product management procedures defined and used Defined: Process management procedures and strategies defined and used Quantitatively Managed: Optimizing:
Process improvement
Introduced in the late 1980's so that the US DoD could assess defense contractors
EXAMPLE: A project is planned to take 3 weeks with the following budget Week 1 $1000 Week 2 $2000 Week 3 $2000 Status at end of week 2 Week 1 work complete at cost of $1000 Week 2 work 50% complete at cost of $2000
PV = Budget to be done = 1000+2000 = $3000 EV = Complete + half = 1000+1000 = $2000 AC = total spent = $3000 BAC = total budget = $5000 CV = EV-AC = $2000-$3000 = $1000 over budget CPI = EV/AC = $2000/$3000 = $0.67 worth of work for every $1 spent SV = EV-PV = $2000-$3000 = -$1000 behind schedule SPI = EV/PV = $2000/$3000 = 67% Progressing at rate of 67% EAC = BAC/CPI = $5000/.67 = $74 ETC = EAC - AC = $7463-$3000 = $4463 VAC = BAC - EAC = $5000 - $7463 = -$2463
PV & BCWS EV & BCWP AC & ACP BAC EAC ETC VAC
Planned value earned value actual cost budget at completion estimate at completion estimate to complete variance at completion
Process improvement
Process measurement: measure an attribute about your development process, for a baseline Process analysis: current process is assessed, and process weaknesses are identified Process change: changes are proposed to handle weaknesses
Scrum roles
Product owner: communicating vision of product to team represents the customers interest has most authority Scrum master: liaison between the product owner and the team works to remove any impediments that are obstructing the team from achieving its sprint goals team members: responsible for completing the work
In the plan-driven software process, which activities create test plans?
Requirements specification, system specification, component design, and system design
Risk management process
Risk identification (list of potential risks), Risk analysis (prioritize list), risk planning (risk avoidance and contingency plans), risk monitoring (risk assessment)
Schedule performance index schedule variance percent scheduled for completion percent complete
SPI = BCWP/BCWS SV = BCWP - BCWS psfc = BCWS/BAC Percent complete: BCWP/BAC
SEI
Software Engineering Institute: Created over 30 years ago at carnegie melon sponsored by the DOD
Software Process
Specification, development (design and implementation), validation, evolution
Waterfall
plan driven, separate distinct phases Requirements Definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance Drawback: inflexible accommodating change. appropriate when requirements are well understood
agile
planning is incremental, change to customer requirements
plan driven
processes where all of the process activities are planned in advance
Scrum
agile method that focuses on managing iterative development rather than specific agile practices 3 phases: Outline planning phases where you establish the general objectives for the project and design the software architecture Sprint cycles: each cycle develops an increment of the system project closure: finish the project, finish documentation (manuals, etc)
Integration and Configuration
assembled from existing configurable components
BAC
budget at completion, sum of all BCWS
UML
circles = task square = outcome
budgeted cost of work scheduled (BCWS)
effort planned for work task determine progress at a given point along the project schedule, the value of BCWS is the sum of the BCWS values for all work tasks that should have been completed by that point in time on the project schedule
Agile methods
focus on the code rather than the design are based on iterative approach to software development are intended to deliver working software quickly and evolve quickly to meet changing requirements The aim of agile methods is to reduce overheads in the software process (e.g. by limiting documentation) and to be able to respond quickly to changing requirements without excessive rework
CV (cost variance) SV (schedule variance) CPI (cost performance index) SPI (schedule performance index) ETC (estimate to completion) VAC (variance at completion)
formulas: CV = EV-AC (negative over budget, positive under budget) SV = EV-PV (negative behind schedule, positive ahead of schedule) CPI = EV/AV (we are getting $__ worth of work out of every dollar spent SPI = EV/PV (we are progressing at ___% of the rate originally planned ETC = EAC-AC (how much more will the project cost) VAC = BAC-EAC (how much under or over budget will we be at the end of the project)
effort allocation
front end: 40-50% construction activities: 15-20% testing and installation: 30-40%
Scheduling process
identify activities identify activity dependencies estimate resources for activities allocate people to activities create project charts
SE Code of Ethics covers..
public, management, colleagues, and responsibilities of self
User Scenario vs Story
scenario--long description for the use of the product; can include multiple requirements story: As a <some type of user>, I want <some feature> so I can <rationale>
Incremental
specification, development and validation are interleaved.. plan driven or agile Outline description, then concurrently specification, development, and validation Initial, intermediate and final versions easier to accommodate change, get feedback, more rapid delivery
BCWP (budgeted cost of work performed)
sum of tasks performed
Actual cost of work performed, ACWP
the sum of the effort actually expended on work tasks that have been completed by a point in time on the project schedule CPI = cost performance index = BCWP/ACWP CV = Cost variance = BCWP - ACWP