Maintenance

High quality software helps developers create maintainable software.
Maintenance should be taken into consideration to help software become and stay operational, it involves things like code changes (to eliminate bugs and problems), configuration changes (to control and update software behavior) and environmental changes (operating environment).

There are many reasons why software maintenance is important like the market conditions, client requirements, host modifications and organization changes. For these reasons there are different types of maintenance:

-Corrective Maintenance: Fix problems discovered by end users.
-Adaptive Maintenance: Modify the SW to keep up to date.
-Perfective Maintenance: Keep the SW usable over a long period of time.
-Preventive Maintenance: Update to prevent future problems.

This part of the SDLC is quite costly and can sometimes cost as high as 67% of the whole software process lifecycle. This cost is so high because of many factors like: software life time, undocumented changes, changes that hurt the original software, structure of the program, programming language, external environment.

Maintenance Activities are Categorized into:

Identification & Tracing
Analysis
Design
Implementation
System Testing
Acceptance Testing
Delivery
Maintenance Management

Sources:
What is Software Maintenance
Software Maintenance Overview

Hasta la vista baby

Hey Ken, how you doin’, It’s late over here and this post is kinda overdue but here I am typing. I hope you are having a good day/night when you are reading this because I sure am writing this post from the bottom of my heart. I really like the way you teach your class, the freedom you give and how it really makes you think about the system that is currently implemented in our school.

Honestly what I really love about the class is that, any topic, honestly ANY topic that comes up you can say something about it that lets us learn a bit further. That is something that no other teacher I’ve seen has, true interest and knowledge in topics beyond what the course is supposed to teach us, how you set up calls with people that have been in the industry for years and letting them tell us their experiences is something no other professor has ever done. I truly appreciate everything you do for the Computación community in Tec and hope I can see you around and maybe even in class again. I wish you the best Ken and I truly will never forget this experience, thank you so much.

And yeah you already saw the video and many of my classmates posted it as well BUT HERE IT IS SO YOU CAN WATCH IT AGAIN

 


Verificación y validación de software

Es un conjunto de procesos de comprobación y análisis que aseguran que el software que se desarrolla está acorde a su especificación y cumple las necesidades de los cliente.
Los objetivos de las actividades de verificación y validación son valorar y mejorar la calidad de los productos del trabajo generados durante el desarrollo y modificación del software.

Los atributos de la calidad deben ser la corrección, la perfección, la consistencia, la confiabilidad, la utilidad, la eficacia, el apego a los estándares y la eficacia de los costos totales.

Hay dos tipos de verificación: formal y del ciclo de vida. Esta última consiste en el proceso de determinar el grado de los productos de trabajo de una fase dada del ciclo de desarrollo cumplen con las especificaciones establecidas durante las fases previas. La verificación formal es una rigurosa demostración matemática de la concordancia del código fuente con sus especificaciones.

La verificación y validación implican la valoración de los productos de trabajo para determinar el apego a las especificaciones, incluyen las especificaciones de requisitos, la documentación del diseño, diversos principios generales de estilo, estándares del lenguaje de instrumentación, estándares del proyecto, estándares organizacionales y expectativas del usuario, al igual que las meta especificaciones para los formatos y notaciones utilizadas en la especificación de productos diversos.


La interfaz de software

user-interface

El diseño de interfaz de usuario o ingeniería de la interfaz es el diseño de computadoras, aplicaciones, máquinas, dispositivos de comunicación móvil, aplicaciones de software, y sitios web enfocado en la experiencia de usuario y la interacción.

Normalmente es una actividad multidisciplinar que involucra a varias ramas es decir al diseño y el conocimiento como el diseño gráfico, industrial, web, de software y la ergonomía; y está implicado en un amplio rango de proyectos, desde sistemas para computadoras, vehículos hasta aviones comerciales.

Su objetivo es que las aplicaciones o los objetos sean más atractivos y además, hacer que la interacción con el usuario sea lo más intuitiva posible, conocido como el diseño centrado en el usuario. En este sentido las disciplinas del diseño industrial y gráfico se encargan de que la actividad a desarrollar se comunique y aprenda lo más rápidamente, a través de recursos como la gráfica, los pictogramas, los estereotipos y la simbología, todo sin afectar el funcionamiento técnico eficiente.


Mantaining your software

14724632_1876897182539710_6732196383538323444_n

En ingeniería del software, el mantenimiento de software es la modificación de un producto de software después de la entrega, para corregir errores, mejorar el rendimiento, u otros atributos. El mantenimiento del software es una de las actividades más comunes en la ingeniería de software.

