Understanding Systems | Komputasi | Suatu Permulaan

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