Programs developed in Java with a Graphical interface have a specific thread which handles the interaction between the user and the graphical interface. This imposes certain restrictions on the use of developer defined threads which need to interact with the graphical interface.
As discussed on week 2 presentation, the graphical user interfaces should have user interface (UI) components created specifically for users in order to allow them interact with the apps. Android studio has a range of built in UI modules such as menus, dialogs and UI components such as layout objects and UI controls. The aim of these built in UI features is to enable developers to easily create the state of the art graphical user interface (GUI).
Additionally, a range of standard platform resources can be used for designing and programming user interfaces. For instance, classes in the Java language can be used in android applications to shape apps behaviour by implementing various functionality of graphical components. Other than Java class files, XML data can also be used to declare screen layouts.
As discussed on week 1 presentation part 2, the Android platform has been designed to run on a different types of device, screen sizes, and screen resolutions. This impose lots of challenges to android developers in terms of providing rich components of user interfaces (UI) in response to the need of the specific applications. To overcome this, Android provides a user interfaces(UI) toolkit that can be used by developers to customise UI components of an applications. Android developers relies heavily on using XML framework to create liquid layout that can adapt to these environmental changes.
In this week, we are going to use practical ways to shape this framework to fit your specific development needs. There are two important classes in the construction of graphical user interfaces, these are:
Views
ViewGroups
A big part of this module is about programming!
You will have to demonstrate programming skills in relation to building an Android App for a device such as a Smartphone.
Programming Activities
Android Application Structure
Basic Graphical Components
Laying out the Components in an Application
Algorithms and Data Structures
Location Services
Android
Android is the target platform
Support for development is provided via specific API’s
Applications are run on an “Emulator"
Android Studio
Android Studio is a special tool called an Integrated Development Environment (IDE)
Android Studio provides wizards to take the “drudgery” out of developing applications
Download Android Studio using the link below or using steps shown on the getting started workbook provided at the footnote.
What is the Mobile Platform?
Any portable device plus the software needed to run applications on a mobile device.
Portable probably means on the move rather than just being small enough to carry.
Late 1980s Compaq Portables!
As can be seen on the pictures below some of the first portable devices that were introduced in the late 1980s, it was commonly known as the “Compaq luggable” and some called it “suitcase computer”.
Ethical dilemmas
Disagreement in principle with the policies of senior management.
Your employer acts in an unethical way and releases a safety-critical system without finishing the testing of the system.
Participation in the development of military weapons systems or nuclear systems.
Case studies
A personal insulin pump
An embedded system in an insulin pump used by diabetics to maintain blood glucose control.
A mental health case patient management system
Mentcare. A system used to maintain records of people receiving care for mental health problems.
A wilderness weather station
A data collection system that collects data about weather conditions in remote areas.
iLearn: a digital learning environment
A system to support learning in schools
Testing can only show the presence of errors in a program. It cannot demonstrate that there are no remaining faults.
Development testing is the responsibility of the software development team. A separate team should be responsible for testing a system before it is released to customers.
Development testing includes unit testing, in which you test individual objects and methods component testing in which you test related groups of objects and system testing, in which you test partial or complete systems.
When testing software, you should try to ‘break’ the software by using experience and guidelines to choose types of test case that have been effective in discovering defects in other systems.
Wherever possible, you should write automated tests. The tests are embedded in a program that can be run every time a change is made to a system.
Design and implementation
Is the stage in the software engineering process at which an executable software system is developed.
activities are invariably inter-leaved.
Design is a creative activity in which you identify software components and their relationships, based on a customer’s requirements.
Implementation is the process of realizing the design as a program.
This chapter is to introduce software requirements and to explain the processes involved in discovering and documenting these requirements in order to meet stakeholders' needs. You will :
understand the concepts of user and system requirements and why these requirements should be written in different ways;
understand the differences between functional and non-functional software requirements;
understand the main requirements engineering activities of elicitation, analysis and validation and the relationships between these activities,.
understand why requirements management is necessary and how it supports other requirements engineering activities.
Topics covered
Professional software development
What is meant by software engineering.
Software engineering ethics
A brief introduction to ethical issues that affect software engineering.
This list was generated on Wed Jan 15 19:46:56 2025 UTC.