CSCI 250 Advanced Software Engineering Assignment

Assignment Help Other Subject
Reference no: EM132496725

CSCI 250 Advanced Software Engineering - California State University

The project: You are to build an "artificial" file system displayed by a graphical/text editor. The project has 3 parts: (1) creation of the file system; (2) feature extensions and maintainable structures; and (3) behavior of the file system.

The best solution is to consider and integrate Parts 1-3 altogether. Here, I split the project into 3 parts to help you solve this project step by step (or get partial credits). Your score will be lower if you cannot integrate them seamlessly together. Also, please note this is design patterns project, you should follow all good software design concepts and principles you've learned. Bad design will get points off.

Part 1. Creation of a file system:
You will implement the skeleton of a hierarchical file system using Builder, Singleton, and Composite patterns. Your file system should handle file structures of arbitrary size and complexity. It shouldn't put arbitrary limits on how wide or deep the file structure can get. From the implementer's perspective, the representation for the file structure should be easy to deal with and extend. (Note, please do not use File and Dir classes in Java/C#. These classes are to create real files/directories in your computer).

When your program starts, Builder pattern is in charge to parse a script that is composed by the commands as follows (script1.txt provided on Canvas). Builder pattern will then create a file system, using Composite and Singleton patterns, based on the script. For this project, do not worry about creating a very detailed and robust command line interpreter. You can assume that the user will always use the system in the proper way. At the start of the program, your user can assume that the file system is empty and they are in the "root".

mkdir <dirname> - add a new sub-directory, called dirname, to the current
directory
create <filename> <size> - create a new file in the current directory. Its name will be
filename, and the size attribute of the file will be the 2nd command line arg
cd <dirname> | .. - this will change to a subdirectory named dirname, or
change to the parent directory (in the case of ".."); path expressions do not need to be supported
del <dirname> | <filename> - this will delete the file named filename, or it will do a
cascading delete in the case of dirname
size <dirname> | <filename> - this returns the size attribute of a filename; in the case of a
directory, it returns the size of ALL files and subdirectories ls <dirname> | <filename> - in the case of filename, this will print the name of the file
and its size; in the case of dirname, it will list all of the files/sizes in the named directory; it is NOT cascading; if no parameter is given, default to current directory

Part 2. Feature extensions using maintainable structures

Create a new folder that stores the source code from Part 1. Revise the source code to make it maintainable.
1. Use the Visitor pattern to re-implement the "del" "size" and "ls" commands.
2. Use the Visitor pattern to implement "resize" command described as follows:

resize <filename> <size> - resize an existing file in the current directory. Its name
will be filename, and the new size attribute of the file will be the 2nd command line arg
3. Use the Visitor pattern to implement "exit" command. It pretends to jump out of the file system. The "exit" will perform the action stated in (4). Don't forget to keep the instance of file system so user could access to it in Part 3.
4. Implement Proxy pattern for deleting files and directories. The "del" command will defer deleting a file or a directory until "exit" command is called.

Part 3. Behavior of a file system:
Revise the TreeDisplay concept covered in Adapter pattern (also shown as follows). (You may not need all the functions in TreeDisplay).

421_figure.jpg

1. Implement Adapter pattern so that by calling display() function of DirectoryTreeDisplay the entire tree structure can be drawn. You only need to show the hierarchy of the file system, including names and file/dir sizes, in text format.

2. Introduce a header and footer to TextDisplay using Decorator pattern.

3. Implement Observer pattern to resize command. When "resize" is called, namely, when a file is resized, DirectoryTreeDisplay will display the new hierarchy of the file system with the sizes of directories and files. Note that you may need to run Builder again to see if it is working. script2.txt is available on Canvas for you to test.

Attachment:- Advanced Software Engineering.rar

Reference no: EM132496725

Questions Cloud

How can the company use stimulus generalization to market : How can the company use stimulus generalization to market these products? Is instrumental conditioning applicable to this marketing situation?
How would you apply the principles of triple aim initative : How would you apply the principles of the Triple Aim initiative to improve quality, safety and satisfaction in the acute care or long-term care setting?
Describe opportunities provided by technology for business : Apply critical thinking skills to analyze business situations. Apply principles of quantitative and qualitative research to business cases.
What practices would you apply to minimize medical errors : How would you apply the principles of the Triple Aim initiative to improve quality, safety and satisfaction in the acute care or long-term care setting?
CSCI 250 Advanced Software Engineering Assignment : CSCI 250 Advanced Software Engineering Assignment help and solution, California State University - assessment writing service
What are the components of competitive strategy : What are the components of competitive strategy? Within competitive strategy what is the relevance of a value change framework?
What would happen to company performance : What hard evidence (in the form of results relating to your company's performance in the most recent year) can you cite that indicates
Maintain normal body temperature : List 5 factors that determine whether an animal would need specialized organs to exchange gases, get nutrients or get rid of wastes.
Are the risks of pesticide use worth the benefits : Are the risks of pesticide use worth the benefits? What values, beliefs, and perspective lead you to this conclusion? Provide examples.

Reviews

Write a Review

Other Subject Questions & Answers

  EFB308 Financial Modelling and Coding Assignment Problem

EFB308 Financial Modelling and Coding Assignment Help and Solution, Queensland University of Technology, Australia - Simulate revenues to simulate NPVs

  Write an essay comparing or contrasting the two topics

Write an essay comparing or contrasting the two topics in your selection using EITHER the point-by-point OR the subject-by-subject method to organize.

  Dippin'' dots ice cream

Provide a brief evaluation of the Company's performance using the Balanced Scorecard as a framework

  Discuss the hormones produced by the gland

Choose one of the following endocrine glands from the table below to research. Discuss the hormones produced by this gland and how those hormones are used.

  What is one of the three components using per capita income

What is one of the three components that (according to Utts) was BOTH relevant and NOT properly discussed within the article

  Describe the different strategies you used to try to solve

complete the problem solving simulation located on the student website and answer the followingbull

  How do criminologists define white collar crime

How did E.A. Ross describe an individual who committed a white collar crime? Discuss Edwin H. Sutherland's 1940's study of white collar crime. How do criminologists define white collar crime?

  Illustrate impression management and social tuning

Provide a minimum of four personal examples to illustrate impression management, social tuning, social comparisons, mindsets, intrinsic/extrinsic motivation

  Implement changes to improve the quality of health care

In a 1-2 page paper, analyze at least two obstacles hospital administration may face as they implement changes to improve the quality of health care

  Find an article online about controlling pests

Integrated Pest Management (IPM) uses many forms of control to minimize the damage that pests (bacteria, insects, rats, weeds...) can do.

  Research proposal for your capstone project

Your research proposal for your Capstone Project should be written on a topic in which you feel an investment and that also is relevant to fields within the social sciences. What relevance does this issue have in your own life? Does it relate to y..

  Legal implications of two concepts

Distinction between allowing a patient to die and physician-assisted suicide. Discuss the legal implications of the two concepts? What moral implications do they have?

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd