javantura v3 - develop the right way with s-case – marin orlić
Upload: hujak-hrvatska-udruga-java-korisnika-croatian-java-user-association
Post on 08-Jan-2017
1.173 views
TRANSCRIPT
Develop the right way with S-CASE
Marin Orlić[email protected] Nikola Tesla, Zagreb, Croatia
Javantura v3 2
Background
Ericsson Nikola TeslaJava community ~200 ppl + studentsWide range of projects and interests
Zagreb, 20 February, 2016
EU FP7 projectFinal (3rd) year
3
ScaffoldingScalableSoftware services
Zagreb, 20 February, 2016Javantura v3
4
PrototypingScalableSoftware services
Zagreb, 20 February, 2016Javantura v3
5
PrototypingCloudSoftware services
Zagreb, 20 February, 2016Javantura v3
6
PrototypingCloudWeb services
Zagreb, 20 February, 2016Javantura v3
Javantura v3 7
Software developmentRequirement
s
Specifications
Design
Prototyping
Zagreb, 20 February, 2016
Concept
Javantura v3 8
Software developmentRequirement
s
Specifications
Design
Prototyping
Zagreb, 20 February, 2016
Existing artefacts Concept
Javantura v3 9
Software development with S-CASERequirements
Prototyping
Zagreb, 20 February, 2016
Existing artefacts Concept
11
Features• RESTful
– 3rd level Richardson Maturity Model RESTful APIs
– Full Hypermedia As The Engine of Application State (HATEOAS)
• Authentication– Restrict access to selected resources
• Search– Search functionality (Lucene) mapped to
resources of your choice• Deploy ready
– Maven project ready to deploy to a container of your choice
• Code Generation– Automated code generation from
multi-modal requirements (English text, UML diagrams, storyboards)
• External web services– Call 3rd party REST web services– Create mashups of web services
• Database– Generate the schema and database
• Authorization– Enable attribute based access control
(ABAC) – coming soon
Zagreb, 20 February, 2016Javantura v3
12
Working with S-CASE• Create requirements• Create service mashups• Generate code• Deploy WAR
• RESTReviews– 2100 LoC in Java– 15 mins from scratch– 0 bugs
Zagreb, 20 February, 2016Javantura v3
DONE!
13
1
Zagreb, 20 February, 2016Javantura v3
INST
ALL
14
2
Zagreb, 20 February, 2016Javantura v3
CREA
TE P
ROJE
CT
15
3 DEFINE REQUIREMENTS
Zagreb, 20 February, 2016Javantura v3
16
3 DEFINE WORKFLOWS
Zagreb, 20 February, 2016Javantura v3
17
3 UML
Zagreb, 20 February, 2016Javantura v3
18
4 (AUTO)ANNOTATE REQUIREMENTS
Zagreb, 20 February, 2016Javantura v3
19
5 GENERATE CODE
- REST resources- Local DB- (Hibernate)- Search in DB
(Lucene)- Call external
web services- Authentication- Authorization
(Basic, ABAC)
Zagreb, 20 February, 2016Javantura v3
20
5 CREATE MASHUPS
Zagreb, 20 February, 2016Javantura v3
21Zagreb, 20 February, 2016Javantura v3
22
6 GENERATE MASHUP SERVICE
• Resulting service can be used in prototype as external service
Zagreb, 20 February, 2016Javantura v3
23
7 DEPLOY (MAVEN)8 USE THE SERVICE[INFO] Scanning for projects...[INFO] [INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1[INFO] [INFO] ------------------------------------------------------------------------[INFO] Building restreviews 1.0-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ restreviews ---[WARNING] Using platform encoding (Cp1250 actually) to copy filtered resources, i.e. build is platform dependent![INFO] skip non existing resourceDirectory C:\Workspace\TestWorkspace\MDEGeneratedCode\restreviews\src\main\resources[INFO] [INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ restreviews ---[INFO] Nothing to compile - all classes are up to date[INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ restreviews ---
Zagreb, 20 February, 2016Javantura v3
24
There’s more...• Analyze natural language (NLP)• Find open source projects
– Using existing indices (MARKOS, Agora)• Index and query (in English) over your projects• Publish your own services
– YouREST service catalog, SAT tool, automatic• Perceived reliability, maintainability & code metrics of the service
– Exceeds NASA standards• Expand the platform
– 2D MDE – expandable code generation
Zagreb, 20 February, 2016Javantura v3
Javantura v3 25
Flavours – ECLIPSE SOLO
ECLIPSE SOLO
Single developer
Smaller projects
Simple services
Zagreb, 20 February, 2016
Javantura v3 26
Flavours – ECLIPSE PUBLIC
ECLIPSE PUBLIC
Developer teams
Quick prototype
Large projects
Reuse and mashup
Zagreb, 20 February, 2016
Javantura v3 27
Flavours – ECLIPSE SOLO
ECLIPSE PRIVATE
Additional security Protect IP
Customize S-CASE
Zagreb, 20 February, 2016
Getting started
Javantura v3 Zagreb, 20 February, 2016 29
@scasefp7
[email protected]://s-case.github.iohttp://www.scasefp7.eu
S-Case
S-Case FP7
s-case
Zagreb, 20 February, 2016Javantura v3 30