SE goes software engineering; (practically) managing the Compose

Slides:



Advertisements
Similar presentations
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Advertisements

Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Software engineering tools for web development Jim Briggs 1CASE.
Integrated Development Environments, Source Control Repositories, Automated Testing Tools, Bug Tracking, Code Analysis Tools, Build Tools, Project Hosting.
1 CS1001 Lecture Overview Java Programming Java Programming Midterm Review Midterm Review.
Developing the NSDL User Portal Dean Krafft, Cornell University
For more Lectures and Notes Visit
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Professional Informatics & Quality Assurance Software Lifecycle Manager „Tools that are more a help than a hindrance”
Chapter 6– Artifacts of the process
Creating and Running Your First C# Program Telerik Software Academy Telerik School Academy.
CSC 142 A 1 CSC 142 Introduction to Java [Reading: chapter 0]
DEVSENSE s.r.o.. Visual Studio Industry Partner DEVSENSE s.r.o. NEXT STEPS Contact us at: In 2009, DEVSENSE was founded by four software.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Creating and Running Your First C# Program Svetlin Nakov Telerik Corporation
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
Chapter 1.4 Programming languages Homework Due: Monday, August 11, 2014.
Version control Using Git Version control, using Git1.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Data Storage Choices File or Database ? Binary or Text file ? Variable or fixed record length ? Choice of text file record and field delimiters XML anyone.
Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written.
Productivity Tools Ken Nguyen Department of Information Technology Clayton State University.
CASE Tools Union Palenshus. In the early days… ► Software engineering tools consisted solely of translators, compilers, assemblers, linkers, loaders,
Confidential Continuous Integration Framework (CIF) 5/18/2004.
Anubha Gupta | Software Engineer Visual Studio Online Microsoft Corp. Visual Studio Enterprise Leveraging modern tools to streamline Build and Release.
XSDoc, JISBD’ XSDoc an Extensible Wiki-based Infrastructure for Framework Documentation Ademar Aguiar, Gabriel David, Manuel Padilha FEUP, INESC.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Java Example Presentation of a Language. Background Conception: Java began as a language for embedded processors in consumer electronics, such as VCR,
Cross Language Clone Analysis Team 2 February 3, 2011.
Software Development Introduction
Java Programming: Advanced Topics1 Introduction to Advanced Java Programming Chapter 1.
Software Deployment & Release 26/03/2015 1EN-ICE.
Eclipse.NET An Integration Platform for ProjectIT-Studio João Saraiva IST & INESC-ID (GSI)
Ansible and Ansible Tower 1 A simple IT automation platform November 2015 Leandro Fernandez and Blaž Zupanc.
Anjana & Shankar September,2010 Introduction to Programming Tools.
Project SCS a lightweight source control system for Windows platforms.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
Lecture 1b- Introduction
Testing Tools & Standards
Advanced Programing practices
Proposed IT Infrastructure for TOP OS project
Development with Eclipse
Before You Begin Nahla Abuel-ola /WIT.
SE goes software engineering; (practically) managing the Compose
Introduction to Advanced Java Programming
Version control, using Git
OpenWells Cross-Platform Mobile Application
Software Documentation
Java programming lecture one
Introduction Enosis Learning.
SE goes software engineering; managing the Compose* project.
Introduction Enosis Learning.
Revision Control Daniel Daugherty
Design and Programming
Introduction to Systems Analysis and Design
Component-Based Software Engineering
Aspect-Oriented Composition Tools for Composition Filters
SE goes software engineering; managing the Compose* project.
SE goes software engineering; managing the Compose* project.
Constructing MDA-based Application Using Rational XDE for .NET
Chapter 7 –Implementation Issues
Artisan Software Tools A Pragmatic Approach Using Ada and UML
(Computer fundamental Lab)
The JSF Tools Project – WTP (internal) release review
CSC 142 Introduction to Java [Reading: chapters 1 & 2]
Review of Previous Lesson
Programming language translators
Outcome of the Lecture Upon completion of this lecture you will be able to understand Fundamentals and Characteristics of Java Language Basic Terminology.
Plug-In Architecture Pattern
Presentation transcript:

