Question? Call Us  +1 (817) 546-4770

2805ICT Principles Of Software Engineering

Academic Anxiety?

Get an original paper within hours and nail the task

156 experts online

Free Samples

2805ICT Principles Of Software Engineering

.cms-body-content table{width:100%!important;} #subhidecontent{ position: relative;
overflow-x: auto;
width: 100%;}

2805ICT Principles Of Software Engineering

0 Download7 Pages / 1,623 Words

Course Code: 2805ICT
University: Griffith University is not sponsored or endorsed by this college or university

Country: Australia


Explain design principles including of least privilege and fail-safe defaults, separation of concerns, information hiding, coupling and cohesion, and encapsulation.

Describe the design process for a software development project for each of the main softwaredesign methods

Create appropriate system models for the structure and behaviour of software products from their requirements specifications

Use a design paradigm to design a simple software system, and explain how system design principles have been applied in this design.

Select an appropriate software architecture as the design basis for a given software requirements specification, justify the selection based on its advantages over alternative architectures.
Create software programs that make use of appropriate design patterns.
Create user interface software using either event driven or callback based designs
Explain the importance of Model-View controller to interface programming.
Discuss the properties of good software design including the nature and the role of associated documentation.


Requirement Analysis
A handful of the functional and non-functional requirements have already been capitalized onto and implemented in the prototype version of the application. The application is about a minesweeper game. It is a game where the player is needed to click on the buttons from a grid of boxes. There are placed a random number of bombs under a few of these boxes. The user or the player is needed to click on these boxes to reveal if there is actually a bomb underneath. If there is no bomb or mine present in any of the vicinity boxes of the clicked box, a green patch of land would appear, otherwise, the number of boxes in the vicinity will be displayed within the clicked box. The player is required to play with his wit and calculations to click on all safe boxes and end the game without hitting any mine, this will lead to a victory. On clicking a box with a hidden mine, the user will be bombed and the game will be over. The user needs to complete the game with minimum number of clicks and most importantly minimum amount time consumed.
The protoype has already fulfilled the following requirements:

It already has a game board and allows the users to play as necessary, but only in a easy game board with 6*6 cells and 10 mines placed.
The number of clicks are available with every click of the user. This can even be updated into the end screen information where the gamer can view the number of clicks that he survived the game in case of a defeat.
The user can freely restart the board at any point of time. This will allow the user to refresh his or her mind and play in a new board with a newer set of mine placements and the entire board will be cleared. The restart option can also be availed using the Restart option from the End screen.
The End screen also fruitfully displays the congratulations or defeated message according to the ending of the game.

However, some of the crucial requirements could not be implemented into the preliminary prototype version of the software application. The development process for these implementations are still in process and will be completed and deployed in the final project. These on-going requirement designs are as follows:

Timer: The project is yet to be implemented with a timer that keep tracks about the time that a particular game is going on for.
Multi-sized boards: The development for multiple difficulty levels is in process. On implementation, the game will have two types of boards. Apart from the 6*6 that it already has, a 12*12 massive board will be introduced with more mines and increased difficulty. This will certainly induce more user interest into the game.
Reveal all connected blank boxes: This is one of the most important implementations that is yet to be implemented. Through this functionality the game will be able to reveal all the connected boxes within the board with no bombs in the vicinity.

Use Case analysis
As mentioned in the requirement analysis phase, few of the functional use cases has been already implemented however a lot remains. These will allow the project and the software to be scaled up to a recommendable gaming application for all android application users. The use cases that have been implemented have already been described in the requirement fulfillment phase above, however, the unfulfilled use cases are as follows:

Choosing the difficulty level is still now allowable in the prototype version. The prototype will allow the users to play on the easy board of 6*6 boxes.
Saving and viewing high scores is a coveted use case for any gaming applications or software. This application too needs to have this feature. Through this feature, the user will be able to analyze the time taken by him to play the game in the past and compete against his past performances to attain newer achievements.
The project is yet to be implemented with a timer that keep tracks about the time that a particular game is going on for. This will be necessary for the scalability of the gamer’s performance over the game and allow him or her to compare with the competitors.

