Define class-based component design

About this AssignmentIn 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 designDevelop a data flow diagram, state chart, activity diagram, and interface descriiptionsDesign a user interfaceDevelop a testing planJustify the design for the user interface and the testing plan.ScenarioYou 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 descriiption for the in-home smart thermostat systemDesign a simple user interface for the thermostat systemWrite a report that includes the following:An explanation of the purpose and use of class-based component designA 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 & SourcesThis assignment covers material presented in the chapters:Component-Level Design: Definition & TypesClass-Based Component Design: Principles & ProcessPractical Application for Software Engineering: Component-Level DesignPractical Application for Software Engineering: User Interface DesignYou 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:What is APA Format? Style & DefinitionHow To Format APA CitationsGrading RubricYour project will be graded based on the following rubric:Category Unacceptable (0-2) Needs Improvement (3-6) Good (7-8) Excellent (9-10) Total Possible PointsExplanations & Justifications (x1) Explanations are incomplete or missing; no sources used to justify the decision Explanations are incomplete; justifications are semi-logical, but not supported with evidence Explanations are provided and correct; justifications are logical and but not fully supported with evidence Explanation and use of diagrams is correct; justification of decisions is logical and fully supported with evidence 10System Diagrams (x1) Diagrams are incomplete, sections missing Components present but missing descriiptions and logical flow Diagrams complete but missing notations or difficult to read or follow Diagrams are fully complete with notations, logical flow, and are easy to follow 10User Interface (x1) Interface is not intuitive; missing labels or indication of the purpose of functions Interface is complete but missing more than two of the interface design process, or design requires unnecessary amount of clicks/interactions) Interface is complete, but missing one or two steps in the process Interface is complete and all steps outlined (map the flow, minimal clicks, exception handling, and screen design) 10Testing Plan (x1) Testing plan incomplete; missing key definitions and methods of testing Plan covers only one type of software testing; examples missing Multiple methods of testing provided but lacking in definition and completion Full analysis of software testing, including dynamic and static testing; examples provided and analyzed 10