Software Engineering I Overview

advertisement
Software Engineering I
Overview
Outline
•
•
•
•
•
1
Syllabus
Course Objectives
Schedule
Vision Paper
Software Engineering?
Syllabus
•
•
•
•
•
Course website
Contact information
Office hours
Textbook
Grades
2
July 24, 2016
Syllabus: Course Website
• http://classes.engr.oregonstate.edu/eecs/fall2014/cs361-501/
3
Syllabus: Contact Information
• Dr. Marc Rubin
• Cascades Hall 210
• marc.rubin@osucascades.edu
4
!!!
Syllabus: Office Hours
• Cascades Hall 210
• Tuesday / Thursday: 15:00 – 16:00
5
Syllabus: Textbook (optional)
• Software Engineering – Theory and Practice (4th Edition) by
Pfleeger & Atlee
6
Syllabus: Grades
•
•
•
•
40% Homework
30% Vision Statement (paper)
15% Midterm
15% Final
• Cheating will NOT be tolerated.
7
Outline
•
•
•
•
•
8
Syllabus
Course Objectives
Schedule
Vision Paper
Software Engineering?
Course Objectives
• 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.
• Model system requirements using one or more semi-formal
notations such as UML, dataflow diagrams, entity-relationship
diagrams, or state diagrams.
9
Course Objectives
• 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.
10
Course Objectives
• Participate effectively in a team environment.
• Produce professional-quality software-related documents.
• Develop and articulate content knowledge and critical thinking
in the discipline through frequent practice of informal and
formal writing.
11
Course Objectives
• Demonstrate knowledge/understanding of audience
expectations, genres, and conventions appropriate to
communicating in the discipline.
• Demonstrate the ability to compose a document of at least
2000 words through multiple aspects of writing, including
brainstorming, drafting, using sources appropriately, and
revising comprehensively after receiving feedback on a draft.
12
How to Learn..
13
What’s your learning style?
• Visual, Auditory, Read / Write, Kinesthetic
• http://www.vark-learn.com/english/page.asp?p=questionnaire
14
Course Objectives (Summary)
• Process
• Requirements
• Documentations
• Notations
15
• Design
• Validation
• Cost and Schedule
• Team
Outline
•
•
•
•
•
16
Syllabus
Course Objectives
Schedule
Vision Paper
Software Engineering?
Schedule
•
•
•
•
•
•
•
•
17
Process
Requirements
Design
Notations
Implementation
Testing
Deployment
…
Outline
•
•
•
•
•
18
Syllabus
Course Objectives
Schedule
Vision Paper
Software Engineering?
Vision Statement / Paper
• This is a Writing Intensive Course (WIC)
19
Vision Statement
• Final paper describing a software system that could change the
world
• Several milestones (Overview, Outline, Draft, Final paper)
• Credible sources
• Peer review
• First assignment due THIS FRIDAY!!!
• Vision statement overview
• (see “Vision Statement” on course website for requirements)
20
Break Time… Take 5-10
21
CS271
Outline
•
•
•
•
•
22
Syllabus
Course Objectives
Schedule
Vision Paper
Software Engineering?
Software Engineering?
“If you want to build a dog house, you can pretty much start with
a pile of lumber, some nails, and a few basic tools, such as a
hammer, saw, and tape measure. In a few hours, with little prior
planning, you'll likely end up with a dog house that's reasonably
functional...”
23
“… if you want to build a high-rise office building, it would be
infinitely stupid for you to start with a pile of lumber, some nails,
and a few basic tools. Because you are probably using other
people's money, they will demand to have input into the size,
shape, and style of the building.... You will want to do extensive
planning, because the cost of failure is high. You will be just a
part of a much larger group responsible for developing and
deploying the building, and so the team will need all sorts of
blueprints and models to communicate with one another....”
-Grady Booch
24
Software Engineering?
• Engineering is…
• Solving real-world problems
• … without harming others
• … without incurring excessive costs
• Software engineering uses computer software to solve
problems
• Examples?
25
Software Engineering?
• Difference between good and great software?
- Reliability
- Efficiency
- Integrity
- Usability
- Maintainability
26
- Testability
- Flexibility
- Portability
- Reusability
- Interoperability
Software Engineering?
Great software contains the right features for the right data
• Use cases: the activities a system supports
• E.g., Tweet a news item
• Entities: the kinds of objects that are involved in use cases
• E.g., Tweets, user accounts
• Attributes: the properties of the entities
• E.g., Tweets have timestamp, text, sender
• E.g., Twitter user account has: name, location
You can’t build a great software system until you understand
what it should do
27
Software Engineering?
Software Engineering is a team effort
28
Requirements
Analyst
Design
Designer
Implementation
Programmer
Testing
Tester
Deployment
Trainer
Software Engineering?
• How do you create great software?
• Professionalism
• Technical Skills
- Character
- Teamwork
- Planning
- Risk Management
- Design
- Implementation
- Quality control
All will be practiced in this course…
29
Next steps…
• Self assemble into groups of 3 (by next class)
• Software engineering group throughout semester
• Create cool team name..
• (If you cannot self assemble, I will select groups randomly)
• Write your Vision Statement Overview (due Friday!)
• Next lecture: Process
30
Download