Monday, 18 November 2013

Registering a Vote : Sequence Diagram




The latest elections in 2013 were a success for some of the countrymen but a massive disappointment for others. Concluding whether the General elections of 2013 in Pakistan were rigged or not is controversial but what we do know is that the turnout for the elections still remain a disappointment. With a turnout of 55% in the recent elections, it would not be fair to conclude that the members sitting in the parliament were the choice of the nation. It was the choice of only half of the Pakistani’s eligible to vote supposing that the elections were free and fair in the first place. There is a great need to educate the people living in Pakistan to vote. Vote to make Pakistan a truly democratic country. A very important step would be to tell people what processes are involved in the act of registering a vote and casting it. I believe it would greatly increase the % turnout in the election if the people are aware of the processes involved in casting their vote as it would remove all the thoughts in their heads which hold them back from casting a vote.


 REGISTRATION PROCESS




You go to your nearest Office of Assistant Election Commissioner / Registration Officer located in your area.

Once at the office, collect a “Voter Registration Form” and fill it out in full. Basic information will be required as well as a Photocopy of National Identity Card as well as Proof of Residence – this includes any kind of utility bill (electricity, gas, water or telephone). Once complete, submit the form and you’re done.

For Overseas Pakistani’s
Overseas Pakistanis are allowed to be registered by their family, friends or relatives who live in the area of your residence in Pakistan. The process is simple roughly the same however please note! Any Citizen of Pakistan can get registered as voter anywhere in Pakistan and can cast their vote if he or she is in Pakistan during the time of elections. You must be in Pakistan to cast your vote!

AFTER REGISTRATION

  • After you have submitted your registration form, in a few days confirm to make sure you are on the voter list!
  • You can obtain the “Voter List” from the Assistant Election Commissioner/Registration Officer. Check to see whether your name is on the list.
  • Once you have confirmed you are registered, you will be able to vote in the Federal and Provincial elections anytime
  • You will be given a Voting ID assigned by the Election Commission of Pakistan
  

ELECTION DAY
On the Election Day, you visit the polling station assigned to you according to your residence. You present your voting ID and NIC to the returning officer who cross checks it with the voter ID’s provided to him and highlights the name of each voter as his name on the voters list is verified. The voter’s thumb is then marked with a special type of ink to prevent duplicate votes and is the voter is then headed into a private area where he secretly puts a stamp on the party he is voting for and then puts the ballot paper in the ballot box openly after which he leaves the polling station. That marks the end of your journey into the election.

The entire process was explained in detail but it would be more interesting to explain the entire process graphically. This is where the sequence diagram comes into play.
Sequence Diagrams are part of UML diagrams. They comes under Interaction model because they show the interaction and transaction between different entities. The arrowhead taking the message will point towards the receiver and away from the sender. The arrow returning the output will point towards the sender (of the command).The returning arrow is a dotted line.
The different entities represent the different actors in the scenario. The diagram itself is a timeline of the activities between the actors. The lifeline of the actors is represented by the vertical line passing through each actor and the horizontal line the activities involving the actors.
The entire process of an election including the part where we register the vote and cast it can be explained by the following sequence diagram:





This is a compact description of the entire process of an election and it can be very useful in educating the people of Pakistan and encouraging them to vote by providing them with valid information regarding the process of voting.
A sequence diagram can be useful in defining system specification of software solutions. It makes it easy to imagine the scenarios arising out of each situation and hence is very productive when it comes to chalking out software specifications.

What we learnt today:
  • Using sequence diagrams to show the interaction between the actors in different scenarios.
  • Applying sequence diagrams to show the processes involved in registering a vote and casting it.


Sunday, 17 November 2013

Hunger turns into a Sequence Diagram

I woke up in the middle of the night and felt hungry. Everyone at home was sleeping. It was too late to wake my Mom up. So I got out of my bed and searched the fridge and guess what that was my lucky day I found 2 pieces of Pizza in the fridge. I went to the kitchen to heat up my food in the microwave oven. I started the oven and those 3 minute time seemed like an hour at that time so I started thinking about my day and the thoughts came to my Software engineering class ..Ahh Sequence diagram.. and  I started relating microwave to the sequence diagram.
I am hungry Person I put the food in oven and oven does to functions simultaneously (parallel ) that are rotating the food and nuking the food. And then the microwave rung... Tringgg there came my tasty Hot Pizza microwave returned  yummy food to  that hungry person.
This is I guess the simplest example of Sequence Diagram.

Eating Pizza was the best part :D
There are different type of system models.Sequence Diagram can be considered as interaction model.

Friday, 8 November 2013

Learning Use cases : Welcome Party


