Introduction


Before moving on to the core of the assignment I firmly believe that there are certain things to explain first, for it would be – not useless, but a real waste if we went on without explaining these terms. So please bear with us for a while as it will certainly help you during your journey as you move further along this blog. So without wasting any more of your time let’s get started.

Software Engineering

As you can see this term consists of 2 distinct words : Software and Engineering. So what is Software and what’s Engineering?

Software

In very simple words, software is defined as computer applications and associated documentation. It refers to the intangible parts of the computer system and is the interface that links the end user to the hardware. For non IT people consider the following case. Say that you have a car and you are the driver. In this case the car is the hardware and you are the end user. So where’s the software? We can say that it is your ACTIONS i.e. what you do is what will drive the car. Similarly, keeping this in mind, software is what will drive the hardware and make it react to the end user.

Engineering : Is a discipline that completely englobes and deals with a particular object in practice.

Software Engineering : Can be defined as a discipline that deals with all aspects of software production - from its design to its implemetation stage.


Sunday, December 9, 2007

Software Requirements Specification Document

1.0. Introduction
1.1. Purpose
The purpose of this document is to present a detailed description of the Student Management Information System. It will explain the purpose and features of the system, the interfaces of the system, what the system will do, the constraints under which it must operate and how the system will react to external stimuli. This document will be submitted to the institute and stakeholders for approval.
1.2. Scope of Project
This software system will be a Student Management Information System for CDAC institute. It will be designed to alleviate the administration’s work load by providing tools to assist in updating the students’ information and other processes, which would otherwise have to be performed manually. It will also enable the administration to hold details of their students’ attendance, the courses, exams and assignments matters together with details of payments. Hence, the system will be able to offer a better personalized service and meet the institute’s needs while remaining easy to understand and use.

IEEE. IEEE Std 830-1998 IEEE Recommended Practice for Software Requirements Specifications. IEEE Computer Society, 1998.

1.5. Overview of Document

The next chapter, the Overall Description section, of this document gives an overview of the functionality of the product. It describes the informal requirements and is used to establish a context for the technical requirements specification in the next chapter.
The third chapter, Requirements Specification section of this document, is written primarily for the developers and describes in technical terms the details of the functionality of the product.
Both sections of the document describe the same software product in its entirety, but are intended for different audiences and thus use different language.

2.0. Overall Description
2.1 System Environment







The Student Management Information System has three active actors. They access the entire system directly.

Lecturers:
They will teach the respective students their different modules. The lecturers will insert the students’ attendance. Next, they should insert any relevant works, skills, assessments, points or any progress of each student.

Administration:
The administration deals with the day to day running of the institute. They will attribute lab to the lecturers, they will keep a list of all the student will their related details of the CDAC Institute, they will have to search the records for payments due and inform each student about it. In addition to these, they are the one responsible to insert records concerning any formal marks obtained by the students; their exams grade (pass or failures), final term and year grade and comments.
They will then mail all these information to the respective lecturers and managers to keep them updated for them to make a follow up of the students’ progress and regularities in their payments respectively.
It should be noted that it is not the administration who deals with the payments transactions but indeed, they get inform from the University Of Mauritius Head Office where all payments are done. The CDAC administration will only receive tracks of the payments made by the students according to their months due and current months.

Program Coordinators:
As far as the program coordinators are concerned, they will remain in contact with the University of Mauritius. They are to get all the necessary and important information of all that goes on within the institute; starting from the attendance, the student profile, tracks of payment and all the exams day, date, time, modules, assignments topics and results.

2.2 Product Features
Dataflow Diagram








The proposed system will:
o Enable administration register, delete and find student records.
o store details about the students actually studying in the CDAC institute, including their personal details, whether they are full-time or part-time students, a progress sheet where information about their exams marks will be will be recorded and
o include all essential data on the courses offered; the modules and the respective lecturers, the different batches of the courses will also be available,
o keep payments follow ups up-to-date.
o Allow lecturers to record attendance of the students.
o Enable the lecturers to insert progress of students as their assignments marks.
o display exams, date and time scheduled, assignments title and markings.
o allow program officers to validate students’ results.
o also included a list of classes schedules created by the administration.
o Produce reports as:
. List of student progress
. List of exams schedules
. List of exam results
. List of attendance
. List of payments follow-up
. List of results statistics
. List of the assignments marks
. List of batches
. List of classes
. List of debtors
. List of lecturers
. List of modules to be accessed by both the administration and the program coordinator
o give access rights to the different actors.

