Foundations of Software Engineering


Questions

  • When is a program staunch enough to ship? Have you built what the client wanted?
  • Why (and the map) does Netflix intentionally and randomly bewitch down its discover servers?
  • What plan we be taught from the Boeing 737 be troubled?
  • How did Twitter eradicate the Fail Whale? And what does it beget to plan with Ruby?
  • How plan you procure a patch accepted into an inaugurate-supply undertaking?
  • You’d additionally write code. Are you able to procure software?

Overview

A success software projects require more than staunch technical abilities. Figuring out what the client desires, participating in a crew, managing complexity, mitigating dangers, staying on time and funds, and figuring out under varied constraints when a product is steady enough to be shipped aren’t no longer up to equally essential issues that generally beget a essential human factor. 17-313 explores these points broadly preserving the fundamentals of standard software engineering.

Quality and feature conflict
Assuming reasonably stable programming abilities (in conjunction with unit making an are trying out and code-stage make), we are able to explore the next issues:

  • Project consideration for software trend

    (How plan defend a long way off from issues early? When and the map grand to make? When and the map grand to test? When and tips on how to comprise the potentialities? Agile concepts…)

  • Requirements elicitation, documentation, and review
    ( pick out what the client truly desires? Who else has an ardour? How plan we measure success objectively? How plan we reliably document expectations? …)
  • Make for quality attributes Architecture

    (How plan we make a gadget with a aim to scale to millions of users? How plan we make security steady into a gadget? …)
  • Techniques for quality assurance, in conjunction with measurement, inspection, and static and dynamic evaluation
    (What quality assurance method is simplest for a given gadget? What plan we automate and when ought to we defend folks in the loop? How grand making an are trying out and what roughly making an are trying out ought to we plan? What qualities are essential to guarantee previous realistic correctness? Will we review usability, scalability, reliability, efficiency? How plan we statically allege the absence of sure security points? …)
  • Empirical concepts in software engineering
    xkcd 552

    (How plan we measure quality attributes such as efficiency, security, and reliability? How plan we measure how users engage with the gadget? How plan we know whether the variation issues? …)
  • Time and crew management
    Network plan

    ( estimate the length and prices of a undertaking? discover growth and dangers to acknowledge points early? coordinate developers in a crew? create and plan groups? opt and motivate crew participants? contend with crew dynamics such as social loafing? …)
  • Economics of software trend
    (trade items, outsourcing, inaugurate supply, …)

This course has a stable technical level of curiosity, and contains assignments with and with out programming. Assignments also consist of written ingredients. Students will procure abilities with crew management and trendy software-engineering tools. The course locations students on a rapidly music towards undertaking management positions.

Assignments (largely executed in groups) consist of:

    FreeCol screenshot
  • An introduction assignment the build individual students will be taught to steal with an existing code defective.
  • A requirements assignment in which every crew will interview stakeholders to elicit and document requirements for a software gadget.
  • An architecture assignment in which groups will educate and deploy an ML mannequin using microservices.
  • A undertaking in which every crew contributes to an inaugurate supply undertaking of their different. This entails identifying an pickle in the existing undertaking, knowing the method process of that undertaking and tips on how to make a contribution, and if truth be told making a contribution such as fixing a worm or in conjunction with a characteristic. Extra credit will almost definitely be awarded if the contribution is merged into the undertaking.

Logistics and Individuals

Tumble 2020, this course is designated as a hybrid offerring.

  • All lectures will happen over zoom.
  • Two recitations are assigned faculty rooms, when undergraduate in-particular person instruction is accepted; two are a long way off-most efficient. Order that most efficient contributors registered for a given in-particular person recitation would possibly well back that in-particular person recitation. Right here’s attributable to strict faculty room capability requirements.
  • Whenever you happen to would possibly well possibly be assigned to Sections A or B, nonetheless know for decided you plan no longer are searching to back in particular person, please contact us to discuss the ideal methodology we are able to accommodate you.

Lectures:

  • Tue/Thu 3: 20-4: 40 p.m. ET on Zoom

Recitations:

  • Wed 1: 20-2: 10 p.m. ET in WEH 5403 (Piece A)
  • Wed 2: 40-3: 30 p.m. ET in WEH 5409 (Piece B)
  • Fri 1: 20-2: 10 p.m. ET on Zoom (Piece C)
  • Fri 2: 40-3: 30 p.m. ET on Zoom (Piece D)

Professor Claire Le Goues
Field of business hours: Fri 9: 15 – 10: 15 am, 12: 30 – 1: 30 pm
Electronic mail: clegoues@cs.cmu.edu

