SCMP 348 Software and System Design

James Skon
Spring 2018
Location: Hayes Hall 203, Time: 2:10, Days: MWF
Office Hours: 10-11 MWF, TH 3-4
Tutoring: TBD

The best way to get a project done faster is to start sooner
--Jim Highsmith

Design and programming are human activities; forget that and all is lost.
--Bjarne Stroustrup

Simplicity is prerequisite for reliability
--Edsger W.Dijkstra

Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away
--Antoine de Saint-Exupery

Program testing can be used to show the presence of bugs, but never to show their absence!
--Edsger Dijkstra

A primary cause of complexity is that software vendors uncritically adopt almost any feature that users want.
--Niklaus Wirth

Course description

A study of software design project that requires planning, analysis, design, implementation, testing and maintenance. Different methods of planning, definition, requirements analysis, and cost estimation are considered. A central component of the course is a semester long team project which engages a team of 3-5 students in the analysis, design, implementation, and documentation of a significant applied project. The goal of this team project is for the students to engage with the material as they work to solve a real world problem. These projects are real needs of organizations in the surrounding community (including Gambier, Knox county, and at times, beyond). Prerequisite: SCMP118 Introduction to Programming or SCMP318 Software Development or SCMP218 Data Structures

Off Campus Travel Requirements

This course involves colaboration with off-campus community partners, for and with whom you will be descovering system requirements and designing and implementing solutions. This typically will require weekly or bi-weekly meetings on the romote site with the organizational partner. Kenyon College will provide transportation with KAT (Knox Area Transit) on an as needed basis. The students are required to work with the partners to set up meeeting times, and then work this the instructor who will facilitate the provisioning of transportation. Student will need to give the instructor at least 3 days notice prior the the transportation need.

Objectives of the course for the student

  1. To recognize the significance of using engineering methodologies in software design and development.
  2. To learn how to apply software engineering techniques and methodologies to the development task.
  3. How to develop and construct a software specification.
  4. How to develop and construct a software design.
  5. How to verify and validate software.
  6. To apply various techniques of software management.
  7. To work as the member of a design and development team to develop a product for a real world entity in the community.
  8. To establish connections between academic knowledge and civic life.
  9. To develop professional communication skills by working within and across communities, context, and social structures.

Team Management

Trello -


Ian Sommerville.
Software Engineering
Tenth Edition.
Addison-Wesley Publishing Company


Method used in the course

This course will use a combination of limited lecture, mostly discussion, team projects work, team project presentations. The team’s projects are a central activity in the course. The project is specifically design to require you to function as a member of a team. Each team is responsible for internal organization and assignment of member responsibilities. People in the group should be assigned to have primary responsibilities for specific aspects. This does NOT mean they do all the work on that aspect, rather that they coordinate, and facilitate the work they are responsible for making sure it is complete and coherent. You should plan for regular (at least weekly) scheduled meetings.

This course is a higher level course. Student should expect to spend between 8-10 hours outside of class per week on the class work and project. If you are spending less then 8 hours a week outside of class, you will not be able to keep up with the assignments and work.

Daily questions and answers, and quizzes: As mentioned above, this class will be discussion oriented. You will be expected to read the daily readings (or in some cases watch videos) prior to each class in which it is covered. You will submit on Moodle one interesting, non-trivial “question” or “problem” based on the reading. You will also write a ˝ to 1 page comprehensive solution or answer to that question or problem. The question should preferably require some type of problem solving, analysis, or synthesis. The question should only require information from the required reading to answer. The answer should be quite complete. It is assumed you will write a question for which you understand the answer, and that the answer will be complete. You will also want to take notes on the chapter as you read it, as you will see below. In addition, you will need to write 1 or 2 questions about topics or concepts you feel need reinforcing in class discussion. Please be specific for these. The questions/answers and discussion questions are to be submitted via Moodle by 8:00 a.m. the day of the class. (If you submit these to me by 4:00 p.m. the day before class you will receive 1 point extra credit.). You are also to submit all questions to the appropriate class discussion board. For class one of the questions will be used as a small quiz question that everyone must answer (on moodle) (the author of the question does not need to take quiz, they get an automatic 100%) to write a solution or answer to the question. Note that the in class answers are not expected to be as complete as the answer supplied by the author of the question. You will be given 5 minutes for this task. You will only be allowed to use your written notes from the chapter. We will then submit these, and begin discussing the discussion question. Grading will be as follows:

Item Max PointsSorted ascending
Discussion questions 2 each (4)
Quiz Question 8
Quiz Answer 8
Total 20
Software Engineering Team Project . Each student will participate on a software engineering team, working through the processes as a team. As seen in the grading below there are a variety of activities, some team oriented, and some individual. Participation in all team activities, and completion of individual work is essential to this aspect of the course. The activities the team engages in will include the following critical phases, with each phase having an associated document, and presentation.

Phase Activity Document and presentation
Project Selection and Team Formation After listening to all project options, each student will submit applications for at least two. Applications
Initial Project Research Collecting initial information of the partner’s needs, and producing an inital description of what is the nature of the problem that need solving. What are the major functions, and and what information needs to be managed. Project Proposal
Requirement Engineering Study organization, interview stakeholders. Develop and present a software specification System Requirements Specification
Research Solution Options Consider platforms and architectures of possible solutions. This includes use of existing components (open source or commercial), languages, and the organization (architecture of proposed solutions.) Project Options overview and table
Risk Assessment and Management Consider the aspects of the system and it's building that present the highest risks to failure. Evaluate the relative levels of risks, and select the most important for mitigation. Then design a risk mitigation strategy for those (1-3) that present the greatest overall risk. This activity will be repeated periodically. Risk Tables
System Design The team will select an solution option and create a system architecture and a system design. The design will include a specification of all system components, a specification of the interfaces between the components, and between the components and external entities, and a user interface specification and mock-up.
  • System Architecture
  • System Design Document
System Prototype Several interations of protoypes will be created. These will serve to demonstrate the system functions and look and feel. These will also serve to mitagate rish by testing and trying out aspects not well understood, as well as providing an example for the stakeholders for feedback. Demonstration,
System Code and Documentation
System Test Planning The team will create a system test plan with the goal of demonstraiting that the system meets the system specifications. Test Plan
System Delivery At the end of the course the team will present a working system or prototype system to the community entity. This will include a presentation and demonstration, as well as all code and documentation.
  • Operation Documentation
  • Installation Documentation
  • System Demo
  • System Presentation
Reflection. A central part of this course is critical reflection, reflection about the processes used, reflections about preparing for meetings with community partners, reflections about the quality and effectiveness of interactions with community partners, reflections about the methods, advantages, and effectiveness of team work, and reflections about the processes of proof reading, critiquing, and unifying the work produced by the team. This is seen below in the reflection component of each phase.

The goal will be to, for each of the phases above, engage in the following reflective activities:

  1. Describe: The student will be asked to describe their engagement with the activity. They will be asked to consider:
    1. How did you prepare before meeting with project principals to gather information for this phase?
    2. Who did you interact with in order to proceed with the assignment? Why with this person? How useful was the information gathered?
    3. In what ways did you work as a team? In particular, did you divided the work among team member, and if so, how did you divide it? Alternatively, did you actively work together as a group, and on what parts?
    4. Did team members proof read and critique each other’s work? If so, on what aspects/documents?
  2. Examine:
    1. How did your interactions with project principals go? Were you appropriately prepared? Did you miss anything important?
    2. Did you use your time, and the time of the project principals effectively as you gather information? How effective were you in recording the information from these meetings in ways that are useful for moving the projects forward.
    3. Compare and contrast the value of working individually on components of the project verses working together actively as a team.
    4. How effective were you in working together to produce output that was well integrated, complete, and error free? Was there unnecessary duplication of error?
  3. Articulate Learning:
    1. What did you learn about preparing for interactions with project principals? What will do to prepare for future phases to improve effectiveness and productivity of these interactions.
    2. What did you learn about having effective and productive interactions with project principals? How with you improve record keeping? How will you prepare for follow-up queries?
    3. What did you learn about effective team work? Can you categorize and describe the types of work that is best done individually verses done as a team?
    4. How can you work more effectively to check and improve each other’s work, and to better integrate the corporate work product into a unified, cohesive document?
