avatar

The Labs begin (малко да се жалвам)

Започват ми лабораториите и екпериментите. Направо не ми се мисли този семестър. Предния нямаше нищо задължително, но този ме чакат около 20 експеримента, на които задължително трябва да присъствам, да се подготвя, и да се справя с тях. И две от дисциплините са си на немски, което допълнително ме стресира. Досега на английски ги закърпвах нещата, ама сега.... голяма каша ще е. А и на работа не знам докога ще се задържа и не ми е ясно, дали изобщо ще имам възможност да присъствам, или ще трябва да прекъсна нещата по средата. Сега си работя от 16:00 до 20:00 и това ми позволява да ходя и на лекции, ама не знам докога ще имат нужда от мен, защото има 2ма души, дето са си взели отпуска за момента и се очаква да се завърнат. И ако ще махат някой, то това може би ще съм аз. Дано не стане така, но да видим.
А, иначе, лабораториите са ми по Fundamentals of Software Engineering 1(на немски), Microwave and RF Technology (на английски) и Logical Design of Digital Systems (пак на немски).
Сега си прегледах задачата по Software Engineering, която ще е за този семестър и определено ми се струва интересна. Но, да ти е интересно нещо и да се справиш с него са две отделни неща. Доколкото разбирам, ще трябва и да се програмира на Visual C, а аз нямам почти никаква представа от програмиране, освен от Fundamentals of Computer Engineering 2, което карахме миналия семестър. Но там нещата бяха много бегло нахвърляни и даваха примери с JAVA. А на Основи на Програмирането, където е имало и С не можах да присъствам миналия семестър, пак заради работата...
Абе, голяма каша, но ми се прищя да ви се жалвам малко, пък дано си наредя и аз мислите в главата и си структурирам някакъв план на действие. И тъй като знам, че тук има доста хора, които се занимават с програмиране, ще пусна семестриалната задача, в общия и вариант, ако някой се интересува да види за какво иде реч. (само че ще дам версията на английски) :)
Пък си запазвам правото, ако имам трудности, да се обърна занапред и за малко помощ от вас, в случай, че можете да дадете съвет за нещо, или да помогнете.
Ето я и задачата (Software Engineering), която ще решаваме на части в експериментите:

Prof. Dr.-Ing. A. Hunger
Practical Training
Software Engineering
Summer Semester 2006
Documentation on Practical Training in Software Engineering
Contents
1. Task
2. Expected Intermediate Results
3. Bibliography
1. Task
Development and Implementation of an Elevator System
1.1 Task Description
The task comprises the specification, design and implementation of an elevator system for a high-rise building. Three elevators are to carry passengers between ten floors. The software must process all user requests, carry out certain controls in individual elevators and finally issue all commands to the drive motors located in the individual shafts. Furthermore, a facility for visual control of the system during operation must be developed. For this purpose, it is necessary to find an appropriate means of visual simulation and presentation of the system in operation.
The control system will chiefly be responsible for the efficient planning and co-ordination of the elevators' jobs. For instance, should someone press the down button on the fourth floor, the first elevator to reach the fourth floor on its current downward journey would have to stop.
The same call could also be answered by taking an inactive elevator into operation or one that had completed its last journey by reaching its final destination.
Should an elevator have neither passengers aboard nor a job to complete, it must be parked in a pre-determined idling position. When in use, an elevator must only be capable of changing its direction of travel once all passengers have reached their chosen destination in this particular direction. The activated destination buttons (in the elevators) and call buttons (on the floors) must therefore form the basis of system control. So if a passenger boards an empty elevator on the ground floor (floor number 1) and enters the 4th, 9th and 10th floors as destinations, the elevator must stop on all three floors even if the passenger gets out on the 4th floor and no one takes his place.
Every elevator must be equipped with a safety weighing mechanism to detect loads exceeding 350 kg (five persons), sound a warning alarm and inhibit further movement of the elevator until the excess weight has been removed.