SE goes software engineering; (practically) managing the Compose SE goes software engineering; (practically) managing the Compose* project. The Compose* Team Christian Vinkes Frederik Holljen Istvan Nagy Lodewijk Bergmans Pascal Durr Raymond Bosman Sverre Boschman

Scope Composition Filters Implementation Compose* is a modular language extension Current target: extend .NET Implementation implementation is crucial for our own verification for the trust of the community for the learning process internal/external many past implementations throw-away prototypes; wasted effort

Managing the Project: Main Goals Communication integration avoid redundant efforts Continuity keep the knowledge keep the quality documentation

Overview of the Process It is informal & light-weight Steps: architecture: grows evolutionary [Lodewijk] design: UML diagrams--Rose XDE [Istvan] code: Java, J#, C# synchronize with design (XDE) [Istvan] use Eclipse and Visual Studio [Christian] document with ‘doxygen’ [Raymond] automate testing [Raymond] code inspections (TBD)

Overview of the infrastructure Communication Sourceforge: bug tracking, mailing lists,.. [Frederik] Knowledge management Wiki: cf. project web site [Pascal] Source code sharing CVS [Frederik] Build & Deployment Make files, multi-platform, executables: TBD

About the Architecture TBD

Knowledge Management with a TWiki Pascal Durr What is TWiki Webbased collaboration platform Accessible from any descent webbrowser Main Features: Easy editable Simple text formatting Revision Control Topic locking

Knowledge Management with a TWiki Pascal Durr TWiki and the Compose* project The #1 place for information about the project. Entry point for developers and users. Used for long term storage of information. Each developer has their own space. One place to rule them all. Keeping it structured is a problem.

Knowledge Management with a TWiki Pascal Durr Demo http://composestar.sf.net/

Communication with SourceForge Introduction world's largest Open Source software development web site free (as in beer) open licences only Reasons for choosing SourceForge Attracting contributions from the outside Provides communication infrastructure

Communication with SourceForge Major features provided Bug tracker Forums Mailing lists Web/disk space Compile farm Administrative access rights CVS

Source code sharing with CVS (Concurrent Versioning System) Central repository for source code edit one file simultaneously Versioning system, you can: commit changes to a file roll back files to a previous state see log of changes Supports tagging and branching

Design Documentation with UML Istvan Nagy

From Design to Code (XDE) Istvan Nagy

Development with Visual Studio Christian Vinkes Two development environments J# (runtime part: Visual Studio) Java (preprocessing / compiletime: XDE / Eclipse) Why? first idea: only J#: Java syntax & semantics supports both JDK and .NET libraries but generates only .NET bytecodes (assemblies)

Development with Visual Studio Problems very limited JDK support (1.1.4 + small part 1.2) can’t use external libraries directly External libraries JVM bytecodes .NET requires .NET assemblies Visual J++ 6 could load JARs

Development with Visual Studio Microsofts ‘solutions’ source available: recompile conversion wizard (Java to C#) no source: .JAR / class converter

Development with Visual Studio Problems conversion errors (e.g. Swing) only JDK 1.1.4 lots of tweaking necessary in case of external libraries requiring others: converting process increases exponentially

Development with Visual Studio Solution only use J# for runtime no C#, unless needed message interception later conversion to Java use Java for compiletime Added benefit portability short demo...

Code documentation with DOXYGEN Raymond Bosman Same syntax as Javadoc Supports also other languages (C, C++, PHP, etc.) Widely used Open source output is .......

Automate testing Raymond Bosman Overview: Why do we need selftesting code? Input output testing Unit testing Advantages: Bug prevention Think about what to implement Can program faster Helps to refactor faster

Automate testing Input output testing Tests if the output of the program matches the expected output. Needed files: Input files: *.in Output files: *.out Keyboard input: *.kb

Automate testing Unit testing Most classes have their own test class. We test: Only the important classes. Test only methods that can go wrong. Boundaries, Exceptions and some combinations. We use: JUnit for Java and J#. dotUnit for C# (J#?) code.

Summary/Conclusion Compose* environment is extremely volatile: students are temporarily architecture settles slowly (bottom-up process) lots of specific knowledge involved Tools, techniques & infrastructure can contribute to communication & quality our process is informal, light-weight and state-of-the- practice