Eventually, the new system will enable the lecturers and the administration to save time because the proposed system will consist of a shared database to allow all the people involved to access it so as to insert, retrieve, delete and view all the information needed. There will be individual input of the information at a specific time of the day so as all the information is updated as efficiently as possible.
2.3 User Characteristics
The staff is expected to be Internet literate and be able to use the email with attachments. They are also expected to be Windows literate and to be able to use button, pull-down menus, and similar tools.

The main screen of the SMIS will have the following options:
1. Administration
2. Lecturer
3. Program Officer
4. Exit Program
To choose an option, just click on the desired one and the respective menu will be displayed.

2.4 Non-Functional Requirements
The physical machine to be used will be determined by the Institute. The speed of the Internet connection of the Institute will depend on the hardware used rather than characteristics of this system.
The Program Officer will run on the Institute’s PC and will contain an Access database. Access is already installed on this computer and so is a Windows operating system.
3.0 System Features

3.1 Register Students

3.1.1 Description and Priority

A student may want to enroll for a particular course and administration will carry out the registration process. After registration the student may want to cancel or change his enrollment if necessary.
Priority = HIGH.

3.1.2 Stimulus/Responses Sequence

3.1.3 Functional Requirements
1) On request of students, administration will access the system for registration.
2) The system will ask for student information, such as student id, name, address, phone number, email, etc.
3) Errors will occur if some information is omitted.
4) The system will again ask for complete information.
5) On completion, system will display student has been enrolled.

3.2 Schedule Class

3.2.1 Description and Priority
Administration will schedule class or lab for each lecturer for a particular module. Priority = HIGH.

3.2.2 Stimulus/Responses Sequence


3.2.3 Functional Requirements
1) Administration will choose to search by lecturer id, lecturer name, module id, module name, batch id and name.
2) The system will display the resulted search.
3) Administration will do the necessary scheduling of classes in either lecture room or lab.
4) The system will generate an error if lecture room or lab already taken for another lecturer.
5) Then the system will ask for re-scheduling.

3.3 View/Print Report

3.3.1 Description and Priority

Administration may need to view reports such as exam details, payments and print them. Priority = HIGH.

3.3.2 Stimulus/Responses Sequence

3.3.3 Functional Requirements
1) Administration will search for exam details and payments details.
2) The system will display the requested report.
3) Administration will either view it or print it using the print command provided by the system.
3.4 Insert Exam Details

3.4.1 Description and Priority

Administration will enter details for each exam depending on module being examined for and which batch is taking the exam. Priority = HIGH.

3.4.2 Stimulus/Responses Sequence




3.4.3 Functional Requirements
1) Administration will choose to search by batch id, module id.
2) The system will display the resulted search.
3) Administration will enter exam time, date and location.
4) If one of the above information is omitted, the system will prompt administration for complete information.
5) On completion the system will generate report about exam details.

3.5 Insert Lecturer Details

3.5.1 Description and Priority

Administration will enter details for lecturers if new lecturer or will make changes to lecturers’ details. Priority = HIGH.

3.5.2 Stimulus/Responses Sequence
3.5.3 Functional Requirements

1) If a new lecturer is joining the institution, administration will enter details such as id, name, address, module conducted, etc.
2) The system will save the details if all information are correct and complete.
3) Administration may also need to change certain details for existing lecturers, for example address or phone number.
4) The system will then do the necessary updates.

3.6 Deals with payments

3.6.1 Description and Priority

Administration will deal with payments of students and will also account for those students who have not yet paid. Priority = HIGH.

3.6.2 Stimulus/Responses Sequence


3.6.3 Functional Requirements
1) Administration will search for student id making payments.
2) The system will display the resulted search and make the necessary updates, that is, record that student which has paid.
3) Then the system will generate a report for already made payments.
4) A report for students who have not yet paid will be generated also.

3.7 Insert Batch Details

3.7.1 Description and Priority

The program coordinator will insert batch information on creation of new batch. Changes can also be made for existing batches. Priority = HIGH.

3.7.2 Stimulus/Responses Sequence

3.7.3 Functional Requirements
1) For a new batch the program coordinator will have to enter batch details such as batch id, name, full time or part time, etc.
2) The system will save the recently entered details if complete and accurate.
3) Changes can also be made for existing batches which will then be updated by the system.

