COMP 4882 Capstone Software Project Spring 2012 Scott
- Slides: 33
COMP 4882: Capstone Software Project Spring 2012 Scott Fleming, Instructor http: //flic. kr/p/a. EMGu 4
Great software can make the world a better place What great software has made your life better? http: //flic. kr/p/4 k. Wis. E
Here’s some great software that I’ve used • Facebook: Helps me connect me with old friends • Photoshop: Helps me fix up my photos • Subversion: Helps me manage versions of my software projects • Power. Point: Helped me produce these slides ; -)
Of course not all software is great What bad software have you encountered? http: //flic. kr/p/7 p. Go. Cd
Here’s some bad software that I’ve used • Facebook: Ever try to manage access control/groups? • Photoshop: What does half this stuff even do? • Subversion: Argh! Forgot to use svn to manage files in working copy… again • Word 2009: Mind bogglingly buggy OK, so most software has pros and cons… So how can we produce software with more pros and fewer cons? ? ?
Making great software ain’t easy In fact, the “Software Crisis” has been going on since the 1960 s (More like a depression) Cutter Consortium 2002 survey on litigation (78% of organizations have had disputes ending in litigation) Standish Group data on 28, 000 software projects completed in 2000
In this course, you’ll learn how to reliably produce great software … … and how to avoid the bad http: //flic. kr/p/9 hoohu http: //flic. kr/p/2 v 8 gtd
What does software engineering mean to you? http: //flic. kr/p/9 ksx. Qa
Engineering is the creation of cost-effective solutions to practical problems by applying scientific knowledge to building things in the service of mankind Software engineering aims to do the same where “built things” are software systems http: //flic. kr/p/on. Sfr
Let’s focus on two important challenges in SE (1) Giving the customers what they want http: //flic. kr/p/6 X 2 i. PV (2) Cost-effectiveness http: //flic. kr/p/2 UJez. Y
Problem: Requirements http: //flic. kr/p/a 5 UCs
“The customer is always right!” But … Customers may change their minds Customers may not agree with each other Customers may not know exactly what they want http: //flic. kr/p/9 XVhu. K
Problem: Cost estimation http: //flic. kr/p/an. Rib
Spectacular failure: Denver Int’l Airport baggage-handling system
Problem: Bugs http: //flic. kr/p/6 Pxibn
Spectacular failure: Therac-25 radiation therapy machine
Problem: Maintenance http: //flic. kr/p/5 U 934 t
All successful software will change over time But such change can lead to design erosion
What ways have you heard of for coping with these problems? http: //flic. kr/p/9 ksx. Qa
In this course, you’ll use four approaches for coping with the challenges of software engineering Agile development Iterative development Test-driven development Object-oriented analysis and design http: //flic. kr/p/a 314 v 9
Values of Agile Development From the Agile Manifesto Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan http: //flic. kr/p/6 Ag 67 y
Iterative development process Go around in this loop Each time around is an iteration Iterations are timeboxed http: //en. wikipedia. org/wiki/File: Iterative_development_model_V 2. jpg
Test-driven development Write the tests before the code!
Object-oriented analysis and design OOA applies object modeling to understand the requirements for the system OOD elaborates analysis models specify how the system should work (i. e. , how the system should do it) http: //flic. kr/p/NT 667 (i. e. , what the system should do)
OOA/D is best understood with an example Consider a dice game in which software simulates a player rolling two dice. • If the total is seven, the player wins • Otherwise, he/she loses http: //flic. kr/p/4 Au. KRy
Define use cases Analysis Use cases UC Play a dice game: Player requests to roll the dice. System presents results. If the dice face value totals seven, player wins; otherwise player loses Design
Define a domain model Analysis Use cases Domain model Design
Assign object responsibilities and draw interaction diagrams Analysis Use cases Domain model Design Interaction diagrams
Define design class diagrams Analysis Use cases Domain model Design Interaction diagrams Design class diagrams
Why is this OOA/D process useful? http: //flic. kr/p/9 ksx. Qa
Why is this OOA/D process useful? Lowers representation gap between software components and our mental models of the problem domain
How does OOA/D fit into an iterative process? http: //flic. kr/p/9 ksx. Qa
Closing thought: To effectively apply these approaches requires a lot of experience Let’s take a look at the syllabus to see how you’re going to get that experience
- Middle school capstone project ideas
- Capstone paper outline
- Cybersecurity capstone
- Culinary capstone project
- Bdm capstone project
- Mini capstone project
- Java capstone project
- Capstone project
- Capstone project portfolio
- Career life connections capstone project examples
- Pasco capstone software
- Bae yong-kyun
- Spring autumn winter
- Iteration workflows in software project management
- What is strategic assessment in software project management
- Integrating metrics within the software process
- Improving software economics geeksforgeeks
- Experience in culminating activity
- Capstone tracking
- Enrollment system capstone
- Wharton business foundations capstone
- Renee lawson hardy today
- Capstone approach to records management
- Pasco capstone
- Vulnerability capstone
- Vulnerability capstone
- Ap capstone quest
- Capstone logiciel
- Capstone video games
- Capstone video games
- Ucf cheating scandal
- Me 4182
- Cwru crec
- Saints row