Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Previously, we learnt that software applications are developed to meet the business needs of organizations for which they are designed. In any software engineering projects, designing of application architecture is essential to help in understanding of the business logic graphically. Although the logic may be explained in plain English or English like statements, otherwise known as Psydocode. Yet, as a software engineer, you cannot escape the use of these architectures at least to avoid the cumbersome nature of writing business logic in using plain text. When developing simple systems, it is ok to use simple architectural model. However, when dealing with complex systems, you have to make use of a hybrid architecture. By hybrid, we mean that each sub-system has to be considered and designed separately for later integration into the complex whole. In this course, we are going to consider some generic models of application systems architectures, in order to help us to:
understand the operation of applications, compare applications of the same type, validate application system designs and assess system components for reuse.
In practice, many software applications either fall into one of the above four classes or are combinations of them, thus in summary;
Data processing systems operate in batch mode and generally have an input-processoutput structure. Records are input into the system, the information is processed and outputs are generated. Transaction processing systems are interactive systems that allow information in a database to be remotely accessed and modified by a number of users. Information systems and resource management systems can be seen as examples of transaction processing systems. Event processing systems include editing systems and real-time systems. In an editing system, user interface events are interpreted and an in-store data structure is modified. Word processors and presentation systems are examples of editing systems. Language processing systems are used to translate texts from one language into another and to carry out the instructions specified in the input language. They include a translator and an abstract machine that executes the generated language.
2
In data processing systems, data are input /output in batches from a file or database rather than from /output to a user terminal. These systems select data from the input records and, depending on the value of fields in the records, take some actions specified in the program. They may then write back the result of the computation to the database and format the input and computed output for printing. The architecture of batch processing systems has three major components, thus;
An input component collects inputs from one or more sources; a processing component makes computations using these inputs; and an output component generates outputs to be written back to the database and printed. These components can be presented graphically as follows:
3
An input component may read some data (input) from a file or database, check the validity of that data and correct some errors (process), then queue the valid data for processing (output). A processing component may take a transaction from a queue (input), perform some computations on the data and create a new data record by recording the results of the computation (process), then queue this new record for printing (output). Sometimes the processing is done within the system database and sometimes it is a separate program. An output component may read records from a queue (input), format these according to the output form (process), then send them to a printer or write new records back to the database (output). some data processing systems are naturally function-oriented rather than object-oriented, in which case records or transactions are processed serially with no need to maintain state across transactions. When designing function-oriented systems, Data-flow diagrams are used where; each round-edged rectangle in the data flow represents a function that implements some data transformation, and each arrow represents a data item that is processed by the function. 4 Files or data stores are represented as rectangles.
Example of transaction2:
A customers request to withdraw money from a bank account using an ATM. This involves:
getting details of the customers account, checking the balance, modifying the balance by the amount withdrawn and sending commands to the ATM to deliver the cash.
Until all of these steps have been completed, the transaction is incomplete and the customer accounts database remain unchanged This type of system can be represented graphically as follows:
8
The above TPS allows customers to query their accounts and withdraw cash from an ATM. The system is composed of two cooperating software sub-systems:
the ATM software and the account processing software in the banks database server. The input and output sub-systems are implemented as software in the ATM, whereas the processing subsystem is in the banks database server. In the Figure above, some detail to the basic input-process-output to show components that may be involved in the input, processing and output activities were added., without details of how these internal components interact,. This is because sequence of operation may differ from one machine to another. Therefore, it is essential to know the target machine before designing the software.
9
11
i.
Distributed search allows searching for documents in response to user queries across all of the libraries that have registered with the system. The list of known libraries is maintained in the library index. ii. Document retrieval retrieves the document(s) that are required by the user from the server running the Library System Application Software. Rights manager handles all aspects of digital rights management and copyright. It keeps track of who has requested documents and, for example, ensures that the same person does not send multiple request for same document at the same time. Accounting This component logs all requests and, if necessary, handles any charges that are made by the libraries in the system. It also produces management reports on the use of the system.
12
14
Quiz
Classify this model according to a particular information System
15
The water fall is mostly concerned with Requirements discovery Requirements documentation Requirements checking
16
17
Requirements Elicitation
In requirements engineering, the requirements elicitation is the practice of obtaining the requirements of a system from users, customers and other stakeholders. The practice is also sometimes referred to as requirements gathering. The term elicitation is used in books and research to raise the fact that good requirements can not just be collected from the customer, as would be indicated by the name requirements gathering. Requirements elicitation is non-trivial because you can never be sure you get all requirements from the user and customer by just asking them what the system should do. Requirements elicitation practices include interviews, questionnaires, user observation, workshops, brain storming, use cases, role playing and prototyping.
19