3.8 Validate Students’ Results

3.8.1 Description and Priority

The program coordinator will cross check students’ results and validate them. Priority = HIGH.

3.8.2 Stimulus/Responses Sequence


3.8.3 Functional Requirements
1) The program coordinator will choose to search by student id, name, batch id, module id. He can also view the exam results report.
2) The system will display the resulted search.
3) The program coordinators will then cross-check the results and enter either valid results or invalid results.
4) The system will then generate report about valid and invalid results.

3.9 View/Print Report

3.9.1 Description and Priority

The program coordinator can view reports (exam results, payments) and print it if necessary. Priority = MEDIUM

3.9.2 Stimulus/Responses Sequence



3.9.3 Functional Requirements
1) The program coordinator will choose which report he needs.
2) The system will generate the report and display the result.
3) The program coordinator will either view it or print it.

3.10 Insert Attendance

3.10.1 Description and Priority

The lectures will access the system to record the attendance of students. Priority = HIGH.

3.10.2 Stimulus/Responses Sequence



3.10.3 Functional Requirements
1) The lecturer chooses to search by student id, batch id, part time or full time students, module id.
2) The system will display the search results.
3) The lecturer collects the attendance and this is updated by the system.
4) The system can then generate report about attendance.

3.11 Insert Progress

3.11.1 Description and Priority
The lecturer will be able to insert progress of students as their assignments marks. Priority = HIGH.

3.11.2 Stimulus/Responses Sequence



3.11.3 Functional Requirements
1) Lecturer will search by student id, name, batch id, batch name, module id and module name.
2) The system will display the search and necessary insertion will be performed about progress.
3) The system will then generate report about progress sheet.

4.0 External Interface Requirements

4.1 User Interfaces

UI-1: The Student Management Information System screen displays shall conform to screens designed using Microsoft Access 2003.
UI-2: The system shall provide a menu form where users of the system can navigate throughout the whole system.
UI-3: The submenus shall permit complete navigation and information selection, insertion and deletion using the keyboard alone, in addition to using mouse and keyboard combinations.

4.2 Hardware Interfaces

As such, the software modules under development do not need to account for hardware interfaces. All interactions between hardware and software are in conjunction with DBMS and a server on the LAN.

4.3 Software Interfaces

The modules will utilize Microsoft Access 2003 from Microsoft Office Package which is also the suggested development tool. Apart from that users will be able to use Microsoft Word to type letters and internet explorer to access the internet for emailing purposes.

4.4 Communication Interfaces

Interfaces with network protocols will be handled by a LAN connection together with a network interface card connected to each and every terminal. Communication will be based on a request-response paradigm, that is, request to the server form the client and response to the client from the server.

5.0 Other Nonfunctional Requirements
5.1 Performance Requirements
Performance is a key issue in the design and development of a software. It is of utmost importance as this requirement will affect the other requirements of the system.

· The software is to be designed in Microsoft Access, both the front End, i.e. the forms and the back End, the database, so that performance level is not affected while trying to connect front end and back end together as it would be in 2 different software.

· The software must be designed in a way such that response time is minimal and the software reacts quickly to its environment.

5.2 Safety Requirements
Safety is another key factor in the design and development of the system.

· The product must be safe to use without resulting in any injury of any kind to the user.

· The software must provide safety measures so as to recover any data loss.

· Loss of data of any kind should not result in the use of the software.

· The software must meet the safety requirements specified in the IEEE standards.

5.3 Security Requirements
Security is an important aspect to take into considerations while designing and implementing software.

· The software must have security features so as to protect itself and the system on which it is going to be operated.

· Physical mechanisms as well as logical mechanisms should be implemented.

· Software must provide means for verification and authorization of users, for e.g use of IDs and passwords.

· Sensitive data should be accessed only by users with top priorities.

5.4 Software Quality Attributes
Program must also have key attributes which will make it a good software such as the following.

· Adaptabilityà Software must be adapted to work in any environment.
· Correctnessà Software must be correct so as not result into any harm to the system
· Flexibilityà Software must be flexible to accommodate for change.
· Interoperabilityà Software must be able to interact between other software.
· Maintainabilityà Software must be maintainable.
· Portabilityà The ability to transport the software on different systems.
· Reliabilityà A reliable program on which the client can count on.
· Reusabilityà Codes or parts of this program may be used in other software.
· Robustnessà The capacity to restart after failure.
· Usabilityà It must be user friendly.