Software Architecture
The project has been developed in the Android Studio Platform using the Java programming language. Java is the most commonly used programming language in the world and when it comes to android programming it is generally the first and foremost choice for any programmer or app developer. The programming language offers the best of Object Oriented Programming features and functionalities. This application too had the utmost need of implementing the OOP or object oriented programming features like inheritance, polymorphism and data hiding. Most importantly the use of classes and objects has been extremely helpful in this process.
The application as mentioned before has been designed and developed on the Android Studio platform which is the Google approved and developed first choice application for android app development. This platform has tons of features, tools and functionalities that allow the smooth design of development of project within it. The platform not only gives the developers the scope to design and develop programs, but also allows the testers to test the programs based on various test case analysis tools and techniques.
The game’s interface has been designed using the XML layouts. XML or eXtensible Markup Language was designed for the purpose of storing and transporting data. XML was primarily designed to be both machine-readable and human-interpreted. Later, android started the use of XML parsing to create interface layouts. This allows the implementation of various layout patterns with design based and alignment rules and techniques. It also has the functionalities to import buttons, images and other necessary widgets that are necessary for the designing of a complete software application interface. This creates the View of the program.
Using Java was the primary choice of all other programming languages that are available. Java provides the best use of OOP features. In this project too, object and classes have been extensively used. Every entity in the project is determined and represented as classes and objects. For the game development process, the Box class has been designed to represent each box within the boards. The matrix Board [ ] [ ] is made to hold multiple instance of the Box class. Each box object has been created with a special set of attributes that determines whether it a mine of a safe land. Multiple single dimensional arrays and multidimensional arrays have been used to simulate the game and help in the data collection and calculation process for the game. The methods have been made private within the BoardActivity class to keep it out of access from the outside classes. This helps in maintaining security, which is a crucial feature of OOP. Intents have been created and passed between various activities to convey data from one page of the app to the other. This represents the controller of the program with the logical implications.
In the future, a model based level will be added to the project which will deal with the data. SQLite database is to be implemented to hold the scores of the user playing on a particular device. Doing so, will allow the easy access of data whenever necessary for score calculations. Further, threads are to be implemented within Java to allow the timer to be executed flawlessly in the background while the user is busy in the game.
Sophistication Discussion
The project has been implemented in the prototype without much need of data access or security features. This is because the project is yet to be connected to any database with sensitive user information. The interface design has been done keeping in mind almost all sizes of screens. It was necessary as the program was being developed for the mobile devices and there are various sizes available nowadays. The interface has buttons and clickable icons wherever necessary. This allows to exhibit a rich user interface with quality graphics and interactive medium. The program has been so developed to display Toast messages in case of all notifications that the use requires. This is one of the information access feature that the program has already achieved in its prototype version.
As of now there is only one type of user that plays the game and therefore access control and security measures have been overlooked. However in the future with the implementation of the database and user login abilities, these will be induced. The entire process will be repeated and the implementations will be done based on the Agile Development process.
The prototype has been thoroughly tested using the tools and techniques provided by Android Studio. The program has been tested not only for the feasibility of the functionalities but also has the interface flexibility has been tested for various resolution screens. This has been done with the help of the emulator that is provided by Android Studio.
The unit testing technique had been primarily used to test the application’s individual units and activates. On successfully testing the modules individually, the project was tested using the Black Box testing methods to check for fulfilment of the complete functionality integrations.
Prototype Software Patterns
The BoardActivity java page of the application is being highlighted in this section to describe the software design patterns.
Apart from the above java programming part, there is also the layout xml file that was coded in order to design the interface of the activity. The code for the xml is being attached below.
The layout has been designed with the help of multiple image buttons placed inside a grid of linear layouts.

Free Membership to World’s Largest Sample Bank

To View this & another 50000+ free samples. Please put
your valid email id.


Yes, alert me for offers and important updates


Download Sample Now

Earn back the money you have spent on the downloaded sample by uploading a unique assignment/study material/research material you have. After we assess the authenticity of the uploaded content, you will get 100% money back in your wallet within 7 days.

UploadUnique Document

DocumentUnder Evaluation

Get Moneyinto Your Wallet

Total 7 pages


*The content must not be available online or in our existing Database to qualify as

Cite This Work
To export a reference to this article please select a referencing stye below:


My Assignment Help. (2021). Principles Of Software Engineering. Retrieved from

“Principles Of Software Engineering.” My Assignment Help, 2021,

My Assignment Help (2021) Principles Of Software Engineering [Online]. Available from:[Accessed 18 December 2021].

My Assignment Help. ‘Principles Of Software Engineering’ (My Assignment Help, 2021) accessed 18 December 2021.

