J.E.D.I
1.5 Understanding Systems
The software project that needs to be developed revolves around systems. Systems consists of a group of entities or components, interacting together to form specific
interrelationships, organized by means of structure, and working together to achieve a common goal. Understanding systems provides a context for any project through the
definition of the boundaries of the projects. It asks the question, What is included in the project? What is not? In defining the system boundaries, a software engineer
discovers the following:
• entities or group of entities that are related and organized in some way within the system, either they provide input, do activities or receive output;
• activities or actions that must be performed by the entities or group of entities in order to achieve the purpose of the system;
• a list of inputs; and • a list of outputs.
As an example, Figure 1.10 shows the system boundaries of the case study. It shows elements of this system through the use of the context diagram.
Entities that are involved in this system are the applicant, club staff and coach. They are represented as rectangular boxes. They are related with one another by performing
certain activities within this system. The major activities that are performed are the submission of the application forms, scheduling of mock try-outs and the assignment of
the applicant to a squad. They are represented by a circle in the middle that defines the functionality of maintaining club membership information. To perform these actions, a
list of inputs are necessary, specifically, application forms and the schedule of the mock try-outs. They are represented by an arrow with the name of the data being passed.
The arrow head indicates the flow of the data. The results that are expected from this system are the membership reports and importantly, the squad listings. Again, they are
represented by an arrow with the name of the data being passed. The arrow head
Software Engineering 25
Figure 1.10 Club Membership Application System Boundaries
ACTIVITIES:
submit application schedule mock try-outs
assign applicants to a squad Applicant
Club Staff Coach
Club Staff
ENTITIES ENTITIES
application form mock
try-out schedule
membership reports
squad listings
INPUTS OUTPUTS
J.E.D.I
indicates the flow of the data. The goal of this system is to handle club membership application.
General Principles of Systems
Some general principles of systems are discussed below. This would help the software engineer study the system where the software project revolves.
• The more specialized a system, the less it is able to adapt to different circumstances. Changes would have a great impact on the development of
such systems. One should be carefully that there is no dramatic changes in the environment or requirements when the software is being developed.
Stakeholders and developers should be aware of the risks and costs of the changes during the development of the software.
• The larger the system is, the more resources must be devoted to its everyday maintenance. As an example, the cost of maintaining a mainframe is very
expensive compared to maintaining several personal computers. • Systems are always part of larger systems, and they can always be partitioned
into smaller systems. This is the most important principle that a software engineer must understand. Because systems are composed of smaller
subsystem and vice versa, software systems can be developed in a modular way. It is important to determine the boundaries of the systems and their
interactions so that the impact of their development is minimal and can be managed and controlled.
Components of Automated Systems
There are two types of systems, namely, man-made systems and automated systems. Man-made systems are also considered manual systems. They are not perfect. They
will always have areas for correctness and improvements. These areas for correctness and improvements can be addressed by automated systems.
Automated systems are examples of systems. It consists of components that supports the operation of a domain-specific system. In general, it consists of the following:
1. Computer Hardware. This component is the physical device. 2. Computer Software. This component is the program that executes within the
machine. 3. People. This component is responsible for the use of the computer hardware
and software. They provide the data as input, and they interpret the output information for day-to-day decisions.
4. Procedures. This component is the policies and procedures that govern the operation of the automated system.
5. Data and Information. This component provides the input data and output information.
6. Connectivity. This component allows the connection of one computer system with another computer system. It is also known as the network component.
Software Engineering 26
J.E.D.I
Figure 1.11 shows the relationship of the first five components.
Lets take a look of an application domain-specific illustration of an automated system. Figure 1.12 shows the automated system of the club membership application processing.
Software Engineering 27
Figure 1.11 Components of An Automated System
1 COMPUTER
HARDWARE
2 COMPUTER
SOFTWARE 4
MANUAL PROCEDURE
Input 4
COMPUTERIZED PROCEDURE
Processing 4
MANUAL PROCEDURE
Output 3
PEOPLE 3
PEOPLE
Input Data Monitor Activities
Read Procedural Manuals Review Information
Make Decisions Change Procedural Rules
5 DATA
5 INFORMATION
Figure 1.12 Club Membership Application Computer System
INPUT PHASE PROCESSING
PHASE OUTPUT PHASE
STORAGE PHASE Membership Mock Try-Outs Squad Listings Applications Schedule
Club Membership Application
Squad Listings Reports for
Club Membership
J.E.D.I
The information from the Club Membership Application is entered into the system. The applicant is schedule for a mock-try out. This schedule is retrieved from storage. Once
an applicant is assigned to a squad, this information is entered into the system so that the Squad Listing Report is produced.
Software Engineering 28
J.E.D.I
1.6 Understanding People in the Development Effort