Thursday, August 24, 2017
Summer Geek Camp 3
Summer Geek Camp 3
DAY 1 SESSIONS:
1.Basic UML for Systems Analysis
Systems Analysis is an important part of software design. It allows software engineers to get the system requirements, design and implement correct data structures, and create effective schedules to deliver software as soon as possible. To help software engineers in systems analysis, they must know how to document the software during its development cycle. An effective method to document the system is the use of Unified Modeling Language (UML), a standard language used in software engineering.
OBJECTIVES
1.Define UML.
2.Identify Object Oriented Programming (OOP)
3.Use Case
4.Activity Diagram
5.Class Diagram
PRESENTATION
I.What is UML?
Unified Modelling Language
Tool for Software Engineers to model software
visual diagram to model system
developed by james Rumbaugh, Grady Booch, Ivar Jacobson
maintained by the object mgt. Group (www.omg.org)
II.Identify Object Oriented Programming
UML Tools
1. ArgoUML
2. Dia
3. Netbeans IDE UML Plugin
4. PyUML
5. IBM Rational Modeler
6. UML Designer
III.Use Case Digram
use to capture the requirements of the system
answer the �what� question of the system
actors
use cases
relationships
Actors
external entities
people outside the system
actors initiate interactions
Processes
- Accept input and produce output
ex.
"A patient calls the clinic to make an appointment for a yearly checkup. The receptionist finds the nearest empty time slot in the appointment book and schedules the appointment for that time slot."
A use case diagram is a collection of actors, use cases, and their communications. Weve put Make Appointment as part of a diagram with four actors and four use cases. Notice that a single use case can have multiple actors.
IV.Activity Diagram
An activity diagram is essentially a fancy flowchart. Activity diagrams and statechart diagrams are related. While a statechart diagram focuses attention on an object undergoing a process (or on a process as an object), an activity diagram focuses on the flow of activities involved in a single process. The activity diagram shows the how those activities depend on one another.
V.Class Diagram
A Class diagram gives an overview of a system by showing its classes and the relationships among them. Class diagrams are static -- they display what interacts but not what happens when they do interact.
The class diagram below models a customer order from a retail catalog. The central class is the Order. Associated with it are the Customer making the purchase and the Payment. A Payment is one of three kinds: Cash, Check, or Credit. The order contains OrderDetails (line items), each with its associated Item.
class diagram has three kinds of relationships.
association -- a relationship between instances of the two classes. There is an association between two classes if an instance of one class must know about the other in order to perform its work. In a diagram, an association is a link connecting two classes.
aggregation -- an association in which one class belongs to a collection. An aggregation has a diamond end pointing to the part containing the whole. In our diagram, Order has a collection of OrderDetails.
generalization -- an inheritance link indicating one class is a superclass of the other. A generalization has a triangle pointing to the superclass. Payment is a superclass of Cash, Check, and Credit.
2.Python Programming
What is Python?
a programming language
object-oriented
rapid prototyping
not juast a scripting language
extensible (add new modules) C, C++, Java, your favorite programming language
python can be an application
was named after a comedy show �The Complete Pythons Flying Circus� during the 1960s
open source
mature (20 years old)
supported by the user community
easy to use
extremely portable (can run on different OS like Unix, Windows, DOS, OS/2, BeOS, Win/CE)
compiled to interpreted byte code
Why use Python?
dynamic language are more productive
more readable
more maintainable
has built-n high level data types
is more expensive than CPU time
Why should you not use Python?
packet filtering, MP3 Codec, etc.
instead write in C, C++ and wrap in python
reduce development time code, 2 to 10 times shorter that C, C++ , Java
improved program maintenance is extremely readable
Python Usage:
rapid prototyping
web scripting
throw away ad hoc programming
extension language
XML processing
database applications
GUI applications
Server Side web programming (CGI, application server)
Sample Codes
>>>x=12**2
>>>x/2
72
>>> #this is a comment
String
�hello� + �world� #concatenation
�hello�*2 �hellohello� #repetition
�hello�[0] �h� #indexing
�hello�[-1] �o� #from end
�hello�[1:4] �ell� #slicing
Lists
>>>a=range(5) #[0,1,2,3,4]
>>>a.append(5) #[0,1,2,3,4,5]
>>>a.pop() #[0,1,2,3,4]
>>>a.insert(0,5.5) #[5.5,0,1,2,3,4]
DAY 2 SESSIONS:
1.Open ERP
Enterprise Resource Planning System
allows you to integrate most if not all informations of your business such as manufacturing, supply chain, accounting, human resources and project management into one system instead of having separate systems handle specific needs
reduces or eliminates data redundancy
data consolidation is much faster
one interface makes it easier for a user to learn how to operate a system
Drawbacks of ERP
Expensive
Software licenses + System Integrator + Hardware
Lacks specialized feature
What is Open ERP?
formerly known as Tiny ERP
has separate client (web and application) and server applications
written in Python
database is PostgreSQL
open source business model
partnerships available
pluggable modules
accounting, DMS, HR, Product, and many more
Do it yourself!
a positive mental attitude
learn how to code in python
learn PostgreSQL
review the demo and soirce code
participate in the Open ERP forum and chatroom
Live Demonstration during the Summer Geek Camp
2.The UPOU MOODLE
MOODLE (Modular Object Oriented Dynamic Learning Environment)
open source and freely available
can be installed on Windows, Mac, and Linux servers running PHP
developed using PHP and MySQL
developed by Martin Dougiamas
Live Demonstration during the Summer Geek Camp
3.The ARDUINO Project
What is ARDUINO?
an open hardware microcontroller and open source programming environment
work began in Avrea, Italy (2005)
multi-platform
can be standalone or used as a PC Interface
can use serial, USB, ethernet and wireless communications
has analog and digital I/O pins
What is a Microcontroller?
a simplified computer with with low processing power
ideal over powerful computer to keep cost , size and sophistication down
simple but gets the job done
download file now