Have you ever had dreams where you had continued solving the algebraic equations in your sleep that you had been solving for the whole day? Have you dream of failing an exam on the very same night when you had given an exam? Have you ever been in a situation where you found yourself applying concepts learnt in classrooms to your daily life?

Well, Software Engineering does wonders to your brain. Every place I visit, every party I go to, my head starts working like a SDLC* machine. Just last week, I have been through this unique experience during an event which was jointly launched by SGA** and sophomore batch to welcome the Freshmen Students at SEECS. After attending a progressive lesson on Use Case building and analysis in the morning, the masquerade felt more like a scenario in which my mind was gathering requirements and building use cases for the party.




As shown above, each use case represents a discrete task that involves external interaction with a system such as Team Recruitment, Stage Performances, Décor, Logistics, Security and Media.
Actors in the use case may be people or other systems involved in the interaction. In our welcome party, the actors were the batch presidents, the guests of the welcome, the performers, the SGA Committee and the photographers from Aloo Clan. In the pre-party period, the Batch presidents recruited and headed the arrangement.

As shown in the diagram, Stage performance extends three other use-cases namely, anchoring, music performances and drama/plays. The concept of includes and extends is such that both include and extends breaks a use-case out as a separate use-case and let the other ones “include/extend” it. What distinguishes extends from includes is that if you have a piece of behavior that is similar across many use cases, you can break it as a separate use-case and let the other use-cases “include” it. On the other hand, if a use-case is similar to another use case but does a little bit more, you can put the normal behavior in one use-case and let it “extend” the exceptional behavior.

What we learnt today:
·         Using Use-Cases to define interaction models

·         Using “includes” and “extends”


*SDLC: Software Development Life Cycle
**SGA: Student Government Association at SEECS

Thursday, 7 November 2013

Cool ways of writing a SRS document



 

In the previous blog-post, we learnt a new concept of System Requirement Specification or SRS Document. Do you remember what was it? A SRS Document specifies the user requirements and the system requirements.
Today, we will discover some really cool ways of writing a SRS document.
1) Natural Language: In our previous episode, zaryab visited a car dealer and explicitly mentioned his requirements to him. That he needed a yellow sports car, that it's price must be below or equal to $50,000 and that it must be delivered within two week. When you use a simple language (i.e English) to express each requirement, this method of specifying the requirements is called Natural Language Specification.
2) Structured Natural Language: Imagine that the car dealer had provided Zaryab with an input form to specify his requirements for the car. He must have then specified his requirements in natural language on a standard form. Each field on the form must have provided information about an attribute of the car.
3) Design Description Languages: Have you ever written algorithms using psedocodes? If you have, then you have already used this design description approach to specify your requirements. The approach uses a language with abstract features to specify the requirements.
 

4)Graphical Notation: Graphical models such as Use cases and Sequence Diagrams are used to define the functional requirements for the system. This approach will be covered in more detail in the future blog posts on Modelling.

5) Mathematical Specifications: This approach is based on mathematical concepts such as finite state machines that are used to model the behavior of the system.
 
 

Requirement Gathering: Buying A Car!


“woof woof! Woof woof! Woof woof!”
 I could barely open my eyes but I was conscious enough to put the alarm on snooze. Yes, I know a barking dog would be a lame alarm but I’ve had it since 6th grade.
“Wait, it’s Saturday isn’t it?” I thought for a moment.
“My brother’s birthday is in 2 weeks!” I screamed while jumping out of my bed. I grabbed my car keys, a toast with cheese on it that I forgot to eat last night while watching the el Classico and headed straight to the nearest car dealer shop (would you believe it?) in my sleeping suit! :P
“I gotta buy him a yellow sports car. That’s all he ever dreamt of. I am so gonna buy him a yellow sports car. He’s my favorite brother. In fact the only brother I have.”
So I parked my car in a really awkward position and rushed into the building which had a sign on it stating
“Ashir Hanif car dealers
You ask We deliver”
I heard they were running a good business downtown that could order cars and sell them to the user according to their requirements. Well, I guess that was my place because I knew exactly what I wanted to buy. A yellow sports car :D
“May I help you sir?” Asked the receptionist.
“I want to buy a car” I replied.
“What kind of a car sir?” She asked.
“A sports car” I replied.
“Follow me” She took me to the office of a guy name Adeel. 
“I see you are looking for a sports car Mr. ummm?”
“Zaryab” I replied.
“Oh so Mr. Zaryab what kind of a sports car do you want?”
“Ummm. A yellow one?”
“Hahahaha. A yellow one? So I guess you don’t know much about sports car do you?”
“Well to be honest not really but I’m buying one for my brother. It’s his birthday in 2 weeks. He’s really into cars and stuff but I gotta keep it a surprise. And yeah. All I know is that he is obsessed with yellow”
“I’m sorry sir but you’ll have to be more specific”

