Programming Basics for aspiring BAs new to IT

Learn to CodeUseful resource about programming basics for aspiring business analysts who are new to IT.

A good resource for aspiring Business Analysts who are new to IT to learn the fundamentals of coding.

Programming Basics

Videos

Part 1

Part 2

Part 3

Part 4

Source: Lifehacker.com
Credit: Adam Dachis

Basics of the RUP Iterative Software Development

Rational Unified Process (RUP, commonly pronounced as in rupture) is a contemporary approach aimed at efficient software development. RUP is representative of the newer iterative and incremental methods, forming the basis of newer and rapid development approaches such as Agile Development. Waterfall is a conventional software engineering approach been in existence since 1970s and we will compare RUP with Waterfall and analyze if it is more efficient.

In this post, we will use a non-IT construction analogy to understand the basics of RUP. After all, software development borrowed concepts from constructing buildings to start with!

Let’s say the project at hand is to build three apartment complexes, A1 A2 and A3. The project needs to be completed in three months. For simplicity, assume that the project involves three primary processes, Structuring, Engineering and Landscaping. How will Waterfall go about it? What about RUP?

The Waterfall Enclave Apartments

Waterfall is a top-down, common-sense approach. It proposes that the key processes in a project must be performed sequentially.

The three key processes Structuring, Engineering and Landscaping. Waterfall recommends performing each task in one ‘big bang’. Do it once, do it right! Sounds ambitious? You’re right, not everything about a project is known clearly up front, so this is a risk in waterfall approach!

In Jan, we take on the Structuring work for all the three complexes, A1, A2 and A3. In Feb, we proceed with all the Engineering for all three complexes and in Mar, we finish the project by Landscaping for A1, A2 and A3.

This is how the project plan will look like:

Visually construction will progress as illustrated below:

The RUP Hill Apartments

RUP recommends that key sub-systems in the project be identified first. Take a sub-system, complete the all the key processes, then repeat for each of the sub-systems.

Let’s break the bigger project into three sub-systems: A1, A2 and A3. Take A1, perform the key tasks (Structuring, Engineering and Landscaping) then repeat for A2 and then A3.

In Jan we’ll take A1 and complete Structuring, Engineering and Landscaping. Then, A2’s Structuring, Engineering and Landscaping in Feb. Repeat for A3 in Mar.

The project plan will look like this:

And visually in three months we’ll see the apartments progress as shown here:

RUP is called an iterative and incremental model. Iterative, since we repeat the processes in each iteration (A1, A2 and A3 are our iterations). Incremental since each iteration contributed to expanding the project towards it completion.

What are the advantages of RUP?

  • Faster Return of Investment – End of Jan, the apartment complex A1 is complete and rentable, yielding usage much sooner
  • Opportunity for improvement – If you do not like the way something turned out in A1, you can always make changes into A2 and A3
  • Improved Efficiency – Building a repeatable process allows for increased efficiency in each cycle
  • Better Resource Utilization – Since Structuring, Engineering and Landscaping resources are utilized in three stints over three months rather than being fatigued one of the months, resource utilization is optimal
  • Greater Access to Materials – Over time, technology and materials availability increases, presenting wider options
  • What are some other benefits? Use comments to add your thoughts..

Is RUP always better than Waterfall?

The answer to this question depends on several factors:

  • project size
  • problem domain area
  • requirements stability up front
  • resourcing availability

Here is a video snippet on this topic from a trial class of our Business Analyst Workshop.

Register for a Free Trial
youtube
please specify correct url

RUP and Agile methods are widely adopted these days. What is the reason behind the focus shift? Does RUP and Agile provide for more Rapid Development? What do you use in your current project? Please share your thoughts in the comments section.

Is UML a programming language?

The UML stands for Unified Modeling Language. It is christened a “language” since the representation involves predefined notations, semantics and rules – so all participants involved – stakeholders, analysts, developers, testers all interpret these diagrams the same way.

uml_logoIt is not a programming language (such as C, C++, Java) or a sub-language (such as SQL) and does not have a set of ‘command keywords’.

The UML is a representation method, providing for different views to detail the software system under design. Just like we have front elevation, floor plan, electrical plan, plumbing plan, in the construction industry, to document different aspects of the same building, UML offers a set of diagrams to represent varied views for a software system. Each of these diagrams have a specific perspective to deliver to the reader, and it makes sense to overlay multiple diagrams to get the complete picture. The UML was architected by the Object Management Group (OMG) and they continue to maintain the definition for the later releases. Visit OMG.org and UML.org for more information.

The UML is an analysis toolbox that allows authoring of specific details of the system, such as business processes, state changes of key objects in a system, etc.

What is UML? From UML.org

 

Please ask your questions, using the comments. Thanks!

Difference between Use Cases and Use Case Diagrams

Use Case Model vs. Teztual Use CaseUse Cases are meant to represent the high level functional areas of the system, as represented in a ULM Use Case Model (or use case diagram).  Primarily meant to analyze the different parts of the system and their relationships and dependencies.

Each ‘textal’ use case is then blown into its own ‘user manual’ style document detailing the dialogue between the ‘system’ (the software you are developing) and the ‘actors’ (people, things or other software that interact with your software).

More:

youtube
please specify correct url

Key Differences between Include and Extend Stereotypes in Use Cases

Include and Extend are two key constructs in UML Use Case Diagrams. Learn about the two constructs, the differences and how to use them in your model!

vimeo
please specify correct url