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