6.0 Other Requirements
Other requirements are also necessary for the proper operation of software.

· International standards. Software must comply with international norms and standards.

· Privacy Laws. Software must be protected by the law.

· Software must be reusable. Must make use of object oriented methods.

Friday, December 7, 2007

SSAD Assignment

Data Flow Diagram : Student Management Information System


Tuesday, October 9, 2007

Real Time System

A Realtime System : A hydroelectric Power Station


Emergent System Properties


The name may seem to be quite frightening but the concept is not as difficult as the name sounds.

The easiest way to understand the definition is to break the term into 2 parts : Emergent and System.

Emergent comes from the word to Emerge, it means to arise from or stems from something.

Whereas a System can be defined as a purposeful collection of interrelated components that work together to achieve some objective. A system is composed of sub systems, modules and components. The characteristic of a sub-system is that they can operate as independant systems in their own right and they have specific properties.



When the sub-systems combine and work together as a whole new properties emerge from the system as whole and these properties are known as Emergent System properties. These properties cannot be attributed to any specific part of the system, rather they emerge only when the system as a whole is considered. The way these sub-systems interact with each other influences the successful functioning of the main system.



System Block Diagram



















Functionalities of System


  • Main Frame System

This is the mainframe computer system on which the software is set up and it is this computer that is reponsible for making descisions and carrying out these descisions.

  • Water level sensor / River
A sensor is place in the river to detect the amount of water and the speed at which the water is arriving in the Dam. Readings are taken every hour in normal weather conditions. In case of flooding or bad weather the sensor detects the speed and amount of water every minute and transmits this information to the main computer which takes the necessary actions.
  • River Door Controller
A mechanical device is implanted into the river to control the river gate. In case the mainframe computer decides from the sensor infromation it has obtained that the level and speed of water coming from the river is above normal values then as a precautionary measure it will activate the mechanism and shuts the river door.



  • Water Level sensor in Dam
This sensor has as function to detect the water level in the Dam and send continuous readings to the mainframe system. In case the water level is too low or too high it is up to the main system to decide the appropriate actions to take.
  • Blaster Door Controller in Dam
A mechanical device is implanted into the Dam to control the dam gate. In case the mainframe computer decides from the sensor information it has obtained that the level of water in the dam is below or above normal values then as a precautionary measure it will activate the mechanism and shuts or opens the dam door.



  • Actuator - Emergency outlet
This emergency outlet found at the bottom of the dam is connected directly to the Main software. The mainframe will open this outlet in case that the level of water in the dam has gone above accepted values and release this water so as not to cause overflooding.
  • Turbine Controller
A special mechanism used to control the turbine connected directly to the super computer. It is used to increase or decrease speed of the turbine depending on the time ; whether it is peak time or idle time.
  • Water level sensor in Basin
This sensor detects the water level in the basin and sends the readings to the main PC whereby the latter will take the necessary actions.
  • Evacuation outlet
The mainframe activates this outlet which is found in the basin in case of bad weather conditions and if the water level has gone above the normal level.
  • Water pump
A special pump used to pump back water into the dam when there is a lack of water in the dam or in normal conditions at night. The system uses the electricity produced by the turbine itself to activate the pump.
  • Siren / Telephone Caller
In case there is a system failure the siren is activated and an automated call is sent to the police station and fireman's department.



Emergent Properties

Functional properties : All parts of this system work together to achieve the objective of moving the turbine to produce electricity with the use of water.

Non-functional properties : Reliability, performance, safety and security. The system must be reliable in order to enable the proper function of all parts of the system. Performance must be at its maximum else the system will become unusable by its users if it is too slow. The system must also ensure safety and security for those using it, otherwise it will not be acceptable by users.




Sources of input from the Environment

  • Water (level, speed and quantity)
  • Weather which will determine the water level, speed and quantity.

Monday, October 1, 2007

System Software

Taking the same approach as above I will try to explain what a System is first so you can have a distinct idea. What’s the use of understanding system software when you can’t describe what a system is or what it does.

A system can be defined as a group of interrelated modules working together to achieve a specific task. Not pretty clear for someone who has not done IT ?? Think of your body as a system. And all its parts, i.e. all your organs are the modules of the system – your body. All of your internal organs each have a specific function but each of them work in collaboration to achieve a particular task which is keeping you alive. Applying this idea to the above statement you can now understand what a system is. Referring to the above you will see that software has already been defined so we move on to system software which is nothing but the heart of the system. In other words it is the main backbone software without which a system won’t be able to function.

