Html/Javascript widget

Tuesday, 12 June 2018

Java Beans - a short definition

JavaBeans are reusable software components for the Java programming language created out of the need to encapsulate a number of objects into a single object termed bean. For an object to be considered a Java Bean it has to be serialisable, have at least one constructor and private attributes accessed with getters and setters. A bean always consists of a zero-argument constructor to allow for a standard instantiation, like an interface. A Java Bean is a Java class representing a component model to enable automated access to its properties and methods, so they can be accessible to another application. A bean also has a managerial role in that it receives and and generate events sent to interacting objects. A bean's settings can also be saved to persistent storage and even be set up by auxiliary software.

Wednesday, 16 May 2018

a happy moment

Just thinking about one of these important milestones in life when you sincerely start to wonder what it is like beyond keeping up with the joneses. A big part of this realisation can ascribed to the entertainment media which is eternally hell bent on filling our minds with powerful imagery and vivid depictions of successful individuals living enticing lives in stunning locations. 
The studiously designed visuals can't help making us think that we are missing out on something that will make our lives complete, something that will suddenly make our lives meaningful. Or relevant. As if our current life is a waste, whatever it is.
It's only with a great many repeated experiences that you see often enough that the media's portrayed reality doesn't align with our first impression as we saw it in these same situations in adverts and movies. If you somehow manage to achieve those lifestyles, let alone maintain them, you come to the sad realisation that this sort of pleasure is very ephemeral, the thrill is over almost before it began, and you are left feeling that you need something more luxurious to attain that elusive level of satisfaction. As if the eternal search for the unicorn is all that matters. 
Once you're old enough you eventually realise the importance of the role that an "ordinary" life has. Understanding the essential role of the ordinary and the simple entails an honest enjoyment of life for what it is. When your mind isn't preoccupied being anxious and displeased with your less-than-glamorous reality, you can start to appreciate and be thankful for everything that you have, and how good health, freedom and friendship really are the best things in life.  

Monday, 14 May 2018

Structured Analysis and Design Technique (SADT)

Structured analysis and design technique (SADT) is a Douglas T. Ross method for describing systems as a hierarchy of functions by using two types of diagrams: activity models and data models. Structured analysis and design technique (SADT) is a notation for systems and diagrams made up of entities, activities and arrows to relate boxes. SADT can be a functional analysis tool of a given process, using varied tiers of details. It can be used both for defining user's IT needs as well as the description of a business process.

The structured analysis and design technique uses a decomposition with the top-down approach, conducted only in the physical domain from an axiomatic design viewpoint.


Monday, 9 April 2018

Requirements Traceability Matrix

A traceability matrix is a document that correlates and traces business, application, security or any other requirements to their implementation, testing or completion, relating between different system components to keep their status up-to-date according to system completion. It captures all requirements proposed by the client or and their traceability in a single document delivered at the conclusion of the life-cycle. It maps and traces user requirement with test cases. The main purpose of Requirement Traceability Matrix is to make sure that all test cases are covered so that no feature is left out during testing.

The Requirement Traceability Matrix – Parameters include

Requirement ID
Requirement Type and Description
Trace to design specification
Unit test cases
Integration test cases
System test cases
User acceptance test cases
Trace to test script

James Martin's Rapid Application Development

James Martin's Rapid-application development (RAD) is an iterative adaptive approach to rapid development. According to RAD,development adaptive process > planning. Prototypes are often used in addition to or sometimes even in place of design specifications.

RAD is especially well suited for companies good at Agile and that like components or pre-existing classes (API's).

Phases -

Requirements planning phase – Users, managers, and IT staff members discuss and agree on business needs, project scope, constraints, and system requirements.

User design phase – users interact with systems analysts and develop models and prototypes that represent all system processes, inputs, and outputs, typically with a combination of Joint Application Development (JAD) techniques and CASE tools to translate user needs into working models.

Construction phase program and application development, only users can still suggest changes.Unit-integration and system testing.

Cutover phase – data conversion, testing, changeover to the new system and user training are the staples of the last stage of james MArtin's RAD.

Modelling and construction may occur in parallel. The former typically lasts from 60-90 days, while the latter may make use of component reuse, automatic code generation and testing.

Joint Application Design

Joint application design (JAD) is a inherent process of dynamic systems development method (DSDM) for gathering requirements. It is basically a workshop where users and IT professionals meet to define the business requirements for the proposed system. Through JAD workshops the knowledge workers and IT specialists are able to resolve any differences between themselves regarding the new system. The premise is that miscommunications can carry far more serious repercussions if not addressed until later on in the process. In the end, this process will result in a new information system that is feasible and appealing to both the designers and end users.

True to its Agile nature, JAD is most effective in small, clearly focused projects and less effective in large complex projects.

Prototyping - evolutionary process

A software process that has been gaining prominence since the late 80's, software prototyping is a process for developing software that improves upon incomplete versions of the target-program.

Prototyping enables steady feedback from the users early in the process, in addition to being a reliable source of accuracy during the first development stages to determine the viability of deadlines and milestones. It's mostly useful for undefined requirements for projects that need to be executed in a hurry and the application domain isn't very well known at the specification stage.

A prototype allows users to evaluate developers' proposals for the design of the eventual product by actually trying them out, rather than relying on requirements-based descriptions. Interaction design in particular makes heavy use of prototyping with this goal.

The process of prototyping involves the following stages:

1- Identify basic requirements, including input and output information. Non-functional requirements can be set aside for now.

2- Develop initial prototype, with emphasis to user interfaces.

3- Review. The user goes over the prototype and gives feedback.

4- Revise and enhance the prototype. Improvement through feedback. Negotiation about what is within the scope of the contract/product may be necessary. The last 2 steps are repeated for approved changes

Types of prototyping

 Throwaway prototyping or close-ended prototyping is a model will be eventually be discarded rather than worked on to become the final product. After basic requirements gathering is done a simple working model is made to showcase the user's requirements in order for him to form an idea of what the working software will look like. It is also called rapid prototyping. It may include storyboards, animatics or drawings are also non-functional designs that will show how the system will look. As it is, a throwaway prototype is mostly used to validate requirements and obtain new ones.

Evolutionary or breadboarding prototyping consists of constantly refining a prototype until it becomes teh final version. The evolutionary prototype forms the core of the target-system, with improvements and further requirements being built on it.