System Engineering System Modeling Various Platform 1. Blackberry

Tools M et hods Process A qualit y focus communication, requirement analysis, design modeling, program construction, testing, and support. 3. Tools It provides automated or semiautomated support for the process and the methods. Figure 2.1 Software Engineering Layers

2.4. System Engineering

Based on Pressman 2005, Software Engineering occurs as a consequence of a process called system engineering. Instead of concentrating solely on software, system engineering focuses on a variety of elements, analyzing, designing, and organizing those elements into a system that can be a product, a sevice, or a technology for the transformation of information or control. Based on Forsberg and Mooz 1995, System Engineering is responsible for involving key personnel to address human factors, safety, producibility, inspectibility, reliability, maintainability,logistics, etc. at each step, starting with risk analyses andfeasibility studies in the Concept Definition phase.

2.5. System Modeling

Based on Pressman 2005, as a software engineer, it is very important to pay attention in system modeling. System modeling is an important element of the system engineering process. The focus is on the world view or the detailed view, the engineer creates models that: define the processes that serve the needs of the view under consideration and represent the behavior of the processes and the assumptions on which the behavior is based. 2.6 OOAD Process Model 2.6.1 Understanding of Object Oriented Object is something that always exists around us, both concrete and conceptual. An object has a state and behavior. State an object is the object conditions stated in the attribute, while the behavior of an object defines how an object to act and to react. Behavior of an object expressed in the operation. Here is a brief description about the object complete with attributes and operations. Figure 2.2 Understanding the attributes and the operations will make objects become real.

2.6.2 Basic Principles of Object Oriented

Here are some basic principles of Object-Oriented concepts. 1. Inheritance As described above, the object is an example of a class. This has important consequences as an instance of a class; an object has all the characteristics of its class. This is called inheritance. Thus, the object will have any attribute and operation derived from its class. Figure 2.3 Example of Understanding Inheritance. Kitchen Equipment and Furniture is inherited from House wares. 2. Encapsulation The term encapsulation is often used interchangeably with information hiding. Not all agree on the distinctions between the two though; one may think of information hiding as being the principle and encapsulation being the technique. A software module hides information by encapsulating the information into a module or other construct which presents an interface. 3. Message Sending In object oriented systems, objects are mutually communicated each other by sending messages. An object sends a message to another object to perform an operation and the object that receive will give the response to run the operation. 4. Association Association is the relationship between objects that need each other. This relationship can be one-way or multiple ways. 5. Aggregation Aggregation is a special form of association that describes all parts of an object is part of another object.

2.6.3 The Concept of Object Oriented Analysis and Design OOAD

Object Oriented Analysis and Design or OOAD is a collection of general guidelines for carrying out analysis and design. It must therefore be tailored to your organization and project. To make our method more usable, writer designed it so that adaptations, improvements, and part substitutions would be easy to implement. Based on Mathiassen 2000, OOAD reflects four central perspectives on a system and its context: the system’s information contents, how the system will be used, the system as a whole, and the system’s components. The perspectives are connected to OOAD main activities: problem-domain analysis, application-domain analysis, architectural design, and component design, respectively. Each activity leads to specific results, which are subsequently included in the analysis and design documentation.

2.6.4 Rich Picture

Based on Mathiassen 2000, Rich picture is an informal drawing that presents the illustrator’s understanding of a situation. A rich picture focuses on important aspects of the situation, which are determined by the illustrator. However, the rich picture should give a broad description of the situation that enables several alternative interpretations.

2.6.5 Experiments with Prototype

Based on Mathiassen 2000, Although a prototype is less complex that the target system, it helps us talk about and evaluate system properties. Prototype limitations can be manifold. Also, prototypes rarely represent components completely.

2.6.6 Development Cycle with OOAD

Figure 2.4 Development Cycle OOAD Based on Mathiassen 2000, There are four main activities that are used for Unified Software Deployment in using OOAD, there are:

1 Problem Domain Analysis

