Android is an open source mobile phone platform based on the Linux operating system and developed by the Open Handset Alliance. The unveiling of the Android platform on 5 November, 2007 was announced with the founding of the Open Handset Alliance, a consortium of 34 hardware, software and telecoms companies devoted to advancing open standards for mobile devices. When released in 2008, the Android platform will be made available under the Apache v2 open-source license.
Features
Handset layouts
The platform is adaptable to both larger, VGA devices and more traditional smartphone layouts.
Connectivity
Android supports a wide variety of connectivity technologies including Bluetooth, EDGE, 3G, and WiFi.
Messaging
Both SMS and MMS are available forms of messaging including threaded text messaging.
Web browser
The web browser available in Android is based off of the open-source WebKit application framework.
Java virtual machine
Software written in Java can be compiled into Dalvik bytecodes and executed in the Dalvik virtual machine, which is a specialized VM implementation designed for mobile device use, although not technically a standard Java Virtual Machine.
Media support
Android will support advanced audio/video/still media formats such as MPEG-4, H.264, MP3, and AAC.
Additional hardware support
Android is fully capable of utilizing video/still cameras, touchscreens, GPS, compasses, accelerometers, and accelerated 3D graphics.
Interaction Style is the design strategies that cohesively organize a system’s functionality, managing user’s input and presenting information.
Types of Interaction Style
- Direct Manipulation
o Continues representation of the objects and actions of interest. Physical actions or presses of labeled buttons instead of complex syntax. Rapid incremental reversible operations whose effect on the object of interest is immediately visible.
§ Design Principles to consider
· Visibility: Make relevant parts visible.
· Affordance: Make what has to be done obvious.
· Constraints: Restricting the possible actions that can be performed and help user from selecting incorrect options.
· Feedback: Provide visual, auditory and tactile feedback compatible with the principle of direct manipulation.
§ Benefits
· Novice User Learn quickly.
· Expert User work rapidly.
§ Problems
· Spatial or visual representation can be too spread out.
· The visual representation may be misleading.
- Menu Selection, Form filling and Dialog Boxes
o Task-Related Organization
§ Single Menu: Binary Menus
§ Single Selection: Multiple Item Menus
§ Multiple Selection: Menus or Check Boxes
§ Pull Down / Pop Up Menus
- Command and Natural Languages
o Commands provide a way of expressing instructions to the computer directly.
§ Benefits
· A fast and powerful interaction style only suitable for experience user.
o Natural Language is a highly desirable mean of communication with a computer system.
§ Problems
· Need to cope with speech recognition problem such as vagueness, ambiguity and ungrammatical construction.
· Usage limited to well-defined domains with a limited vocabulary.
Consideration for choosing an interaction style
- Functionality of the system
- Usability of the system
- Cost of the system
Poor Feedback Message
- Ambiguous Message
- Useless Message
- Incorrect Message
Online User Support
Types of Online Support
- Online Manual
- Context-Sensitive Help
- System-Initiated Help
- Online Tutorial
- Animated Demonstration
- Guides
- FAQs
- Online Communities, newsgroup, email, chat and instant messaging
Four principles of visual organization
- Proximity: All related items are placed in groups and each group has some physical distance between another groups. Easier for user to find what he/she is looking for.
- Alignment: Place related items along an imaginary line. Align items of equal importance and indent subordinate items.
- Consistency: Makes related items look the same. Consistency is one of the most powerful tools for making a website that is understandable and easy to navigate.
- Contrast: Make different items look differently. Contrast can draw attention to items and reinforce the content hierarchy by creating a visual hierarchy.
Content organization and visual organization go hand in hand an effective layout reinforces a site’s content organization and the result is easy navigation.
The results of visual organization are professional looking website that will inspire user’s confidence make it easier for your user to find what they want.
After hours of thinking and trying, I have finally figured out and created this mini square rotational physics! Partly i have to thank Gemira Auer for his help!
Goals of Human Computer Interaction (HCI)
- Safety
Safety of Users and Safety of Data
- Utility
What services a system provides
- Effectiveness
User’s ability to achieve goals e.g. finds desire information
- Efficiency
A measure of how quickly users can accomplish their goals
- Usability
Ease of learning and use
- Appeal
How well users like the system e.g. first impression and long term satisfaction
Usability Evaluation Criteria
- Time to learn
- Speed of performance
- Rate of errors by users
- Retention over time
- Subjective satisfaction
Stages of User-centered development
- Needs analysis
Summarizes the nature and purpose of the system
- User and task analysis
Characterizes the people who will use the site and what user will do
- Functional analysis
Functionality or computer services that user will need and what will be automated
- Requirement analysis
Describe the formal specification required to implement the system e.g. data dictionary, ER diagram
- Setting usability specifications
Performance measure and Preference measure
- Design Prototyping
Organization and Appearance
Low and High Fidelity
- Evaluation
Operating System Offered Services
- User Interface
GUI, Batch interface and command line interface
- Program execution
Able to load, run and terminate a program
- Input/output operations
CD/DVD drive and Display Device
- File-System manipulation
Create/read/Write/Delete files and directories
Permission management
- Communications
Local/Remote inter-process communication
- Error Detection
Able to detect error and take proper action to ensure consistent computing
- Resource allocation
Resources to be allocated among multiple users fairly
Different algorithms for different resources
- Accounting
Keep track of usage statistics e.g. CPU, Printer, HDD quota
Reconfigure system to improve computing services
- Protection and security
Security of system from outsiders
Ensure access to all system, resources is controlled
Audit trail of access
4 Major groups of basic functions of an OS
- Device Management
- Process, Thread and resource Management
- Memory Management
- File Management
Key OS Functional Requirements
- Provide resource abstraction
o Process abstraction of CPU/Memory
o Resource abstraction(anything a process can request can block, if is unavailable)
o File abstraction of secondary storage use
- Manage resource sharing
o Time/Space multiplexing
o Exclusive use of a resource (allows processes to use a resource exclusively)
o Isolation (allows a resource to save information without being modified or tampered)
o Managed sharing
Three basic mechanisms to achieve the functional requirements
- Processor modes
o Supervisor
§ It can execute all instructions including privileged instructions such as I/O instruction, memory related instructions and processor mode change instructions.
§ It can access all memory locations both System (aka. Kernel, used by OS) and User space(used by application processes)
o User
§ It can execute only non-privileged instructions.
§ It can only access User space
- Kernels
It is part of the OS and is critical to the correct operation (trusted software).
A trap instruction is used to switch from user to supervisor mode.
- Methods of calling system services
To execute a privileged instructions, a user program has to active routines in the kernel which then OS will execute them on user program’s behalf.
The two techniques:
o System Call
§ OS provides stub function which the user program can call and once called the stub function will switch processor to supervisor mode by trap instructions.
§ The user process gains ability to execute privileged instruction
o Message Passing
§ Os provides send() system call which user programs can call and waits for the result with receive() operation.
§ The System function is executed by the kernel process.(user process do not gain ability to execute privileged instruction)
Note: System calls are more efficient than message passing because message passing has cost of message formation or copying and process multiplexing and while system call just requires a trap command.
Definition of Software Engineering
It is a systematic approach to building (maintaining / operating) high quality software using a disciplined process.
Software Engineering Building Blocks

Tools: Programming Language, IDE (Eclipse), word processor, rational rose etc.
Methods: Skill set, OOP, OOAD, SDLC tasks like requirement, analysis, design and code.
Process Model: Defines a framework on how to go about doing things, such as Waterfall model and prototyping model.
Quality Focus: Activities that ensures there is quality in every step of software engineering process.
Definition of Software Process
It is a series of steps to produce a piece of quality software.
Software Process Framework

Software Process Models
Waterfall Model
A Systematic sequential approach to development
Disadvantage:
unrealistic as changes are inevitable
Working version available only at the end
RAD Model
High speed version of waterfall model and it is a component based approach. COTS and automatic code generator are heavily used during the development.
Disadvantage:
Require more human resource
Good modularization required Technical Risk
Prototyping Model
This approach is used when requirements are “fuzzy”. Where users are unclear of detailed business processes and developers require more understanding.
Disadvantage:
different perspective between user and developer
User – working version
Developer – quick and dirty prototype
Developer tends to cut corners and talking shortcuts to make something work.