Floreth's Blog 2016-10-28 18:26:00


Software requirements elicitation and specification

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.  

Sources & Links:

Floreth's Blog 2016-10-28 18:26:00


Software requirements elicitation and specification

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.  

Sources & Links:

Floreth's Blog 2016-10-28 18:15:00



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 systems 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.


Sources & Links:
https://www.techopedia.com/definition/24596/software-architecture
https://msdn.microsoft.com/en-us/library/ee658098.aspx

Floreth's Blog 2016-10-28 18:15:00



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 systems 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.


Sources & Links:
https://www.techopedia.com/definition/24596/software-architecture
https://msdn.microsoft.com/en-us/library/ee658098.aspx

Floreth's Blog 2016-10-26 16:08:00


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:
  1. They provide a standard terminology and are specific to particular scenario.
  2. 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 can be classified in three categories: 
  1. Creational: you can create objects while hiding the creation logic.
  2. Structural: used to compose interfaces and define ways to compose objects to obtain new functionalities.
  3. Behavioral patterns: worried with communication between objects.

Sources & Links:

Floreth's Blog 2016-10-26 16:08:00


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:
  1. They provide a standard terminology and are specific to particular scenario.
  2. 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 can be classified in three categories: 
  1. Creational: you can create objects while hiding the creation logic.
  2. Structural: used to compose interfaces and define ways to compose objects to obtain new functionalities.
  3. Behavioral patterns: worried with communication between objects.

Sources & Links:

Floreth's Blog 2016-10-25 09:50:00

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:
  1. Writing code that isn't needed: It's not about whether you're going to need it in the future, it's about good design.
  2. Not making the code easy to change: Also called "Rigid design". They're two ways to accomplish this: the first one is the failure to understand that the requirements will change and number two writing code without enough design.
  3. Being too generic: AKA Over engineering. It's a flaw that senior developers fall into, too much effort for too little value.
Videos about the three flaws explained by Max Kanat-Alexander the author of Code Simplicity: The Fundamentals of Software.

Part 1:

Part 2, 3 and 4:


Sources & Links:

Floreth's Blog 2016-10-25 09:50:00

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:
  1. Writing code that isn't needed: It's not about whether you're going to need it in the future, it's about good design.
  2. Not making the code easy to change: Also called "Rigid design". They're two ways to accomplish this: the first one is the failure to understand that the requirements will change and number two writing code without enough design.
  3. Being too generic: AKA Over engineering. It's a flaw that senior developers fall into, too much effort for too little value.
Videos about the three flaws explained by Max Kanat-Alexander the author of Code Simplicity: The Fundamentals of Software.

Part 1:

Part 2, 3 and 4:


Sources & Links:

Floreth's Blog 2016-10-18 09:30:00

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 when using other versions of software.
    • OSS it's considered to important among  for long-term projects.
FAQ: So when a software is open source it just means that it's for free, right?
Not exactly, it's a common mistake. A programmer CAN charge for their OS software or contribution in a program, but some programmers believe that by charging users with software support and services is more lucrative than selling their software and this way open source software remains free of charge.

In conclusion, it's interesting how the principles and values of open source software is not only applied in the world of software but it's also applied in the outside world away from technology. 
"Open source as not only a way to develop and license computer software, but also an 
attitude" that attitude expresses a will to share, collaborating in transparent ways and embracing failure as a manner of improving and encouraging everyone to do the same.

Sources & Links:https://opensource.com/resources/what-open-sourcehttp://searchenterpriselinux.techtarget.com/definition/open-source-software
http://www.howtogeek.com/129967/htg-explains-what-is-open-source-software-and-why-you-should-care/
GuardarGuardar

Floreth's Blog 2016-10-18 09:30:00

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 when using other versions of software.
    • OSS it's considered to important among  for long-term projects.
FAQ: So when a software is open source it just means that it's for free, right?
Not exactly, it's a common mistake. A programmer CAN charge for their OS software or contribution in a program, but some programmers believe that by charging users with software support and services is more lucrative than selling their software and this way open source software remains free of charge.

In conclusion, it's interesting how the principles and values of open source software is not only applied in the world of software but it's also applied in the outside world away from technology. 
"Open source as not only a way to develop and license computer software, but also an 
attitude" that attitude expresses a will to share, collaborating in transparent ways and embracing failure as a manner of improving and encouraging everyone to do the same.

Sources & Links:https://opensource.com/resources/what-open-sourcehttp://searchenterpriselinux.techtarget.com/definition/open-source-software
http://www.howtogeek.com/129967/htg-explains-what-is-open-source-software-and-why-you-should-care/
GuardarGuardar