This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Software engineering is dedicated to designing, modifying and implementing softwares so that it is of high quality, and faster to build. This chapter concentrate its effort on design pattern that this project deserves, and also the system layout, use cases, HCI element, usability, usefulness and user experience.
4.2. Design Patterns
"Design Patterns are recurring solution to design problem you see over and over" .et al Cooper 2001. In other words, design pattern is a description of how to solve a problem that can be used in many different situations. Design patterns are not just about the design of objects but also the interaction between them.
A common pattern use for this project is Model-View-Controller (MVC) which divides the user interface into three parts
- Data model
Data Model manages the behaviour and data of the application domain whereas view renders the model into a form suitable for interaction (user interface) and controller interacts between the user and the view.
4.3. MVC Pattern
The User Interface is separated from the model (business logic). The user interface creates an object of the control classes and calls their methods. The control classes are completely independent of the user interface. There are many various design patterns incorporated together. Therefore the simplest design pattern that can be identified in this solution is Model View Controller (MVC) pattern.
Model: application state (maintains application state and implements state-changing behaviour). The package which had identified is "Stego" package.
View: Output (Screen and file output). The packages identified under these are:
"GUI" (as the User Interface)
"Filters"(to deal with image input and output)
Controller: Tells the model or view to change accordingly. The package identified under this "Algorithm" package which makes decision to make model change accordingly.
4.4. System Layout
System Layout refers to any plan, sketch, drawing, or outline designed to demonstrate or explain how something works or to clarify the relationship between the parts of a whole project system.
4.5. Use case Diagram
A use case diagram in the Unified Modeling Language (UML) is a type of behavioral diagram defined by and created from a Use-case analysis. Its purpose is to present a graphical overview of the functionality provided by a system in terms of actors, their goals (represented as use cases), and any dependencies between those use cases (Bennett et al., 2006).
The main purpose of a use case diagram is to show what system functions are performed for which actor. Roles of the actors in the system can be depicted.
Fig 4.2 use case diagram
4.6. Design Class Diagram
A class diagram is a structural diagram that shows classes with their attributes, operations, and associations between other classes (Bennett et al., 2006). It shows the templates (classes) of objects that can be manipulated by other classes. Basically, it is a blueprint of the software program. At this stage, the analysis UML class diagrams have been detailed to form design class diagrams. These design class diagrams contain data types of attributes, parameters and return types of operations, and object visibility. "An operation's signature is determined by the operation's name, the number and type of its parameters and the type of the return value if any" (Bennett et al., 2006).
4.7. Sequence Diagram
The design of this product requires some aspects of time, synchronous, and asynchronous message passing detail. Sequence diagrams specify set of objects and communication pattern amongst them (Bennett et al., 2006). In this case, the object instances are modelled in terms of roles they play. They model the dynamic behaviour for important use cases specified in the use case diagram.
4.8. HCI Elements
Bainbridge (2004) said that "Human-Computer Interaction (HCI) is also known as man-machine interaction (MMI) or computer-human interaction (CHI)." These are the studies of interaction between people (users) and computers. Interaction between users and computers occurs at the user interface (or simply interface); this is the screen that the user sees, rather than the back end support systems such as database or network and includes both software and hardware, for example, general purpose computer peripherals and large-scale mechanical systems such as air craft and power plants.
User in computing context is one who uses a computer system. Users may need to identify themselves for the purpose of accounting, security, logging and resource management. Users are also widely characterized as the class of people that uses a system without complete technical expertise required to fully understand the system. They are also called real users or end users, who in popular concept in software engineering, referring to an abstraction of the group of persons who will ultimately operate a piece of software.
The abstraction is meant to be useful in the process of designing the user interface, and is therefore built on a relevant subset of any user's characteristics which may include computer interface user is comfortable with, his/her technical expertise and degree of knowledge in specific fields or disciplines, and any other information which is believed to be relevant in a specific project. The sample of interaction between users and computers is described in the following.
Figure 4.5. Concept of HCI (Source from Bainbridge (2004))
The user interface is included in HCI, which interact with a particular machine, device, computer program or other complex tool (the system). The user interface provides
Input, allowing the users to manipulate a system.
Output, allowing the system to produce the effects of the users' manipulation.
In order words, it is often used in the context of computer systems and electronic devices. The user interface of a mechanical system, a vehicle or an industrial installation is sometimes referred to as the human-machine interface (HMI). The most common type of user interface which is one of the facts to concern with in HCI is
Graphical User Interface (GUI) accepts input via devices such as computer keyboard and mouse and provides articulated graphical output on the computer monitor.
The product is going to be mainly concerned about user enabling to have privacy in order to have communication without knowing or suspecting anyone else. So it can be assumed that the application has got capability for users to have their own safety.
Every people have the rights of their own privacy. As this application is about hiding secret image into the cover secret image, it may be useful in such a point to have a private communication.
4.11. User Experience
Figure 4.6. Expected Interface Design of Java Steganography Application
The user interface design will be designed according as it shown in above figure. The buttons are going to be at the bottom all together so user will not get confused which button to click to do the functions accordingly. And it is going to display picture path when user click get message so they can see clearly that which one is going to be secret and which one to be cover image. There will be menu tapes at the top. There is going to be a tape called About which will be able to direct users what will happen by clicking which buttons and so on. Therefore, this application is going to be concerned about user experience as a part of Human Computer Interaction (HCI) as well.
The project system production has been taken into consideration, by developing a prototype that is both socially and technically acceptable. The interface has been developed according to HCI guidelines, and font size and colours shall be used to maintain consistence. Furthermore, design patters and existing libraries have been identified for the development of the prototype.