So the semester’s over…
Después de un semestre de clase con Ken Bauer puedo decir que agradezco mucho haber llevado esta materia con él y con sus métodos de enseñanza. Algo que me pareció sumamente importante fue que a Ken realmente le encanta dar clases, es su pasión y cada día se esfuerza en ser un mejor maestro. Esta cualidad hace que sus clases sean dinámicas y nosotros como alumnos queramos ir a su clase.
A little review
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.
El curso =)
Durante el curso de ken el método que utilizo de enseñanza fue muy distinto al que estamos acostumbrados, pero la verdad se me hizo algo muy interesante y necesario porque fuera de la escuela cuando ye estemos trabajando en algo no vamos a tener un profesor que nos diga que estudiar y vamos a tener que siempre seguir aprendiendo algo nuevo.
Al principio del curso la metodología no me pareció algo muy nuevo que digamos porque muchos profesores ya están dando algo del tema de la clase y nos hacen estudiar la mayoría fuera de la clase, pero la verdad la manera de que ken nos enseñó cosas que si podemos utilizar fuera de los salones de clase y siempre nos mantuvo guiados de una manera u otra fue lo que más me gusto del curso.
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.
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
What is Software Maintenance
Software Maintenance Overview
This course is the first time I have Ken as one of my teachers. I had heard many people describe his style, but it’s nice to finally get to experience it. So far I’ve had a very good time with the class and don’t really have any big complaints. I think I’m in a situation than not many of my classmates share. Kens classes look to fix the many problems with traditional learning, which leaves many students just looking to pass and not learn. In my case, I don’t have a problem with traditional classes so I’ve never seen ken’s courses as a sort solution to me not truly learning.
I’ve really enjoyed the course but there are some classes I still prefer to take in a traditional way, like maths and core programming courses. I realize there are many cons to traditional courses, but I may just be used to it so much I call it personal preference. I have years of experience with normal teachers, and I’m still not as experienced with learning Ken’s way. Maybe with more experience I’d feel comfortable enough to take those courses differently.
To end this blog, here is a video some classmates and I made with our final words on the course. I’m somewhere around 2 mins.
Software maintenance is a part of development is one that I haven’t experienced before, but I know is very important in a professional environment. When studying, projects are made, handed in, and forgotten. Professionally, that isn’t the case.
Software Maintenance, as defined by these NCSU slides, is whatever modifications may be made to a program after it has been released. There are many reasons for maintenance, but the main ones are adding features and fixing bugs.
There are 3 main types of maintenance:
- Corrective: Fixing faults with the system, like bugs. One needs to find the source of the problem, change the code, ensure no new errors were introduced, and update documentation if needed.
- Adaptive: Make the system work in a different environment, OS for example, and ensure everything still works.
- Perfective: Form the slides “software maintenance performed to improve the performance, maintainability, or other attributes of a computer program”.
- Preventive: Even if there are no problems, improve the code to make it last longer. This may include switching to new technologies, reengineering, and refactoring. Functionality isn’t commonly added in this case.
Designing for Users
According to usability.gov:
User Interface (UI) Design 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.
In other words, making sure users are able to get stuff done with whatever software you make. There are many ways to design interfaces and one of the most commonly known ones is designing a Graphical User Interface, which is a process that involves User Interface Design.
Successful user interfaces always tend to be consistent and predictable. These qualities allow users to not have to learn UI’s from scratch for every new piece of software. The main categories for UI elements are (also from usability.gov):
- Input: How the user will manage to communicate with the program. In many cases it may be text, but it also includes how you can make a file a to give the program instructions.
- Navigation: Elements that allow you to get somewhere inside the program. They aren’t what the user ultimately wants, but are necessary for him to get there.
- Information: How information is communicated to the user. Most of the time this is done by text, but images can also show information.. They may change depending on how much info should be given to an user without being overwhelming.
- Containers: Organization elements typically used to store more important information inside.