CASoft Blog     CASoft Blog

         Communication Aspects in Software Engineering

9 March 2009

TFS – Federating Software Engineering

Filed under: Agile,Project Management — Tags: , — admin @ 19:58

Years ago in the manufacturing industry, ERP solutions federated all the information in one place, in order to optimise processes and costs.

The coming generation of tools for Software Engineering Project Management are on their way to doing just that. There is still a long way to go, but the trend is there.

Team Foundation Server (TFS) is a Microsoft offering for source control, data collection, reporting, and project tracking, and is intended for collaborative software development projects.

It is one of the best tools out there today for managing and federating the information of Software Engineering projects and for Project Management.

When creating a project within TFS, there are 2 project templates to choose from:
–MSF Agile provides Work items and Processes that support Agile programming approach
–MSF CMMI is based on MSF Agile, and it stretches the Agile approach to comply with CMMI Maturity level 3. It is 150% larger than MSF Agile, for example MSF Agile has 25 work product artifacts, MSF CMMI has 59.

In TFS, everything in managed as a Work Item. The Work Items available, when using MSF Agile, are Scenario, Task, Bug, Risk and Quality of Service Requirement.
It is however possible and easy to add other work items, such as Test Case and Requirement.

In their presentations about TFS, Microsoft recommend the following links organisation:
Queries can be created to research Work Items.

Reports can be developed and run to provide all sorts of information and calculated measures about Work Items and projects, such as Bugs rate and Remaining work for example.

SharePoint Web Access is the Web Interface that provides access to all the TFS functionality through a web-based application. Timesheets can be entered using SharePoint Web Access.

Customers can be given access to the information about their projects through SharePoint Web Access, and can monitor their progress. This can decrease significantly the need for reporting.

The TFS solution also provides a Portal as a single point of storage for documents, which can be organised by project for example. It also has a wiki-like feature.

It possible to export the information in TFS into EXCEL spreadsheets, which can be updated / refreshed at the click of a button. This information can be instanciated in tables or in pivot-tables. It is also possible to modify the information in the spreadsheet and upload it back in TFS. Some teams choose to upload their requirements this way.

They are also add-ins that allow integration with third party products, such as Caliber and Test Director.

The Power Tools, which must be downloaded and installed separately, allow to create and edit processes and work items, and much more.

The 2010 edition of TFS will provide the following functionality:

  • Architecture Explorer provide a graphical visualisation of the code
  • 7 UML diagrams will be supported (the Microsoft Diagrams won’t be supported, though Microsoft is working on their Oslo model-driven development strategy)
  • Tools for test cases management
  • Test Impact View – run tests impacted by a code change only
  • Enhanced Vision Control – gated check-in, branch visualisation and build worklfow

What do you like or dislike about TFS? leave comments below.

Initiation to UML

Filed under: UML — Tags: , — admin @ 16:38

I organise several Initiation to UML courses, which include hands-on exercises, such as:

  • Requirements Analysis using UML
  • Software Architecture Analysis using UML
  • Software Design Analysis using UML

These 3 courses are usually intended for Software Developers, Architects and System Analysts, and form one entity that provides a coherent overview of UML and a methodology based on RUP.

A complete UML course will normally take 5 days, but I like to taylor the presentations and exercises to the client’s needs.

When people start learning UML, they want to know and usually focus on the syntax. I believe the philosophy and approach are far more important, and the syntax can readily be found on the Internet or in books.

Believing in UML and its capacity to improve communication, robutness and predictability in the Software Engineering industry, I am always keen to promote it.

I also provide coaching and mentoring.

I would be delighted to have a brainstorming session or chit-chat with you on the subject any time. Contact me at jjacquet@writeup.com.au.

8 March 2009

Why UML?

Filed under: UML — Tags: , — admin @ 16:15

The Unified Modelling Language (UML) was published in 1995 as a merge of several older notations and approaches, including in particular OMT (Object Modelling Technique), Booch method and OOSE.

The objective of UML was to put together a common syntax, which would be simple enough to be readable by about anybody, while being unambiguous, along with methodology guidelines (which came in force years later with RUP).

The challenge in Software Engineering today is to describe a sometimes complex system in simple terms, without ambiguity and without omitting major concepts… So that everyone on a project has the same understanding, from the Junior Developer to the Project Manager and the Customer.

Why undertaking UML?
–The UML is an OMG standard,
–The UML has a wide acceptance in industry,
–There are a lot of tools which support the UML,
–Use of the UML is independent of software development processes,
–Object-oriented design has become very popular in software development projects,
–There also is a lot of textbooks about UML.

I give UML courses. Contact me at bne.lifestyle@optusnet.com.au.

25 February 2009

Introduction to RUP

Filed under: RUP — Tags: , , — admin @ 20:09

Are you a Pointy Hair Manager?


Think again… Look in a mirror.
You run the risk of finding a Dilbert cartoon taped on your door some day if you think that:
–Software development is primarily about programming,
–Managing a software project is no different to managing any other project,
–The best approach is to establish a detailed plan at the beginning and make sure everyone abides by it on a daily basis,
–A safe way to proceed with the product is to freeze all requirements early, in order to minimize any risk of schedule slippage and late surprises,
–etc.


The Rational Unified Process (RUP) is a Software Engineering Process.
–It provides a guide to help determine who does what, when and how.
–It can be mixed with other methods (e.g. quality insurance, CMMI, Agile…).

Why to apply RUP?
–Computer systems complexity.
–Reproducibility and Predictability.
–RUP gathers best practices that have proven themselves.

RUP, 3 Foundations:

–Use case driven,
–Architecture centred,
–Iterative and incremental.

RUP, Best Practices:

1.Iterative approach
2.Requirements management
3.Software component based architecture
4.Graphical modelisation of concepts
5.Permanent software quality checking
6.Change control

Maturity Level:

The Capacity Maturity Model Integration (CMMI) is process oriented and defines 5 levels of maturity:
1. Initial
2. Managed
3. Defined
4. Quantitatively Managed
5. Optimising

RUP uses the process approach and allows an organisation to reach CMMI levels 2 or 3.

RUP Software development life cycle is organised into phases:

Iterative Approach:

Time Organisation:

Requirements Management:

–Discovering user requirements,
–Writing business use-cases with scenarios.
–Reorganising business use-cases into use-cases with attributes.
–Tracking requirements all along the development process.

Graphical Modelisation and Component Based Architecture are important subjects and will be the object of an article on their own.

Permanent Quality Checking:

ISO definition for quality:
–Quality is the property of what is conform to the requirements

Quality checking:
–Metrics assessment
–Defect tracking
–Code review
–Phase and iteration review
–Project tracking

Change Control:

–Change Request Management
–Configuration Management
–Measurement

Worker-Activity-Artifact diagrams are provided as guidance for the different processes of Software Engineering.

Organisation:

It is recommended to organise projects in smaller groups in order to facilitate communication.

Risk Management:
The adoption of an iterative approach allows the reduction of the risks earlier in the project life cycle.
Conclusion:

These are recommendations and guidances, which are to be tailored to your needs, to the size of the project and to the size of the company.

The Unified Process allows to improve the quality and control over Software Development Life Cycle (SDLC), in order to:
–reinforce capacity to reach defined goals,
–decrease the cost of the whole software development, especially maintenance.

RUP has also proved that it can be light and agile.
Useful Resources:
Mapping between RUP and PMBoK article: http://www.ibm.com/developerworks/rational/library/4721.html

« Newer Posts

Powered by WordPress and Writeup.com.au