













Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Material Type: Notes; Professor: Padua-Perez; Class: OBJECT-ORIENTED PROG II; Subject: Computer Science; University: University of Maryland; Term: Spring 2008;
Typology: Study notes
1 / 21
This page cannot be seen from the preview
Don't miss anything!














Overview
Waterfall Iterative
Level of understanding Cost of change
Waterfall Model
Perform steps in order Begin new step only when previous step is complete Result of each step flow into next step
Waterfall Model
Simple Predictable results Software follows specifications Reasonable for small projects
In real life May need to return to previous step Steps may be more integrated Steps may occur at same time Unworkable for large projects
Iterative Software Development
Emphasize adaptability instead of predictability Respond to changes in customer requirements
Unified model Agile software development Extreme programming (XP)
Unified Model
Multiple iterations of software development Development treated as mini-waterfalls Emphasis gradually shifts from specification to testing
Agile Software Development
Based on iterative development Short iterations (timeboxes) lasting 1- 4 weeks Working software as principal measure of progress Produced at end of each iteration Adds a more people-centric viewpoint Face-to-face communication preferred Co- locate programmers, testers, “customers” Relies on adapting to feedback rather than planning as the primary control mechanism Less specification & documentation
Extreme Programming (XP)
Iterative, adaptive software development
Followed by managers & programmers Intended to encourage a set of values
Small teams Rapidly-changing requirements
Extreme Programming Practices
Pairs of programmers combine software development efforts at one computer Especially useful for novice programmers
Tests are designed first, before writing software
Tests performed throughout development process
Customer available at all times to answer questions
Formal Methods
Specification, development, and verification Software and hardware systems
Safety Security
0 – Informal implementation of formal specifications 1 – Formal code development & verification 2 – Theorem prover to ensure correctness
Do You Understand The Problem?
Examples Provide a web interface for student applications Allow users to view and manipulate photographs Build a better search engine
To understand how users can effectively use it
What Is The Cost Of Change?
Most coding already complete Realize need to change something In the design Or even the requirements
If hugely expensive Better get requirements & design right Before completing too much code
Sometimes, Change Is Still Expensive
Is key nexus in a large system Affects many lines of code Interacts with co-designed hardware May need to change hardware design Interacts with software being developed externally Can’t easily change API once published
How Many People Interact With Its Design?
Part of the cost of change Need to alert / consult people on design change Design changes that interact with a lot of people Expensive and need to be minimized Try to get design choices right early and documented