Presentation is loading. Please wait.

Presentation is loading. Please wait.

COMP/EECE 4081 Software Engineering

Similar presentations


Presentation on theme: "COMP/EECE 4081 Software Engineering"— Presentation transcript:

1 COMP/EECE 4081 Software Engineering
Unhappy with today? Design tomorrow. COMP/EECE 4081 Software Engineering Falun Gong Protest

2 Making the world a better place with software
The Good Making the world a better place with software

3 Poverty

4 Reducing poverty with software
Kiva Microfunds (commonly known by its domain name, Kiva.org) is an organization that allows people to lend money via the Internet to microfinance institutions in developing countries around the world and in the United States, which in turn lend the money to small businesses and students. [

5 Addiction

6 Supporting counseling with software

7 Natural Disaster A bridge destroyed by flood waters in the Swat Valley, Pakistan (11 Aug 2010). Photo by U.S. Army Sgt. Monica K. Smith

8 Raising money for relief with software
mGive, founded in 2005, is a Denver based Wireless Application Service Provider.[1] mGive offers mobile giving services, and is an approved mGive Foundation Wireless Application Service Provider. mGive introduced text message donations February 1, 2008 with the launch of a mobile giving campaign for the United Way. [

9 Pollution Dominican Republic

10 Reducing energy consumption with software
The HVAC Service Assistant™ collects all necessary data to detect every fault and degradation found in air conditioning refrigeration cycles and then informs the service technician of the existence of these conditions, the impact of these faults on energy consumption and the available savings potential. It also suggests effective ways to mitigate these problems. When data collected by the HVAC Service Assistant™ is synchronized to servers, custom reporting permits technicians, facility owners and service managers to document the operating conditions of every unit and every circuit both before and after service measures are performed. [

11 Repression Iran protests

12 Fomenting revolution with software

13 Engineering is… Solving real-world problems … … without making the world worse … … and without incurring excessive costs. Software engineering is doing all that by creating software.

14 The Bad … without making the world worse … … and without incurring excessive costs.

15 Therac-25 Radiation Therapy Machine
6 overdoses between Jun ‘85 and Jan ‘87. First overdose: Breast cancer “tremendous force of heat… this red-hot sensation” Reddening, swelling in front; later matching back; tremendous pain Lost breast and lost use of arm, shoulder 15,000-20,000 rad overdose; 200 rad normal dose; 1000 to whole body will kill Manufacturer and operators refused to implicate Therac-25 Other cases were similar; one for skin cancer on face resulted in death in one month

16 The Bad … without making the world worse … … and without incurring excessive costs.

17 Denver Int’l Airport Largest international airport in the US
Scheduled to open in Oct ‘93; actually opened in Feb ‘95 Had to buy back up system and scale back first system after deadline had passed System never did work as intended and was retired in 2005 Problems both managerial and technical Hard to get precise figures on how over-budget, but one estimate at $3.2 billion

18 Standish Group data on 28,000 software projects completed in 2000
The Ugly “The Software Crisis” Since the 60s! More like depression Standish Group data on 28,000 software projects completed in 2000 So where are these projects going wrong? Cutter Consortium 2002 survey on litigation (78% of organizations have had disputes ending in litigation)

19 Software is not enough— you also need people and context
Kiva borrowers Web application Database Kiva donators System Boundary PHP runtime environment (Zend?) Database server (Mysql?) Web server (Apache?) If you don’t really understand your users and context, you’re in for trouble. Many problems happen at the system boundary! Operating system (Linux?) hardware (Linux?)

20 Where’s the system boundary? Some diagrams are more helpful than others! You’ll learn some good notations in this class. BTW, here’s a, shall we say, unhelpful architectural diagram.

21 What is the difference between good software and great software?
The quality attributes of great software: Reliability Efficiency Integrity Usability Maintainability Testability Flexibility Portability Reusability Interoperability Even if you’ve understood the people and context of the project, there’s more… Different projects call for different priorities!

22 Great software contains the right features for the right data.
Use cases = the activities a system supports e.g.: tweet a vote report, view delays on map Entities = the kinds of objects that are involved in use cases e.g.: tweets, user accounts, polling locations, maps Attributes = the properties of the entities e.g.: tweets have: timestamp, text, sender Of course, all this hinges on your ability to build the right system. You may have noticed that this is turning into a lot of work… You can’t build a great system until you understand what it should do.

23 Software engineering is a team effort.
Analyst Requirements Designer Design Programmer Implementation Engineering “real” software is a considerable undertaking. You’ll need help! These are really roles. So what does a team bring to the table? Testing Tester Trainer System Delivery

24 How do you create great software?
Professionalism Character Teamwork Planning Risk management Technical skills Design Implementation Quality control All of these are necessary. Not a single one is optional. All will be practiced in this course.

25 Course Objectives At the completion of the course, students will be able to...
Select the most appropriate software process model to use in a particular situation Synthesize requirements for a realistic software system and write a requirements specification document Produce professional-quality software-related documents Model system requirements using one or more semi-formal notations such as UML, dataflow diagrams, entity-relationship diagrams, or state diagrams Design software systems at an architectural level and at lower levels, using one or more techniques, such as object-oriented design or agile methods, and express these designs in design specification documents Validate designs and adjust the specification or design as necessary Describe several methods of estimating the cost and developing a schedule for a programming project Participate effectively in a team environment

26 Course Outline You each draft a vision… a system that you would like to see. We get you organized into teams, 1 vision per team. Each team does homeworks to design the envisioned system. Each person does a midterm exam. You each update your vision. We get organized into new teams, 1 vision per team. Each team does homeworks to create the envisioned system. Each team does a final presentation on their system. Each person does a final exam.

27 Teamwork Most homeworks will be done in teams. Usually, all students in a team will receive the same grade on each homework. I will assign you to teams based on which of your classmates’ vision statements are most interesting to you. Any team can ask me to fire a teammate on or before the day that the team’s first homework is due. You need to have a good reason for firing teammates. I must approve all firings. Fired students may band together into a new team. See regulations on the course web site.

28 = slide has a good chance of being on the midterm or final exams.
Grading HW1: individual HW2-5: team work on vision #1 HW7-9: team work on vision #2 Individual midterm Individual final exam See course website for additional information on grading, academic integrity, and other policies. = 55% of your grade = 12% of your grade = 33% of your grade = slide has a good chance of being on the midterm or final exams.

29 First opportunity for extra credit: Vision statement
A description of a system that you think could change the world for the better DUE BEFORE NEXT CLASS!!!!! 1 or 2 extra credit points (HW) for making an effort Or 10 extra credit points if your vision statement is chosen by popular vote for use by a team during the first or second half of this term

30 Where do you go from here?
Read over the course web site your vision statement (PDF format) to Dr. Fleming and Danielle We must receive it prior to start of class on Thursday You’ll vote on visions this weekend so I can put you into teams.

31 Copyright (c) Christopher Scaffidi 2009 All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of Oregon State University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Modified by Scott D. Fleming 2011.


Download ppt "COMP/EECE 4081 Software Engineering"

Similar presentations


Ads by Google