cmpsci 320 introduction to software engineering

14
1/20/11 1 CmpSci 320 Introduction to Software Engineering instructor: Professor Lori Clarke • office: 304 CS building office hours: TBD or by appointment • email: [email protected] voice: 545-1328 Class url:http://laser.cs.umass.edu/courses/cs320.Spring11/ Teaching Assistant: David Arbour • office: Office hours: TBD or by appointment • Email: [email protected] Introduction to Software Engineering

Upload: others

Post on 08-May-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CmpSci 320 Introduction to Software Engineering

1/20/11

1

CmpSci 320Introduction to Software Engineering

•  instructor: Professor Lori Clarke •  office: 304 CS building •  office hours: TBD or by appointment •  email: [email protected] •  voice: 545-1328 •  Class url:http://laser.cs.umass.edu/courses/cs320.Spring11/ ���

•  Teaching Assistant: David Arbour •  office: •  Office hours: TBD or by appointment •  Email: [email protected]

Introduction to Software Engineering

Page 2: CmpSci 320 Introduction to Software Engineering

1/20/11

2

Definition: Software Engineering   The study of systematic and effective

processes and technologies for supporting software development and maintenance activities ◦  Reduce cost ◦  Improve quality ◦  Establish predictability

Historical Perspective   1940s: computers invented,

machine language

  1950s: assembly language, FORTRAN first HLL

  1960s: COBOL, ALGOL, PL/1 operating systems e.g., OS360 ◦  1969 First conference on s/w engineering

Page 3: CmpSci 320 Introduction to Software Engineering

1/20/11

3

Historical Perspective   1970s: multi-user (time sharing),

databases, structured programming

  1980s: networking, personal computing,

embedded systems, parallel architectures

  1990s:Internet, distributed systems, OO

  2000s: web based computing, service-oriented architectures

Future Perspective: 2010s   Cloud Computing, multi-core   Virtual reality ◦  E.g., virtual supermarket; telemedicine

  More automation: ◦  Smart home ◦  Smart car

  Self correcting/ detecting software ◦  (The movie 2001)

  Highly dependable, secure systems

Page 4: CmpSci 320 Introduction to Software Engineering

1/20/11

4

Hardware Costs vs Software Costs (% of overall costs)

s/w costs!

h/w costs!

Hardware development   Uses systematic, engineering techniques   Overall functionality is not changing greatly,

but performance is improving   As hardware development takes on more

complex functionality, the differences in s/w dev and h/w dev is decreasing

Page 5: CmpSci 320 Introduction to Software Engineering

1/20/11

5

Why is software so expensive?

  hardware has made great advances in providing more for less ◦  but, software has also made great advances in

providing more for less

os! dbms!networking!

s/w libraries!

LOCS only measures the tip of the iceberg

Why is software so expensive?   Do the least understood tasks in software   When something is well understood and

relatively simple, then it can be encoded in hardware

  Ever increasing demand for tasks to be supported by automation ◦  Off the shelf hardware ◦  Specialized software

Page 6: CmpSci 320 Introduction to Software Engineering

1/20/11

6

Size of programs continues to increase   Trivial: 1 month, 1 programmer,

500 lines, programming assignments

  Very Small: 4 months, 1 programmer, 2000 lines, course project

  Small: 2 years, 5 programmers, 50,000 lines,nuclear power plant, pace maker (10 person years)

Size of programs continues to increase   Medium: 3 years, 10s of programmers,

100,000 lines, compiler

  large: 5 years, 100s of programmers, 1,000,000 lines, MS Word, Excel

  Very large: 10 years, 1000s of programmers, 10,000,000 lines, air traffic control, telecommunications, space shuttle

  Today BMW 1B LOCS

Page 7: CmpSci 320 Introduction to Software Engineering

1/20/11

7

Goals of this course   exposure to some of the problems that are

typically encountered in s/w development

  exposure to some of the techniques that have been demonstrated to be effective ◦  requires much more rigor ◦  often appears to be”common sense”   common sense is very uncommon!

Project-oriented course   Exposure by doing   Try to make the experience realistic ◦  Real customer ◦  Real clients

  Use examples from the project in class discussion

Page 8: CmpSci 320 Introduction to Software Engineering

1/20/11

8

Course Organization   Project course ◦  Divided into 4-5 person teams ◦  Teams will need to use other teams' products ◦  Simulating a real-world situation

  2 lectures a week plus a lab ◦  Labs used for lectures, team presentations, and

team meetings ◦  Expect to have team meetings outside of class

Class Schedule   class hours: T,Th 1:00-2:15   lab: W 12:20-1:10

  attendance and participation is important   no eating in the classroom

Page 9: CmpSci 320 Introduction to Software Engineering

1/20/11

9

Text Books   Recommended Reading: ◦  An Integrated Approach to Software Engineering, Author:

Pankaj Jalote, Publisher: Springer, Edition: 3, Year Published: 2005, Price: $99.00 USD ◦  UML Distilled:  A Brief Guide to the Standard Object Modeling

Language, Author: Martin Fowler, Publisher: Addison-Wesley, Edition: 3, Year Published: 2003, Price: $35.00 USD ◦  The Design of Design, Author: Frederick Brooks, Publisher:

Addison-Wesley, Edition: 1, Year Published: 2010, Price: 35.00 USD ◦  Design Patterns, Elements of Reusable Object-Oriented

Software, Gamma, Helm, Johnson, Vlissides

  Required Reading: ◦  The Mythical Man Month: Essays on Software Engineering, The

Anniversary Edition, Author: Frederick Brooks, Publisher: Addison-Wesley, Edition: 2, Year Published: 1995, Price: $31.00 USD

Best Guess Syllabus Date Class Type Topics Materials due1/18/11 Lecture Introduction & SW Lifecycle1/19/11 Lab Group assignments1/20/11 Lecture Customer Visit1/25/11 Lecture Requirements1/26/11 Lab Requirements notations1/27/11 Lecture Customer Visit2/1/11 Lecture Requirements discussion2/2/11 Lab Requirements discussion2/3/11 Lecture Team meetings2/8/11 Lecture Requirements presentations requirements specifications2/9/11 Lab Requirements presentations2/10/11 Lecture Requirements presentations2/15/11 Lecture Requirements discussion2/16/11 Lab Team meetings2/17/11 Lecture Requirements discussion2/22/11 No class University Monday2/23/11 Lab revised requirements presentations revised requirements specifications2/24/11 Lecture revised requirements presentations3/1/11 Lecture High-level design3/2/11 Lab Team meetings3/3/11 Lecture High-level design3/8/11 Lecture HL design presentations HL design3/9/11 Lab HL design presentations3/10/11 Lecture HL design discussion3/15-17/11 No class Spring Break

Page 10: CmpSci 320 Introduction to Software Engineering

1/20/11

10

Best Guess Syllabus Continued 3/22/11 Lecture Low-level design3/23/11 Lab Team meetings3/24/11 Lecture Low-level design3/29/11 Lecture Build and integration planning3/30/11 Lab Team meetings3/31/11 Lecture S/W quality4/5/11 Lecture LL design presentations LL design4/6/11 Lab LL design presentations4/7/11 Lecture LL design presentations4/12/11 Lecture LL design discussion4/13/11 Lab Team meetings4/14/11 Lecture S/W reviews Build plan4/19/11 Lecture White box testing4/20/11 No class University Monday4/21/11 Lecture Black box testing4/26/11 Lecture Team meetings4/27/11 Lab Team meetings4/28/11 Lecture Team meetings5/3/11 Lecture exam

Exam Demo day wrap up project

Grades   project is divided into 5 parts, with 2

grades per part (presentation, document) ◦  Requirements ◦  High-level design ◦  Low-level design/build plan ◦  Code/test plan ◦  Overall project grade

◦  (sometimes can redo previous parts)

Page 11: CmpSci 320 Introduction to Software Engineering

1/20/11

11

Grades   Requirements 15%   High-level design 15%   Low-level design/build plan 15%   Code/test plan 15%   Overall project 15%   Participation/reviewing 10%   Final 15%

percentages may change +- 5%

Grades   each person's grade depends on their team's project

grade and their individual contribution to the project

  each person provides a report on how their team functioned ◦  strengths and weaknesses

  each person grades all the members of their team (including themselves)

Page 12: CmpSci 320 Introduction to Software Engineering

1/20/11

12

Project Grades => Individual Grades

  Each team member grades all the team members at the end of the semester ◦  Ranking 1,2, 3, 4 ◦  Grade: A, B, …, F ◦  A short description of how the team worked,

strengths and weaknesses   An individual’s grade may be higher or lower

than the team’s project grade

Prerequisites   must be comfortable with a higher level

language ◦  E.g., Ada, C++, Java

  must be comfortable with data structures   prerequisites satisfied by

cmpsci 187 and 220

Page 13: CmpSci 320 Introduction to Software Engineering

1/20/11

13

Expectations   project will be done by team members,

where everyone contributes equally   all assignments, announcements, and

lecture slides will be done via the web   presentations should be well prepared

and viewed as an opportunity to receive and provide feedback

  See other policies on course web page

Overall expectations   Learn good s/w development skills ◦  Applicable to large development efforts

  Learn good presentation skills ◦  Documents need to be clear and concise   Don’t confuse quantity with quality ◦  Presentations need to convey the idea in a short

period of time   Develop cooperation/management skills ◦  Among team members   A good team makes everyone a winner ◦  Among teams

Page 14: CmpSci 320 Introduction to Software Engineering

1/20/11

14

We are about to embark…   CmpSci 320 is different than most of your

other CmpSci classes   Expect to spend more time on this class than

most other classes   More than most classes, this class depends

on what you (individually and as a class) put into it

Assignment   The Mythical Man-month ◦  Chpts. 1-4