The functions of the several control elements are described in more detail below.
Destination Buttons. Every elevator must have a row of destination buttons that must illuminate in confirmation when pressed. As soon as a destination has been reached, the door must open to let passengers out. Following that, the door must close again and the destination button of the floor in question must go out.
Location Displays. Illuminated location displays installed both in the elevators themselves as well as above the elevator doors on each floor must indicate where the elevators are. The respective displays in the elevator must go out again when an elevator leaves the floor.
Call Buttons. Two call buttons are installed on each floor, ("up" and "down"). The ground and 10th floors only need one button each ("up" and "down", respectively). While it must be possible to call an elevator from each floor by pressing a call button, it will not be possible to choose any specific one of the three elevators. It will much rather be the task of the control program to decide which elevator will be instructed to answer the transportation call. When pressed, call buttons must illuminate in confirmation. This illumination must remain active until an elevator has reached the floor the call came from.
When not in use, the individual elevators must either be parked on the ground, the 5th or the 10th floors. Once an elevator has completed all its jobs, it must travel to the nearest available parking position, whereby each idling position may only be occupied by one elevator.
Apart from these job-planning tasks, the control program must take consideration of several special conditions: the elevators must defer the completion of all job instructions issued by the control system while the doors are open. The elevator cars must each be equipped with a "Door Open" button with which passengers can actively override the closing mechanism and keep the door open for longer than normal. Furthermore, the elevators must ignore stop signals when they are less than 20 cm from reaching the floor. "Alarm" buttons in all three elevators must enable passengers to stop the elevators

and open the doors on the next floor, irrespective of control-system instructions. Pressing the "Alarm" button must also produce an acoustic signal. The list of all queued transport orders for this elevator has to be deleted.
An assumed speed of 4 m/s will form the basis of determining the location of the elevators. Opening and closing the doors must each take 3 seconds; the doors must stay open for at least 10 seconds. The floors are all 3.5 m apart. (Acceleration and deceleration will not be taken into consideration.)
During implementation, all buttons must be reproduced by suitable keyboard programming. The status of the entire system must be produced as a visual screen display, whereby any changes to system status must be indicated as quickly as possible.

1.2 Task Components
The just described task has to be solved by dividing in partial task.
1.2.1 Requirement Specification
The supplier of a software has to make a requirement specification in order to receive a development order. In the requirement specification it is precisely described the extend of the service and the responsibilities.
1.2.2 Design Method
Subject of this practical lessons is the design method of ‘Ward & Mellor’. Basis for the designing system is the context diagram which has to improve by the following steps using Top-down-design.
Essential Model
The Essential Model is the minimal and complete description of the functional system which is regardless of whether the implementation. It consist of Environment model and Behavioral model.
1.2.2.1 Environment Model
          • Context Diagram
          • Event, Control, and Data table
          • Data dictionary
          • Information model
 

1.2.2.2 Behavioral Model
          • Transformation Diagram
          • State-Transition Diagram
          • Extended Control, Event, and Data table
 

1.2.3 Implementation Model
The Implementation model is the expansion of the Essential model to the particular and technological conditions. It subdivides in the following parts.
Processor Model

This model contains the division of the Environment model. The processes and data transformations are divided up to the available processors.
Task Model
This model describes the partition of the several tasks of each processor and defines the interfaces.
Module Model
This model depicts the several modules and their relations between each other. The information flows within the procedures get transparent.
1.2.4 Specification and Production Sheet
A detail list of all components is demanded which are necessary for the implementation. This covers all data formats, functions, and modules. The several modules have to mark off and their responsibilities have to be defined. A schedule has to be set up for the implementation.
1.2.5 Executable Program
By means of the method of ‘Ward & Mellor’ the developed program has to be implemented using ADA Programming Language.
The prerequisite for passing the practical lessons is the independently designed and executable program.

2. Intermediate Results and Attendance Sheet
Name: .........................................................................................................................
First Name: ...............................................................................................................
Matrikel Nr. (Register No.): ....................................................................................
Datum
No.
Contents
Intermediate Result
Attendance Certificate
accept
24.04.2006
1
Problem definition, requirement specification (Erstellung des Pflichtenheftes)
Having printed/copied, read and understood the task
------
8.05.2006
2
Design of the Software as a System
Requirement specifications
15.05.2006
3
Design (Environmental Model)
Context diagram data dictionary
22.05.2006
4
Design (Behavioral Model)
Transformation diagrams
29.05.2006
5
Draft of implementation model
Behavioral model
12.06.2006
6
Specification of data formats, functions and modules. Distribution of tasks within the groups
Implementation model
19.06.2006
7
Implementation of partial tasks
Specifications and production sheet
26.06.2006
8
Implementation of partial tasks
Compiled moduls
3.07.2006
9
Integration, testing and documentation
10.07.2006
10
Integration, testing and documentation
Executable program incl. documentation, demonstration
 


Recommended Websites for learning ADA:
http://www.adahome.com/Tutorials/Lovelace/lovelace.htm
A very good ADA tutorial with lots of examples. At the end of each section there are comprehension questions to see if one has understood what was taught in each section.