I need you to develop some software for me. I would like this software to be developed for Windows . Specification
InstructionSet is a firm that specialises in the development of software to manage and publish instruction guides (e.g… user guides, manuals and guidelines) for mostly consumer orientated products. Part of their new software system that they are developing to replace an aging legacy system is to do with managing blocks of text that appear in such instruction guides. InstructionSet know that there are predominately two kinds of text blocks:
Legal text block: A legal text block consists of text that is indented and has an italic font. E.g.:
McRubbish provides a limited warranty of 12 months for the McRubbish chocolate kettle.
McRubbish cannot be held responsible for any failings resulting in the inappropriate use of the McRubbish chocolate kettle.
The above would be represented using 2 legal text blocks.
Instruction text block: An instruction text block consists of text that has a numeric value prepended to it and has a bold font, e.g.:
1. Lift the left-hand clip and place the cardboard strip in the space revealed by the clip.
2. Firmly replace the left-hand clip until you hear a click.
3. Repeat steps 1 and 2 for the right-hand clip.
In the above, there would be 3 instruction text blocks, each having a numeric value as the first character in the text block.
In addition to the above, certain customers require text blocks that have background colours different to other text blocks. Some customers require text blocks that have different text colours (i.e… foreground colours) different to other text blocks. Some customers require text blocks that have different text colours and different background colours to other text blocks. Some customers require text blocks that have text that is underlined or double-underlined. Note that all these combinations are possible for text blocks, e.g… it is possible for a text block to be a legal text block that has a yellow background, red fore-ground and double-underlined text.
This part of the system should also allow the user to create one or more instruction guides. Each instruction guide has a unique name, where each guide holds one or more text blocks (legal and/or instruction). The user should be able to edit text blocks, delete text blocks, add text blocks and specify styles for text blocks (colours, underlines and fonts). The user also should be provided with a means to view instruction guides.
1. Research the decorator pattern—there are a number of excellent websites that discuss this pattern in detail (e.g… **Web Address Removed**).
2. Briefly summarise the decorator pattern in your own words. Consider to what extent the decorator pattern could be used to satisfy the specification outlined in the above text. In your discussion look at the viability of making use of the adapter pattern as an alternative approach—which pattern is the most suitable? Why? Or perhaps neither is suitable—if so, explain why that is the case. Conclude by providing a class diagram of your pattern design that is specific to your solution (i.e… do not provide a generic pattern class diagram).
Finally, in your report consider the phrase “favour composit**Telephone Number Removed** nheritance”—what does this mean and why does this phrase advise composition instead of using inheritance.
(Class diagram: 10 marks
Decorator pattern: 20 marks
Pattern choice: 10 marks
Report: 15 marks)
3. Produce an implementation of InstructionSet’s system as a Windows Forms app that handles text blocks as outlined in the above specification. One approach to this would be to make use of one or more menus to allow the user to create instruction guides, add/remove/edit text blocks, specify styling, print instruction guides, and save instruction guides to file, etc. Ensure that you satisfy all requirements as outlined in the specification above. In addition, your code must include an implementation of your class diagram from part **Telephone Number Removed** . Windows Forms apps support menu controls—you can drag them onto a form from the Toolbox.
2. You should make use of the RichTextBox control to display your instruction guides.
3. NOTE: Groups must be strictly limited to a maximum size of TWO. There are no exceptions to this.
4. Although no presentation is required for this repeat CA, I reserve the right to discuss your code and design should I need to before releasing final marks.