Showing posts with label Software Engg. Show all posts
Showing posts with label Software Engg. Show all posts

Tuesday 16 April 2013

TOGAF

TOGAF®, an Open Group Standard, is a proven enterprise architecture methodology and framework used by the world's leading organizations to improve business efficiency. It is the most prominent and reliable enterprise architecture standard, ensuring consistent standards, methods, and communication among enterprise architecture professionals.TOGAF helps practitioners avoid being locked into proprietary methods, utilize resources more efficiently and effectively, and realize a greater return on investment.[1]

One of the goals of The Open Group Architecture Forum is to provide a forum within which both customer and vendor organizations can exchange feedback and experience in the use of TOGAF.

First published in 1995, TOGAF was based on the US Department of Defence Technical Architecture Framework for Information Management (TAFIM). From this sound foundation, The Open Group Architecture Forum has developed successive versions of TOGAF at regular intervals and published them on The Open Group public web site. (link) [2]

You can start by reading the case studies which shows TOGAF in use in a variety of situations. [3]
It is important to emphasize that no case study can provide a complete blueprint for how another organization should go about using TOGAF. All organizations are different, and each organization should understand what TOGAF has to offer, and adopt and adapt the parts that are useful for its needs.

References
1. The Open Group
2. Publications
3. Case Studies

Sunday 14 November 2010

Requirements Engineering with TFS

 

Some of the best practises from codeplex community can be found here.

My Previous post on RE

Code Branching and Merging with TFS 2010

Distributed development efforts involves working cohesively with geographically distributed teams and working by minimizing the impact of introducing ‘bugs’ or worse breaking the existing code base when new pieces of functionality is checked in.

Now, you all know that with TFS you can

1] Shelve the pending changes

2] Have a code reviewer policy set up on your TFS to avoid the above situation etc.

3] Take out the existing ‘Greatest and Latest’ code to a separate ‘Branch’ and write your code inside this branch, satisfy the requirements with Unit Tests and merge your changes from the separate branch into your main branch (aka production code).

The Codeplex community has put together a branching guide to make this simple and straightforward. I recommend it as a must read for developers.

Links

Visual Studio Team Branching Guide 2010

Monday 15 September 2008

PRISM Guidance

PRISM is the composite application design and development guide from Microsoft Patterns & Practises for helping you build rich flexible and easily maintained WPF, Silverlight and Windows Phone apps.

Using design patterns that embody important architectural design principles, such as separation of concerns and loose coupling, Prism helps you to design and build applications using loosely coupled components that can evolve independently but which can be easily and seamlessly integrated into the overall application.

Check out the guidance on MSDN

Thursday 21 February 2008

Requirements engineering,The known unknown..

Hi,

I'm reading this book by Karl E.Wiegers called Software Requirements, published by MS press. The most intriguing part of the otherwise boring book are the interactions between employees before every chapter..

Often, 'small deviations' during requirement analysis leads to doom during development/deployment phase. Also, not often it's realized that those 'small deviations' during requirements engineering was the cause., the actual 'creep' which lead to doom. This book throws light onto those areas and helps you avoid getting doomed early on, even before you start negotiating a software deal with a client..

6496

Technorati Tags:

Thursday 14 February 2008

Show me the money..

Once upon a midnight dreary...

I pondered about the magical word 'cost' in developing and maintaining software, I found this classical example of 'Practical Cost' in software development / maintenance.

The scenario is upgrading your windows PDA/phone from windows mobile 2003 edition to wm5 or 6. Now, if you ever wondered why there aren't any dynamic upgrades possible on mobile os's, like the ones on desktop platforms (for instance windows xp to windows vista ), the answer may not be evident at first.

http://blogs.msdn.com/windowsmobile/archive/2005/10/06/477999.aspx

According to Microsoft, "But, by and large, the number of devices that will upgrade are pretty small." and therefore

Total cost of doing the upgrade) / (number of people who will use it) = (unreasonable price)

Total cost of doing the upgrade includes

1] Changes in the drivers / kernel etc. from the Hardware manufacturers.

2] Time required for testing new drivers on the 'new' operating system software.

3] Testing required by Mobile Operators (eg., o2, vodafone etc.) for the 'new' operating system so that it operates smoothly on their networks without any interferences whatsoever.

All this because of a Software Upgrade, essentially an Operating System upgrade ?!!

People at Microsoft argue that the cost for the upgrade will often be unreasonable and more or less equal to the cost of a new 'cool' phone ,may be with an already upgraded operating system.

Off late trends may be that there are equal windows mobile phone users and desktop users. Now, i wouldn't buy a new pc just because of a new operating system,but why wouldn't the same thing happen on a PDA/Phone ?!!

Microsoft may be true when they say that too less people would want to upgrade (could your grandmother do it!! :D) and therefore the above cost analysis may be right.

but i somehow strongly feel that there are other factors contributing to it like,

1] Hardware changes in terms of faster processing speed and technologies are significantly higher in mobile phones and PDA than the desktop market i guess.

consider PDA's such as the ones manufactured by HTC, IMate, O2,Apple iPhone etc. hardware changes and technologies evolve much quicker than a shift from single processor to quad processor on the desktop.

2] Imagine Hardware with virtual machines, just like software, processors with virtual instruction sets and thereby support for virtual drivers etc.

3] Virtual operating systems for PDA/Phones. (not sure if Virtual PC emulates Windows mobile 5/6)

Sunday 10 February 2008

MSF and P&P

Microsoft Solutions Framework

The MSF Link

http://www.microsoft.com/technet/solutionaccelerators/msf/default.mspx

Started using MSF and researching MS patterns and practices. Microsoft patterns & practices are Microsoft’s proven recommendations for how to design, develop, deploy, and operate architecturally sound application for the Microsoft platform.

If you start exploring P&P, the best thing about it is it sparks off innovative technology ideas!!, apart from learning the best patterns and practices.

For instance, Consider Mobile development,

check this out:

Mobile client factory:

http://msdn2.microsoft.com/en-us/library/aa480471.aspx

I am using MSF extensively in my university distributed systems project and is definitely the way forward.

Life is so miserable for a software architect given the type of application , the stakeholders and domain. oops!

Agile or scrum, RUP or MSF or just Iterative development!! ??!!

It's now that I've realized "The only way around it is through it" and it comes for a price called "EXPERIENCE"!!!