The document discusses various ways to map between different data models representing company structures, including:
- Serializing Java objects to an XML or binary format
- Using JAXB annotations to map between XML and Java classes
- Generating Java classes from an Ecore metamodel
- Specifying Hibernate mappings between Java classes and relational database tables
- Directly mapping between relational tables and Java classes with Hibernate
ESOFT Metro Campus - Diploma in Software Engineering - (Module V) Windows Based Application Development in C#
(Template - Virtusa Corporate)
Contents:
Introduction to .NET Framework
.NET Framework Platform Architecture
Microsoft Visual Studio
C# Language
C#, VS and .NET Framework Versions
Your First C# Application
Printing Statements
Comments in C#
Common Type System
Value Types and Reference Type
Variables Declaration in C#
Type Conversion
Arithmetic Operators
Assignment Operators
Comparison Operators
Logical Operators
If Statement
If… Else Statement
If… Else if… Else Statement
Nested If Statement
Switch Statement
While Loop
Do While Loop
For Loop
Arrays
Accessing Arrays using foreach Loop
Two Dimensional Arrays
Classes and Objects in C#
Inheritance in C#
Partial Classes
Namespaces
Windows Forms Applications
Using Buttons, Labels and Text Boxes
Displaying Message Boxes
Error Handling with Try… Catch… finally…
Using Radio Buttons
Using Check Boxes
Using List Boxes
Creating Menus
Creating ToolStrips
MDI Forms
Database Application in C#
Creating a Simple Database Application
SQL Insert / Update / Retrieving / Delete
SQL Command Execute Methods
Data Sets
Esoft Metro Campus - Certificate in c / c++ programmingRasan Samarasinghe
Esoft Metro Campus - Certificate in java basics
(Template - Virtusa Corporate)
Contents:
Structure of a program
Variables & Data types
Constants
Operators
Basic Input/output
Control Structures
Functions
Arrays
Character Sequences
Pointers and Dynamic Memory
Unions
Other Data Types
Input/output with files
Searching
Sorting
Introduction to data structures
Its very happy to introduced ourself. Our
Institution Adroit Infogen Pvt. Ltd. Corporation is
the industry leader in reliability consulting and
training services
Has been founded in 2007 by Mr.R.Praneeth
Reddy .
It is to inform that we have been chosen as one
of the outsourcing agencies to start IT related
ESDP's [Entrepreneurship & Skill Development
Programs] by NI-MSME. In this connection we
wish to inform that we are conducting free
training programs for the students which
provided the certification in different programs
by NI-MSME, Ministry of MSME, Govt of India)
Esoft Metro Campus - Diploma in Information Technology - (Module IX) Programming with C#.NET
(Template - Virtusa Corporate)
Contents:
Introduction to .NET Framework
.NET Framework Platform Architecture
Microsoft Visual Studio
C# Language
C#, VS and .NET Framework Versions
Your First C# Application
Printing Statements
Comments in C#
Common Type System
Value Types and Reference Type
Variables Declaration in C#
Type Conversion
Arithmetic Operators
Assignment Operators
Comparison Operators
Logical Operators
If Statement
If… Else Statement
If… Else if… Else Statement
Nested If Statement
Switch Statement
While Loop
Do While Loop
For Loop
Arrays
Accessing Arrays using foreach Loop
Two Dimensional Arrays
Classes and Objects in C#
Inheritance in C#
Partial Classes
Namespaces
Windows Forms Applications
Using Buttons, Labels and Text Boxes
Displaying Message Boxes
Error Handling with Try… Catch… finally…
Using Radio Buttons
Using Check Boxes
Using List Boxes
Creating Menus
Creating ToolStrips
MDI Forms
Database Application in C#
Creating a Simple Database Application
SQL Insert / Update / Retrieving / Delete
SQL Command Execute Methods
Data Sets
This is an overview of C++ (based on 1999 / 2003 standard) and its use in Object Oriented Programming. The presentation assumes that the audience knows C programming.
ESOFT Metro Campus - Diploma in Software Engineering - (Module V) Windows Based Application Development in C#
(Template - Virtusa Corporate)
Contents:
Introduction to .NET Framework
.NET Framework Platform Architecture
Microsoft Visual Studio
C# Language
C#, VS and .NET Framework Versions
Your First C# Application
Printing Statements
Comments in C#
Common Type System
Value Types and Reference Type
Variables Declaration in C#
Type Conversion
Arithmetic Operators
Assignment Operators
Comparison Operators
Logical Operators
If Statement
If… Else Statement
If… Else if… Else Statement
Nested If Statement
Switch Statement
While Loop
Do While Loop
For Loop
Arrays
Accessing Arrays using foreach Loop
Two Dimensional Arrays
Classes and Objects in C#
Inheritance in C#
Partial Classes
Namespaces
Windows Forms Applications
Using Buttons, Labels and Text Boxes
Displaying Message Boxes
Error Handling with Try… Catch… finally…
Using Radio Buttons
Using Check Boxes
Using List Boxes
Creating Menus
Creating ToolStrips
MDI Forms
Database Application in C#
Creating a Simple Database Application
SQL Insert / Update / Retrieving / Delete
SQL Command Execute Methods
Data Sets
Esoft Metro Campus - Certificate in c / c++ programmingRasan Samarasinghe
Esoft Metro Campus - Certificate in java basics
(Template - Virtusa Corporate)
Contents:
Structure of a program
Variables & Data types
Constants
Operators
Basic Input/output
Control Structures
Functions
Arrays
Character Sequences
Pointers and Dynamic Memory
Unions
Other Data Types
Input/output with files
Searching
Sorting
Introduction to data structures
Its very happy to introduced ourself. Our
Institution Adroit Infogen Pvt. Ltd. Corporation is
the industry leader in reliability consulting and
training services
Has been founded in 2007 by Mr.R.Praneeth
Reddy .
It is to inform that we have been chosen as one
of the outsourcing agencies to start IT related
ESDP's [Entrepreneurship & Skill Development
Programs] by NI-MSME. In this connection we
wish to inform that we are conducting free
training programs for the students which
provided the certification in different programs
by NI-MSME, Ministry of MSME, Govt of India)
Esoft Metro Campus - Diploma in Information Technology - (Module IX) Programming with C#.NET
(Template - Virtusa Corporate)
Contents:
Introduction to .NET Framework
.NET Framework Platform Architecture
Microsoft Visual Studio
C# Language
C#, VS and .NET Framework Versions
Your First C# Application
Printing Statements
Comments in C#
Common Type System
Value Types and Reference Type
Variables Declaration in C#
Type Conversion
Arithmetic Operators
Assignment Operators
Comparison Operators
Logical Operators
If Statement
If… Else Statement
If… Else if… Else Statement
Nested If Statement
Switch Statement
While Loop
Do While Loop
For Loop
Arrays
Accessing Arrays using foreach Loop
Two Dimensional Arrays
Classes and Objects in C#
Inheritance in C#
Partial Classes
Namespaces
Windows Forms Applications
Using Buttons, Labels and Text Boxes
Displaying Message Boxes
Error Handling with Try… Catch… finally…
Using Radio Buttons
Using Check Boxes
Using List Boxes
Creating Menus
Creating ToolStrips
MDI Forms
Database Application in C#
Creating a Simple Database Application
SQL Insert / Update / Retrieving / Delete
SQL Command Execute Methods
Data Sets
This is an overview of C++ (based on 1999 / 2003 standard) and its use in Object Oriented Programming. The presentation assumes that the audience knows C programming.
ACTRESS: Domain-Specific Modeling of Self-Adaptive Software ArchitecturesFilip Krikava
Presentation given at 29th Symposium On Applied Computing (SAC'14) - Dependable and Adaptive Distributed Systems track.
It is mainly based on the work done during my Ph.D.
201209 An Introduction to Building Affective-Driven Self-Adaptive Software Javier Gonzalez-Sanchez
One important characteristic in modern software systems is self-
adaptation, the capability of monitoring and reacting to changes into the environment. A particular case of self-adaptation is affect-driven self- adaptation. Affect-driven self-adaptation involves using sensing devices to measure physiological signals of human affectivestate’s (emotions) changes, learning about the meaning of those changes, and then reacting (self-adapting) in consequence. Affect-driven self-adaptive systems take advantage of brain-computer interfaces, eye-tracking, face-based emotion recognition, and sensors to measure physiological signals.
Systems such as learning environments, health care systems, and videogames are able to take advantage of affect-driven self-adaptive capabilities. Today these capabilities are brittle, costly to change, difficult to reuse, and limited in scope. A software factory approach has been suggested to make feasible adding affective-driven self-adaptive capabilities either into new or existing systems. Software factories capture knowledge of how to produce applications that share common characteristics and make that knowledge available in the form of assets (patterns, model, framework, and tools) and systematically apply those assets to automate development reducing cost and time while improving product quality.
This talk provides a sneak peek of affective-driven self-adaptive capabilities and explores how a software factory approach is used to build affect-driven self-adaptive software.
Concurrent programming is one of the major challenges for the software industry. We are in a time of massive experimentation as language designers and programmers search for ways to make concurrent programming easier, less error prone, and more reliable.
This talk will be a survey of concurrent programming constructs which are currently available in some programming language or library. We will look at programming model being presented, as well as examining some of the implementation challenges for the various models.
EclipseCon 2008: Fundamentals of the Eclipse Modeling FrameworkDave Steinberg
EclipseCon 2008 long talk introducing EMF. A slightly different take from the preceding EclipseWorld talk, with a few more details on the EMF core and no discussion of CDO or Teneo.
U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...Michael Rys
When analyzing big data, you often have to process data at scale that is not rectangular in nature and you would like to scale out your existing programs and cognitive algorithms to analyze your data. To address this need and make it easy for the programmer to add her domain specific code, U-SQL includes a rich extensibility model that allows you to process any kind of data, ranging from CSV files over JSON and XML to image files and add your own custom operators. In this presentation, we will provide some examples on how to use U-SQL to process interesting data formats with custom extractors and functions, including JSON, images, use U-SQL’s cognitive library and finally show how U-SQL allows you to invoke custom code written in Python and R.
Slides for SQL Saturday 635, Vancouver BC presentation, Vancouver BC. Aug 2017.
Dissecting State-of-the-Art Android Malware Using Static and Dynamic AnalysisCHOOSE
Steven Arzt — CHOOSE Talk — 2016-11-15
http://www.choose.s-i.ch/events/arzt-2016/
Android malware is getting more and more sophisticated. So-called "sleeper" applications only trigger their malicious behavior after a certain time has passed or event has happened, effectively evading many dynamic analysis techniques. Other techniques include integrity checks as well as detectors for emulators, rooted devices, and hooks. If any such sign is detected, the malware refrains from its actual malicious behavior. For countering static analyses, these apps apply code encryption, packers, and code obfuscators. Together, these features render most automated analyses ineffective, leaving a manual analysis as the only viable option — a very difficult and time-consuming undertaking.
To alleviate the problem, we propose CodeInspect, a new integrated reverse-engineering environment extending the Eclipse IDE and targeting sophisticated state-of-the-art malware apps for Android. CodeInspect not only features an interactive debugger that can work on the bytecode level, but also various static and dynamic analyses that support the human analyst. One can display data flows inside the app, check which permissions are used where in the code, what strings are computed or decrypted at runtime, which code is dynamically loaded and more. Reverse engineers can even add new Java source classes or projects into the application, which can then be called from the original app’s code. This is especially useful when implementing decryption methods which can be directly tested in place.
Continuous Architecting of Stream-Based SystemsCHOOSE
Pooyan Jamshidi CHOOSE Talk 2016-11-01
Big data architectures have been gaining momentum in recent years. For instance, Twitter uses stream processing frameworks like Storm to analyse billions of tweets per minute and learn the trending topics. However, architectures that process big data involve many different components interconnected via semantically different connectors making it a difficult task for software architects to refactor the initial designs. As an aid to designers and developers, we developed OSTIA (On-the-fly Static Topology Inference Analysis) that allows: (a) visualizing big data architectures for the purpose of design-time refactoring while maintaining constraints that would only be evaluated at later stages such as deployment and run-time; (b) detecting the occurrence of common anti-patterns across big data architectures; (c) exploiting software verification techniques on the elicited architectural models. In the lecture, OSTIA will be shown on three industrial-scale case studies.
See: http://www.choose.s-i.ch/events/jamshidi-2016/
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
1. Dealing comfortably with
the confusion of tongues
Ralf Lämmel
Software Languages Team, Koblenz
http://en.wikipedia.org/wiki/Tower_of_Babel_(M._C._Escher)
4. Technology used in the
5th edition of Channel9
ASP.NET MVC
SparkView engine
jQuery
Silverlight 4
Windows Azure, SQL Azure, “other Azures”
ECN for the Content Delivery Network (videos)
http://channel9.msdn.com/Blogs/C9Team/Welcome-to-the-all-new-Channel-9
7. • What domain?
• Programming
• X/O/R mapping
• XML/database processing
• GUI
• ...
• What engineering?
• megamodeling programming
• software language engineering
CH
O
O
SE
Forum
2012
D
om
ain-specific
Engineering
8. A simpler riddle: how to usefully
characterize these XML technologies?
DOM
SAX
StAX
9. DOM [Wikipedia]
The Document Object Model (DOM) is a cross-platform
and language-independent convention for
representing and interacting with objects in HTML,
XHTML and XML documents. Aspects of the DOM
(such as its "Elements") may be addressed and
manipulated within the syntax of the programming
language in use. The public interface of a DOM is
specified in its Application Programming Interface
(API). ...
10. SAX [Wikipedia]
SAX (Simple API for XML) is a sequential access
parser API for XML. SAX provides a mechanism for
reading data from an XML document. It is a popular
alternative to the Document Object Model (DOM). ... A
parser which implements SAX (ie, a SAX Parser)
functions as a stream parser, with an event-driven API.
The user defines a number of callback methods that
will be called when events occur during parsing. ...
11. StAX [Wikipedia]
Streaming API for XML (StAX) is an application
programming interface (API) to read and write XML
documents, originating from the Java programming
language community. Traditionally, XML APIs are
either: tree based, ..., event based. ... These two access
metaphors can be thought of as polar opposites. ...
StAX was designed as a median between these two
opposites. ...
12. DOM SAX StAX
Read (parse, query) XML • • •
Write XML • •
Metadata! Metadata! Metadata!
13. DOM SAX StAX
In-memory XML processing •
Push-based XML parsing •
Pull-based XML parsing •
Metadata! Metadata! Metadata!
15. Follow-up questions?
How to usefully abstract from XML in
defining “push-based”?
How to usefully share conceptual
understanding across DOM and JAXB?
... between JAXB and Hibernate?
...
16. An advanced programming class
The Expression Problem
The Visitor Design Pattern
Parsing
XML Processing
XML Validation
XML Data Binding
Database Access
O/R Mapping
Model View Controller
More Design Patterns
Reflection
Aspect-Oriented Programming
Functional OO Programming
Combinator Libraries
Generic Programming
Programming with Threads
Distributed Programming
WebService Programming
17. Our ultimate goal:
heavily annotate programmig
and language technologies and
their uses with metadata
facilitating understanding.
25. A few variation points
X vs. O vs. R vs. λ etc.
Static typing vs. dynamic typing
Textual vs. abstract vs. visual syntax
GPPL vs. DSL vs. embedding vs. API
Instance- vs. operation-based mapping
Type checking vs. inference vs. reasoning
Code first vs. schema first vs. mapping only
In-memory processing vs. push vs. pull parsing
Pure vs. impure transformations (or in between)
Code vs. generative vs. model-driven vs. mapping
28. Model ANTLR
company : 'company' STRING '{' dept* '}';
dept :
'department' STRING '{'
('manager' employee)
('employee' employee)*
dept* '}';
employee :
STRING '{'
'address' STRING
'salary' FLOAT '}';
WS : (' '|'r'? 'n'|'t')+ {skip();};
STRING : '"' (~'"')* '"';
FLOAT : ('0'..'9')+ ('.' ('0'..'9')+)?;
CFGs for HR notation.
The aspect of “sharing
knowledge” is
underestimated.
Purity of CFGs
is an i!usion.
29. Model Haske!
type Company = [Dept]
data Dept = Dept Name Manager [SubUnit]
type Manager = Employee
data Employee = Employee Name Address Salary
data SubUnit = PU Employee | DU Dept
type Name = String
type Address = String
type Salary = Float
Structure is defined by
sequence, cases, and
recursion.
Algebraic datatypes
imply tree shape of
data instances.
Models use nominal
& structural types,
and aliases.
30. Model Ecore
There are recurring
themes for
primitive types.
Lists or co!ections
may in fact be
distinguished
structural forms.
31. Model Ecore/Java/EMF
/**
* @model
*/
public interface Person extends EObject {
/**
* @model required="true" ordered="false"
*/
String getName();
void setName(String value);
/**
* @model required="true" ordered="false"
*/
String getAddress();
void setAddress(String value);
}
Programs
are
models.
Models
are
programs.
38. Total XML/DOM/XPath
public static double total(Document doc)
throws Exception {
double total = 0;
NodeList nodelist =
XPathAPI.selectNodeList(doc, "//salary");
for (int i=0; i<nodelist.getLength(); i++) {
Element elem = (Element)nodelist.item(i);
total += Double.parseDouble(elem.getTextContent());
}
return total;
} Host language may run embedded programs
and inspect results.
39. Total XML/Java/JAXB
public class Total {
public static double total(Company c) {
double total = 0;
if (c.getDept() != null)
for (Dept d : c.getDept())
total += total(d);
return total;
}
public static double total(Dept d) { ... }
public static double total(Employee e) { ... }
public static double total(Subunit s) { ... }
}
POJOs
Time and again.
40. Total SQL DML
SELECT SUM(salary)
FROM employee;
What’s the XML/OO
counterpart to
projection?
Query languages
provide aggregators.
41. Total Java / JDBC
public static double total(MyConnection myConnection)
throws SQLException {
double total = 0;
String query =
"SELECT salary FROM employee";
PreparedStatement pstmtEmployees =
myConnection
.getConn()
.prepareStatement(query);
ResultSet salaries = pstmtEmployees.executeQuery();
while (salaries.next())
total += salaries.getDouble("salary");
return total;
}
Iterators on lazy
server results
42. Total RDF/Java/Jena
public static double total(CompanyModel c) {
double total = 0;
StmtIterator i =
c.getModel().listStatements(
new SimpleSelector(
null, c.SALARY, (RDFNode) null));
while (i.hasNext()) {
Statement s = i.next();
total += s.getDouble();
}
return total;
}
Selection
(quantification) over
graphs requires
identities.
43. Ecore/ATL
module Total;
create OUT: Total from IN: Company;
rule Company2Total {
from
company : Company!Company
to
t : Total!TotalWrapper (
total <- Company!Employee.allInstances()
-> collect(e | e.salary)
-> sum()
)
}
Total
Quantification,
Projection,
A'regation
45. Cut Haske!
cut :: Company -> Company
cut = everywhere (mkT (/(2::Float)))
The type of a pure function reveals
its nature of being a transformation.
46. Cut EMF/Java
public class Cut {
public static void cutCompany(Company company) {
for (Dept dept : company.getDepts())
cut(dept);
}
private static void cut(Dept dept) { ... }
private static void cut(Subunit subunit) { ... }
private static void cut(Employee employee) {
employee.setSalary(employee.getSalary() / 2);
}
}
The appearance of “void” in an
imperative (OO) language su'ests
impure transformation.
47. Cut XML/XQuery
copy $copy := .
modify
for $salary in $copy//salary
return
replace value of node $salary
with $salary div 2
return $copy
The distinction of pure vs.
impure is not always easy.
53. Map Java/Serializable
import org.softlang.company.*;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
FileInputStream fis =
new FileInputStream("sampleCompany.ser");
ObjectInputStream in =
new ObjectInputStream(fis);
Object o =
in.readObject();
in.close();
Company c = (Company)o; Use a universal object
representation.
54. XML/Java/JAXBMap
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {"name", "address"})
@XmlRootElement(name = "person")
public class Person {
@XmlElement(required = true)
protected String name;
@XmlElement(required = true)
protected String address;
public String getName() { return name; }
public void setName(String value) { name = value; }
public String getAddress() { return address; }
public void setAddress(String value) { address = value; }
}
Annotations capture mapping
including constraints.
55. XML/Java/JAXB
import org.softlang.company.*;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import java.io.File;
File input =
new File("sampleCompany.xml");
JAXBContext jaxbContext =
JAXBContext.newInstance("org.softlang.company");
Unmarshaller unMarshaller =
jaxbContext.createUnmarshaller();
Company c =
(Company) unMarshaller.unmarshal(input);
Map
There is a 1:1 mapping
between
names of program types &
serialization-level names.