Leave Your Ego at the Door! CMSC 345 Software Design and Development Spring 2011 Ms. Susan Mitchell
2 CMSC 345, Version 1/11 S. Mitchell First Assignment Due by next class: Read through the course Blackboard site (let me know ASAP if you don’t have access or if there are any errors) Use the Discussion Boards button on our Blackboard site to share a recent “User Interface Horror Story” Read “A Survey of System Development Process Models” (Assignments button, Articles link)
3 CMSC 345, Version 1/11 S. Mitchell Prerequisite You must have completed CMSC 341, Data Structures, with a “C” or better You should not be concurrently enrolled in both courses, even if you are repeating 341 Drop CMSC 345 now if you do not have the prerequisite
4 CMSC 345, Version 1/11 S. Mitchell Course Objectives To understand and experience the software development life cycle (SDLC) To experience working on a software development team (and being egoless) To experience taking a leadership role in a software development team To enhance written and verbal communication skills
5 CMSC 345, Version 1/11 S. Mitchell Writing Intensive (WI) Freshmen entering UMBC as of fall 2007 are required to take one writing intensive (WI) course as part of their general education requirements. CMSC 345 fulfills this requirement. As a WI course, CMSC 345 engages students in writing as a form of critical inquiry and scholarly research, requires students to write frequently both in and/or out of class, provides useful feedback to students regarding their writing, and provides discussion of the work students are doing as writers at various points during the term.
6 CMSC 345, Version 1/11 S. Mitchell Software Engineering – What Is It? It’s not this!
7 CMSC 345, Version 1/11 S. Mitchell SE is Multidisciplinary Computer Science Information Systems Business Social Sciences SE
8 CMSC 345, Version 1/11 S. Mitchell A Formal Definition IEEE Definition (IEEE Standard , 1990) “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.”
9 CMSC 345, Version 1/11 S. Mitchell A Formal Definition IEEE Definition (IEEE Standard , 1990) “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.”
10 CMSC 345, Version 1/11 S. Mitchell A Formal Definition IEEE Definition (IEEE Standard , 1990) “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.”
11 CMSC 345, Version 1/11 S. Mitchell A Formal Definition IEEE Definition (IEEE Standard , 1990) “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.”
12 CMSC 345, Version 1/11 S. Mitchell A Formal Definition IEEE Definition (IEEE Standard , 1990) “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.”
13 CMSC 345, Version 1/11 S. Mitchell A Formal Definition IEEE Definition (IEEE Standard , 1990) “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.”
14 CMSC 345, Version 1/11 S. Mitchell A Formal Definition IEEE Definition (IEEE Standard , 1990) “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.”
15 CMSC 345, Version 1/11 S. Mitchell Software Engineers – What Do They Know? Guide to the Software Engineering Body of Knowledge (SWEBOK) (IEEE, 2004) “A comprehensive description of the knowledge needed for the practice of software engineering.” Requirements Design Construction Testing Maintenance Configuration Management Engineering Management Engineering Process Tools and Methods Quality
16 CMSC 345, Version 1/11 S. Mitchell Software Engineering Education – What Do You Learn? Software Engineering 2004, Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering (IEEE/ACM, 2004) SEEK: Software Engineering Education [body of] Knowledge “The body of knowledge that is appropriate for an undergraduate program in software engineering.”
17 CMSC 345, Version 1/11 S. Mitchell Software Engineering Education (2) SEEK Knowledge Areas Computing essentials Mathematical & engineering fundamentals Professional practice Software modeling & analysis Software design Software V&V Software evolution Software process Software quality Software management
18 CMSC 345, Version 1/11 S. Mitchell Software Engineering Education (3) SE degrees – All levels ABET, Inc. “The recognized U.S. accreditor of college and university programs in applied science, computing, engineering, and technology.” (self-proclaimed on the ABET website)
19 CMSC 345, Version 1/11 S. Mitchell This Course Will Be Different! Very structured, yet very unstructured Has a “graduate course” feel A lot of discussion and interaction A closer and less formal relationship with your instructor I’ll be a facilitator rather than just an instructor A general feeling of camaraderie Less memorization and more hands-on learning Different types of reading materials A lot of writing
20 CMSC 345, Version 1/11 S. Mitchell This Course Will Be Different! (2) A lot of material is not “black and white” You may talk to your classmates about the project!
21 CMSC 345, Version 1/11 S. Mitchell Textbooks and Other Resources No textbook required Assigned readings from SE, CS, and IS magazines and journals References posted on Blackboard site (“SE Resources” button) Some books on reserve in the library Your instructor (no TA for this class)
22 CMSC 345, Version 1/11 S. Mitchell Class Format (1) Lectures Discussions In-class exercises In-class work time Out-of-class work time Speakers (to be confirmed) User-Centered Design Software Architecture and Design Configuration Management Software Testing
23 CMSC 345, Version 1/11 S. Mitchell Class Format (2) Post mortem exercise Section 1 (TTh 4:00) Tuesday, May 17, 3:30 – 5:30pm Section 2 (MW 2:30) Friday, May 20, 1:00 – 3:00pm Attendance is mandatory. (Isn’t it better than a final exam?!) Your final grade will be lowered by one letter grade if you do not attend.
24 CMSC 345, Version 1/11 S. Mitchell The Teams 4 or 5 people chosen by instructor Phase leaders chosen by team (see Course Info button for Job Descriptions) Team Facilitator Requirements Design Implementation & Testing Delivery CSEE or IS Department faculty members and PhD students used as “customers” (randomly assigned)
25 CMSC 345, Version 1/11 S. Mitchell The Project (1) Chosen by instructor (everyone has the same project) Minimal description (must elicit specific requirements from customer) Some past projects: ITE building event scheduler Household budgeting and financial system UMBC CS/IS student planning system Travel planning and expense reporting system Computer-based training for a programming language
26 CMSC 345, Version 1/11 S. Mitchell The Project (2) Your choice of language, but restricted to imperative or OO (e.g., C, C++, Java) unless otherwise approved by instructor At least two people must know the chosen language when it is chosen. At least two people must write code and provide proof of their contributions (approximately 50/50). Your choice of: interface type (GUI or text-based) platform (e.g., Windows, Linux) desktop or web-based files or database with customer approval.
27 CMSC 345, Version 1/11 S. Mitchell Grading (1) Individual Grades (35% total) Attendance (5%) Quizzes and/or homework (20%) Weekly verbal and biweekly written status reports (5%) Final product delivery and demo (5%) Other (for borderline grades) class participation assignments customer satisfaction reports student survey peer evaluations (possible deduction)
28 CMSC 345, Version 1/11 S. Mitchell Grading (2) Team Grades (65% total) Project artifacts (40%) System Requirements Specification (8%) System Design Document (8%) UI Design Document (8%) Code Inspection Report (6%) Testing Report (6%) Administrator Manual (4%) Final product delivery and demo (5%) Final product (20%) Midterm presentation (satisfactory/unsatisfactory)