Software implementation and Software maintenance



    Software implementation and Software maintenance

    Software implementation can represent a very complex task for big companies. The incorporation of a new tool may take several phases; companies need to consider the costs in money and time for the change to represent gains on their finance. The changes are so complex that some companies operate over legacy software that was released decades ago and offer no support.
    "Implementation is the carrying out, execution, or practice of a plan, a method, or any design, idea, model, specification, standard or policy for doing something. It's the action that must follow any preliminary thinking in order for something to actually happen"(Rouse, 2014).

    Software implementation surrounds all the post-sale processes involved in something operating properly in its environment. It includes analyzing requirements, installation, configuration, customization, running, testing, systems integrations, user training, delivery and making necessary changes. For an implementation process to be successful, many tasks between different departments need to be accomplished in sequence. 



    Software maintenance stands for all the modifications and updates done after the delivery of software product. They are different types of maintenance because they wary based on it's nature. It may be a routine maintenance, a bug discovered by a user and other different natures.

    Types:
    1. Corrective: Modifications and updates done in order to correct or fix problems, discovered by a user or by user error reports.
    2. Adaptive: Applied to keep the software product up-to date and tuned to the ever changing world of technology and business environment.
    3. Perfective: Done in order to keep the software usable over long period of time. It includes new features, new user requirements for refining the software and improve its reliability and performance.
    4. Preventive: Like the name says it's used to prevent future problems of the software.




    Sources & Links:

      TC1019 Course Review

      TC1019 Review

      Decidi hacer este post en español para explayarme más y dar a entender mejor mi punto de vista sobre el curso de Fundamentals of Software Engineering que tome con el profesor Ken Bauer.

      Temas:
      En el curso en total son 20 temas que vimos a lo largo del semestre, mas o menos por que también nos dejaba leer algunos artículos que tenían mucha información muy interesante y sentías como si fuera otro mastery topic. Los temas son muy variados, lo cual es muy importante por que si te enfado uno o no te intereso tanto ese tema puedes investigar otro tema de los mastery's, ya que no tienen un orden particular. En lo personal los temas con los que más di click o me interesaron bastante fueron open source software, XP, software design y software architecture; creo que se nota por que fueron los blogs más enfocados en mi punto de vista y no tanto investigación que encontré.

      Abolish Grading:
      Este semestre Ken implemento abolish grading, que es un modo de evaluarte a ti mismo dependiendo de tu esfuerzo en ese parcial. Me gusto mucho por que si tu quieres obtener cierta calificación ya sabes lo que tienes que hacer para alcanzar esa calificación, no hay sorpresas al final del parcial. Otra ventaja es que los profesores también pueden tener un descanso de tratar con alumnos que siempre se quejan de su calificación y reclaman que ellos merecían más calificación por que cumplieron con todo, y no es el caso con abolish grading por que tu sabes lo que va a venir en el examen, tienes la rubrica que se va a evaluar en ese parcial y no hay excusas a la hora de entregar calificaciones.

      Clase:
      En el salón de clases el profesor es muy flexible, hablamos sobre el tema asignado a ese día y si tienes alguna duda sobre cualquier cosa siempre pues hacer cita con él. 

      User interface design and software verification and validation

      User interface design and software verification and validation

      User interface design is the design of user interfaces for machines and software with the focus on maximizing usability and the user experience. 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 designvisual design, and information architecture.

      They are 19 principles of User Interface Design:
      1. Clarity is job 
      2. Interfaces exist to enable interaction
      3. Conserve attention at all costs
      4. Keep users in control
      5. Direct manipulation is best
      6. One primary action per screen
      7. Keep secondary actions secondary
      8. Provide a natural next step
      9. Appearance follows behavior
      10. Consistency matters
      11. Strong visual hierarchies work best
      12. Smart organization reduces cognitive load
      13. Highlight, don't determine, with color
      14. Progressive disclosure
      15. Help people inline
      16. A crucial moment: the zero state
      17. Great design is invisible
      18. Build on other design disciplines
      19. Interfaces exist to be used
      Software verification and validation it makes sure that the product is designed to deliver all functionality to the customer.







      User interface design and software verification and validation

      User interface design and software verification and validation

      User interface design is the design of user interfaces for machines and software with the focus on maximizing usability and the user experience. 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 designvisual design, and information architecture.

      They are 19 principles of User Interface Design:
      1. Clarity is job 
      2. Interfaces exist to enable interaction
      3. Conserve attention at all costs
      4. Keep users in control
      5. Direct manipulation is best
      6. One primary action per screen
      7. Keep secondary actions secondary
      8. Provide a natural next step
      9. Appearance follows behavior
      10. Consistency matters
      11. Strong visual hierarchies work best
      12. Smart organization reduces cognitive load
      13. Highlight, don't determine, with color
      14. Progressive disclosure
      15. Help people inline
      16. A crucial moment: the zero state
      17. Great design is invisible
      18. Build on other design disciplines
      19. Interfaces exist to be used
      Software verification and validation it makes sure that the product is designed to deliver all functionality to the customer.







      TC1019 Course Review

      TC1019 Review

      Decidi hacer este post en español para explayarme más y dar a entender mejor mi punto de vista sobre el curso de Fundamentals of Software Engineering que tome con el profesor Ken Bauer.

      Temas:
      En el curso en total son 20 temas que vimos a lo largo del semestre, mas o menos por que también nos dejaba leer algunos artículos que tenían mucha información muy interesante y sentías como si fuera otro mastery topic. Los temas son muy variados, lo cual es muy importante por que si te enfado uno o no te intereso tanto ese tema puedes investigar otro tema de los mastery's, ya que no tienen un orden particular. En lo personal los temas con los que más di click o me interesaron bastante fueron open source software, XP, software design y software architecture; creo que se nota por que fueron los blogs más enfocados en mi punto de vista y no tanto investigación que encontré.

      Abolish Grading:
      Este semestre Ken implemento abolish grading, que es un modo de evaluarte a ti mismo dependiendo de tu esfuerzo en ese parcial. Me gusto mucho por que si tu quieres obtener cierta calificación ya sabes lo que tienes que hacer para alcanzar esa calificación, no hay sorpresas al final del parcial. Otra ventaja es que los profesores también pueden tener un descanso de tratar con alumnos que siempre se quejan de su calificación y reclaman que ellos merecían más calificación por que cumplieron con todo, y no es el caso con abolish grading por que tu sabes lo que va a venir en el examen, tienes la rubrica que se va a evaluar en ese parcial y no hay excusas a la hora de entregar calificaciones.

      Clase:
      En el salón de clases el profesor es muy flexible, hablamos sobre el tema asignado a ese día y si tienes alguna duda sobre cualquier cosa siempre pues hacer cita con él. 

      Software implementation and Software maintenance



        Software implementation and Software maintenance

        Software implementation can represent a very complex task for big companies. The incorporation of a new tool may take several phases; companies need to consider the costs in money and time for the change to represent gains on their finance. The changes are so complex that some companies operate over legacy software that was released decades ago and offer no support.
        "Implementation is the carrying out, execution, or practice of a plan, a method, or any design, idea, model, specification, standard or policy for doing something. It's the action that must follow any preliminary thinking in order for something to actually happen"(Rouse, 2014).

        Software implementation surrounds all the post-sale processes involved in something operating properly in its environment. It includes analyzing requirements, installation, configuration, customization, running, testing, systems integrations, user training, delivery and making necessary changes. For an implementation process to be successful, many tasks between different departments need to be accomplished in sequence. 



        Software maintenance stands for all the modifications and updates done after the delivery of software product. They are different types of maintenance because they wary based on it's nature. It may be a routine maintenance, a bug discovered by a user and other different natures.

        Types:
        1. Corrective: Modifications and updates done in order to correct or fix problems, discovered by a user or by user error reports.
        2. Adaptive: Applied to keep the software product up-to date and tuned to the ever changing world of technology and business environment.
        3. Perfective: Done in order to keep the software usable over long period of time. It includes new features, new user requirements for refining the software and improve its reliability and performance.
        4. Preventive: Like the name says it's used to prevent future problems of the software.




        Sources & Links:

          Floreth's Blog 2016-10-28 19:13:00

          The waterfall method

          Waterfall is a linear approach to software development, this means that as each of the eight stages (conception, initiation, analysis, design, construction, testing, implementation, and maintenance) are completed, the developers move on to the next step (Base 36, 2016).

          Waterfall vs Agile:


          Benefits of the waterfall method:
          • Once a step has been completed, developers can’t go back to a previous stage and make changes and get things done a lot faster.
          • It relies heavily on initial requirements. However, if these requirements are faulty in any manner, the project is doomed.
          • If a requirement error is found, or a change needs to be made, the project has to start from the beginning with all new code.
          • The whole product is only tested at the end. If bugs are written early, but discovered late, their existence may have affected how other code was written.
          • Additionally, the temptation to delay thorough testing is often very high, as these delays allow short-term wins of staying on-schedule.
          • The plan doesn’t take into account a client’s evolving needs. If the client realizes that they need more than they initially thought, and demand change, the project will come in late and impact budget.




          Sources & Links:


          Floreth's Blog 2016-10-28 19:13:00

          The waterfall method

          Waterfall is a linear approach to software development, this means that as each of the eight stages (conception, initiation, analysis, design, construction, testing, implementation, and maintenance) are completed, the developers move on to the next step (Base 36, 2016).

          Waterfall vs Agile:


          Benefits of the waterfall method:
          • Once a step has been completed, developers can’t go back to a previous stage and make changes and get things done a lot faster.
          • It relies heavily on initial requirements. However, if these requirements are faulty in any manner, the project is doomed.
          • If a requirement error is found, or a change needs to be made, the project has to start from the beginning with all new code.
          • The whole product is only tested at the end. If bugs are written early, but discovered late, their existence may have affected how other code was written.
          • Additionally, the temptation to delay thorough testing is often very high, as these delays allow short-term wins of staying on-schedule.
          • The plan doesn’t take into account a client’s evolving needs. If the client realizes that they need more than they initially thought, and demand change, the project will come in late and impact budget.




          Sources & Links:


          Floreth's Blog 2016-10-28 19:06:00

          API 101

          Application program interface (API) is a set of routinesprotocols, and tools for building software applications. An API specifies how software components should interact and APIs are used when programming graphical user interface (GUI) components. A good API makes it easier to develop a program by providing all the building blocks. A programmer then puts the blocks together" (webopedia, 2016).




          Application Programming Interfaces allows applications to talk to other applications. For example:
          1.  Mobile devices all use APIs to connect our mobile app to Facebook.
          2. YouTube users consume videos using the universal embeddable video player (like Vimeo) allowing Youtube videos to be embedded on any website around the web, all driven by APIs.
          Sources & Links:

          Floreth's Blog 2016-10-28 19:06:00

          API 101

          Application program interface (API) is a set of routinesprotocols, and tools for building software applications. An API specifies how software components should interact and APIs are used when programming graphical user interface (GUI) components. A good API makes it easier to develop a program by providing all the building blocks. A programmer then puts the blocks together" (webopedia, 2016).




          Application Programming Interfaces allows applications to talk to other applications. For example:
          1.  Mobile devices all use APIs to connect our mobile app to Facebook.
          2. YouTube users consume videos using the universal embeddable video player (like Vimeo) allowing Youtube videos to be embedded on any website around the web, all driven by APIs.
          Sources & Links: