Top Banner
1/7/14 1 1 CS361: Software Engineering I Introduction Todays goals Meet the personnel What is software engineering? Is CS361 for me? How can I be successful? 1-2 Personnel 1-3 Danny Dig, prof Ajinkya Patil, TA CS361 is different Deep learning in an active learning environment clickers: check knowledge and practice critical thinking group activities interviews with industry leaders extensive reviews of others design, code, etc. CS361 1-4 CS361 1-5 Class wiki https://secure.engr.oregonstate.edu/classes/eecs/ winter2014/cs361-001/ https://piazza.com/oregonstate/winter2014/ cs361_001/home CS361 1-6 What is S.E.? Not a process! The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines. The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.
6

cs361-01handoutdig.cs.illinois.edu/papers/cs361-01.pdf · 2014-01-08 · Danny Dig, prof Ajinkya Patil, TA CS361 is different Deep learning in an active learning environment clickers:

Jul 19, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: cs361-01handoutdig.cs.illinois.edu/papers/cs361-01.pdf · 2014-01-08 · Danny Dig, prof Ajinkya Patil, TA CS361 is different Deep learning in an active learning environment clickers:

1/7/14

1

1

CS361: Software Engineering I

Introduction

Today’s goals

❚  Meet the personnel ❚  What is software engineering? ❚  Is CS361 for me? How can I be

successful?

1-2

Personnel

1-3

Danny Dig, prof Ajinkya Patil, TA

CS361 is different

❚  Deep learning in an active learning environment ❙  clickers: check knowledge and practice critical

thinking ❙  group activities ❙  interviews with industry leaders ❙  extensive reviews of others design, code, etc.

CS361 1-4

CS361 1-5

Class wiki https://secure.engr.oregonstate.edu/classes/eecs/winter2014/cs361-001/

https://piazza.com/oregonstate/winter2014/cs361_001/home CS361 1-6

What is S.E.?

❚  Not a process! ❚  The establishment and use of sound

engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.

❚  The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.

Page 2: cs361-01handoutdig.cs.illinois.edu/papers/cs361-01.pdf · 2014-01-08 · Danny Dig, prof Ajinkya Patil, TA CS361 is different Deep learning in an active learning environment clickers:

1/7/14

2

CS361 1-7

Things we study in S.E.

❚  Process ❚  Tools ❚  Techniques ❚  Models (of software development) ❚  Modeling (of systems we develop)

CS361 1-8

Activities in the process

❚  CS361 ❙  requirements, architecture, design,

management, planning

❚  CS362 ❙  metrics, configuration management, testing,

debugging, reverse engineering, refactoring

Defined processes

❚  Agile ❙  eXtreme Programming (XP), Scrum

❚  Formal ❙  Rational Unified Process, Cleanroom

❚  Distributed, open-source ❙  Bazaar

❚  Solo ❚  Crowdsourcing

1-9 CS361 1-10

Process

❚  Roles ❙  XP: Customer, Developer, Coach

❚  Activities ❙  XP: Write stories, planning game, test-first,

pair programming, continuous integration, refactoring

❚  Work products ❙  XP: Stories, tests, code

CS361 1-11

Purpose of course

❚  Be able to understand and follow your project’s process

❚  Be able to improve your process ❚  Be able to design the right process for your

project ❚  Practice steps that are common to most

processes (requirements solicitation, design, testing, documentation)

❚  Apply typical tools (IDE, SCM, UML)

CS361 1-12

Project

Team project – 8 people Various topics Opportunity to practice Process should start with XP Must document process you use Must convince us you follow process you

documented

Page 3: cs361-01handoutdig.cs.illinois.edu/papers/cs361-01.pdf · 2014-01-08 · Danny Dig, prof Ajinkya Patil, TA CS361 is different Deep learning in an active learning environment clickers:

1/7/14

3

CS361 1-13

Project lifecycle

❚  Propose project (Phase 1) ❚  Form team (Phase 2) ❚  Develop ❚  Deliver code, documentation, tests

❚  Graded on process during development + quality of what you deliver

CS361 1-14

Project facts

❚  Test first ❚  Must use UML to document, thus use an

OO language ❚  Must practice proper configuration

management ❚  Must manage requirements ❚  If project is successful, must have a plan

for how to keep it going after the semester ends

Projects with real customer

Example: Power10 Rowing (startup company in Corvallis)

Benefits of working with real customer: -  customer helps to figure out requirements -  exposure to real world -  happy customers write great letters -  strong bullet on your CV -  long-lasting impact

CS361 1-15 CS361 1-16

Project proposal

❚  Proposal: do we want to follow this plan? ❙  What is it? ❙  Is it worth doing? What is the cost? The

benefit? ❙  Can we do it? Is the plan reasonable?

CS361 1-17

Project Proposal

❚  Looks like final documentation ❙  Analysis of problem, users, ❙  Architecture, technology

❚  Plan, not reality ❙  Schedule ❙  Risks, and how to deal with them

CS361 1-18

Project proposal

❚  Meeting times ❚  Number of hours per week of work ❙  at least 6 hours, but some teams get excited and

work harder

Award for best project, given at the end of the term

Page 4: cs361-01handoutdig.cs.illinois.edu/papers/cs361-01.pdf · 2014-01-08 · Danny Dig, prof Ajinkya Patil, TA CS361 is different Deep learning in an active learning environment clickers:

1/7/14

4

Group activity

❚  Describe a project idea: - problem, - users, - architecture, - technology

CS361 1-19 CS361 1-20

First homework

❚  In pairs, write proposals on wiki ❙  We already asked you for your partner

preference ❙  You can still make changes today. Pair is

locked after midnight today. ❙  If you drop the class, do it now, so that we

can still fix the partners for HW1

❚  Due Friday, Jan 10th, at midnight

CS361 1-21

Afterwards

❚  We will make list of accepted proposals ❚  You should form teams of 8 ❚  Ask proposal-leaders for permission to join

❚  There will be a meeting for everyone not on a team the following Tue, Jan 14th, right after class.

Textbooks

❚  UML Distilled - Fowler

CS361 1-22

CS361 1-23

Writing intensive Course (WIC)

❚  Advanced Composition requirement ❚  Requires multiple revision of documents ❚  We will use: ❙  Style: Toward Clarity and Grace ❙  by Joseph Williams

CS361 1-24

Advanced Comp: What we will do

❚  Start with 5 pages of your own writing ❚  Each session, mark up the paper following

the rules of the chapter. ❚  Hand in old version with markup in colored

ink (blue, green) ❚  After you get the paper back, enter

changes, print it off, and start next session

Page 5: cs361-01handoutdig.cs.illinois.edu/papers/cs361-01.pdf · 2014-01-08 · Danny Dig, prof Ajinkya Patil, TA CS361 is different Deep learning in an active learning environment clickers:

1/7/14

5

CS361 1-25

Advanced Comp: What we will do

❚  Zero’th version (no reading required) due next Tue, January 14. ❙  5 pages from any document you wrote ❙  Non-fiction, full paragraphs

❚  See WIKI Writing+Assignments ❚  First revision due Jan 28

CS361 1-26

Advanced Comp: Grading

❚  Pass / fail ❚  You can keep trying until you pass ❚  If you fail, meet with grader ❚  If you don’t pass the Advanced Comp,

you will fail the entire course.

How we assess progress

❚  40% individual, 60% team-based

❚  Class activity: clicker 10% ❚  Homeworks: 20% ❚  Final Exam: 30% ❚  Project: 40% ❚  Extra Credit

1-27

How we assess progress

❚  Homeworks ❙  Build up your muscle for the project ❙  Work in pairs ❙  Extensive reviews of others design, code,

documentation, etc.

❚  Project ❙  Work in teams of 8

❚  One final exam 1-28

Campus policies

❚  Academic integrity - Code of ethics

❚  Special accommodations

1-29

Class testimonials

“Looking back, the SE class was definitely one of the useful classes I took in college and keep using the basic principles (…) almost daily at my job” Alum, now at Citadel Investment Group

“The biggest thing that the SE class did for me was to give me a sense of the

Real World (tm). Much of the work was thought-provoking and exciting. Software Engineering and the Senior Projects both gave a sense of how to work in teams, how to engineer solutions to specific technical challenges. I think having a balance of deep technical issues (most of the classwork) and real-life challenges and approaches is critical to being successful in the field (software development) MOST of us ended up.”

Mike Duff – software architect Chicago Mercantile Exchange

1-30

Page 6: cs361-01handoutdig.cs.illinois.edu/papers/cs361-01.pdf · 2014-01-08 · Danny Dig, prof Ajinkya Patil, TA CS361 is different Deep learning in an active learning environment clickers:

1/7/14

6

Class testimonials

“I've been working as Quality Engineer for the past 6 months now, and I must say: the lessons learned in SoftEng I and II have been invaluable to say the least. No other class has prepared me for the real world as well as those two classes have. The knowledge I gained on development methodologies in particular have made the transition into the working world extremely easy.”

Alum 2013, now at SalesForce

1-31