curs 2 adrian iftene [email protected]/scoala/2011/taip/courses/taip... · computer files...
TRANSCRIPT
![Page 2: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/2.jpg)
Swebok
Myths
Model Driven Development◦ Model Driven Architecture
◦ Agile MDD
Test Driven Development
Domain Specific Language◦ Eclipse Modeling Framework
2
![Page 3: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/3.jpg)
Software Engineering Body of Knowledge
Book’s authors Alain Abran, James W. Moore, 2004
3
![Page 4: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/4.jpg)
4
![Page 5: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/5.jpg)
The book is a Guide to the Software Engineering Body of Knowledge
In the book are defined 10 knowledge areas (KAs) in SE◦ Software requirements◦ Software design◦ Software construction◦ Software testing◦ Software maintenance◦ Software configuration management◦ Software engineering management◦ Software engineering process◦ Software engineering tools and methods◦ Software quality
5
![Page 6: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/6.jpg)
SCM - the task of tracking and controlling changes in the software◦ revision control and
◦ the establishment of baselines
Q: "Somebody did something, how can one reproduce it?―
A: comparing different results and of analyzing their differences
6
![Page 7: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/7.jpg)
7
SCM is a supporting software life cycle process (IEEE12207.0-96) which benefits project management, development and maintenance activities, assurance activities, and the customers and users of the end product
The concepts of configuration management apply to all items to be controlled (both hardware and software)
SCM is closely related to the software quality assurance (SQA) activity
![Page 8: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/8.jpg)
8
The SCM activities are: management and planning of the SCM process, software configuration identification, software configuration control, software configuration status accounting, software configuration auditing, and software release management and delivery
![Page 9: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/9.jpg)
9
RC also known as version control, source controlor software configuration management (SCM) is the management of changes to documents, programs, and other information stored as computer files
Changes are usually identified by a number or letter code, termed the "revision number", "revision level", or simply "revision―
Each revision is associated with a timestamp and the person making the change
Revisions can be compared, restored, and with some types of files, merged
![Page 10: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/10.jpg)
10
Stand-alone applications: Microsoft Word, OpenOffice.org Writer, KWord, Pages, Microsoft Excel, OpenOffice.org Calc, KSpread, Numbers
Content management systems: Drupal, Joomla, WordPress
In wiki software packages such as MediaWiki, DokuWiki, TWiki (offers the ability to revert a page to a previous revision. The aim is to correct mistakes, and defend public wikis against vandalism and spam)
![Page 11: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/11.jpg)
11
Branch - from that time forward, two copies of those files may develop at different speeds or in different ways independently
Change/patch - represents a specific modification to a document under version control
Change list - the set of changes made in a single commit
Checkout - creates a local working copy from the repository (we can specify a specific revision or obtain the latest)
![Page 12: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/12.jpg)
Commit (checkin) - occurs when writing or merging a copy of the changes made to the working copy into the repository
Conflict - when different parties make changes to the same document, and the system is unable to reconcile the changes
Merge - two sets of changes are applied to a file or set of files
Tag - refers to an important snapshot in time, consistent across many files. Can be a user-friendly, meaningful name or revision number
Trunk - The unique line of development that is not a branch
Update - merges changes from repository into the local working copy
Working copy - is the local copy of files from a repository
12
![Page 13: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/13.jpg)
13
Server: ubuntu, apache2, SVN (http://subversion.apache.org/)
Client: Windows, TortoiseSVN(http://tortoisesvn.tigris.org/), Plug-in Eclipse (http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA)
![Page 14: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/14.jpg)
14
![Page 15: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/15.jpg)
![Page 16: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/16.jpg)
Compare with
last from
repository
Differences
Revisions
History
![Page 17: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/17.jpg)
The application of management activities—planning, coordinating, measuring, monitoring, controlling, and reporting—to ensure that the development and maintenance of software is systematic, disciplined, and quantified (IEEE610.12-90)
Specific aspects:
◦ The perception of clients is such that there is often a lack of appreciation for the complexity inherent in software engineering
◦ It is almost inevitable to generate the need for new or changed client requirements
◦ Software is built in an iterative process rather than a sequence of closed tasks
◦ Software engineering necessarily incorporates aspects of creativity and discipline—maintaining a balance between the two is often difficult
◦ The degree of novelty and complexity of software is often extremely high
◦ There is a rapid rate of change in the underlying technology
![Page 18: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/18.jpg)
![Page 19: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/19.jpg)
Can be examined on two levels
The first level encompasses the technical and managerial activities within the software life cycle processes
The second is the meta-level, which is concerned with the definition, implementation, assessment, measurement, management, change, and improvement of the software life cycle processes themselves
![Page 20: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/20.jpg)
![Page 21: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/21.jpg)
Tools that are intended to assist the software life cycle processes, and to allow repetitive, well-defined actions to be automated, reducing the cognitive load
They are intended to make software engineering more systematic
Methods impose structure on the software engineering activity with the goal of making the activity systematic and successful
Methods provide a notation and vocabulary, procedures for performing identifiable tasks, and guidelines for checking both the process and the product
![Page 22: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/22.jpg)
Computer engineering
Computer science
Management
Mathematics
Quality management
Software ergonomics (Cognitive ergonomics)
Systems engineering
22
![Page 23: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/23.jpg)
23
Computing Curricula 2001 project (CC2001) states that ―computer engineering embodies the science and technology of design, construction, implementation and maintenance of software and hardware components of modern computing systems and computer-controlled equipment.‖
KAs for computer engineering:
◦ Algorithms and Complexity
◦ Computer Architecture and Organization
◦ Computer Systems Engineering
◦ Circuits and Systems
◦ Digital Logic
◦ Discrete Structures
◦ Digital Signal Processing
◦ Distributed Systems
◦ Electronics
◦ Embedded Systems
◦ Human-Computer Interaction
◦ Information Management
◦ Intelligent Systems
◦ Computer Networks
◦ Operating Systems
◦ Programming Fundamentals
◦ Probability and Statistics
◦ Social and Professional Issues
◦ Software Engineering
◦ Test and Verification
◦ VLSI/ASIC Design
![Page 24: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/24.jpg)
24
ISO Technical Committee 159 on Ergonomics as follows: ―Ergonomics or (human factors) is the scientific discipline concerned with the understanding of the interactions among human and other elements of a system, and the profession that applies theory, principles, data and methods to design in order to optimize human well-being and overall system performance.‖ KAs:
• Cognition• Machine Learning and Grammar Induction• Formal Methods in Cognitive Science: Language• Formal Methods in Cognitive Science: Reasoning• Formal Methods in Cognitive Science• Information Extraction from Speech
and Text• Lexical Processing• Computational Language Acquisition• Human-Machine Fit and Adaptation• Human Characteristics• Computer System and Interface Architecture• Dialogue Architecture• Development Process
![Page 25: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/25.jpg)
Clients◦ A general description of the objectives is sufficient to
begin writing program
◦ Requirements are constantly changing, but the software is flexible and can easy adapts
Developers◦ Once the program is written and it is functional, our
role has ended
◦ Until the program doesn’t work, we can not assess the quality
◦ The only good product is the functional program
◦ Software Engineering will create voluminous and unnecessary documentation and will cause delays
25
![Page 26: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/26.jpg)
Model Driven Development (MDD) is a paradigm for writing and implementing computer programs quickly, effectively and at minimum cost
MDD is an approach to software development where extensive models are created before source code is written
A primary example of MDD is the Object Management Group (OMG)’s Model Driven Architecture (MDA) standard
![Page 27: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/27.jpg)
MDA is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models
MDA is a kind of domain engineering, and supports model-driven engineering of software systems. It was launched by the Object Management Group (OMG) in 2001
27
![Page 28: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/28.jpg)
MDA approach defines system functionality using a platform-independent model (PIM) using an appropriate domain-specific language (DSL)
PIM - is a model of a software system or business system, that is independent of the specific technological platform used to implement it
DSL - is a programming language or specification language dedicated to a particular problem domain, a particular problem representation technique, and/or a particular solution technique
PSM - the code is generated by transforming the PIM model into a platform specific model (PSM)
28
![Page 29: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/29.jpg)
OMG focuses Model-driven architecture on forward engineering
One of the main aims of the MDA is to separate design from architecture (allows system developers to choose from the best and most fitting in both domains)
The design addresses the functional (use case) requirements while architecture provides the infrastructure
29
![Page 30: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/30.jpg)
Creation Tool: used to elicit initial models
Analysis Tool: used to check models for completeness, inconsistencies, or error and warning conditions
Transformation Tool: used to transform models into other models
Composition Tool: used to compose several source models
Test Tool: used to "test" models
Simulation Tool: used to simulate the execution of a system
Metadata Management Tool: intended to handle the general relations between different models
Reverse Engineering Tool: intended to transform particular legacy or information artifact portfolios into full-fledged models
30
![Page 31: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/31.jpg)
CA Gen is a powerful model-driven environment that will enable your organization to speed delivery and maintenance (platforms: z/OS (CICS and IMS), UNIX, Linux, Windows, .NET and J2EE.)
31
![Page 32: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/32.jpg)
AMDD - is the agile version of Model Driven Development (MDD)
MDD: The difference with AMDD is that instead of creating extensive models before writing source code you instead create agile models which are just barely good enough that drive your overall development efforts
AMDD is a critical strategy for scaling agile software development beyond the small, co-located team approach that we saw during the first stage of agile adoption
32
![Page 33: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/33.jpg)
33
![Page 34: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/34.jpg)
Initial Requirements Modeling – identify high-level requirements and the scope of the release (what you think the system should do). We can use:◦ a form of usage model (how users will work with the
system), ◦ an initial domain model (identifies fundamental
business entity types and the relationships between them)
◦ an initial user interface model (UI and usability issues)
Initial Architecture Modeling - identify an architecture that has a good chance of working
34
![Page 35: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/35.jpg)
Thinking Through What You’ll Do This Iteration
35
![Page 36: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/36.jpg)
When you code, alternate these activities:◦ add a test, get it to fail, and write code to pass the test
◦ remove duplication
This inner loop pumps the outer loops of ExtremeProgramming - ContinuousIntegration, DailyDeployment, FrequentReleases, and SteeringSoftwareProjects
36
![Page 37: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/37.jpg)
37
1. Add a test
2. Run all tests and see if the new one fails
3. Write some code
4. Run the automated tests and see them succeed
5. Refactor code
Repeat
![Page 38: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/38.jpg)
Benefits:◦ programmers that wrote more tests tended to be
more productive
◦ It allows a programmer to focus on the task at hand as the first goal is to make the test pass
◦ total code implementation time is typically shorter
◦ the code is modularized, flexible, and extensible
Vulnerabilities◦ is difficult to use in situations where full functional
tests are required to determine success or failure
◦ The high number of passing unit tests may bring a false sense of security
38
![Page 39: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/39.jpg)
DSL - is a programming language or specification language dedicated to a particular problem domain, a particular problem representation technique, and/or a particular solution technique
Creating a domain-specific language (with software to support it) can be worthwhile if the language allows a particular type of problems or solutions to them to be expressed more clearly than pre-existing languages would allow, and the type of problem in question reappears sufficiently often
The opposite is:◦ a general-purpose programming language, such as C or Java,
◦ or a general-purpose modeling language such as UML
39
![Page 40: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/40.jpg)
Logo for children
Spreadsheet formulas and macros
SQL for relational database queries
YACC grammars for creating parsers
Regular expressions for specifying lexers
The Generic Eclipse Modeling System for creating diagramming languages
40
![Page 41: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/41.jpg)
In design and implementation◦ Visual diagramming language, such as those created by the Generic
Eclipse Modeling System
◦ Programmatic abstractions, such as the Eclipse Modeling Framework
Programming tools◦ functional language XSLT, specifically designed for transforming one
XML graph into another
Unix shell scripts - a domain-specific language for data organization
MediaWiki templates - support the creation of page templates and inclusion by reference
41
![Page 42: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/42.jpg)
Metacompilers - useful for generating parsers and code generators for domain specific languages
TexLanguage; a typesetting language developed by DonaldKnuth◦ LaTex, a macro package for Tex which provides higher-level
abstractions (though still for general-purpose document formatting)
◦ BibTex, a macro package for Tex which specializes in handling citations/bibliographies for scholarly works
42
![Page 43: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/43.jpg)
43
• Some of the advantages:
• Domain experts can understand, validate, modify, and develop DSL programs
• Self-documenting code
• Enhance quality, productivity, reliability, maintainability, portability and reusability.
• Domain-specific languages allow validation at the domain level
• Some of the disadvantages:
• Cost of learning a new language vs. its limited applicability
• Cost of designing, implementing, and maintaining a DSL
• Finding, setting, and maintaining proper scope
• Difficulty of balancing trade-offs between domain-specificity and general-purpose programming language constructs
• Loss of processor efficiency
![Page 44: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/44.jpg)
44
EMF started out as an implementation of the Object Management Group’s (OMG) Meta Object Facility (MOF) specification
EMF is a Java open source framework and code-generation facility for building tools and other applications based on a structured model
EMF provides an efficient reflective API and allows you to work with dynamic, non-generated, models
![Page 45: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/45.jpg)
45
EMF can generate Java source code that will allow you to create, query, update, serialize, deserialize, validate, and track changes to instances of your models
EMF supports generating code from XML Schema, UML class diagrams (Rational Rose or UML2), and annotated Java interfaces
![Page 46: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/46.jpg)
46
Model generated looks like:
![Page 47: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/47.jpg)
47
EMF Updates sites: http://download.eclipse.org/modeling/emf/updates/releases/
Eclipse -> Help -> Install new software
![Page 48: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/48.jpg)
48
Help -> About Eclipse -> Installation details -> Plug-ins
![Page 49: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/49.jpg)
49
http://help.eclipse.org/ganymede/topic/org.eclipse.emf.doc/tutorials/clibmod/library.mdl (save the file to your computer)
![Page 50: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/50.jpg)
50
![Page 51: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/51.jpg)
51
![Page 52: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/52.jpg)
52
(object Class "Book"
quid "40C81E700047"class_attributes (list class_attribute_list
(object ClassAttribute "title"
quid "40C81E770119"type "String")
(object ClassAttribute "pages"
quid "40C81E7E03A3"type "int"
initv "100")
(object ClassAttribute "category"
quid "40C81E890344"type "BookCategory")))
![Page 53: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/53.jpg)
53
![Page 54: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/54.jpg)
54
![Page 55: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/55.jpg)
55
![Page 56: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/56.jpg)
56
![Page 57: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/57.jpg)
Use EMF to create an model, and use it in a new project component related to your project theme
![Page 58: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/58.jpg)
Swebok Home: http://www.swebok.org/
Revision Control: http://en.wikipedia.org/wiki/Revision_Control
SCM: http://en.wikipedia.org/wiki/Software_configuration_management
MDA: http://en.wikipedia.org/wiki/Model-driven_architecture
CA Gen: http://www.ca.com/us/products/detail/ca-gen.aspx
AMDD: http://www.agilemodeling.com/essays/amdd.htm
TDD: http://c2.com/cgi/wiki?TestDrivenDevelopment, http://en.wikipedia.org/wiki/Test-driven_development
EMF: http://www.eclipse.org/modeling/emf/, http://www.devx.com/Java/Article/29093
Generating an EMF Model: http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse.emf.doc/references/overview/EMF.html
58
![Page 59: Curs 2 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/TAIP/Courses/TAIP... · computer files Changes are usually identified by a number or letter code, termed the "revision](https://reader031.vdocuments.mx/reader031/viewer/2022022523/5b34c8d67f8b9aa0238e6443/html5/thumbnails/59.jpg)
Swebok Book: http://se.sjtu.edu.cn/sites/se/gb/CCSE/Swebok_Ironman_June_23_%202004.pdf
Benefits of MDD: http://www.ca.com/files/industryanalystreports/the_benefits_of_model_driven_development.pdf
59