“As I told you already I don’t know a thing about cars and all I know is that I need a yellow sports car in 2 weeks”
“2 weeks! 2 weeks? Hold on sir you’re not going in the right direction. Here’s the deal. I’m gonna ask you a list of questions and you’re gonna have to answer them. Fair enough?”
Then he started asking a list of long, tough questions such as the car company, the additional features in the car, the horse power, the fuel consumption and I can’t even remember what else. I could hardly answer a few of them. What seemed like a tough interview finally came to an end.


“These are the list of cars that you ought to choose from. What’s your price range?” He took out a list of 8 cars.
“Ummm. 50000 $ I guess.” I replied.
“Well I guess you don’t have a lot of options then. We only have 2 cars in that price range. A lotus Elise which I’d prefer or a used yellow Lamborghini diablo. We don’t have any yellow lotuses.”
“Well that’s it then. Lamborghini it is :D”
We both shake hands after which he says
“Oh wait. There’s just a little problem. You said your brother’s birthday is in 2 weeks? Well I’m sorry but we can’t order one within 3 weeks.”
“What? Why not? What’s the use if I he doesn’t get his present on his birthday?”
“Well Sir we can’t do a lot about that. Maybe you surprise him a week later? How about this. We’ll arrange a party for him at the Lamborghini warehouse and surprise him there! ”
“Well that sounds fun! :D But he won’t be able to ride his car on that day right?”
“No Sir I’m afraid that won’t be the case.”
“Well I can live with that. But it better be one hell of a party then”
“Hahahaha. I’m sure you’ll enjoy it sir!”
“Well it was nice meeting you Mr. Adeel and I hope my brother likes the car”
“I’m pretty sure he will Sir.”
“Well I better get going then. Have a good day.”
“You too Sir!”
I left the building having ordered a yellow sports car however I still wasn’t sure if I had ordered the right car. Well I guess I better get lucky here. Who cares about the type of the car anyway? A huge smile on my brother’s face is all that matters to me!
What we learnt Today:

  • User requirements are the services that the system provides and its operational constraints
  • System requirements set out detailed descriptions of the system’s functions, services and operational constraints.
  • Functional requirements verses Non-functional requirements
  • System Requirement Specification is a document containing user and system requirements.
  • R requirements elicitation involves technical staff working with customers to find out about the application domain, the services that the system should provide and the system’s operational constraints.
  • There are a number of generic activities common to all RE processes
1.       Requirements elicitation;
2.       Requirements analysis;
3.       Requirements validation;
4.       Requirements management.









Friday, 1 November 2013

Let's Engineer Software!

Web Developer, Software Engineer, Programmer? If any of these descriptions sound like you, then you have successfully dropped by the right place. 


What do you imagine yourself doing when we ask you to engineer software? Probably, sitting on a laptop and coding your brains out, right?  Well, for a majority of small-scale programs that’s exactly what you’ll be doing. Sitting on a laptop, making an algorithm on a piece of paper and then, instantly beginning to code the components of your programs. However, this approach completely fails when you are about to develop a complete system consisting of many functionalities. 
 
Redefining ‘Software’  

Software is just not programs but also all the associated documentation and configuration data that is needed to make these programs operate correctly. The configuration files are used to set up these programs. The system documentation describes the structure of the software system in technical terms and the user documentation explains how to use the system and web sites for users to download recent product information.

 
What is this blog about?

This blog will be your own personal guide to everything you need to know about engineering software. Want to know how the functional and non-functional requirements of an anti-virus program elicited? Ever wondered about how are the functionalities of a social networking website improved based on user feedback? Our team ain’t afraid of taking up the challenge and teaching you all the concepts related to software engineering. From the most basic definitions to most complex process models required in software engineering, this blog has it unmasked. 

Learning with us will be fun. 

We are not just a bunch of geeks typing everything we learn in class, we are a bunch of smart geeks who want to make this learning process easy and fun for you. So every topic will be covered through application-based stories. For instance, the post coming up next explains you the process of requirement gathering through one of our friend’s experience ofbuying a yellow sports car for his brother’s birthday! 


The learning tutorials are divided into four parts, where every part corresponds to a stage in the Software Development lifecycle. You can track down your position by following zarby. He’ll point to whatever stage you’re currently on.
As for those of you who are searching for a specific topic and want to know quickly what each blog post is about, we have made this easier for you through our “What we learnt today” segment that follows every blog entry. There is also a search button on top-right of your screens to help you search out specific terms/words.
If you have a question or just want to say hi, pop on over to our contact page and send us an email at the addresses provided.

Last words

Visit us for a weekly dose of SE concepts, contributed by kids who shall make you learn as they will learn new concepts in class. We believe in working smartly. To those who aspire to understand the SE process... Stay tuned!