Course 1 October, 9, 2017 [631179]

Course 1 –October, 9, 2017
Adrian Iftene
adiftene @info.uaic.ro

SWEBOK: place and role of software engineering,
knowledge areas (KAs), related disciplines
Development and maintenance of the systems:
model driven agile development, patterns of
enterprise application architecture, test -driven
development, refactoring: code architecture
Object oriented design classes: SOA, object –
oriented design principles
Modeling , business modeling: BPMN, domain
specific languages ​​(DSL ), frameworks: Eclipse
Modeling Framework (EMF), Open Architecture
Ware (OAW)
2

Model -driven development (MDD) -software
methodology focused on creating models close
to a specific field than informatics concepts
Model -driven architecture (MDA)is the best
known initiative of MDD and was launched by
the group OMG (Object Management Group) in
2001
3

AMDD is agile version of MDD
4

Test-Driven Development –TDD
TDD steps :
1.Adda test.
2.Execut test s; the new testwill fail .
3.Add functional code such that pass all test .
4.Run tests again .
◦If the test fails, go to 3 .
◦If the tests pass successfully, we can continue with other
functionality
5.Refactoring code (functional and testing)
5

IBM Rational Rose Modeler
BPMN
Domain specific languages (DSL)
Working frameworks :
◦Eclipse Modeling Framework
◦Open Architecture Ware (OAW)
6

Business Process Modelling Notation (BPMN)
is a graphical representation for specifying
business processes in a workflow
7

8

EMF is an Eclipse -based modeling framework and code generation
facility for building tools and other applications based on a
structured data model
9

10
AOPis a programming paradigm which isolates secondary or
supporting functions from the main program’s business logic
AOP increases modularity by allowing the separation of cross –
cutting concerns
AOP includes programming techniques and tools that support
the modularization of concerns at the level of the source code

11
Cross -cutting concerns -aspects of a program which
affect other concerns
Advice -additional code
Pointcut -point where additional code is executed
Aspect -the combination of the pointcut and the
advice

Examples:
◦AspectJ ,
◦CaesarJ ,
◦CLOS,
◦Compose,
◦JAsCo ,
◦ObjectTeams
12

13
aspect
pointcut
advice

14
Problem : we want to know when something changes
the student ( name or grade )
Solution : we add a pointcut for all “set” methods

15
Problem : we want to trace our program execution
Solution : we add a pointcut for all methods
set
println
toString

SOA(Service Oriented Architecture) involves
distributing application functionality into
smaller units, distinct -called services -which
can be distributed over a network and can be
used together to create complex applications
Services are independent functional units that
solve specific problems and can be combined to
solve complex problems .
They can also be reused in different applications
16

Examples of services:
◦complete an application online to create an account
view a bank statement
◦make an online ticket orders
◦For a robot: services for vision, hearing, moved
17

18

Architecture and dependencies : When we say
that we have a degraded project?
Design principles of classes: responsibility,
dependencies, separation
Architecture design principles:
◦Reuse , versioning, closing
◦Coupling, dependence
Object -oriented design patterns:
◦Abstract server, Adapter, Observer, Bridge, Abstract
Factory
19

Rigid -hard to change
Fragile -changes have undesirable effects
Immobility -separation into components is
difficult
Viscous -things not running to properly
Additional complexity
Additional repetition
Opacity -hard to understand
20

Successive changes lead to sub -optimal code
structure
◦increase the complexity
◦decreases clarity
Refactoring is a change in the internal structure
of a software product in order to make it easier
to understand and modify without changing its
observable behavior
Results:
◦decreased coupling
◦increasing cohesion
21

The following situations are signals for
refactoring:
◦duplicate code
◦long methods
◦large classes
◦Long lists of parameters
◦Instructions switch by type objects -is recommended
polymorphism
◦Speculative Generality -Hierarchy of classes that
subclasses have the same behavior
◦Intense communication between objects (strong
coupling)
◦Chaining of messages
22

Github –code
GoogleDrive -documents

SOA: http://www -01.ibm.com/software/solutions/soa/ ,
http://ro.wikipedia.org/wiki/SOA
SOA for the real world: http://www.javaworld.com/javaworld/jw –
11-2006/jw -1129 -soa.html?page=1
Abstract Server
http://today.java.net/pub/a/today/2004/06/8/patterns.html
Agile Model Driven Development (AMDD)

Agile Model Driven Development (AMDD): The Key to Scaling Agile Software Development


Florin Leon –IP Curs 11
http://eureka.cs.tuiasi.ro/~fleon/Curs_IP/IP11_Implementarea.pdf
OAW http://www.openarchitectureware.org/
24

Robert Cecil Martin: Design Principles and
Design Patterns. www.objectmentor.com.
Robert Cecil Martin: Agile Development.
Principles, Patterns, and Practices, Prentice -Hall,
2003
25

Similar Posts