Entradas

Mostrando las entradas de 2016

User interface design and software verification and validation

Imagen
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 design ,  visual design , and  information architecture . They are 19 principles of  User Interface Design: Clarity is job  Interfaces exist to enable interaction Conserve attention at all costs Keep users in control Direct manipulation is best One primary action per screen Keep secondary actions secondary Provide a natural next step Appearance follows behavior Consistency matters Strong visual hierarchies work best Smart organization reduces cognitive load Highlight, don't determine, with color Progressive disclosure Help people

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

Software implementation and Software maintenance

Imagen
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
Imagen
The waterfall method Waterfall  is a linear approach to software development, t his 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
Imagen
API 101 A pplication  p rogram  i nterface  ( API ) is a set of  routines ,  protocols , 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:  M obile devices all use APIs to connect our mobile app to Facebook. 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: http://www.webopedia.com/TERM/A/API.html http://rightleftcommunication.com/wp-content/uploads/2015/05/api-integration-service-5.png
Imagen
Software testing – what kinds of testing? "Software testing is a process of executing a program or application with the intent of finding the  software bugs ". In other words it can also be called as a  process of validating and verifying  that a software program or application or product: Meets the business and technical requirements that guided it’s design and development Works as expected Can be implemented with the same characteristic. Why is it necessary ? is necessary because we can make mistakes that could cause the company a lot of money or completely crash our software and affect other people using it. We need to check  everything we make because things can always go wrong. Other important reasons we need software testing: It points out the flaws in the software that were made during the development phases. It ensures the customer’s reliability and their satisfaction with the program. It ensures the quality of the product delivered to t

Software requirements elicitation and specification Functional and non functional requirements

Imagen
Software requirements elicitation and specification Functional and non functional requirements Requirements Elicitation is the process to find out the requirements for an intended software system by communicating with client, end users, system users and others who have a stake in the software system development. Requirement Elicitation Process: Why is requirement elicitation necessary? Knowing what problems to be solved and recognizing system boundaries. Identifying who are the stakeholders. Recognizing the goal of system is the target to be achieved. Software Requirement Specification is a document created by system analyst after the requirements are collected from various stakeholders. Defines how the intended software will interact with hardware, external interfaces, speed of operation.   The functional requirement is  describing the behavior of the system  as it relates to the system's functionality. F unctional requirements are the mai
Imagen
What is software architecture?   " Software architecture is the defining and structuring of a solution that meets technical and operational requirements. Software architecture optimizes attributes involving a series of decisions, such as security, performance and manageability. These decisions ultimately impact application quality, maintenance, performance and overall success " (Technopedia, 2016). ¿Why is it important?  Because software must be built on a solid foundation. Failing to consider key scenarios, failing to design for common problems, or failing to appreciate the long term consequences of key decisions can put your application at risk. As explained by the image above s ystems should be designed with consideration for the user, the system, and the business goals.   Architecture focuses on how the major elements and components within an application are used by, or interact with, other major elements and components within the application.
Software design patterns "A  design pattern  is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn't a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations"(Source making, 2016). The concept of software design originated in 1994 with the Gang of four (GOF)  which is a group of authors:  Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, who wrote a book called  Design Patterns - Elements of Reusable Object-Oriented Software which originated the concept. What are the uses of design patterns? They are two main uses: They provide a standard terminology and are specific to particular scenario. Learning these patterns helps unexperienced developers to learn software design in an easy and faster way. What are the types of design patterns? There are 23 design patterns which c
Imagen
What is software design? Moraru, S. (2016).  Question the software design – Part 5 – Big project   [Ilustración]. Recuperado de  http://mozaicworks.com/blog/question-software-design-part-5-big-projects/ "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" (UCAR, 2016). So software design is a break down of the architecture of your program, which should include databases, frameworks and hardware that your program will use or interact with. You should also include API's that your code has or that your code calls, because once it's used it is very difficult to change it without breaking other people's code. They're actual flaws that programmers make when they're trying to design software: Writing code that isn't needed: It's not about whether you're going to need it in th
Imagen
Open Source Software "Open source software is software with source code that anyone can inspect, modify, and enhance" (Open source, 2016). So what exactly is source code, which is the key word to understand this definition. Source code is the part of software that computer users don't see, but it's the piece of code that programmers can control how a program works. To sum it up: OSS (open source software) alludes to software that is manipulated and distributed through communal collaboration, to make sure that in the future it'll still be an open collaboration. Why should OSS matter to users and not only programmers?, because OSS  licenses give users freedoms they would not otherwise have. Benefits : A self-evident advantage of OSS is it can be had for free. OSS is also more flexible, in the way that you can modify the program to fit your user needs and expectations. For example changing the interface of an operating system to fit your convention whe
Imagen
UML diagram UML stands for Unified Modeling Language. UML is a way of visualizing a software program using a collection of diagrams.  Today, UML is accepted by the  Object Management Group (OMG)  as the standard for modeling software development. Types of UML diagrams The current UML standards call for 13 different types of diagrams: class, activity, object, use case, sequence, package, state, component, communication, composite structure, interaction overview, timing, and deployment. These diagrams are organized into two distinct groups: structural diagrams and behavioral or interaction diagrams. Structural UML diagrams Class diagram Package diagram Object diagram Component diagram Composite structure diagram Deployment diagram Behavioral UML diagrams Activity diagram Sequence diagram Use case diagram State diagram Communication diagram Interaction overview diagram Timing diagram Th most used and important UML diagrams are (: Sequence Diagram Seque
Imagen
SCM Software Configuration Management What? SCM is a software engineering discipline consisting of standard processes and techniques often used by organizations to manage the changes introduced to its software products. SCM helps to eliminate the confusion often caused by miscommunication among team members. The SCM system controls the basic components such as software objects, program code, test data, test output, design documents, and user manuals. Who? The Software Engineering Institute (SEI) advocated a standard definition for CM oriented to software, broadening the definition of the Institute of Electrical and Electronics Engineers (IEEE) and the guidelines of the International Organization for Standardization (ISO). Why? Is software engineering practices associated with software configuration management offer a number of opportunities to address requirements found International  Standard, ISO 9001. From management perspective, the principles and practices of  
Agile software development  After reading tons of definitions of what exactly is Agile, i think i finally came up with a simple and easy to comprehend definition: Agile  development is a different way of managing IT development teams and projects, this  movement seeks alternatives to traditional project management.  Agile methodologies are an alternative to waterfall, or traditional sequential development. Agile started of with the The use of the word agile in this context derives from the  agile manifesto . This declaration was formed because people were unsatisfied with the  traditional  approach   to managing software development projects. The agile manifesto describes 4 important values : Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan Ever since then, the use of methods that support these values has become increasingly p
Imagen
Software lifecycle: The SCLC is a series of steps or phases that are followed to create a software project. It is a detailed process that helps you define, develop, maintain and improve that precise pice of software. The steps may change according to the project or the organizations but i'll show the basic SCLD. The main advantages of using the SCLD is that bye using it you can create an effective, cost-efficient and high quality program. P lanning helps to look for the quality assurance requirements and identification of the risks associated with the project. It's main goal is to  define the various technical approaches that can be followed to implement the project successfully with minimum risks. The Analysis is performed with i nputs from the customer, the sales department, market surveys and domain experts in the industry. This information is then used to plan the basic project approach and to conduct product feasibility study in the economical, operational,