Open Source Software

Open source software is software with source code that anyone can inspect, modify, and enhance. “Source code” is the part of software that most computer users don’t ever see; it’s the code computer programmers can manipulate to change how a piece of software—a “program” or “application”—works. Programmers who have access to a computer program’s source […]

User Interface Design

User Interface (UI) Design focuses on anticipating what users might need to do and ensuring that the interface has elements that are easy to access, understand, and use to facilitate those actions. UI brings together concepts from interaction design, visual design, and information architecture. Everything stems from knowing your users, including understanding their goals, skills, […]

Design Pattern

Son las mejores herramientas usadas por desarrolladores que usan el concepto de programación orientada a objetos. Estas son soluciones para los problemas más comunes durante el desarrollo de software.  Patrones de diseño tienen dos usos en la ingeniería de software. Es necesario usarlos porque aunque tengamos un programa innovador o inusual, de seguro tendrá algún problema durante su implementación. Y si tenemos

Es una plataforma común para desarrolladores, nos dan un estándar de terminología y son para escenarios específicos. Usar un objeto para todos los desarrolladores están familiarizados con un diseño similar, y cuando este sea utilizado se que se decir a otros desarrolladores que sigue este patrón de diseño.

Los patrones de diseño han dedicado mucho en mejorar el patrón y este sea útil ante los problemas durante el desarrollo de software.

Los tipos de patrones de diseño son:

Creational Patterns

Este diseño ayuda a mejorar la manera de crear objetos, mientras se esconde la lógica de creación. Nos da un programa más flexible y así es más fácil saber qué objetos necesitamos crear.

Structural Patterns

Este diseño se enfoca en la clase y la composición de los objetos. Se utiliza la herencia para saber la composición de  las interfaces, así como las maneras en las que se compondrán los objetos y así obtener nuevas funcionalidades.

Behavioral Patterns

Se enfoca más en la comunicación de los objetos.

J2EE Patterns

Estos patrones son identificados por Sun Java Center.

 

Referencias:

Tutorials point.

Photo by Flickr

 

Chequen este vídeo de Creational Patterns


Software requirements elicitation and specification

slide_2

The software requirements are description of features and functionalities of the target system. Requirements convey the expectations of users from the software product. The requirements can be obvious or hidden, known or unknown, expected or unexpected from client’s point of view.

Requirement

The process to gather the software requirements from client, analyze and document them is known as requirement engineering. The goal of requirement engineering is to develop and maintain sophisticated and descriptive ‘System Requirements Specification’ document.

Requirement Engineering Process

  • easibility Study
  • Requirement Gathering
  • Software Requirement Specification
  • Software Requirement Validation

Feasibility study

When the client approaches the organization for getting the desired product developed, it comes up with rough idea about what all functions the software must perform and which all features are expected from the software.

Requirement Gathering

If the feasibility report is positive towards undertaking the project, next phase starts with gathering requirements from the user. Analysts and engineers communicate with the client and end-users to know their ideas on what the software should provide and which features they want the software to include.

Software Requirement Specification

SRS is a document created by system analyst after the requirements are collected from various stakeholders. SRS defines how the intended software will interact with hardware, external interfaces, speed of operation, response time of system, portability of software across various platforms, maintainability, speed of recovery after crashing, Security, Quality, Limitations etc.

Software Requirement Validation

After requirement specifications are developed, the requirements mentioned in this document are validated. User might ask for illegal, impractical solution or experts may interpret the requirements incorrectly. This results in huge increase in cost if not nipped in the bud. Requirements can be checked against following conditions –

Software requirements elicitation and specification

slide_2

The software requirements are description of features and functionalities of the target system. Requirements convey the expectations of users from the software product. The requirements can be obvious or hidden, known or unknown, expected or unexpected from client’s point of view.

Requirement

The process to gather the software requirements from client, analyze and document them is known as requirement engineering. The goal of requirement engineering is to develop and maintain sophisticated and descriptive ‘System Requirements Specification’ document.

Requirement Engineering Process

  • easibility Study
  • Requirement Gathering
  • Software Requirement Specification
  • Software Requirement Validation

Feasibility study