One unexcused absence is allowed. After that, your final grade will be reduced by 2% per each unexcused absence. Also coming late or leaving early (without a written excuse) will result in a ‘late’. Three of these will count as a full unexcused absence.

2018 Team Projects: Here


Date Topic Reading / Info Quiz Slides Assignment Due
01-15 Introduction Chapter 1,   Ch1_Introduction.pptx
01-17 Project Introductions       Questioneer
01-19 Software Processes:
Software process models
Process activities
Chapter 2.1-2.2, Discussion Questions Quiz Ch2_SW_Processes.pptx Questions
01-22 Software Processes:
Coping with change
The rational unified process
Chapter 2.3-2.4, Discussion Questions Quiz   Questions for 2.3-2.4
Project Applications and resume
01-24 Team Assignments and Formation Activities
Project Teams
01-26 Agile software development Chapter 3, Agile Methods, Discussion Questions Quiz Ch3._Agile_SW_Dev.pptx Questions
01-29 Introduction to GitHub - a collaboration tool GIT Video - view for quiz,
GIT Tutorial - review for quiz, Discussion Questions
Quiz GitHub.pdf Questions

01-31 Wiki Introduction, Team Meeting        
02-2 Requirements Engineering Chapter 4.1-4.4, Discussion Quiz Ch4_Req_Eng.pptx

Git HW

Project Proposal

02-5 Requirements Engineering Chapter 4.5-4.7, Discussion Quiz TraceCloud, SelectHub, Perforce, Top Requirements Management Software Questions
Project Options overview and table
02-7 Conceptual Database Design Crow's Foot Natation, Relational Database Design, LucidChartDatabaseDesign, DatabaseRedundancy   Database Design Slides, Database Design Problem, LucidChart, Vertabelo Questions
02-9 Team Meeting SQLTutorial, Learn SQL, phpmyadmin Tutorial     Example Requirements Document
02-12 System modeling Chapter 5.1-5.3, Discussion Quiz Ch5_System_modeling.pptx Requirements Draft,
02-14 Team Meeting Requirements Review with Instructor     Database Design Exercise
02-16 System modeling Chapter 5.4-5.5
C++ Database Activity, Discussion
Quiz Ch5_System_modeling.pptx Questions
02-19 Architectural design Chapter 6.1-4, Architectural Patterns, More Patterns, Discussion Quiz Ch6_Architectural_design.pptx Questions
02-21 Project Management Chapter 22.1-2, Example Risk Tables , Discussion Quiz Ch22_Project_management.pptx Questions
C++ Database Activity
Requirements Complete
Meet with professor as team to review Requirements prior to end of day 2/23
02-23 Project management, Risk Assessment Chapter 22.3, Discussion Quiz Personality Style Self-Test, Workspace Questions
System Architecture Draft
02-26 Team Meeting      
System Architecture Review with Instructor
02-28 Risk Driven Approach to Software Creation Risk-Driven Model for Agile Software Architecture, Risk Tables, Discussion Quiz   Questions
03-2 ACM Code of Ethics ACM Code of Ethics and Professional Conduct, Discussion Quiz The Software Alliance Questions
System Architecture Complete
Midterm Evaluation Due
03-5 - 03-16 Spring Break        
03-19 ACM Case studies, Team Creation ACM Case Studies , Case Studies Assignment     Risk Tables Phase one
03-21 Team Meeting
Mindfulness Can Improve Problem-Solving Skills
03-23 ACM Case Presentations       Ethics Case Studies Presentations
03-26 Software Testing Chapter: 8:1-2, Discussion Quiz JUint Tutorial, Web App Testing, Ch8.Testing.pptx System Design Draft, Questions
03-28 Team Meeting        
03-30 Software Testing Chapter: 8:3-4, Discussion Quiz Testing Ideas Questions
04-02 Software Failure Case Studies

