Object-Oriented Information Systems
Module reflection
Data without context is meaningless, that’s why we are interested in information, which is data with added meaning (Anon, N.D). This is one of the purposes of information systems to which I was introduced in the first two units of the module.
Software systems are composed of five main components: hardware, software, data, processes, and people (David, 2019). The most malleable component that can be guessed from its name is software. This is because it can be controlled and made to abide by specific requirements without affecting the other components of the information system. However, most individuals and organizations have suffered from system failures, whether involving simple, or more delicate or critical systems. The good news is that software systems are deterministic; their behavior is repeatable (Sommerville, 2013). This means their failure can be tracked and corrected.
Having said that, my contribution to the first collaborative discussion, which included responses from my course colleagues and feedback from the course tutor, was focused on the reasons for system failures and how to avoid them. It appeared after the discussion that it is hard to narrow down the solutions for system failures to a shortlist. Nevertheless, careful planning, understanding of project objectives, good communication and management, and testing are all important factors in successful systems from the commencement to the maintenance.
This brings us to the system design which is one of the steps of the system planning stage. One of the well-known methodologies of software development is object-oriented programming. In unit 3 I learned the fundamentals of such methodology. Basically, any scenario that requires software can be designed in an object-oriented manner by distilling the solution down to objects with characteristics and behaviors. This methodology made total sense to me as I was progressing through the module due to its intuitive nature that replicates the real world around us where physical and biological things can be looked at as objects.
In unit 3 I had the opportunity to draft my first design for a supermarket with very basic unified modeling language (UML) knowledge that was then refined in units 5 and 6 with more structured diagrams after gaining more knowledge about UML. It was interesting to see that my first diagram was not too bad compared with the second one which was an actual class diagram. This confirmed my first impression of the intuitive nature of object-oriented design.
The first assignment of this module was about system design for self-service checkout for a supermarket chain. It was a great practical experience to put the knowledge I gained to the test. The assignment went well, and I received very positive feedback from my tutor. The only thing that I could have improved is the readability of my class diagram. I may have focused too much on details that have crowded my class diagram a bit. This brings me to the importance of balancing the inclusion of important details with the readability of the modeling diagrams.
In unit 4, I had the opportunity to implement my object-oriented understanding in Python. I have successfully finished a group of Codio exercises that were focused on object-oriented topics including classes, objects, encapsulation, and inheritance. The knowledge I gained here was fortified by the actual system implementation of a pre-designed object-oriented system of a local doctors’ surgery. It was a great experience to apply the knowledge I gained to a real-life example. In this assignment, I used a user-friendly command-line interface and CSV files for data persistence. Although the focus was not on choosing the best data management option, I soon realized that relational databases offer many advantages over the use of flat files. The feedback I received from the course tutor was constructive. I managed to produce a well-written code with good testing, but I should have refactored some areas to make it easier to read.
In unit 7 I was introduced to database design and the concept of normalization. Data normalization is a very important requirement for successful database implementation. It helps in creating databases with desirable properties and minimal redundancy (Connolly et al., 2014). In this unit, I had the opportunity to normalize a set of tables which was an invaluable experience for me. I have been involved in the system development of a school-based dental electronic patient record before joining the CS PgCert program at the University of Essex Online. My work with the programmers has been focused on the user interfaces and functionalities. However, I now realize the importance of a well-designed database in supporting system development and reducing overheads and possible data integrity problems.
In unit 8 I developed my first Entity Relation Diagram of property lettings that conformed to the third normal form. The database is an integral part of any information system. Spending adequate time designing it can’t be overemphasized.
In units 9 and 10 I was introduced to the structured query language (SQL). I practiced the basics and some advanced topics in SQL through Codio exercises. In addition, I have completed a small self-training project, which was not part of the module, to enhance my understanding of SQL. In this small project, I answered most of the relevant questions from the Codio SQL exercises of the module interactively through a simple Flask web application which was the topic of unit 11 (Web development in Python).
In Unit 12 the reading material covered how advances in information systems are bringing challenges like data security and privacy concerns. My participation was a blog post about this issue and how quick advances in quantum computers are risking the safety of our data due to their ability to solve current encryption methods. The good news is that strong encryption methods are being developed and are expected to be unsolvable with quantum computers (Jabłoński & Robak, 2019; University of Michigan, 2019).
By the end of this module, I feel prepared for the next one, which is Secure Software Development during which I am expecting to develop a more robust and secure software development methodology in addition to a well-designed testing protocol.
References
Anon(N.D) Introduction to Information Systems. University of Essex Online.
Connolly, T., Begg, C., Begg, C.
& Connolly, T. (2014) Book Database Systems: a Practical Approach to
Design, Implementation, and Management PDF EBook, Global Edition. Harlow,
UNITED KINGDOM: Pearson Education, Limited.>Available from: http://ebookcentral.proquest.com/lib/universityofessex-ebooks/detail.action?docID=5174902
[Accessed 9 May 2022].
David, T. B. (2019)Information Systems for Business and Beyond.Available
from: https://bus206.pressbooks.com/
[Accessed 28 May 2022]. Jabłoński,J. & Robak, S. (2019) Information Systems Development and Usage with
Consideration of Privacy and Cyber Security Aspects. 547-554. Sommerville,
I. (2013) System success and failure. Available from: https://www.youtube.com/watch?v=VkW7Dr3SXkg
[Accessed 12 March 2022]. University of Michigan, E. (2019) Lattice cryptography: A new unbreakable code. Available from: https://www.youtube.com/watch?v=2IyotuA8eJc
[Accessed 29 May 2022].