Gustavo Reyes: Computer Engineering Student
ICOM4009: Introduction to Software Engineering Blog
(5/20/18)
This is the last blog update concernig my software engineering class. The class had it's ups and downs for me, and I'll admit that I was definitely intimidated when I started, but as the class went on I started enjoying it more and more. I think what took me offguard at the beginning of the course was the lack of easily defineable methods or instructions for things at times, but at some point I started to see that it was simply the nature of the material. This was a class focused on teaching us how to design and prepare projects, not on implementing them as I'm usually used to. I think that once I started to understand that I began to enjoy the topics more and more. My personal favourite part of the material was definitely the visual charting of domains and states. Statecharts, petri nets and the many other methods of visually describing software is something that I think I'll be using a lot in the future. RSL as well, although intimidating at first, is something that I can see being very useful in my professional career. In the end I'm glad I took this class, even if it was unexpected, the material covered and the lessons I learned throughout the semester were definitely useful and will help me a lot as I continue to develop and implement software in the future. Thank you for reading, hopefully I'll continue blogging in some way in the future, it's a fun way to look back on the things I've learned and how I've grown.
(5/18/18)
Students presented their homework on software architecture design today. I believe today's the last day to present if you don't meet the minimum of 4 presentations required for grading purposes. Funnily enough tho only 2 people presented today, the rest of the class hour was spent discussing a programming language called idris. Idris seemed interesting, it's a dependent type language that allows functions and types to change depending on input. In all honesty some of it went a little over my head but it seemed like a very interesting concept, I'm sure I'll encounter it again in the future. I think I'll buy a book and read up on it someday.
(5/16/18)
The professor discussed material on software architecture today. It was a little hard to follow so I mostly just focused on reading the slides at my own pace, I might need to do some extra reading when I get home to catch up since I missed last class due to next semester class enrollment issues.
(5/14/18)
I couldn't attend class today cause of next semester's course enrollment overlapping with my schedule. We're supposed to be discussing software architecture material today so I guess I'll just try reading up on that material in preparation for next class.
(5/11/18)
Today I presented my homework on requirements engineering. I'll admit that it took me by surprise as I was not expecting to be able to present today. I think presenting today was fortunate though, as I hadn't fully grasped the material. Domain requirements can be simplified into parts, projection, determination, instantiation, extension, and fitting, after reviewing my work I think I have a better grasp about what each concept means now and why they're so important.
(5/7/18)
Everyone's on edge today because of the 2nd partial midterm later tonight, myself included. I passed my first partial midterm but it was a little stressful since the most challenging part wasn't the material but actually writing decent answers within the time limit. The time limit last time was a little tight last time, but the professor is giving us more time for this one so hopefully I can do well enough. In any case my grades are decent so far, I don't think I have any failing grades in any homework or exam so I'm not too worried about passing as much as I'm worried about getting atleast a B to maintain my GPA.
(5/4/18)
Presented my homework on statecharts today. Honestly this was probably the most enjoyable topic of the class so far, I had a good time modeling the statecharts of the homework questions. As a tool, statecharts seem pretty useful in general so hopefully I'll be using them again in the future. Anyways, I only need to present one more homework to meet the required minimum for grading purposes and I feel like today's went well so hopefully I get a decent grade.
(4/23/18)
A review of what domain engineering is and why we need to do it. The chapter is basically an overview of domain engineering and it's stages. Phases of domain engineering can be divided as identification, aquisition, analysis formation, modelling, validation and domain theory formation.
(4/16/18)
Today students presented their petri-nets homework. Afterwards we discussed message and live sequence charts, which is a way of visually representing instances on which events are specified. Instances are an abstract entity so events can have a range of types.
(4/9/18)
Today's class was focused on petri nets, a tool used for visually representing concurrency through modeling. Petri nets are usually composed of graphical symbols representing states, transitions and links/arrows between them. States can be either places or conditions and transitions can be events. We also discussed the different basic types of petri nets, such as CEN, PTN and CPNs.
(4/2/18)
This week's topic is modularization. I presented the first question, got some feedback on my use of Unit in defining axioms. Modularization itself is akin to bringing OOP to RSL space by defining schemes and objects from classes, when you wrap classes as schemes you can use them as objects in other areas. Modularization basically allows you to simplify RSL specifications via the creation of schemes and objects to handle classes.
(3/26/18)
Today's the first partial exam for the class. I'm obviously a little anxious and excited, I don't really know what to expect in terms of questions so I've really just focused on using the homework assignments as a study guide. My biggest worry is that questions might be a little broad and it'll take me too long to think up detailed answers since I tend to have a hard time improvising during exams. Oh well, I'm not that worried since I've studied a fair bit, the exam is open book too so I worked on summarizing the material and homework questions in a way that'll help me find examples and references quickly.
(3/23/18)
Next monday is the first partial exam of the class so I'm getting ready for that. Today there were presentations on the Phenomena and Concepts homework questions. The topic itself is more about defining domain aspects into these 2 categories to better understand them. Phenomena tend to be more concrete representations of domain entities whereas concepts are more generalized and ambiguous.
(3/16/18)
This week we mostly discussed documents and their role in software engineering. Documentation and it's many aspects and uses, and how to draft them up for a domain we're working on. To be honest it seemed a little daunting at first because documents seemed very extensive, but in the end I think the hardest part was simply getting started, simply following the general guidelines results in a decent first draft which I can later revise and change.
(3/2/18)
CSP channels were the topic of this week, focused on programming and explaining concurrency in programs. The topic of concurrency itself seems pretty broad and complex in terms of writing software specifications, CSP channels were a pretty good introduction to how to work with concurrency and domains that utilize it I think.
(2/23/18)
I think I'm getting used to the notion of student presentations every week. As it looks now it seems like a good way to clear up doubts and misconceptions on the material. Today students presented the second homework on mathematical logic and algebra. I'm still not very used to RSL and have some doubts about how exactly formalization works, but student presentations are atleast a decent way to learn by example.
(2/21/18)
I'm having a bit of a difficult time following the formalization exaples of the material this week, hopefully with time I'll get used to this and RSL. This week's topic is mathematical logic and algebra, it honestly feels like a brand new language sometimes but I think that's just cause I'm relatively new to the course. With time I'm sure the whole RSL/formalization thing will click for me, for now I'm just gonna focus on reading the material slowly and taking my time to work through the RSL examples.
(2/20/18)
I realized I forgot to mention, my domain for the class that I'm supposed to work with for the semester is the metropolitan tourism industry. It was chosen randomly based on student ID's, honestly I don't know anything about that domain but I'm guessing that's also the point. As I work through the homework I'm sure it'll be easier to visualize it later on.
(2/19/18)
Hello, my name is Gustavo Reyes. This is a personal blog where I will share select topics from my software engineering class, maybe some other stuff down the line too. I'm thinking of doing a blog post every week or so, but that may change depending on the class and how it goes I suppose.
For now I plan on keeping the blog as minimalist as possible, thanks for visiting and look forward to future posts.