Professor Michael Hilton
Field of business hours: TBD
Electronic mail: mhilton@cs.cmu.edu

Christopher Meiklejohn
Field of business hours: Tue 7: 00 – 8: 00 PM, Wed 10: 00 – 11: 00 AM
Electronic mail: cmeiklej@cs.cmu.edu

Please be at liberty reach out to the instructors on Slack outdoors of place of job hours in the event you beget any questions; we are going to strive to reply to you as snappy as doable, and are fully happy to assign of abode up advert hoc zoom meetings every time doable.

Time table

The following schedule describes the recent planing area and the lined concepts. It is miles subject to interchange and will almost definitely be updated because the semester progresses, especially to lend a hand level of curiosity on requested issues or make stronger studying. The readings are nearly continuously connected with a reading quiz; please test Canvas!

Date Topic Reading assignments* Assignments due*
1-Sep Introduction
2/4-Sep Tools for collaborative software trend rec1 Recitation 1
3-Sep Metrics and Size Scheduling/background surveys
8-Sep Case Gape: 737-MAX Seattle Events Article on the Boeing 737 Max
9/11-Sep Docker and Docker Perform rec2 Recitation 2
10-Sep Milestones, Estimation, and Planning Homework 2 PDF
15-Sep Tool archaeology hw1 Homework 1
16/18-Sep Tool Archaeology rec3 Recitation 3
17-Sep Requirements: Ideas and Challenges Route notes on requirements
22-Sep Requirements: Elicitation and Documentation Interview quiz prep hw2 Homework 2 (Initial Thought)
23/25-Sep Requirements Interviews rec4 Recitation 4
24-Sep Ethics Ethics in technology recommended
29-Sep Tool Engineering for Machine Discovering out hw2 Homework 2 (Code Artifacts)
30-Sep/2-Oct Tool Requirements rec5 Recitation 5
1-Oct Tool Engineering for Machine Discovering out, Segment 2
Demo Notebook
hw2 Homework 2 (Reflection)
6-Oct Tool Structure — Intro and Overview Twitter Case Gape
7/9-Oct Machine Discovering out rec6 Recitation 6 Setup
rec6 Recitation 6
8-Oct Structure: Documentation, Patterns, Techniques Structure Travelogue
13-Oct Structure: Make Doctors System Make
14/16-Oct Midterm Evaluate
15-Oct Microservices hw3 Homework 3
20-Oct DevOps
21/23-Oct Midterm Evaluate
22-Oct Midterm
27-Oct QA & Testing Netflix blog posts on AWS, Chaos Monkey, Simian Military hw4 Homework 4a
28/30-Oct Kubernetes rec7 Recitation 7
29-Oct Chaos Engineering
3-Nov hw4 Homework 4b
NOTE: DUE NOV 4
4/6-Nov Gremlin
5-Nov Static Analysis hw4 Homework 4c
NOTE: DUE NOV 6
10-Nov ML Explainability and Testing hw4 Homework 4d
11/13-Nov Agile Techniques
12-Nov ML Explainability and Testing, Segment 2
17-Nov QA Project
18/20-Nov Team Dysfunction
19-Nov QA Project, Segment 2
24-Nov Thanksgiving Week
25/27-Nov Thanksgiving Week
26-Nov Thanksgiving Week
1-Dec Team Factors, Motivation, Code Evaluate
2/4-Dec Birth Source
3-Dec Code Evaluate, Agile, XP
8-Dec Interviewing
9/11-Dec Field of business Hours for Final Project
10-Dec TBD
TBD Final Exam

=For itsy-bitsy print, explore assignment in Canvas.

Route Syllabus and Policies

The course will employ zoom for lectures, a long way off recitation, and place of job hours; hyperlinks are on hand via Canvas. The course uses Canvas (and Gradescope) for homework submission, grading, dialogue, questions, bulletins, lecture recordings, and supplementary paperwork; slides will almost definitely be posted here; GitHub is extinct to coordinate community work. We can even employ Slack for communique and community work. Look Canvas for the test in link.

Waitlist: We factor in the waitlist is cleared; in the event you disagree or are having be troubled enrolling, please contact us.

Must haves: No formal requirements, nonetheless you might well additionally procure more out of the course in the event you beget abilities with some bigger trend projects, to illustrate, via bigger class projects (e.g., 17-214, 15-410), internships, or inaugurate-supply contributions.