El mantenimiento de software es también una de las fases en el ciclo de vida de desarrollo de sistemas o System Development Life Cycle – un tema que ya vimos en este curso- que se aplica al desarrollo de software. La fase de mantenimiento es la fase que viene después del despliegue (implementación) del software en el campo.

Una percepción común del mantenimiento es que se trata meramente de la corrección de defectos. Sin embargo, un estudio indicó que la mayoría, más del 80%, del esfuerzo de mantenimiento es usado para acciones no correctivas. Esta percepción es perpetuada por usuarios enviando informes de problemas que en realidad son mejoras de funcionalidad al sistema.


Semester Review

Juanca's Blog

software-engineering

  • Software engineering, craft or an engineering discipline?
    Software development and design is part art and part science, it can be understood as a systematic approach to the analysis, design, assessment, implementation, test, maintenance and reengineerig of software, that is, the application of engineering to software. In the Software engineering approach, several models for the software life cycle are defined, and many methodologies for the definition and assessment of the different phases of a life-cycle model
    1

  • History of Software Engineering
    The term Software Engineering became known after a conference in 1968, when the difficulties and pitfalls of designing complex systems were frankly discussed. A search for solutions began. It concentrated on better methodologies and tools. The most prominent were programming languages reflecting the procedural, modular, and then object-oriented styles. Software engineering is intimately tied to their emergence and improvement. Also of significance were efforts of systematizing, even automating program documentation and…

Ver la entrada original 838 palabras más


Semester Review

This is our review of the course with Ken Bauer

Juanca's Blog

software-engineering

  • Software engineering, craft or an engineering discipline?
    Software development and design is part art and part science, it can be understood as a systematic approach to the analysis, design, assessment, implementation, test, maintenance and reengineerig of software, that is, the application of engineering to software. In the Software engineering approach, several models for the software life cycle are defined, and many methodologies for the definition and assessment of the different phases of a life-cycle model
    1

  • History of Software Engineering
    The term Software Engineering became known after a conference in 1968, when the difficulties and pitfalls of designing complex systems were frankly discussed. A search for solutions began. It concentrated on better methodologies and tools. The most prominent were programming languages reflecting the procedural, modular, and then object-oriented styles. Software engineering is intimately tied to their emergence and improvement. Also of significance were efforts of systematizing, even automating program documentation and…

View original post 722 more words


User Stories

User sotries are one of the primary development artifacts for Scrum and Extreme Programming (XP) project teams. A user story is a very high-level definition of a requirement, containing just enough information so that the developers can produce a reasonable estimate of the effort to implement it. This article covers the following topics:

A user story is a tool used in Agile software development to capture a description of a software feature from an end-user perspective. The user storydescribes the type of user, what they want and why. A user story helps to create a simplified description of a requirement.

 

How to create a good user story?

1.-Users Come First

2.-Use Personas to Discover the Right Stories

3.- Create Stories Collaboratively

drgrd

4.-Keep your Stories Simple and Concise

5.-Start with Epics

6.-Refine the Stories until They are Ready

7.-Add Acceptance Criteria

8.-Use Paper Cards

9.-Keep your Stories Visible and Accessible

10.-Don’t Solely Rely on User Storiesrgdrgdf


Software verification and validation

             Verification              Validation
1. Verification is a static practice of verifying documents, design, code and program. 1. Validation is a dynamic mechanism of validating and testing the actual product.
2. It does not involve executing the code. 2. It always involves executing the code.
3. It is human based checking of documents and files. 3. It is computer based execution of program.
4. Verification uses methods like inspections, reviews, walkthroughs, and Desk-checking etc. 4. Validation uses methods like black box (functional)  testing, gray box testing, and white box (structural) testing etc.
5. Verification is to check whether the software conforms to specifications. 5. Validation is to check whether software meets the customer expectations and requirements.
6. It can catch errors that validation cannot catch. It is low level exercise. 6. It can catch errors that verification cannot catch. It is High Level Exercise.
7. Target is requirements specification, application and software architecture, high level, complete design, and database design etc. 7. Target is actual product-a unit, a module, a bent of integrated modules, and effective final product.
8. Verification is done by QA team to ensure that the software is as per the specifications in the SRS document. 8. Validation is carried out with the involvement of testing team.
9. It generally comes first-done before validation. 9. It generally follows afterverification.

 

Advantages of Software Verification :

  1. Verification helps in lowering down the count of the defect in the later stages of development.
  2. Verifying the product at the starting phase of the development will help in understanding the product in a better way.
  3. It reduces the chances of failures in the software application or product.
  4. It helps in building the product as per the customer specifications and needs.