Software Engineering - Assignment 3: Component & User Interface Design

Instructor: Matt McClintock
If you have a College Accelerator membership and are seeking college credit for this course, you must submit an assignment and pass the proctored final exam. You must submit your assignment before registering for the final. Below you will find prompts and instructions for submitting your assignment.

About this Assignment

In this course, you have learned how to create class-based component design.

In this assignment, you will develop a complete class-based design for an in-home smart thermostat that controls heating, air conditioning, and a fan.

Upon completion of this project, you will be able to:

  • Define class-based component design
  • Develop a data flow diagram, state chart, activity diagram, and interface descriptions
  • Design a user interface
  • Develop a testing plan
  • Justify the design for the user interface and the testing plan.


You are the IT manager of a company that makes in-home smart thermostats. Before you develop any code or build any product, you will need to create a system design that can be reviewed by your IT departments and key users.

This requires you to establish a design that is both functional and easy to use. You have decided to use a class-based design for the product, and so all subsequent design decisions flow from this. After developing the class-based design, you will establish the technical flow diagrams (data flow, state chart, etc.). These should be clear and understandable to the IT staff.

Once the flowcharts are constructed, you can continue with a user interface design, always thinking from the users' point of view. You may think you know what a user wants, but many companies also bring in end-users to provide feedback on your design.

Finally, you'll need to justify your design and decisions to upper management before you can move forward.

Here is what you'll need to complete for this assignment:

  • Develop a data flow diagram, state chart, activity diagram, and interface description for the in-home smart thermostat system
  • Design a simple user interface for the thermostat system
  • Write a report that includes the following:
    • An explanation of the purpose and use of class-based component design
    • A proposed testing plan for your software. Your testing plan should identify possible testing gaps and account for components that can't be tested before launch.
    • A justification of your user interface design and testing plan. Use lessons and outside sources to find evidence that will support your choices.

Please use Microsoft Visio or free online programs such as Balsamiq or LucidChart to create your UML diagrams. You should write your report in Microsoft Word or another word processor.

Formatting & Sources

This assignment covers material presented in the chapters:

You may also refer to the course material for supporting evidence. You may use primary and secondary sources as needed and cite them using APA format. If you use any lessons as sources, cite them in APA format, including lesson title and instructor's name.

  • Primary sources are first-hand accounts such as interviews, advertisements, speeches, company documents, statements, and press releases published by the company in question.
  • Secondary sources come from peer-reviewed scholarly journals, such as the Journal of Computer and System Sciences. You may use sources like JSTOR, Google Scholar, and Scopus to find articles from these journals. Secondary sources may also come from reputable websites with .gov, .edu, or .org in the domain. (Wikipedia is not a reputable source, though the sources listed in Wikipedia articles may be acceptable.)

If you're unsure about how to use APA format to cite your sources, please see the following lessons:

Grading Rubric

Your project will be graded based on the following rubric:

To unlock this lesson you must be a Member.
Create your account

Register to view this lesson

Are you a student or a teacher?

Unlock Your Education

See for yourself why 30 million people use

Become a member and start learning now.
Become a Member  Back
What teachers are saying about
Try it now

Earning College Credit

Did you know… We have over 220 college courses that prepare you to earn credit by exam that is accepted by over 1,500 colleges and universities. You can test out of the first two years of college and save thousands off your degree. Anyone can earn credit-by-exam regardless of age or education level.

To learn more, visit our Earning Credit Page

Transferring credit to the school of your choice

Not sure what college you want to attend yet? has thousands of articles about every imaginable degree, area of study and career path that can help you find the school that's right for you.

Create an account to start this course today
Used by over 30 million students worldwide
Create an account