Reference no: EM132381259
Principles of Software Engineering
2805ICT: System and Software Design
3815ICT Software Engineering
7805ICT Principles of Software Engineering Overall Project Description
1 Complex Computing Characteristics
The student who completes this item of assesment satisfactorily will demonstrate compenticy in the following Complex Computing Characteristics.
1. Involves wide-ranging or conflicting technical, computing, and other issues because it involves the design of software architecture, the analysis of require- ments, consideration of sophisticated advanced new versions, and deployment to several platforms.
2. Has no obvious solution, and requires conceptual thinking and innovative analysis to formu- late suitable abstract models because the tasks puts into practice sophisticated modelling techniques, software building tools, version controls and software documentation generators.
3. A solution requires the use of in-depth computing or domain knowledge and an analytical approach that is based on well-founded principles because the tasks brings together sophisticated methods for software development and the practical illustration of software engineering principles.
4. Involves infrequently-encountered issues because students face complex architectural design issues: the project offers chal- lenging algorithmic tasks and user-interface issues as a complex generalization of the Mine Sweeper game are requested as part of the deliverables of the project.
5. Involves diverse groups of stakeholders with widely varying needs because the requirements are significantly open and milestone 2 demands the pro- duction of a progress report to meet the needs of diverse stakeholders.
6. Has significant consequences in a range of contexts because there are issues in the design of the GUI when buttons are not rectangles, or where graphs must be embedded in the canvas, but also in terms of splitting software components to create re-use opportunities in client/server architectures, for instance.
7. Is a high-level problem possibly including many component parts or sub-problem because there are issues of gamification and accuracy of the game versus the com- plexities of an interactive application on several platforms.
Objectives
1. Explain design principles including of least privilege and fail-safe defaults, separation of concerns, information hiding, coupling and cohesion, and encapsulation.
2. Describe the design process for a software development project for each of the main software design methods
3. Create appropriate system models for the structure and behaviour of software products from their requirements specifications
4. Use a design paradigm to design a simple software system, and explain how system design principles have been applied in this design.
5. Select an appropriate software architecture as the design basis for a given software require- ments specification, justify the selection based on its advantages over alternative architec- tures.
6. Create software programs that make use of appropriate design patterns.
7. Create user interface software using either event driven or callback based designs 8.Explain the importance of Model-View controller to interface programming.
9. Discuss the properties of good software design including the nature and the role of associated documentation.
10. Create appropriate design documentation for a variety of different designs.
Task 1
Your first task is to implement in your favourite programming language and using your favourite programming tools a version of Mine sweeper where scores are the time taken for a particular dimension of the board. However, this is just one phase of the overall challenge, and you should consider designing your software architecture and software components so other tasks are also achieved.
Instructions
However, many variants of the game are possible. Your job is to design software components and software architectures that enable significant reutilization as well as other properties of software quality. We are interested in your infrastructure supporting other version of the game as well as potentially many platforms (hardware and software).
More importantly, you should complete this overall project including a report that discussed your decision making with reference to software engineering principles.
Thus, for example, many versions of Mine sweeper are discussed in the web page
In particular, the presentation layer of the game can change to hexagons although the basic infor- mation and moves persist (see Figure 2). Objectives may change to traveling across the mine filed rather than revealing the position of all bombs. See the section on Hexmines.
Task 2
Your second task is to implement in your favourite programming language and using your favourite programming tools a version of Mine sweeper where scores are the time taken for a particular dimension of the board. However, this time your program should enable two version of the games, and array of square cells and also enable the user to chose an array of hexagonal cells.
Task 3
Your third task is to extend your implementation so that the new coloring based Mine sweeper is also an extension of the game. Note that you are not required to represent the game in any sort of grid. The colors version of the game only requires to show the topological information (what node is connected with what other node by an edge) and whether the node is colored or covered.
Second Challenge - Reflective illustration
The second part of this project is to provide design documentation that demonstrated the use of software design principles. In particular, you should direct the marker evaluating your submission with your documentation to specific examples on how your project
1. applies principles like separation of concerns, information hiding, reduction of coupling, maximizing cohesion and applying encapsulation.
2. uses a design method or explain how your product evolved by design into the shape and form that it is now
3. explain how the structure of your code follows a Model-View-Controller software pattern and justify this as variations of the Model, the View or the Controller could potentially be introduced
4. has been lifted to design documents for communication its design (you must include at least one class diagram, two collaboration diagrams, one sequence diagram and one state chart)
5. has anticipated the potential for faults and failures, and what testing is performed to validate components.
Attachment:- System and Software Design.rar