Ariane 5 Report
Ariane 5 Case
Ariane 5 Launch

Software Failure Group Assignments:
1. Ariane 5 Study
2. Therac 25 Study


Software Fails Questions

Software Failure Article
Software Fail Watch
Group Signup
Presentation Rubric

04-04 Team Meeting       System Design Complete,
System Design Review with Instructor
04-06 Dependability and security Chapter 10:1-3, Discussion Quiz Ch10_Dependable_systems.pptx Questions
04-09 Software Failure Presentations       Presentation Rubric
04-11 Team Meeting       System Prototype 1
04-13 Quality Management Chapter 24:1-4, Discussion Quiz ChairBuiding Questions
04-16 Resilience engineering Chapter 14:1-3, Discussion Quiz 2017 COST OF CYBER CRIME STUDY
Cybercrime cost $600B in 2017, report finds
04-18 Team Meeting        
04-20 In class demonstrations       System Prototype 2
04-23 Systems of Systems Chapter 20:1-4, Discussion Quiz   Questions
04-25 Video History of Software Engineering      
04-27 Team Meeting       Test Plan
04-30 Kenyon Security Strategy Meet at the IT department over the Bookstore (normal class time)     Kenyon Security Lecture Write-up
05-2 Embedded Systems Activity       Test Report
05-4 Team Meeting       Complete System Documentation
05-11 Friday, May 11 at 8:30-11:30 a.m. Each team presents full system design and demo   Presentation Schedule Presentation Assessment Form, Final Project Assessment
Personal Statement

Disability Statment

Kenyon College values diversity and recognizes disability as an aspect of diversity. Our shared goal is to create learning environments that are accessible, equitable, and inclusive. If you anticipate barriers related to the format, requirements, or assessments of this course, you are encouraged first to contact the office of Student Accessibility and Support Services (SASS) by emailing Erin Salva at, then to meet with the instructor to discuss accommodation options or adaptations.

Software project grading rubric

