Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
CS5103 Software Engineering Lecture 06 Introduction to Project I Android Development I Last class UML Use case diagram Object oriented approach for design Class diagram 2 Identification of use cases Legend Class Relationships Sequence diagram Today’s class 3 Projects Process and Evaluation Requirements Calendar SMS Messenger Contact Manager Book Shelf Android Development I Android system & Emulator Environment Setup Introduction to Project: phase I Process Form a group Pick a topic Requirement Engineering Design Implementation Testing and documentation Form a group Organization 4-5 people Inform me by next class Inform me if you do not have a group Work assignments You decide the way to manage the group and assign work There can be some people working only on some phase of the project, e.g., requirement, testing Pick a topic Predefined topic Will introduce the topics later Tell me by next Thursday which one you choose Other topics You can choose other topics, but it should be still be an android project Tell me by Next Tuesday, if you want to work on other topics We can schedule a time to talk about the details Requirement Engineering I am a customer I will provide my requirements in natural language It is not a specification, and no much details Deliverable Requirement Documents: Use case diagrams Natural language specification Deadline: Sept. 22nd I may give you feedbacks after you hand in the documents Design Deliverable Class diagram Sequence diagrams for two classes Deadline: Oct. 6th You may change you design after hand in your design documents Implementation Deliverable Source Code Binary Code Deadline: Nov. 10th Note: unit test cases should be included in implementation Presentation & Demo: Nov. 17th and Nov. 19th Implementation Presentation All people should present part of their work Talk about problems met during development run major features of the app Testing & Documentation Testing System testing Test cases and results Documentation Test documents API documents (using Javadoc) User guide Deadline: Nov. 20th Evaluation Project quality Documentation Process quality Presentation Teamwork & work assignments Project quality Evaluation base: code Whether all features implemented Bugs found Coding style Comments Unit test case quality Documentation Quality Evaluation base: documents Specification, design documents, API documents, test documents, user guide Correctness Whether go into details Whether well structured Process Quality Evaluation base: version-control system commits You must use a version control system: SVN or Git are recommended, add me as a user Reasonable progress Size of code commit Maturity of commit Presentation Evaluation base: demo & presentation Show understanding of the project Demo goes smoothly Teamwork Evaluation base: email record, svn commits, work assignments Balanced workload Interactions in email record and svn commits Today’s class 18 Projects Process and Evaluation Requirements Calendar SMS Messenger Contact Manager Book Shelf Android Development I Android system & Emulator Environment Setup Calendar-requirements Views Monthly view: show event snippet for each day Weekly view: show event snippet for each day Daily view: show all events in a time line 19 Agenda view (optional): show all events in future as a list Calendar-requirements 20 Events Add events with time frame Check conflicts Add periodical events Edit & delete events Event alert (Optional) Add/delete event categories Color marking for different category of events Calendar-requirements Share (optional) 21 Send event to other calendar users (requiring their permission) through internet Other Colored holidays & weekends Zoom in/out, and scroll support when necessary SMS Messenger Requirements 22 Messages View, edit, save as draft, delete Send & receive Reply & forward Search messages Send to multiple receivers (optional) Scheduled message (optional) Auto reply (optional) SMS Messenger Requirements Phone Numbers 23 Show contact name in message when the phone number is in the stock contact app Save a new number to the stock contact app When sending a message, a user can choose to select from contact or input a new number SMS Messenger Requirements Message organization 24 Categorize messages by phone number (contact name) Conversation view: view all messages between you and a certain contact, sorted by sending/receiving time Other Zoom in/out and scroll whenever necessary Contact Manager Requirements Contacts Add, view, edit, delete contacts Support multiple phone numbers Support adding a photo label to a contact Search contacts Blacklist (block SMS and Phones) 25 Directly make phone calls and send sms from contact Contact Manager Requirements 26 Contacts Organization Add contact groups Manage contact groups (add/remove contacts) Sort contacts by name / group name Contacts Storage (optional) Export contacts to file on SD card Load contacts from file on SD card Contact Manager Requirements Extract contacts (optional) Extract contacts from stock contact app Extract contacts from social media websites Other 27 Show contact name when making / receiving calls & sending / receiving messages using stock app Zoom in/out and scroll whenever necessary Bookshelf requirements Book management 28 Load books: support .txt and .pdf (.epub optional) from SD card and Download folder Delete books Add category of books Manage categories (add/remove books) Search books Bookshelf requirements Book reading 29 Swipe to go to next/previous page Extract chapters and directly go to certain chapters (optional) Bookmark page and go to the bookmark page (optional for .pdf) Change font and size (optional) Day & night mode (optional for .pdf) Search for word and go to the word (optional for .pdf) Bookshelf requirements Book notations (optional) Add notation to certain page View notations on page with notations Edit notations View all notations for a book Delete notations Other 30 Zoom in/out and scroll whenever necessary Today’s class 31 Projects Process and Evaluation Requirements Calendar SMS Messenger Contact Manager Book Shelf Android Development I Android system & Emulator Environment Setup Android Development I History of android An open source mobile operating system Oct 2003: Palo Alto Andy Rubin, and 3 other colleagues A digital camera system at beginning Aug 2005: acquired by Google Oct. 2008: HTC dream, the first android phone Most popular mobile system (market share 50%+) 1 million plus apps Android Development I Introduction to Android Based on Linux system The programming language is Java Jar files are transformed to app Apps are installed to the system, and then executed on the Dalvik virtual machine Dalvik VM: a variant of JVM Why? Smaller code size. Android Development I Android stock apps Also called built-in apps Apps included in the android system / sdk Like IE in windows Including: phone, sms messenger, contact manager, web browser, clock, etc. Emulator People do not want to develop software using mobile device directly, why? Too slow Hardware incompatibilities Handling of multiple devices Emulator A virtual android mobile phone running on the host machine Emulator looks like… Emulator Simulates almost everything about a mobile phone Run apps Time Make/receive phone calls, send/receive messages Phone rotation Battery level, AC on / off GPS locations Audio recording Emulator Something it currently cannot do Take pictures / record video (Just have it with web camera) Most Sensors Other Positions (except for portrait and landscape) Light Phone specific devices, such as infrared emitter Interactions between emulator and your host system The emulator can access internet Adb tool set to transfer data between the emulator and the host system Telnet to 5554 to control the emulator (providing a shell of the emulator) Emulators can interact with each other Android Development Download Android Studio https://developer.android.com/sdk/index.html Extract the zip file Start Create An Android project Go to new project Select Android Input a name for you project Click next for all steps Create a new virtual device Go to virtual device manager Add a device Give a name to the virtual device Select memory, SD card, etc. Compile and Run Create the hello world android project Run as an android project Wait for the system to start and go to the app hello world And that’s it! Accelerated Emulator http://stackoverflow.com/questions/2662650/ making-the-android-emulator-run-faster Enable Intel virtual machine support: http://stackoverflow.com/questions/21635504/ error-during-installing-haxm-vt-x-notworking Today’s class 46 Projects Process and Evaluation Requirements Calendar SMS Messenger Contact Manager Book Shelf Android Development I Android system & Emulator Environment Setup Next class UML 47 Sequence Diagram Software Design Software architecture Software architecture styles MVC architecture Thanks! 48 Android Development Install Eclipse ADT Go to eclipse, Help - > Install New Software Input https://dl-ssl.google.com/android/eclipse/ Install all components Android Development Download Android SDK http://developer.android.com/sdk/index.html#Existi ngIDE Extract the zip file Open SDK Manager.exe for update (usually no updates) Start eclipse