When the client approaches the organization for getting the desired product developed, it comes up with rough idea about what all functions the software must perform and which all features are expected from the software.

Requirement Gathering

If the feasibility report is positive towards undertaking the project, next phase starts with gathering requirements from the user. Analysts and engineers communicate with the client and end-users to know their ideas on what the software should provide and which features they want the software to include.

Software Requirement Specification

SRS is a document created by system analyst after the requirements are collected from various stakeholders. SRS defines how the intended software will interact with hardware, external interfaces, speed of operation, response time of system, portability of software across various platforms, maintainability, speed of recovery after crashing, Security, Quality, Limitations etc.

Software Requirement Validation

After requirement specifications are developed, the requirements mentioned in this document are validated. User might ask for illegal, impractical solution or experts may interpret the requirements incorrectly. This results in huge increase in cost if not nipped in the bud. Requirements can be checked against following conditions –

Software architecture

La arquitectura de un sistema describe los componentes principales, sus relaciones (estructuras) y cómo interactúan entre ellos. Estos se representa en un número de componentes que deben cumplir ciertas funciones.

Esta nos da una un abstracto para gestionar la complejidad del sistema, establecer una comunicación y coordinación entre los componentes de éste. Se define una solución estructurada para conocer los requerimientos técnicos y operacionales.

Existen cuatro tipos de arquitectura:

  • Arquitectura de negocios
  • Arquitectura de aplicaciones
  • Arquitectura de información
  • Arquitectura de tecnología

El proceso de diseño de la arquitectura:

  • Entender el problema: es el paso más importante porque según este se define el diseño del sistema.
  • Identificar los elementos y sus relaciones.
  • Evaluar el diseño de arquitectura.
  • Transformar el diseño de arquitectura.

Software requirements

 

The software requirements get a deal with the needs of the stakeholders, the purpose of those is dealing the things that will be solved with the software.

 

In the requirements engineering, requirements elicitation is asking the requirements of the software and what happens if this or if that; and with those get answers. Following a good analysis of the requirements.  For this reason, we need the stakeholders for getting responses and get a good job.

 

“discovering, extracting and learning needs of stakeholders, it includes a domain analysis that helps to identify problems and deficiencies in existing systems opportunities and general objectives. Scenarios are part of this activity ” (Christian R. Prause).

 

The specification of requirements is the description of the behavior of the software, this includes the way that this will develop, and  have the interactions that the user will have, and also the functional and nonfunctional requirements.  

 

“Requirements expressed in a more precise way, sometimes as a documentation of the external behavior of the system” (Christian R. Prause).

 


Open source software

open-source-softwareThe term Open Source refers to something people can modify and share because its design is publicly accessible. Originated in the context of software development to designate a specific approach to creating computer programs. Today,  Open source projects, products, or initiatives embrace and celebrate principles of open exchange, collaborative participation, rapid prototyping, transparency, meritocracy, and community-oriented development.

Open source software is software with source code that anyone can inspect, modify, and enhance. Source code is the part of software that most computer users don’t ever see; it’s the code computer programmers can manipulate to change how a piece of software a program or  application works.

A different between with open source software and other types of software is that some software has source code that only the person, team, or organization who created it and maintains exclusive control over it can modify.

People prefer using open source software because they have control, Training, Security, Stability.

Advantages and disadvantages

Open source software is usually easier to obtain than proprietary software, often resulting in increased usage. Additionally, the availability of an open source implementation of a standard can increase adoption of that standard It has also helped to build developer loyalty as developers feel empowered and have a sense of ownership of the end product.

Moreover, lower costs of marketing and logistical services are needed for OSS. OSS also helps companies keep abreast of technology developments. It is a good tool to promote a company’s image, including its commercial products. The OSS development approach has helped produce reliable, high quality software quickly and inexpensively.

Open source development offers the potential for a more flexible technology and quicker innovation. It is said to be more reliable since it typically has thousands of independent programmers testing and fixing bugs of the software. It

Continue reading "Open source software"

Software Design

Software design is the process of defining software methods, functions, objects, and the overall structure and interaction of your code so that the resulting functionality will satisfy your users requirements. There are many different ways of designing software, almost all of which involve coming up with an initial design and refining it as necessary. Different […]