Thursday, June 28, 2012

Web 3.0 Technologies

Web 3.0


If you are excited about the Web 2.0 revolution in the past decade, I think you will be impressed by the next generation of Web applications.  Web 3.0 is already here and more Web 3.0 applications will emerge soon.  So, what is Web 3.0?  Web 3.0 is the next step in the evolution of the Internet and Web applications.  Here are several videos that you can learn about the concept of Web 3.0 and Web 3.0 development.  Hope you enjoy these videos and find them helpful to you.
Evolution Web 1.0, Web 2.0 to Web 3.0

The Future Internet: Service Web 3.0

               Web 3.0 : Semantic Web



Web 3.0 and its role in Education

This post is in response to Timbuckteeth's (Steve Wheeler's) post on Web 3.0 and e-learning 3.0:



As far as I have experienced it, Web 2.0 is Read/Write/Collaborate (varying shades of it).



From 'create a site', to 'collaborate using a site' to 'search/mash-up the data from n sources to get the best the web has to offer on what you want' is more like what Web 3.0 will have to offer.


Web 3.0 may or may not have more mobile technologies. Mobile technologies do not change the nature of activity that web is used for only it access. So mobile or static access will happen for Web 3.0 - I am not so sure at this stage. I do not care either.


From an institutional prospectiveThe educational use of Web 3.0 will enable read/write/collaborate and re-present the information to learners in a more meaningful way than what current technologies allow - Filtering/searching/mash up etc will play a big role in all this.


From a learner's point of view: Web 3.0 will further what web 2.0 allowed (i.e. read/write/collaborate) and help learners 'personalise' the information that is created via interactions in Web 2.0 to best suit their own needs.


So far, mainly constructivist principles have found resonance with what e-learning (Web 2.0) has to offer. Web 1.0 was more suitable for Behaviourist principles(online material/ quizzes/feedback etc). Web 3.0 will make the content King, again. Thereby making the cognitive approach to teaching and learning more prominent alongside behaviourists and constructivist approaches.

Learners will use the web to suit their style of learning using their PLE. Institutions will benefit from being able to blend different pedagogies using the web as they need to cater for many different types of learners. Some academics will make use of this more than other giving way to Personal Teaching Environments (PTEs) that make use of the web in this way.

