Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering
As solution for all three tasks of this assignments, we expect a text file in your part of the repository. Notes in your mind are not enough. We created for each task a simple project in your repository. Use it as a starting point. Stick to our “AXTYY_NameOfTheTask” naming scheme. It makes the job of the tutors easier, when they can rely on some structure.
It will be very helpful to work together in your group on these tasks. Alternatively one of you could create a first solution followed by an iterative review process.
A1T01_ObjectsAndReality
One strategy to handle complexity and change is to narrow the semantical gap between the part of reality that corresponds to our program and our models and implementations. Object Orientation made a big step towards this direction. Nevertheless it is much easier to see it failing as one would expect. This will be the first part of this task. The goal is not to disqualify Object Orientation, but to let you review the different facets of Object Oriented Class Hierarchies. Once you understood that you can not always take these facets for granted, the second part will be to understand why it still works out so nicely in many relevant situations.
Consider the taxonomy of quadrilaterals1)2). At the first view it might be natural to implement a class hierarchy of quadrilaterals that directly corresponds to the structure of the taxonomy. Discuss this idea step by step with respect to the following facets of the Object Oriented subclass/subtype-relationship:
What are the problems? What works out fine?
[If you have difficulties understanding the concepts above, we suggest to go through the Tutorial: Object Oriented Programming.]
Consider a class hierarchy that you like8). How do the facets of the subclass-relationship work out in this case? Describe the differences to a taxonomy of mathematical objects like in part 1.
A1T02_TimeTracker_REgelwerkReview
Consider the following first result of a requirements elicitation for a time tracker application:
(1) The time tracking application allows keeping track of the actual working time of all the users. (2) The workers work in two shifts. (3) When a worker starts his work the time is registered. (4) When a worker leaves later than 30 minutes after the end of his shift, he can enter a short description of the reason for working overtime. (5) Workers shall not see the reasons for the overtime of their colleagues. (6) If a worker of the first shift is leaving before 2 p.m. the system shall give a notice. (7) Mangers can shift the regular working hours temporary. The maximal shift is 4 hours. (8) The monthly report highlights entries using “18 pt Times New Roman” font with color red, (9) where workers arrived too early or too late for their duty period. (10) Managers, workers and the work council will meet regularly to review the social impacts of the time tracking system.
A1T03_TimeTracker_LogicalReview
Review the requirements in Task 2 for logical completeness, consistency and conciseness. Name problems and make suggestions how to solve them, e.g. by framing a question to ask the stakeholders.
Give suggestions to make the requirements easy to use during the process and the project evolution: What can be done to make sure that each requirement is traceable, testable and easy to modify.
Further remarks from your side?
InputStream
or Reader
in http://java.sun.com/j2se/1.5.0/docs/api/java/io/package-tree.html; Subclasses of Component
in http://java.sun.com/j2se/1.5.0/docs/api/java/awt/package-tree.html.