Problem domain analysis focuses on a key question: what information should the system deal with? The answer to this question is so important during all analysis activities, because the problem-domain model provides a language for expressing requirements to the system. The aim of problem domain analysis is to develop such a model. To this end, writer employ an object-oriented focus on the key concepts that users apply to describe the phenomena they administrate, monitor or control. The primary starting point for problem domain analysis is a system definition. The objects element of the system definition provides the basic criterion for selecting objects, classes, and events. 1 Classes Classes Describes how writer approach the task of defining a system’s information content. Writer define and characterize the problem domain by selecting classes and events. The classes define the relevant parts of the problem domain, and since writer view this domain as being dynamic, writer are especially aware of the events of the events associated with objects. 2 Structure Structure deals with structural relations between classes and objects. Writer describe relation in the problem domain as either static, abstract structures between classes or dynamic, concrete structures between objects. The structure activity results in a class diagram that shows the selected classes and the relevant structural relationship between classes and objects. 3 Behavior Behavior deals with object behavior and interaction. In this activity, writer describe the dynamic properties and attributes for each of the selected classes. The description of behavior and attributes creates a more precise characterization of each object in the problem domain.

2 Application Domain Analysis

Application-domain analysis focuses on a question: How will the target system be used? The purpose in asking it is to define requirements for the system’s functions and interfaces. 1 Usage Content: How does the system interact with people and systems in the context? Concepts: Use case and actor. 2 Functions Content: what are the system’s information processing capabilities? Concepts: Function. 3 Interface Content: What are the system’s information requirements? Concepts: Interface, user interfaces, and system interface.

3 Architectural Design

Architectural design is oftern considered an all or nothing question. Wither you build the system from scratch, in which cas all the architectural issues must be addressed; or you adapt the system to an existing architecture, in which case many architectural decisions have already been made.The architecture structures a system according to parts and satisfies certain design criteria. To describes a system in a way that eliminates all essential uncertainties. Creterion a preferred property of an architecure. Table 2.1 Activities in architectural design Activity Content Concepts Criteria Components Process What are the conditions and criteria for design? How is the system structured into components? How are the system’s process distributed and coordinated? Criterion Component architecture and component Process architecutre and process

1. Criteria

In this step, writer look at criteria for object-oriented design and offer simple technique to help you set design priorities. Table 2.2 Criteria Measure Criterion Measure of Usable Secure Efficient The system’s adaptability to the organizational, work-relatived, and technical contexts. The precautions against unauthorized access to data and facilities. The economical exploitation of the technical platform’s facilities. Correct Reliable Maintainable Testable Flexible Comprehensible Reusable The fulfillment of requirements. The fulfillment of the required precisions in function execution. The cost of locating and fixing system defects. The cost of modifying the deployed system. The effort needed to obtain a coherent understanding of the system. The potential for using system parts in other related systems. The cost of moving the system to another technical platform. The cost of coupling the system to other systems.

2. Components

Good component architecture makes a system easier to understand, organizing the design work and reflecting the stability of the system’s context. A class diagram describes the component architecture’s core. UML’s diagram contains packages denoting components, and dependencies between packages denoting component connection.

3. Process

The process architecture brings us closer to the system’s physical level. Writer focus on distribution and execution, and work with processes and objects as opposed to components and classes. Writer also deal with the physical devices that the system will be executed on and consider whether writer need to coordinate shared resources.

4 Component Design

The starting point for component design is the architectural specification and the system requirements. The result of this activity is specification of the connected components. The component design builds on two general principles. The first is respect the component architecture; the second is adapting component designs to the technical possibilities. 2.7 Object-Oriented Design and Modeling Using the UML Unified Modeling Language

2.7.1 Basic Concept of UML

