Lunes, Nobyembre 15, 2010
Study Tips: From Procedures to Objects using The Contemporary Application Development Methods: originally written by Jolito Ortizo Padilla
The article is a second of a series to my research , Hypermedia Learning.
Most modern application development methodologies , programming paradigms, architectures and languages are based on, or evolved from , object -oriented technology. Thus, new design methodologies and programming languages have been developed to support object-orientation; of particular importance has been the development of the Unified Modelling Language (UML) , which encompasses the various aspects of object-oriented analysis and design. Moreover, many programming languages such as Java and C# have been designed to be "pure" object -oriented languages , reflected in the fact that a simple "Hello World" program can only be run from a class.
Since the various aspects of object -oriented technology are now well established in the mainstream of information technology and computing, the principles and practice of object-orientation have become very important to students on many courses.However, despite object-orientation being the focus of contemporary application development methods( CADM), students should be aware of other approaches , particularly those preceded object-orientation such as procedural programming, and those that go beyond object-orientation , such as component software. In fact, student should be able to intelligently compare and contrast the different concepts and approaches to software developments.
In general students should use the "learn the concepts" and "apply the concepts" approach. In learning the concepts students should focus on learning the theory , the key terms and definitions, so they can offer clear explanations of object oriented concepts using the learned theory together with examples to illustrate the depth of their understanding. In applying the concepts, students should focus on the use of the theory and analysis, design and implementation stages i.e. through the typical software development life cycle. Thus, students can understand clearly the meaning of the concepts in real-life applications. For example, many students can identify associations between different objects in a particular specification/application , and are able to illustrate association in UML-normally a straight line between two object classes -but they fail to demonstrate its meaning in practical terms i.e. how it is reflected in implementation and coding. The same can be said of other fundamental object-oriented concepts, such as inheritance and polymorphism.No complex coding is necessary in this module, instead there is a requirement for some basic understanding of the concepts and how they can be used in a programming language.
Moreover, students should be aware of the direct mapping and conversion of classes represented in UML. For example using class diagrams, into classes in particular programming languages. In fact, once object-oriented analysis and design stages are completed, through the identifications and drawing of objects, classes , attributes, methods and relationships, the converting process into an object-oriented language is relatively straightforward;some UML software also offers the capability to make a direct conversion from the design into a particular language. Additionally, students should be able to reverse engineer a particular application, i.e. converting a given code into UML diagrams such as class diagrams, in a similar way to when it is done from a problem description/specification.
Preparation and Review
Revision for the examination and assessment is only part of acquiring the necessary knowledge that equips students for their professional life. Thus, studying and preparation should start in parallel to classroom sessions. This reinforces that has been learnt in the classroom , as well as providing an opportunity to revisit the materials that might not have been well understood. Moreover, such an approach will make it easier when review for the examinations period starts. Last-minute preparation for the exams should be avoided , since it is extremely stressful and is unlikely to lead to the achievement of good marks. Most importantly "cramming" does not allow enough time to absorb the required topics, which lead to little or no knowledge acquirement. Thus, it makes a lot sense to start the learning process , including exam review and preparation, early in the course and in good time. This requires good planning and time management as well as self discipline;the reward , however , will be a reduction in stress, in depth knowledge and exam success.
Im summary , review should be well-planned so the available time can be managed effectively. This will give the students the possibility and the opportunity to cover the whole syllabus , not only part of it, which is very important for both the examination as well as general knowledge acquirement and accumulation. However, review can be focused by revising past examination papers as well as practicing the answers to the questions. The study of past questions enables students to stop and reflect , and to consult the provided answers, lecture notes and textbooks for further help and explanation of any concepts /topics that might be hard to follow.
Students should start the examination by reading the instructions at the front of the exam paper, which clearly specify the length of examination, the total number of questions and the number of questions that students are expected to answer. Then exam questions need to be read as fully as possible.
Broadly , the questions cover three main parts of the module, the theoretical part,the analysis and design part, and the practical part. In the theoretical part the types of questions that are likely to be found are as follows:
> Define and explain an important term-e.g. "Explain what is meant by encapsulation and identify its benefits". This question requires precise definition of the concept together with the description of its benefits.
> Compare methodologies-e.g. "Procedural and object-oriented methodologies are commonly used in modern application development. Explain the differences and similarities between the two methodologies". This requires a description of both approaches , and then a comparison should be made.
> Describe and compare relationships with examples-e.g. "Object -oriented modeling can make use of two special relationships between two classes known as inheritance and aggregation. Describe what is meant by each of these terms , contrasting the different circumstances in which each would be applicable. Illustrate your answer using classes of your choice". This requires a description of both relationships, and then using examples, a comparison should be made.
> Identify the benefits of an approach-e.g. "Describe the merits of the rapid prototyping process, and identify who, in your opinion , should be involved in the process". This requires a description of the merits and the identification of the stakeholders.
In the Analysis and design part of the type of questions that are likely to be found are as follows"
> Analysis-e.g. "Explain what methodology you will be using to carry out an intial object-oriented analysis for a specification". This requires the explanation of a particular methodology to carry out the analysis stage.
> Analysis-e.g. 'Write down all the classes you think will be required, together with their attributes, behaviours, and any relationships between them for a specification". This requires reading the specification and the identification of all classes.
> Design-e.g. "Use case diagrams can be used for requirements capture. Briefly describe how this can be done and draw a use case diagram for specification". This require a brief description of the process and the drawing of a use case diagram based on specification.
> Design- e.g. "Draw a class diagram for a particular specification". This requires a drawing of a class diagram based on a given specification.
In the Practical part the types of questions that are likely to be found are as follows:
> Application-e.g. Apply the theory/concepts to a case study or a specification". This require reading the specification and the application of particular concepts.
> The practical meaning of concepts- e.g. " Assuming you are about to implement code that makes use of association, show, using a programming language , what actually means in practice. Demonstrate how it can be implemented using classes of your choice", This requires a code that contains at least two classes , with one class containing object or a reference of an object of a different class.
> Coding-e.g. "Write simple code for a specification" or "translate from design to code" or translate from code to design". This requires simple code writing from specification or from given design. The latter part requires some reverse engineering, e.g. produce a design from a given code.
> Coding-e.g. "Explain the various statements in a given code and the brief explanation of the statements.
Students should pay attention to the marks allocated to each question, hich reflect the answers and the amount of work that is needed to achieve a particular mark. This can be very important since , in many cases , students are only able to correctly answer parts of the questions, which should be the ones that maximize their marks. Moreover, it is important to note that answers should be specific and precise and they should reflect the content of the questions. Finally, handwritten text should be clear and easy to read and diagrams/code should be comprehensible and well illustrated
Though, the method was being experimented in one of the colleges in KSA,it was not successful since it takes a longer period of time for students to think and answer the questions resulting to a complaint of having a long examinations.