Design Problems for Use with Introduction to Software Engineering Design

 

Introduction

Overview

Introduction to Software Engineering Design contains many small problems as end-of-chapter exercises. This page provides program descriptions and design problems that may be used with them as larger projects or homework assignments.

The systems descriptions are provided as separate PDF files so that they can be used as the basis for the problems listed on this page, as well as for problems that instructors may come up with on their own.

Smaller versions of some of the problems are discussed in the book, but many of these problems are original.
 



 

Design Problems

Problem Classification

The problems are divided into three groups:
  • Larger problems that require a lot of work are marked with a star (*).
  • Intermediate problems that require a medium amount of work have no marker.
  • Small problems that involve very little work are marked with a tilde (~).

Grain Elevator

The Grain Elevator System is a program for tracking the grain stored in a grain elevator as it arrives in trucks from farms, and is shipped out in trains from the elevator.
  1. Make a use case diagram for the Grain Elevator System. (~)
  2. Make a stakeholders-goals list for the Grain Elevator System. (~)
  3. Make a complete use case model for the Grain Elevator system. Include a use case diagram, actor briefs, use case descriptions for all use cases, and a design rationale in which you discuss important design decisions. (*)
  4. Make a conceptual model for the Grain Elevator System.
  5. Make a design class model for the Grain Elevator System.
  6. Co-design the components and component interactions of the Grain Elevator System. Deliver a complete design class model (a UML class diagram), interaction models for all interesting interactions (UML sequence diagrams), and a design rationale in which you discuss important design decisions. (*)
  7. Beginning with a mid-level design of the Grain Elevator System, write operation specifications for all operations. (*)
  8. Beginning with some design documentation for the Grain Elevator System, conduct a design inspection. As a first step, create an inspection checklist appropriate for the design document you intend to inspect. (*)
  9. Beginning with some design documentation for the Grain Elevator System, conduct an active design review. (*)
  10. Beginning with a design document for the Grain Elevator System, attempt to improve the design by  incorporating one or more architectural styles.
  11. Beginning with a design document for the Grain Elevator System, attempt to improve the design by  incorporating one or more mid-level design patterns.

SafeMessage System

The SafeMessage System is a secure instant messaging system that provides various levels of secure communication between individuals over the Internet.
  1. Make a use case diagram for the SafeMessage System. (~)
  2. Make a stakeholders-goals list for the SafeMessage System. (~)
  3. Make a complete use case model for the SafeMessage system. Include a use case diagram, actor briefs, use case descriptions for all use cases, and a design rationale in which you discuss important design decisions. (*)
  4. Make a conceptual model for the SafeMessage System.
  5. Make an architectural profile for the SafeMessage System.
  6. Make an architectural profile and write a complete set of scenarios for the SafeMessage System. (*)
  7. Devise two architectures for the SafeMessage System and use a scoring matrix to compare them with one another. Use the scenarios from an architectural profile to as criteria in your evaluation. (*)
  8. Make a design class model for the SafeMessage System.
  9. Co-design the components and component interactions of the SafeMessage System. Deliver a complete design class model (a UML class diagram), interaction models for all interesting interactions (UML sequence diagrams), and a design rationale in which you discuss important design decisions. (*)
  10. Beginning with a mid-level design of the SafeMessage System, write operation specifications for all operations. (*)
  11. Beginning with some design documentation for the SafeMessage System, conduct a design inspection. As a first step, create an inspection checklist appropriate for the design document you intend to inspect. (*)
  12. Beginning with some design documentation for the SafeMessage System, conduct an active design review. (*)
  13. Beginning with a design document for the SafeMessage System, attempt to improve the design by  incorporating one or more architectural styles.
  14. Beginning with a design document for the SafeMessage System, attempt to improve the design by  incorporating one or more mid-level design patterns.

Song Scheduling System

The Song Scheduling System allows radio station personnel to create and modify song schedules based on song popularity, frequency of play, and time since last play.
  1. Make a use case diagram for the Song Scheduling System. (~)
  2. Make a stakeholders-goals list for the Song Scheduling System. (~)
  3. Make a complete use case model for the Song Scheduling system. Include a use case diagram, actor briefs, use case descriptions for all use cases, and a design rationale in which you discuss important design decisions. (*)
  4. Make a conceptual model for the Song Scheduling System.
  5. Make a design class model for the Song Scheduling System.
  6. Co-design the components and component interactions of the Song Scheduling System. Deliver a complete design class model (a UML class diagram), interaction models for all interesting interactions (UML sequence diagrams), and a design rationale in which you discuss important design decisions. (*)
  7. Beginning with a mid-level design of the Song Scheduling System, write operation specifications for all operations. (*)
  8. Beginning with some design documentation for the Song Scheduling System, conduct a design inspection. As a first step, create an inspection checklist appropriate for the design document you intend to inspect. (*)
  9. Beginning with some design documentation for the Song Scheduling System, conduct an active design review. (*)
  10. Design a data structure for the portion of the Song Scheduling System program that stores data about songs and document it with one or more data structure diagrams. Design an algorithm to use this data structure to prioritize songs and generate a song schedule, and document it with pseudocode.
  11. Beginning with a design document for the Song Scheduling System, attempt to improve the design by  incorporating one or more architectural styles.
  12. Beginning with a design document for the Song Scheduling System, attempt to improve the design by  incorporating one or more mid-level design patterns.

Single Page Pager

The Single Page Pager is a very simple electronic pager device.
  1. Make a use case diagram for the Single Page Pager. (~)
  2. Make a complete use case model for the Single Page Pager. Include a use case diagram, actor briefs, use case descriptions for all use cases, and a design rationale in which you discuss important design decisions.
  3. Describe the behavior of the Single Page Pager using a UML state diagram.
  4. Make a conceptual model for the Single Page Pager.
  5. Make a design class model for the Single Page Pager.
  6. Co-design the components and component interactions of the Single Page Pager. Deliver a complete design class model (a UML class diagram), interaction models for all interesting interactions (UML sequence diagrams), and a state model describing interesting state-based behavior (UML state diagram).
  7. Beginning with a mid-level design of the Single Page Pager, write operation specifications for all operations. (*)
  8. Beginning with some design documentation for the Single Page Pager, conduct a design inspection. As a first step, create an inspection checklist appropriate for the design document you intend to inspect. (*)
  9. Beginning with some design documentation for the Single Page Pager, conduct an active design review. (*)
  10. Beginning with a design for the Single Page Pager, implement the design in a simulator. The simulator should have a text display representing the pager display, and two buttons representing the pager buttons. (*)

Copyright © 2007 Pearson Education, Inc.