Based on Munawar 2005, UML is a language with a very broad scope that covers a large and diverse set of application domains. Not all of its modeling capabilities are necessarily useful in all domains or applications. This suggests that the language should be structured modularly, with the ability to select only those parts of the language that are of direct interest. On the other hand, an excess of this type of flexibility increases the likelihood that two different UML tools will be supporting different subsets of the language, leading to interchange problems between them. Consequently, the definition of compliance for UML requires a balance to be drawn between modularity and ease of interchange.UML is the work of a consortium of various organizations that successfully used as a standard in OOAD. Contributions to the UML have been generated from many reputable companies. As a programming language, UML can translate the diagram into the code that is ready to run.[19] Five types of diagrams used in this thesis are: 1 Use Cases Diagram Use cases are a means for specifying required usages of a system. Typically, they are used to capture the requirements of a system, that is, what a system is supposed to do. The key concepts associated with use cases are actors, use cases, and the subject. The subject is the system under consideration to which the use cases apply. The users and any other systems that may interact with the subject are represented as actors. Actors always model entities that are outside the system. The required behavior of the subject is specified by one or more use cases, which are defined according to the needs of actors. Strictly speaking, the term “use case” refers to a use case type. An instance of a use case refers to an occurrence of the emergent behavior that conforms to the corresponding use case type. Such instances are often described by interaction specifications. 2 Statechart Diagram State machines can be used to specify behavior of various model elements. For example, they can be used to model the behavior of individual entities e.g., class instances. The state machine formalism described in this sub clause is an object-based variant of Harel statecharts. 3 Activity Diagram The focus of activity modeling is the sequence and conditions for coordinating lower-level behaviors, rather than which classifiers own those behaviors. These are commonly called control flow and object flow models. The behaviors coordinated by these models can be initiated because other behaviors finish executing, because objects and data become available, or because events occur external to the flow. 4 Class Diagram The Classes package contains sub packages that deal with the basic modeling concepts of UML, and in particular classes and their relationships. 5 Sequence Diagram The most common kind of Interaction Diagram is the Sequence Diagram, which focuses on the Message interchange between a numbers of Lifelines. A sequence diagram describes an Interaction by focusing on the sequence of Messages that are exchanged, along with their corresponding Occurrence Specifications on the Lifelines. The Interactions that are described by Sequence Diagrams are described in this clause. 6 Deployment Diagram Deployment diagrams show the allocation of Artifacts to Nodes according to the Deployments defined between them. 2.8. Various Platform 2.8.1. Blackberry BlackBerry is a line of mobile e-mail and smartphone devices developed and designed by Research In Motion RIM since 1999.BlackBerry phones function as a personal digital assistant andportable media player. They are primarily known for their ability to send and receive push Internet e-mail wherever mobile network service coverage is present, or through Wi-Fi connectivity. They support a large array of instant messaging features, including BlackBerry Messenger .

2.8.2. Symbian

Symbian is a mobile operating system OS and computing platform designed for smartphones and currently maintained by Nokia . The Symbian platform is the successor to Symbian OS and Nokia Series 60 ; unlike Symbian OS, which needed an additional user interface system, Symbian includes a user interface component based on S60 5th Edition. The latest version, Symbian, was officially released in Q4 2010, first used in the Nokia N8 . In May 2011 Symbian Anna was officially released on two new phones the Nokia X7 and E6. Nokia announced Symbian Anna will come to all Symbian phones.

2.8.3. Android

Based on Steele and To 2011, Android is the first complete, open, and free mobile platform. Developers enjoy a comprehensive software development kit, with sample tools for developing powerful, feature-rich applications. The platform is open source, relying on tried-and-true open standards developers will be familiar with. And best of all, there are no costly barriers to entry for developers.

2.8.3.1. Data Storage Methods

Based on Steele and To 2011, Complicated and robust Android applications often need to utilize some type of data storage. Depending on the situation, different data storage methods are available to the developer:  Shared Preferences for lightweight usage, such as saving application settings and theuser interface UI state.  A built-in SQLite database for more complicated usage, such as saving application records.  The standard Java flat file storage methods: InputFileStream and OutputFileStream.

2.8.3.2. SharedPreferences

Based on Steele and To 2011, SharedPreferences is an interface that an application can use to quickly and efficiently save data in name-values pairs, similar to a Bundle. The information is stored in an XML file on the Android device. For example, if the application com.cookbook.datastorage creates a shared preference, the Android system creates a new XML file under the data data com. cookbook. datastorage shared_prefs directory. Shared preferences are usually used for saving application settings such as user settings, theme, and other general application properties. It can also save login information such as username, password, auto-login flag and remember-user flag. The shared preferences data is accessible by every component of the application which created it.

2.8.3.3. SQLite Database

Based on Steele and To 2011, For more complex data structures, a database provides a quicker and more flexible access method than flat files or shared preferences. Android provides a built-in database called SQLite that provides full relational database capability utilizing SQL commands. Each application that uses SQLite has its own instance of the database, which is by default accessible only from the application itself. The database is stored in the datadatapackage_namedatabases folder of an Android device. A Content Provider can be used to share the database information between applications. The different steps for utilizing SQLite are: 1. Create a database. 2. Open the database. 3. Create a table. 4. Create an insert interface for datasets. 5. Create a query interface for datasets. 6. Close the database.

2.10. File Saving and Loading