Communique: We plan bulletins via Canvas, in conjunction with clarifying homework assignments. We are going to also be using Slack every for communique with the instructors, and to enhance your community work communique. The instructors and TAs dangle weekly place of job hours and are reachable by e-mail and Slack. Reach out for added appointments.

Teamwork: Teamwork is a extraordinarily essential phase of this course. Most assignments are executed in groups of 3-5 students. Groups will almost definitely be assigned by the teacher and defend collectively for a couple of assignments. We are going to bewitch into consideration your time zones and availability when assigning groups. Steering on teamwork, reflection, and battle option will almost definitely be provided at some level of the semester and are a extraordinarily essential factor of the category. Most assignments beget a factor that is graded to your whole community and a factor that is graded for my portion. The crew policy posted on Canvas applies and describes roles and groups and tips on how to handle conflicts and imbalances.

Textbook: Varied readings at some level of the semester on hand online or via the library; we plan no longer beget a single text e-book nonetheless reasonably assemble readings from reasonably about a sources. As optionally available supplementary reading bewitch into consideration Ian Sommerville, Tool Engineering, 7th or Eighth version. Order that we plan no longer inquire of that the book shop will lift the used version; as a replacement, many copies are on hand online, such as via Amazon.com (and hundreds other booksellers and textbook reseller) for a good deal no longer up to 20USD.

Evaluation: Evaluate will almost definitely be in accordance with the next distribution: 60% assignments, 20% midterm, 10% in-class exercises (that would possibly well possibly be performed asynchronously), 10% reading quizzes. The midterm will almost definitely be inaugurate-the whole lot and bewitch-dwelling, designed to be performed in a normal 80-minute class period, nonetheless assigned over a 24-hour period to accommodate varied a long way off time zones.

Time management: Right here’s a 12-unit course, and it is our draw to manage it in tell that you just utilize shut to 12 hours every week on the course, on average. In normal, 4 hours/week will almost definitely be spent at school and eight hours on reading and assignments. Thought that nearly all homework is executed in groups, so please account for the overhead and reduced time flexibility that incorporates groupwork. Please be at liberty to supply the course crew feedback on how grand time the course is taking for you.

Slack work policy: Slack work will receive feedback nonetheless no credit. Ensuing from heavy reliance on teamwork in this course there are not any unhurried days. Exceptions to this policy will almost definitely be made most efficient in extra special conditions, nearly continuously sharp a family or clinical emergency—with your tutorial advisor or the Dean of Student Affairs requesting the exception to your behalf. Lodging for crawl back and forth (e.g., for interviews) are doable if requested no longer no longer up to 3 days prematurely. Please talk also with your crew about timing points.

Writing: Describing tradeoffs amongst choices and communique with less technical stakeholders are key aspects of this class. Most homework
assignments beget a factor that require discussing points in written create or reflecting about experiences.
To beget a look at writing abilities, the Worldwide Communications Center (GCC) affords one-on-one lend a hand for students, along with workshops.
The instructors are also fully happy to supply further guidance if requested.

Professionalism:

Your classmates are your colleagues. Right here’s in particular staunch in this course,
the build we aim to give you tips, practices, tools, and paradigms
that can allow you to to be an efficient, steady-world Tool Engineer. We search recordsdata from
that you just contend with every other care for the consultants you’ll possibly be and that you just’ll possibly be
on the level of be.

To that finish, we are able to’t tolerate harassement in this class. We outline harassment as unwelcome or
hostile behavior of an advert hominem nature, i.e., that focuses no longer on tips nonetheless on
folks and identification. This contains offensive verbal or written comments in
reference to gender, sexual orientation, incapacity, physical appearance, race,
or religion; sexual photography in public areas; deliberate intimidation, stalking,
following, harassing photography or recording, sustained disruption of sophistication
meetings, nasty physical contact, and unwelcome sexual attention.

Harassment is towards the law and we beget now got no tolerance for it, and neither
does the college. Even when behavior does no longer upward push to the stage of harassment (even in the event you judge you’ll possibly be “staunch joking!”),
it would possibly well nonetheless plan folks very wretched, and ruin their tutorial and legit
career by forcing them
to commit mental vitality to one thing instead of the subject materials they’re
making an are trying to be taught or the legit successes they strive to acheive.
Nonetheless, we inquire of that we plan no longer have to threaten you to
develop your admire on this subject: we simply search recordsdata from that you just contend with every other care for
consultants, in essentially the most clear sense.