My Assignment Help. Principles Of Software Engineering [Internet]. My Assignment Help. 2021 [cited 18 December 2021]. Available from:

.close{position: absolute;right: 5px;z-index: 999;opacity: 1;color: #ff8b00;}


Thank you for your interest
The respective sample has been mail to your register email id


$20 Credited
successfully in your wallet.
* $5 to be used on order value more than $50. Valid for
only 1

Account created successfully!
We have sent login details on your registered email.



Accounting requires a lot of calculation in the balance sheets, chart of accounts, tax accounting, etc. But, you can calculate the complex questions using our scientific calculators and algebra calculators. Thus, you get optimum accounting assignment help, and at the same time, you can save valuable time while acing your task. If you stumble across any problem, you can avail our assignment help.

Latest Management Samples

div#loaddata .card img {max-width: 100%;

MPM755 Building Success In Commerce
Download :
0 | Pages :

Course Code: MPM755
University: Deakin University is not sponsored or endorsed by this college or university

Country: Australia

The process of developing a successful business entity requires a multidimensional analysis of several factors that relate to the internal and external environment in commerce. The areas covered in this current unit are essential in transforming the business perspective regarding the key commerce factors such as ethics, technology, culture, entrepreneurship, leadership, culture, and globalization (Nzelibe, 1996; Barza, 2…

SNM660 Evidence Based Practice
Download :
0 | Pages :

Course Code: SNM660
University: The University Of Sheffield is not sponsored or endorsed by this college or university

Country: United Kingdom

Critical reflection on the objective, design, methodology and outcome of the research undertaken Assessment-I
Smoking and tobacco addiction is one of the few among the most basic general restorative issues, particularly to developed nations such as the UK. It has been represented that among all risk segments smoking is the fourth driving purpose behind infections and other several ailments like asthma, breathing and problems in the l…
Australia Maidstone Management Business management with marketing University of New South Wales Masters in Business Administration 

BSBHRM513 Manage Workforce Planning
Download :
0 | Pages :

Course Code: BSBHRM513
University: Tafe NSW is not sponsored or endorsed by this college or university

Country: Australia

Task 1
1.0 Data on staff turnover and demographics
That includes the staffing information of JKL industries for the fiscal year of 2014-15, it can be said that the company is having problems related to employee turnover. For the role of Senior Manager in Sydney, the organization needs 4 managers; however, one manager is exiting. It will make one empty position which might hurt the decision making process. On the other hand, In Brisba…

MKT2031 Issues In Small Business And Entrepreneurship
Download :
0 | Pages :

Course Code: MKT2031
University: University Of Northampton is not sponsored or endorsed by this college or university

Country: United Kingdom

Entrepreneurial ventures
Entrepreneurship is the capacity and willingness to develop, manage, and put in order operations of any business venture with an intention to make profits despite the risks that may be involved in such venture. Small and large businesses have a vital role to play in the overall performance of the economy. It is, therefore, necessary to consider the difference between entrepreneurial ventures, individual, and c…
Turkey Istanbul Management University of Employee Masters in Business Administration 

MN506 System Management
Download :
0 | Pages :

Course Code: MN506
University: Melbourne Institute Of Technology is not sponsored or endorsed by this college or university

Country: Australia

An operating system (OS) is defined as a system software that is installed in the systems for the management of the hardware along with the other software resources. Every computer system and mobile device requires an operating system for functioning and execution of operations. There is a great use of mobile devices such as tablets and Smartphones that has increased. One of the widely used and implemented operating syste…
Australia Cheltenham Computer Science Litigation and Dispute Management University of New South Wales Information Technology 


Need an essay written specifically to meet your requirements?

Choose skilled experts on your subject and get an original paper within your deadline

156 experts online

Your time is important. Let us write you an essay from scratch

Tips and Tricks from our Blog

PROJ6016 Employer Based Project

Free Samples PROJ6016 Employer Based Project .cms-body-content table{width:100%!important;} #subhidecontent{ position: relative; overflow-x: auto; width: 100%;} PROJ6016 Employer

Read More »

PPMP20009 Marking Rubric

Free Samples PPMP20009 Marking Rubric .cms-body-content table{width:100%!important;} #subhidecontent{ position: relative; overflow-x: auto; width: 100%;} PPMP20009 Marking Rubric

Read More »