Title: Unhappy with today
1Unhappy with today?
Design tomorrow.
CS361Software Engineering I
http//www.flickr.com/photos/bespoke/2692422909/
2Poverty
http//www.flickr.com/photos/uncultured/1816486020
/
3Reducing poverty with software
http//www.kiva.org
4Addiction
http//www.flickr.com/photos/fixe/2846866094/
5Supporting counseling with software
http//cf.polarishealth.com/demo/start_demo.html
6Natural Disaster
http//www.flickr.com/photos/tidewatermuse/3896340
6/in/set-866494/
7Locating disaster victims with software
http//www.publicpeoplelocator.com/
8Pollution
http//www.flickr.com/photos/virgomerry/86976318/
9Reducing energy consumption with software
http//www.fielddiagnostics.com/serviceassistant.c
fm
10Repression
http//www.flickr.com/photos/arasmus/3629119935/
11Fomenting revolution with software
http//www.time.com/time/world/article/0,8599,1905
125,00.html
12Engineering is
- Solving real-world problems
- without making the world worse
- and without incurring excessive costs.
- Software engineering is doing all that
- by creating software.
13Software is not enoughyou also need people and
context
Database
Web application
Hurricane survivors
Friends and family
System Boundary
PHP runtimeenvironment (Zend?)
Databaseserver (Mysql?)
Web server(Apache?)
Operating system(Linux?)
hardware(Linux?)
14Wheres the system boundary?
http//votereport.pbworks.com/FrontPage
15What 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
16Great 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 objects involved in use cases
supported by the system - e.g. tweets, user accounts, polling locations,
maps - Attributes the properties of the entities
- e.g. tweets have timestamp, text, sender
You cant build a great system until you
understand what it should do.
17Software engineering is a team effort.
Analyst
Requirements
Designer
Design
Programmer
Implementation
Tester
Testing
Trainer
System Delivery
18How 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.
19Course 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
20Course ObjectivesTo train you in...
- process a sequence of activities intended to
design and produce software - requirements a description of what software
should do and should be - documents representations of requirements,
designs, and systems - notations the rules for what those documents
should look like - design a description of something that could be
created - validate making sure that something is what it
should be - cost and schedule the amount of money and time
expended on creating a system - team people striving toward a common goal
21Basic Course Information
- web.engr.oregonstate.edu/cscaffid/courses/CS361_W
10 - Instructor Prof. Chris Scaffidi
- Lectures Tue Thu 4pm-520pm, MLM 202
- Office hours Wed/Thu 3-4pm in KEC 3047
- Book Software Engineering, 4th Edition by
Pfleeger Atlee - Do your readings before you come to class,
please. - Exams will generally be 80 based on lectures,
20 on reading - Homework usually due electronically on Tuesdays
before lecture - Most homework will take your team a whole week to
complete.
22Course 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 design the envisioned
system. - Each team does a final presentation on their
system. - Each person does a final exam.
23Teamwork
- 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 teams 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.
24Grading
- HW1 individual
- HW2-5 team work on vision 1
- HW6 individual midterm (counts double)
- HW7-9 team work on vision 2
- Individual final exam
- See course website for additional information on
grading, academic integrity, and other policies.
Homework 2/3 of your grade
Final exam 1/3 of your grade
slide has a good chance of being on the midterm
or final exams.
25Where do you go from here?
- Read the syllabus on the course web site
- web.engr.oregonstate.edu/cscaffid/courses/CS361_
W10/ - Send your vision statement by Thursday
- Read the sections that assigned for Thursday
- Youll vote on visions this Friday so that I can
put you in teams over the weekend.