A little review

2253928481_831ac1b69d_z

4

Hi folks!!!

Well, this is a little post, with a little review of #TC1019, in general about Fundamentals of Software Engineering. At the end I share a video link of my talked review.

Commonly, we think that SE is a science of alone people, we think Eoftware borns in a dark room with only one people and only at this decade we are starting to see that Engineers are funny, extrovert and they can develop whatever social habilities as other people.

Well, an important thing not even in SE, but in life is to learn to be social, to use Technology and the tools you have to share and use whatever people shares, the smart way.

Please notice that auto-study is not like memorizing things but deciding what you want to learn to your LIFE.

This is a general blog about Software, and I want to Thank Professor Kenneth William Bauer, for his knowledge, and more important for exploring different ways of teach, learning is always a process different to each student, not different to each assignment.

Thank you very much.

 

video: https://youtu.be/1FaF3Jh72aw


Course Review

This is the first time I take a course with Ken, I have to say that I really like this kind of teaching. We as students are able to choose what we want to know, how much do me want to know and when we want to learn it. And I think that learning should be like that, something enjoyable and not painful.

I studied eight years in a Montessori school, the method there was kind of the same as Ken’s Flipped Class method so I’m used to it. But I don’t think this is the right method for most of the people, especially because the other courses we’re taking are really demanding and not flexible, therefore time consuming.This is why some of us tend to put off all the assignments and activities.

I can say that I’ve learned a lot and I really liked the course and I feel like I complemented it with Ken’s Semanai course that I also took. I think this is the right way to learn and school should be like this.

But I didn’t like everything about it, I don’t feel like using social media, should be evaluated as part of our grades. I understand that it’s a powerful resource but I think is not fair. There are some people who is really introverted and find it hard to tweet or simply people that don’t have any questions or prefer to directly ask a classmate instead of tweeting his question. I like more being and learning alone, and it’s part of my personality but others’ opinion may differ from mine and that’s ok.

All I have left to say is thanks Ken I learned a lot.


User Interface Design

User Interfaces, or UIs, are what the user utilizes to interact with a piece of software, it often is graphical and displayed in a screen, but it can also be hardware, like a controller. They are the most important part of the software for end users.

For a UI to be useful and likeable by the user or customer, it must be easy to use, must attract the attention, easy and intuitive to use, consistent and responsive. There are two main user interface categories: Command-line interface and graphical interfaces.

Command-line interface (CLI)

It is the most basic interface and consists only of text characters on lines. The first computers used CLIs to interact not particularly for the ease-of-use, but for the minimal resources consumed by it and the simpleness that it has. The main input method for the CLI is the keyboard.
Advanced users often prefer command lines to execute some tasks, as a graphical interface would be too bulky and impractical.
Embedded and remote systems often use CLIs because of the low data rates that they produce and the fact that they can be channeled through a variety of protocols, from serial to over-the-internet SSH connections.

Source
Graphical User Interface

GUIs are what most common users today know to interact with a computer, they are graphical frameworks to interact with a program often in more simple and intuitive ways than CLIs, the disadvantage of graphical interfaces is that they consume more resources, and often require a graphics processor to generate what is on screen. The main input methods for GUIs are mouse and keyboard.

They are often comprised of "windows" that represent a particular instance of a program that is executing, they provide buttons, sliders and tabs that make navigation a breeze, and change and adapt in order to
Continue reading "User Interface Design"

User Interface Design

User Interfaces, or UIs, are what the user utilizes to interact with a piece of software, it often is graphical and displayed in a screen, but it can also be hardware, like a controller. They are the most important part of the software for end users.

For a UI to be useful and likeable by the user or customer, it must be easy to use, must attract the attention, easy and intuitive to use, consistent and responsive. There are two main user interface categories: Command-line interface and graphical interfaces.

Command-line interface (CLI)

It is the most basic interface and consists only of text characters on lines. The first computers used CLIs to interact not particularly for the ease-of-use, but for the minimal resources consumed by it and the simpleness that it has. The main input method for the CLI is the keyboard.
Advanced users often prefer command lines to execute some tasks, as a graphical interface would be too bulky and impractical.
Embedded and remote systems often use CLIs because of the low data rates that they produce and the fact that they can be channeled through a variety of protocols, from serial to over-the-internet SSH connections.

Source
Graphical User Interface

GUIs are what most common users today know to interact with a computer, they are graphical frameworks to interact with a program often in more simple and intuitive ways than CLIs, the disadvantage of graphical interfaces is that they consume more resources, and often require a graphics processor to generate what is on screen. The main input methods for GUIs are mouse and keyboard.