Applying it to the IT domain we can extrapolate the following :

1. System software – a set of programs that organise, utilise and control hardware in a computer system.

2. System software is a generic term referring to any computer software which manages and controls the hardware so that application software can perform a task. It is an essential part of the computer system. System software contrasts with application software, which are programs that help the end-user to perform specific, productive tasks, such as word processing or image manipulation.

Examples of system software are :

1. An operating system
2. An OpenGL
3. Database library

References :

http://en.wikipedia.org/wiki/System_software
http://www.depts.alverno.edu/cil/mod1/software/system.html
http://www.webopedia.com/TERM/s/systems_software.html

Realtime Software

The best way to define this definition is to try to define each word separately. By now you have already understood the meaning of software. So now comes the concept of realtime.

What’s Realtime?

Realtime refers to the situation where something is happening at a particular instant.

So what does that have to do with IT? Infact you will be amazed at the numerous instances where realtime is being used in the IT domain. But before moving on to these examples it is crucial that you understand what is a realtime system and thus realtime software.

According to me, a Realtime system can be defined as any system which has to respond very quickly within a specific timeframe to produce a change in the system taking into account the situation at that particular time and what has been input into the system.

Real time systems can be categorised into 2 types : Soft realtime and Hard realtime.

1. A Soft Realtime system is one which can still accept some lateness in producing change in the system without any damage to the system.

2. A Hard Realtime system is a system which has been designed in a such a way that if it doesn’t respond to a particular situation in a predefined amount then the system crashes and there might be considerable damage if something like that happens.

Realtime software

Is nothing but a software that has been designed to work with a real time system. In other words, a software that must cater for the needs of the system and produce change in the system as required.

Applications of Realtime software are :

1. A nuclear power plant
2. An airline booking system

Issues in Real-time System Design are :

1. Realtime Response
2. Recovering from Failures
3. Working with Distributed Architectures
4. Asynchronous Communication
5. Race Conditions and Timing

References :

http://en.wikipedia.org/wiki/Real-time_computing
http://www.eventhelix.com/RealtimeMantra/IssuesInRealtimeSystemDesign.htm

Business Software

Analyzing this term we get 2 distinct words : Business and Software

So what’s a business?

A business can be defined as any transaction resulting in profit or loss for an individual or a particular organization.

Now moving onto the required definition.....

Business software is generally any software program that helps a business increase productivity or measure their productivity. The term covers a large variation of uses within the business environment, and can be categorized by using a small, medium and large matrix:

1. The small business market generally consists of home accounting software, and office suites such as Microsoft Office and OpenOffice.org.

2. The medium size, or SME, has a broader range of software applications, ranging from accounting, groupware, customer relationship management, human resources software, loan origination software, shopping cart software, field service software, and other productivity enhancing applications.

3. The last segment covers enterprise level software applications, such as those in the fields of enterprise resource planning, enterprise content management (ECM), business process management and product lifecycle management. These applications are extensive in scope, and often come with modules that either add native functions, or incorporate the functionality of third-party software programs.

Now, technologies that have previously only existed in peer-to-peer software applications, like Kazaa and Napster, are starting to feature within business applications.
JXTA is an open source platform that enables the creation of machine and language neutral applications. Peer based applications will be especially useful for aggregating the information at the edge of the network that currently resides in the neurons of the users themselves.
Reference :

Engineering / Scientific Software

Applying the same working principle, understanding the meaning of scientific will greatly help you to understand the idea of scientific software.

Scientific : Is a term to describe anything that has to do with science…

Shifting.......

Scientific software: It is a powerful specialised science based software that has been designed to help scientists and engineers in their work. The characteristics of this software is that it can deal with very large amount of data at a time and has heavy processing capabilities. By this I mean that the software can calculate very complex expressions in an analytic form and deliver the result almost instantaneously depending on the situations where they are used.

This type of software finds its place in almost all sciences. Applications of this software are :

1. Behavioral and social sciences: Examples are criminal science, psychology, political science.

2. Statistical software

3. Evironmental science:

4. Weather forecasts and for space programs in the NASA department.

5. Oil detection program: It is a scientific software used to detect the presence of oil under the sea by analyzing certain factors.