Next big thing will be the content created collaboratively via the web primed for the best use of its users (more personalised). Somewhere the PTE will meet the PLE and Web 3.0 need to make the meeting of these two as smooth as possible.
I’ve listened to a few talks by Bruce Sterling concerning “the internet of things” and other Web 3.0 technologies. His idea of spimes (http://en.wikipedia.org/wiki/Spime) is very interesting.
Web 3.0
Web 3.0 is a term, which definition is not confirmed or defined so far as several experts have given several meaning, which do not match to each other, but sometimes it is referred to as a Semantic Web. In the context of Semantic Web, Web 3.0 is an evolving extension of the World Wide Web in which web content can be expressed not only in natural language, bu t also in a form that can be understood, interpreted and used by software agents, thus permitting them to find, share and integrate information more easily.
Tim Berners-Lee, the inventor of first World Wide Web has coined the term Semantic Web. But the concept of Web 3.0, first entered among the public in 2001, when a story appeared in scientific article written by American Coauthored Berners-Lee that described this term as a place where machines can read Web pages as much as humans read them e.g. web connected bathroom mirrors, which can read the news coming through on the web.
Definitions and Roadmap
There are several definitions of the web, but usually Web 3.0 is defined as a term, which has beencoined with different meanings to describe the evolution of web usage and interaction among the several separate paths.
These include transforming the Web into a database, a move towards making csontent accessible by
multiple non-browser applications, the leveraging of artificial intelligence technologies, the Semantic web, or the Geospatial Web. According to Wikipedia, an online encyclopedia, “Web 3.0 is a third generation of Internet based Web services, which emphasize m a c h i n e - f a c i l i t a t e d understanding of information in
order to provide a more productive and intuitive user experience.”. The third generation of Internet services is collectively consists of semantic web, microformats, natural language search, data-mining, machine learning,
recommendation agents that is known as Artificial Intelligence technologies or Intelligent Web.

According to some experts, “Web 3.0 is characterized and fueled by the successful arriage of artificial intelligence and the web”. While some experts have summarized the efinition defining as “Web 3.0 is the next step in the progression of the tubes that are the Internets”.
According to Nova Spivack, the CEO of Radar Networks, one of the leading voices of this newage Internet, “Web 3.0 is a set of standards that turns the Web into one big database.”
Steve, a famous Blog author has defined the term Web 3.0 as, “ Web 3.0 is highly specialized information structures, moderated by a group of personality, validated by the community, and put into context with the inclusion of meta-data through widgets”. While Leiki, the Finland based pioneer company of Semantic Web describes: “Web 3.0 makes the discovery of content streams effortless. It introduces automatic discovery of likeminded users and automatic tagging.”
History
The term ‘Web 3.0’ was first coined by John Markoff of the New York Times in 2006, while it first appeared prominently in early 2006 in a Blog article written by Jeffrey Zeldman in the “Critical of Web 2.0 and associated technologies such as Ajax”.
The debate originates in summit named Technet Summit in November 2006, in which various software tycoons expressed their views. e.g.
Jerry Yang, founder and Chief of Yahoo, stated:
“Web 2.0 is well documented and talked about. The power of the Net reached a critical mass, with capabilities that can be done on a network




Internet Routing Architecture

SNMP as your Eyes to watch your Network


The CTAP Wireless Project Kabul

It is infact not true that wireless networks are to replace wired networks, they are actually to supplement the wired networks. Just a few days back, IP-Mentor Afghanistan was declared winner in another interesting project. It is the CTAP Wireless Network Project in Kabul.
CTAP or Civilian Technical Assistance Program Afghanistan is an Advisory Project of Ministry of Finance with hundreds of expatriate advisors to Afghan Government. 
Their requirements were to connect Six Remote Sites to their Main Office. All remote sites and their HQ are in Kabul. It is a good experience to play with Wireless Channels and frequencies but in a noisy environment of Kabul, it is a full time headache for Engineers working under hot sunny weather.
There is no problem if the weather is hot or cold, IP-Mentor Engineers are dedicated to their Jobs. Most of the sites are UP and running and hopefully we complete the Project in a few days. Thanks to Javid Samit for managing and leading the Project team..
Click to see onsite pictures of Installation

Tuesday, June 26, 2012

Welcome to Software Testing!

Link to Udacity Class Blog!!....

Link to Direct Class of Udacity...


News Visualization: Udacity student builds clever news site

Students who take Udacity classes learn by doing. In Steve Huffman's Web Applications Engineering class, Bart van der Poel, from the Netherlands, built News Visualization, a site that allows you to see where in the world a news story is happening. Bart filled us in on why he built his site and how Udacity helped him do it!


Check out his site here.


How did you come up with the idea for News Visualizations?
I was reading some news articles on a popular Dutch news website and I noticed that some of the articles had the option of showing the location of that news event on a map. I thought it would be cool to visualize all news events on a single world map so that a user can see the spread of news around the world. After the third lecture, I had learned enough from the class to make a small working example, just as a personal project.






How does the site work and who can use it?
When you visit the site you will see a list on the left side with the most recent news stories, and a world map on the right with pins on it that correspond to those news stories. Users can then browse the list and click on a story to highlight its location on the world map and show a small summary. Or they can just use the world map to navigate through the news stories and click on stories in regions that they are interested in. To read the full news story, they can click on a link in the summary that will take them to the original article.


How did Udacity help you build this site?
I didn't know anything about web development when I started this course. Steve did a great job explaining the important concepts in web development, as well as teaching us how to use Google App Engine, so we could start building stuff right away. I felt like I got a huge amount of information with every new lecture, without being overwhelmed. So, thanks a lot!


Are any other projects on the horizon? 
I am looking forward to styling my News Visualization website and I am also thinking about extracting people's responses to the news articles and color coding the pins on the world map based on how positive/negative the responses are.
As for new projects, I've recently been learning how to develop iPhone and iPad apps. I would like to create a turn-based multiplayer game for these devices and use my new web application knowledge to implement the backend features of the game. So things like matching up players who are looking for an opponent, saving the state of their games on a server, adding players to a friend list. This was actually one of the reasons I signed up for CS253. I think I have learned enough in this class to actually implement these features. 


If you are interested in learning to build web applications, enroll in Steve Huffman's Web Applications Engineering course today!

Thursday, June 21, 2012

Waterfall Model


SDLC (Systems Development Life-Cycle) is used in information systems, systems engineering, and software engineering as a process of creating new or altering existing systems. The SDLC can be thought of as a concept that lies beneath a number of software development methodologies currently employed throughout industry. From these, the framework to create, plan, and control an information system flows which is also known as the software development process.

Overview of the SDLC

SDLC describes a process used by engineers and analysts to create and deploy all aspects of an information system. These include defining requirements, validation, training, and emphasizing ownership of the system. Whenever SDLC is employed, the goal is to create a system that meets the primary stakeholder (or owner’s) expectations. These include but are not limited to delivering the project within time and cost constraints. Factors taken into account are system deployment, ease of use, and minimization of errors when connecting to legacy system components likely created by different software vendors. To help manage the inherent complexity when designing Enterprise software, there have been several SDLC based models created such as the Waterfall, Spiral, and Agile methodologies.
An SDLC-based software engineering model can range between agile to sequential methods depending on the suitability of the method to the project or task at hand. Each of the methodologies has different levels of risk and benefits to balance within the scope of the project requirements, budget, and delivery timelines. Models such as the Waterfall focus on exact and complete planning suitable for large projects where Scrum focuses on lightweight process that allow for rapid changes throughout the software development life-cycle. Regardless of the method chosen, the SDLC does not equal fully the project life cycle or PLC. The SDLC focuses on the product requirements while the PLC includes all activities of the project (think marketing, sales, other business matters, etc).

SDLC History

According to Elliot & Strachan & Radford (2004), the SDLC originated in the 1960’s to help crate large businesses systems. The information systems of the day focused on heavy data processing and mathematical routines. Since its inception, there have been several systems development frameworks based on some or all of SDLC such as the SSADM (Structured Systems Analysis and Design Method) created for the UK Government Office of Commerce in the 1980s. Since then, the majority of life cycle approaches to system development have been created to fix a deficiency identified in traditional SDLC phases specific to the task at hand.

SDLC Phases

The SDLC framework consists of a series of phases (or steps) that are intended to be followed in sequence by software or system designers and developers. In each phase of the System Development Life Cycle, the results of the previous phase are used. The labeling or titles of the phases may vary depending on the corporate or development environment, but include planning, analysis, design, and implementation. The waterfall model is the oldest SDLC-based model created where the output of each stage of the process explicitly becomes the input of the next stage.

Systems Development Life Cycle Phases
The tenth phase occurs when the system is disposed of and the task performed is either eliminated or transferred to other systems.
Project Planning – Determines the project’s goals and results in a high-level view of the potential project. A feasibility study may be undertaken as part of this phase.
Requirements Definition – Results in the creation of well-defined functions from the defined project goals. Takes a look at the ultimate end-user’s needs for the information system. In the Sashimi waterfall method, feedback can be provided back to project planners for goal modification if required.
Systems Design: Project features and operations are describe in detail to include technical specifications, use of UML (when required/suitable), process diagrams, and even prototype creation along with other required documentation.
Implementation/Development: One of the most costly phases of the SDLC for information systems. Shortfalls in Systems design or requirements definition can become costly in the phase if not accomplished satisfactorily.
Integration and testing: A common phase that is under-funded by many corporate entities. In this phase all of the project components are integrated and tested for errors and interoperability in a special test environment.
Acceptance and Deployment: Software is deployed to the customer and starts accomplishing the desired work.
Maintenance: The maintenance phase of the SDLC can become a project in and of itself. Future software upgrades, bug fixes, and regular maintenance are addressed during this stage which may or may not have a well-defined end state.

Strengths and Weaknesses of the SDLC

The strict Waterfall model is not suitable for most systems development life cycles in today’s development environment. The underlying concepts; however, find their way into the latest “Rapid” development methods throughout industry with the pure SDLC practice lending itself better to a structured development environment. Many software developers have started taking on the best practices from the SDLC for the respective project as a guide to effective systems development.

Perceived Strengths of SDLC

-          Increased Control
-          Ability to monitor large projects
-          Detailed steps
-          Well defined user input and documentation
-          Development and design standards

Perceived Weaknesses of SDLC

-          Results in an increase in development time.
-          Potential for increased development cost.
-          Rigidity. Systems must be defined up-front with potentially limited user input.
-          Project overruns can occur if errors occur in early stages of the project resulting in rework


All About the Waterfall Model

The waterfall model is a model which was developed for software development; that is to create software. It is called as such because the model develops systematically from one phase to other in a downward fashion, like a waterfall.
The most probable phases through which it progresses downwards are
•           Definition Study/Analysis
•           Basic Design
•           Technical Design/Detailed Design
•           Construction
•           Testing
•           Integration
•           Management and
•           Maintenance.
Waterfall Model
Waterfall Model
Before the advent of this method, the software development in the computer companies suffered from a haphazard integrated software network like cluttered knitting. However with this method they hoped to bring clarity in their projects.

About the Phases

As said earlier the waterfall model has been structured on multiple phases especially to help out the software construction companies to develop an organized system of construction. By following this method, the project will be divided into many stages thus easing out the whole process. For example you start with Phase I and according to this model, one only progresses to the next Phase once the previous one has been completed. This way one moves progressively to the final stage and once that point is reached, you cannot turn back; similar to the water in a waterfall.

Brief Description of the Phases of Waterfall Model

•           Definition Study / Analysis: During this phase research is being conducted which includes brainstorming about the software, what it is going to be and what purpose is it going to fulfill.
•           Basic Design: If the first phase gets successfully completed and a well thought out plan for the software development has been laid then the next step involves formulating the basic design of the software on paper.
•           Technical Design / Detail Design:  After the basic design gets approved, then a more elaborated technical design can be planned. Here the functions of each of the part are decided and the engineering units are placed for example modules, programs etc.
•           Construction / Implementation: In this phase the source code of the programs is written.
•           Testing: At this phase, the whole design and its construction is put under a test to check its functionality. If there are any errors then they will surface at this point of the process.
•           Integration: in the phase of Integration, the company puts it in use after the system has been successfully tested.
•           Management and Maintenance: Maintenance and management is needed to ensure that the system will continue to perform as desired.
Through the above mentioned steps it is clearly shown that the Waterfall model was meant to function in a systematic way that takes the production of the software from the basic step going downwards towards detailing just like a Waterfall which begins at the top of the cliff and goes downwards but not backwards.

History of the Waterfall Model

The history of the Waterfall model is somewhat disrupted. It is often said or believed that the model was first put forth by Winston Royce in 1970 in one of his articles; whereas he did not even used the word “waterfall.” In fact Royce later presented this model to depict a failure or a flaw in a non-working model. So later on, this term was mostly used in writing about something that is often wrongly done in the process of software development – like a common malpractice.
Royce was more of the opinion that a successful model should have the allowance of repetition or to go back and forth between phases which the waterfall model does not do. He examined the first draft of this model and documented that a recurrent method should be developed in this model. He felt the need of progressing only after a feedback from the previous stage has been received. This is known as the Iterative model.
As opposed to the Waterfall model, the Iterative model is more practical and has room for maneuver. Followers of the Iterative method perceive the Waterfall model as inappropriate.

Advantages of the Waterfall Model

Let’s look at some of the advantages of this model,
•           The project requires the fulfillment of one phase, before proceeding to the next. Therefore if there is a fault in this software it will be detected during one of the initial phases and will be sealed off for correction.
•           A lot of emphasis is laid on paperwork in this method as compared to the newer methods. When new workers enter the project, it is easier for them to carry on the work from where it had been left. The newer methods don’t document their developmental process which makes it difficult for a newer member of the team to understand what step is going to follow next. The Waterfall Model is a straight forward method and lets one know easily what stage is in progress.
•           The Waterfall method is also well known amongst the software developers therefore it is easy to use. It is easier to develop various software through this method in short span of time.

Disadvantages of the Waterfall Model

There are many disadvantages to the model as well. Let’s have a look at those,
•           Many software projects are dependent upon external factors; out of which the client for which the software is being designed is the biggest factor. It happens a lot of times, that the client changes the requirement of the project, thereby influencing an alteration in the normal plan of construction and hence the functionality as well. The Waterfall Model doesn’t work well in a situation like this as it assumes no alteration to occur once the process has started according to plan.
If, for instance, this happens in a Waterfall Model, then a number of steps would go to waste, and there would arise a need to start everything all over again. Of course this also brings about the aspect of time and money which will all go to waste. Therefore this method will not at all prove to be cost effective. It is not even easy to take out the cost estimate of each step, as each of the phases is quite big.
There are many other software developmental models which include many of the same aspects of the Waterfall model. But unlike the Waterfall model, these methods are not largely affected by the outside sources. In the waterfall model, there are many different people working in the different phases of the project like the designers and builders and each carries his own opinion regarding his area of expertise. The design, therefore, is bound to be influenced; however in the Waterfall model, there is no room for that.
•           The other negative aspect of this model is that a huge amount of time is also wasted. For example if we study any software development process, we know that Phase II cannot be executed until Phase I has been successfully completed; so while the designers are still designing the software, time of the builders is completely wasted.
•           Another disadvantage of this method is that the testing period comes quite late in the developmental process; whereas in various other developmental programs the designs would be tested a lot sooner to find the flaw at a time when a lot of time and money has not been wasted.
•           Elaborate documentation during the Waterfall method has its advantages, but it is not without the disadvantages as well. It takes a lot of effort and time, which is why it is not suitable for smaller projects.

Modified Waterfall Models

Due to the various disadvantages a lot of other modified versions of this model have also been put forth and some of these are mentioned below:
•           Royce Model
Although not documented as the “Waterfall Model,” Winston W. Royce is credited with the first formal description of what we no know as the Waterfall Model in 1970. In his original definition, the model consisted of the following steps:  Requirements specification, Design, Construction (or coding in today’s terms), integration, testing and debugging, installation, and maintenance.
•           Sashimi Model
Sashimi is a true modified version of the Waterfall model. The phases are somewhat the same as in the Waterfall Model; only this time the phases are overlapping each other which present many advantages. For example the time won’t be wasted because before Phase I would be completed, Phase II would already be underway. Moreover, since they overlap, so one can return to the previous step if desired.
•           Aorta Lifecycle Model
The difference in this model is that they rely a lot on the feedback which comes from other phases before progressing onto the next.
•           V Waterfall Model
The V Waterfall Model relies on a linear software developmental program which stresses on balanced development more than anything else.


Difference Between SDLC and Waterfall Model

SDLC vs Waterfall Model
software development life cycle model, or SDLC, is a structured approach to the development of software. There are a number of activities done in a sequential order to achieve the end product. Each phase is associated with a deliverable that acts as an input to the subsequent phase of SDLC. Let us take a look at the different phases of the SDLC model:
1. Requirement – This phase is the most important one for stakeholders and managers. These requirements determine the users of the system, their main functionalities, the inputs and outputs of the system. The output of this entire process is a functional specification document that explains the system as a whole.
2. Design – The input to this phase is the functional specification document from the requirement phase. This phase details out the look of the system. The main output from this stage is software design and the decision of hardware and software requirements.
3. Implementation – It is the longest phase of SDLC which implements the design in the form of code. The developers are the main people at work in this phase. In certain SDLC models, the testing and design phase overlap with the implementation phase.
4. Testing – This includes both unit as well as system testing. Unit testing helps to identify bugs in each module whereas system testing checks the system’s functionality as a whole. The purpose of testing is to check whether the code has been able to achieve the required functionality as defined in the requirement phase or not.
Some of the most popular SDLC models are:
* Waterfall Model
* V-Shaped Model
* Incremental Life Cycle Model
* Spiral Model
Waterfall model is one of the most popular SDLC models. It is a classic approach to software development that follows a linear and sequential method to deliver software product. This model has different deliverables from each phase. This model offers the following benefits:
1. It is simple and easy to implement.
2. Since the model follows a linear approach, it becomes easier to manage.
3. Each phase is executed one at a time.
4. This is best utilized for small-sized projects.
With advantages come certain disadvantages. Some of them are discussed below:
1. There is a high-risk factor involved.
2. It is not beneficial for big projects.
3. It cannot be used for projects where requirements can change.
4. It is not suited for projects that are-complex or that employ OOPS concepts.

Summary:
1. SDLC, or Software Development Lifecycle, is used to plan project activities in a
chronological manner.
2. Output from one phase of SDLC acts as input to the next phase. Requirements are converted into design. Design determines the code that needs to be written to
implement it. Testing verifies whether the code satisfies the design and requirement.
3. The main phases of SDLC are: requirement, design, coding, testing, and maintenance.
4. In a waterfall model, one of the most popular SDLC models, each step follows in a sequential manner without overlapping or iterative steps.


Read more: Difference Between SDLC and Waterfall Model | Difference Between | SDLC vs Waterfall Model http://www.differencebetween.net/technology/software-technology/difference-between-sdlc-and-waterfall-model/#ixzz1zT7n6bk5