This has two implications:

  • Whenever you happen to would possibly well possibly be feeling any individual is violating these tips (to illustrate, with a joke that
    would possibly well be interpreted as sexist, racist, or exclusionary), and also you’ll possibly be feeling you beget
    the standing to plan so, teach up! Impact no longer be a bystander to
    unprofessional behavior.
  • Whenever you happen to plan no longer feel fully happy doing so, and/or if the behavior persists,
    send a personal e-mail to the course instructors or build of living up a assembly with us to
    discuss the subject. We are going to defend your anonymity.

We, the course crew, are committed to affording you an identical admire we search recordsdata from you
to come up with the money for every other. Whenever you happen to would possibly well possibly be feeling that we’re no longer doing so, we hope you’ll
feel fully happy both telling us so without delay, or drawing shut one other belief to be one of
the course crew with your concerns.

(Thanks to Shriram Krishnamurthi and Evan Peck for sharing their discover
insurance policies, from which we drew inspiration for this one.)

Tutorial honesty and collaboration: The conventional insurance policies
discover, especially
the University
Policy on Tutorial Integrity
. Many of the assignments will almost definitely be executed in
groups. We inquire of that community participants collaborate with every other, nonetheless that
groups work independently from every other, no longer exchanging outcomes with other
groups. Within groups, we inquire of that you just’ll possibly be honest about your contribution to
the community’s work. This means no longer taking credit for others’ work and no longer preserving for crew participants that beget no longer contributed to the crew. Otherwise, our expectations in relation to tutorial in actuality and
collaboration for community work are the same as for individual work,
substituting elevated to the stage of “community.”

The course contains every individual assignments and individual ingredients
of community assignments. Even though your solutions for individual ingredients will almost definitely be in accordance with
the mutter material produced for the community factor (e.g., written reflections on
lessons realized), we contend with individual factor of community assignments as
equivalent to individual assignments total, and inquire of you to full such
ingredients independently of your groupmates.

The remaining of this tutorial honesty and collaboration mutter material is taken from the
policy extinct
in 15-214,
which we reuse nearly without delay (with minor adjustments, and attribution).

“You’d no longer reproduction any phase of a answer to an pickle that became once written by one other
pupil, or became once developed along with one other pupil, or became once copied from
one other unauthorized supply such because the Cyber web. You’d no longer watch at one other
pupil’s answer, even in the event you beget performed your discover, nor would possibly well you knowingly
give your answer to 1 other pupil or leave your answer the build one other
pupil can explore it.

Right here are some examples of behavior that are nasty:

  • Copying or retyping, or relating to, files or ingredients of files (such as supply code,
    written text, or unit exams) from one other particular person or supply (whether in closing
    or draft create, no subject the permissions build of living on the connected files) while producing
    your discover. Right here’s staunch although your version contains minor adjustments such
    as model or variable name changes or minor good judgment adjustments.
  • Getting lend a hand that you just plan no longer fully realize, and from any individual whom you plan
    no longer acknowledge to your answer.
  • Writing, using, or submitting a program that makes an are trying to alter or erase
    grading knowledge or in any other case compromise security pointless to advise resources.
  • Lying to course crew.
  • Giving copies of work to others, or permitting any individual else to reproduction or refer
    to your code or written assignment to develop their discover, both in draft or
    closing create. This contains making your work publicly on hand in a technique that
    other students (recent or future) can procure admission to your solutions, although others’
    procure admission to is unintended or incidental to your goals. Beware the privateness settings
    to your inaugurate supply accounts!
  • Coaching others step-by-step with out them knowing your lend a hand.

If any of your work incorporates any teach that became once no longer written by you, you
have to assign it in quotes and cite the provision. Whenever you happen to would possibly well possibly be paraphrasing an belief you
be taught someplace else, you beget to acknowledge the provision. Using existing subject materials with out
lawful quotation is plagiarism, a create of dishonest. If there is any quiz
about whether the subject materials is accepted, you beget to procure permission prematurely. We
will almost definitely be using automated systems to detect software plagiarism.

It is miles no longer belief to be as dishonest to clarify vague aspects in the assignments,
lectures, lecture notes; to supply lend a hand or receive lend a hand in using the computer
systems, compilers, debuggers, profilers, or other facilities; or to discuss
tips at a extraordinarily high stage, with out relating to or producing code.

Any violation of this policy is dishonest. The minimum penalty for dishonest
(in conjunction with plagiarism) will almost definitely be a zero grade to your full assignment. Dishonest
incidents will also be reported via University channels, with poss

Read More

Similar Products:

Recent Content