They are often comprised of "windows" that represent a particular instance of a program that is executing, they provide buttons, sliders and tabs that make navigation a breeze, and change and adapt in order to
Continue reading "User Interface Design"

Software Maintenance

Selling and delivering a piece of software is not the only work that a software engineer has. Actually the post-developement processes are important too. Maintaining the software is important for a better performance.

Why is performance so important?

Basically it’s important because if there is a software problem that users won’t like it, and if that problem is not fixed then the users will stop using it.

maintenance_cost_chartBut, even when performance is so important, the majority of fixes during the software maintenance is not for it. Main changes are for software evolution. Time changes and programs should too.

Maintaining a program is part of the software life cycle, but it is not as important as the development part. In my opinion it should be that important, because that process is the one that helps the software to be alive. Without this process our softwares are obsolete and wouldn’t live so long.

 

Sources:

https://www.tutorialspoint.com/software_engineering/software_maintenance_overview.htm

http://swebokwiki.org/Chapter_5:_Software_Maintenance


Diseño de interfaces de usuario

La interface es lo que los usuarios están utilizando para comunicarse con el código y su diseño es muy importante para la utilización de tu software porque es si tu código es algo impresionante y no tienes una interface que el usuario comprenda nadie va a utilizar tu producto.

3013865652_b3ea69377d_o.jpg
Foto de flickr por Jeff Warren

La manera que el diseño está incorporado en la interface es de una manera sencilla y para que tu aplicación lo tenga tiene que seguir una serie de pasos.

Primero tienes que hacer es que la interface tenga los elementos necesarios para su utilización ya que si pones demasiadas cosas en ella no se podrá comprender, después tienes que hacer sea sencillo de leer y utilizar ya que si tiene los botones necesarios, pero en un orden extraño puede que el usuario no lo pueda comprender, por ultimo tiene que verse bien por el simple hecho de que a la mayoría de los usuarios quieren también algo que se vea bien.

En conclusión, para mí la interface de usuario es una parte muy importante para que tu producto pueda evolucionar a otro nivel y los usuarios puedan utilizar tu producto en todo su esplendor.

Referencia


Mantenimiento de software

El mantenimiento de software se implementa cuando ya entregaste un producto y lo quieres mantener funcionando a lo largo del tiempo y también en ocasiones modificarlo para hacer algo mejor.

7263382550_002a49be33_z.jpg
Foto de flickr por Florian Richter

Algunas razones para la modificación de tu código pueden ser alguna de las siguientes.

Por condiciones del mercado, por requerimiento del usuario o si la organización cambia por alguna razón

Esta parte es muy importante para el software ya que la tecnología está en constante movimiento y cambiando y si tu no te adaptas y cambias con ella tu producto queda obsoleto y no se puede utilizar por esto el mantenimiento del software es muy importante.

En ocasiones le tenemos miedo al cambio de nuestro software porque no sabemos si lo que estamos modificando es lo correcto, pero la verdad para mi es que el cambio es necesario y nos tenemos que adaptar para poder seguir creciendo.

Referencia


Software de código abierto

En pocas palabras es cuando las personas que crearon el código lo hacen público para que las personas lo puedan ver y modificar, pero no tomar poder tomar crédito de como el creador del código.

128010935_67ce3d5b33_z.jpg
Foto de flickr por Justin

Al hacer el software código abierto esto ocasiona para mí que todas las personas que están utilizando tu producto lo puedan modificar para poder ayudarte a crear algo mejor y esto también ocasiona que las personas puedan estar mucho más relacionadas con tu producto y sientan in sentimiento de incorporación en el producto que están utilizando.

Para terminar esto es una manera de crear algo con lo que los usuarios del producto puedan estar incorporados y crear algo mejor que si lo haces solo.


Software Testing

In this stage of the project we’ve already finished the implementation and we test it to make sure that it works. In class I learned that writing the test before writing the code is a good idea, this might give you a hint of how important Software Testing is.

I’ll explain the kinds of testing in an infographic so you’ll read them eve if you’re lazy because they have colors and not so much text.

Software Testing.png

 

 

There are several tools you can use in this stage of the project, the one that we used in class is JUnit, it’s easy to use and there are a lot of tutorials out there.


Software Maintenance

Software Maintenance is also a part of the Software Development Lifecycle and is as important as getting the project done because change is constant and we have to make sure that our software is always useful and not outdated.

It is known that this is the most expensive part of the project but is also a must if you want your code to be useful when the client changes its mind or the market takes a turn. To explain the kinds of Software Maintenance I made another infographic, you can see it below.

Types of software maintenance.png

To complement what you just read you can watch this video, It’s a bit long but I liked it and you might like it too, it explains pretty well what SM is.