Category Developing
Articulate requirements and design of the Project. Demonstrated understanding of requirement and design issues. Articulated requirement and design of the project. Described most constraints and variables to be maximized or minimized. Clearly articulated requirements and design and underlying issues. Clearly articulated constraints and variables to be maximized or minimized. Correctly answered clarifying questions, demonstrating mastery of issues.  
Plan the solution and implementation of the project. Identified some critical tasks. Created plan with some foreseeable problems. Identified critical tasks. Delegated tasks to team members. Created plan for task and project completion that is workable with some modifications. Identified critical tasks. Delegated tasks to team members. Accurately estimated time and resources for critical tasks. Created credible plan for task and project completion.  
Choose appropriate tools and methods for each task Selected appropriate tools and methods for most tasks. Identified strengths and weakness of most chosen tools. Selected appropriate tools and methods for each task. Identified strengths and weaknesses of various tools and methods. Cited reasons for choices. Selected appropriate tools and methods for each task. Articulated strengths and weakness of various tools and methods. Discussed and gave credible justification for choices.  
Give clear and coherent oral presentation Provided minimal presentation of design problem and results. Presentation was reasonable and organized. Presentation presented mostly in a professional manner Presentation was coherent and well organized. Presentation presented in a professional manner  
Give clear and coherent written final report Provided acceptable final report detailing all project phases and results. Provided acceptable final report detailing all project phases and results. Report was reasonable and organized. Report was provided mostly in a professional manner. Provided acceptable final report detailing all project phases and results. Report was coherent and well organized. Report presented design in a clear and professional manner.  
Function well as a team Contributions of team members’ variable. Lack of leadership on the project. Many individual contributions with some overlap. Most team members contributed. Little or no duplication of effort. Conflicts usually amicably resolved. Team members demonstrated some understanding of the overall project. Each team member contributed to the success of the design. Little or no duplicated effort. Few conflicts, amicably resolved. .Team members able to respond to audience's questions throughout the presentation.  
Create well documented set of life cycle products specific to the project Project documents/solution was acceptable but limited due to the background of the team. Project documents/solution met objectives set for the project. Project documents/solution considerations showed team generally understood the problem Project document/solution exceeded the initial objectives. Innovative approaches were demonstrated in the design. Solution indicated a thorough understanding of project.  
Ghada Bakbouk <>,,, Miku Fukuyama <>,, Elizabeth Iduma <>, Malik Ahmed Khan <>,, Tess Neau <>, Harold Ogilvie-Thompson <>, Emily Rachfal <>, Joseph Schutz <>, Elvin Shrestha <>, Christian Solorio <>, Thomas Stanton <>, Spalding Vance <>

Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf 20180207_Software-Fails-Watch.pdf r1 manage 6533.8 K 2018-04-02 - 01:29 JimSkon  
PowerPointpptx Ch10_Dependable_systems.pptx r1 manage 312.7 K 2018-04-06 - 17:02 JimSkon  
PowerPointpptx Ch1_Introduction.pptx r1 manage 390.8 K 2018-01-15 - 17:42 JimSkon  
PowerPointpptx Ch22_Project_management.pptx r1 manage 267.7 K 2018-02-21 - 19:06 JimSkon  
PowerPointpptx Ch2_SW_Processes.pptx r1 manage 641.2 K 2018-01-15 - 17:42 JimSkon  
PowerPointpptx Ch3._Agile_SW_Dev.pptx r1 manage 1000.1 K 2018-01-26 - 19:08 JimSkon  
PowerPointpptx Ch4_Req_Eng.pptx r1 manage 1631.7 K 2018-02-02 - 18:57 JimSkon  
PowerPointpptx Ch5_System_modeling.pptx r1 manage 889.3 K 2018-02-19 - 18:19 JimSkon  
PowerPointpptx Ch6_Architectural_design.pptx r1 manage 908.1 K 2018-02-19 - 18:19 JimSkon  
PowerPointpptx Ch7_Implementation.pptx r1 manage 745.5 K 2018-02-19 - 18:19 JimSkon  
PowerPointpptx Ch8.Testing.pptx r1 manage 531.5 K 2018-03-26 - 17:34 JimSkon  
PowerPointpptx Ch9_Evolution.pptx r1 manage 646.3 K 2018-02-19 - 18:19 JimSkon  
PowerPointpptx DatabaseDesign.pptx r1 manage 118.2 K 2018-02-07 - 16:04 JimSkon  
PDFpdf DatabaseRedundancy.pdf r1 manage 428.5 K 2017-12-06 - 15:45 JimSkon  
PowerPointpptx FirstDay.pptx r1 manage 33.5 K 2018-01-15 - 18:02 JimSkon  
PDFpdf GitHub.pdf r1 manage 975.2 K 2017-12-03 - 04:31 JimSkon  
PowerPointpptx IntroductionToGIT.pptx r1 manage 503.5 K 2017-12-03 - 04:26 JimSkon  
PDFpdf Personality_Style_Self-Test_and_Chart.pdf r1 manage 54.4 K 2018-02-23 - 17:24 JimSkon  
JPEGjpg SE.jpg r1 manage 185.8 K 2017-12-03 - 02:06 JimSkon  
PDFpdf SRSExample-webapp.pdf r1 manage 270.2 K 2018-01-19 - 03:32 JimSkon  
PDFpdf p98-anderson.pdf r1 manage 4588.0 K 2017-12-13 - 15:51 JimSkon  
Edit | Attach | Watch | Print version | History: r69 < r68 < r67 < r66 < r65 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r69 - 2019-12-20 - JimSkon
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback