infosysPrt2.pdf
Document Details
Uploaded by KidFriendlyAllegory2168
Tags
Full Transcript
INFORMATION SYSTEMS Part 02 Requirements specification In the context of SSADM (Structured Systems Analysis and Design Method), the requirements specification is a crucial document that outlines the detailed functional and non-functional...
INFORMATION SYSTEMS Part 02 Requirements specification In the context of SSADM (Structured Systems Analysis and Design Method), the requirements specification is a crucial document that outlines the detailed functional and non-functional requirements of the proposed information system. We should create such a document because; The documentation process is the standard communication medium between different stakeholders within the development process. It typically includes; Functional requirements Non-functional requirements Constraints Assumptions and dependencies Etc. Logical design In simple terms, this phase includes making plans and high level illustrations (modeling in the context of software development). Few examples for such illustrations and plans are; Data Flow Diagrams Document Flow Diagrams Activity diagrams Flow charts Class diagrams Etc. Data flow diagrams (DFD) This type of illustrations is used to show flow of data between different system entities. An entity in the context of software development may be anything including human, place, vehicle, animal or another system. This is the highest level modelling of DFDs. We can list 2 types of DFDs; Level 0 DFD (context diagrams) Level 1 DFD ADVANCED LEVEL ICT - BHANUKA WICKRAMASINGHE 1 INFORMATION SYSTEMS Part 02 Context diagrams We use context diagrams to show data flows between the considering system and external entities only. Here we do not consider the internal processes or mechanisms within the considering system when making the illustration. We use following symbols for context diagrams. Symbol Usage To illustrate the considering system To illustrate external entities To show data flows between the considering system and external entities To show data flows between external entities ADVANCED LEVEL ICT - BHANUKA WICKRAMASINGHE 2 INFORMATION SYSTEMS Part 02 Example 01; Consider about an online system for a library (library management system). An applicant can apply for the membership by sending a filled-application form to the system. There a validation panel in the library management system who follows a section criterion which is a data store and they check sent filled applications by applicants. If there is no error and if the applicant has successfully passed the selection criteria, panel sends membership credentials to the applicant after updating the databases in the system. If an applicant fails the selection criterion, the panel sends a rejection letter through the system. Once an applicant receives membership credentials, he becomes a member of the system. If a member wants to use the library management system, first he should enter membership credentials. Then he selects the service type needs. After that the system sends information according to member’s selection. Steps; 1. First identify the considering system and external entities. 2. Identify correct data flows between the system and external entities. 3. Do not consider about internal mechanisms, data stores although information about them has been given in the scenario. 4. The same person can act one or more roles. Example; the same person can act as an applicant as well as a member. No matter who the person is, draw separate external entities for each role. 5. Draw both positive and negative cases. Example; if the applicant passes or if the applicant fails both cases. 6. Make your own assumptions if any. ADVANCED LEVEL ICT - BHANUKA WICKRAMASINGHE 3 INFORMATION SYSTEMS Part 02 Level 1 DFD We use level 1 DFD to illustrate internal mechanism as well as external entity data flows. This is more in-detailed than context diagrams. Since this diagram is more in- detailed, we use different symbols from context diagrams. Symbol Usage To illustrate a Process Types; To illustrate a Data store D – digital (hard disk) M – manual (hand written document) T – temporary (File tray, cardboard file, file box, file cabinet) To illustrate an External entity To show data flows between the considering system and external entities ADVANCED LEVEL ICT - BHANUKA WICKRAMASINGHE 4 INFORMATION SYSTEMS Part 02 To show data flows between external entities Steps; 1. Here we should care about internal processes, data stores, data flows and external entities as well. Read carefully the given scenario. 2. External entities should be found first. Because an entity only initiates a process. 3. A process is an action done by an internal personnel or internal subsystem. (such as accountant, accounting system) 4. A data store can be any type data store. It can be a table written on a paper. The term ‘data store’ may not be given. 5. Multiple processes done by the same activator can be listed within the same process box or multiple process boxes. Process ID (or numbers) can be applied. Level 1 DFD rules. Data cannot flow between two entities. o Data flow must be from entity to a process or a process to an entity. There can be multiple data flows between one entity and a process. Data cannot flow between two data stores o Data flow must be from data store to a process or a process to a data store. Data flow can occur from one data store to many processes. Data cannot flow directly from an entity to data store o Data Flow from entity must be processed by a process before going to data store and vice versa. A process must have at least one input data flow and one output data flow o Every process must have input data flow to process the data and an output data flow for the processed data. A data store must have at least one input data flow and one output data flow o Every data store must have input data flow to store the data and an output data flow for the retrieved data. Two data flows cannot cross each other. All the process in the system must be linked to minimum one data store or any other process. Rules for Data Flow Diagram – GeeksforGeeks ADVANCED LEVEL ICT - BHANUKA WICKRAMASINGHE 5 INFORMATION SYSTEMS Part 02 Exercises 1. In a University Course Registration System, students initiate the registration process by accessing the system and selecting courses for the upcoming semester. Their course selections are transmitted to the registration system, which verifies eligibility, checks for schedule conflicts, and reserves seats in the selected courses by the system administrator. Simultaneously, student registration data, including course preferences and personal information, are updated in the “university's student” database. Upon confirmation, students receive notifications of their course registrations and any additional requirements sent by the notification handler. Notification handler use information from “university’s student” and “eligible student” data stores. In parallel, the system administrator generates course schedules and class schedules, which are distributed to academic departments and instructors. Administrative tasks, such as managing waitlists, processing course withdrawals, and coordinating classroom assignments, are also facilitated within the system done by system administrator, ensuring efficient course enrollment processes and academic operations. Those details are sent to the faculty dean every month. 2. Customers calls the receptionist and receptionist browses through available restaurant menus, selecting desired items for purchase as customer request. The receptionist use “food inventory” database in the computer. Upon checkout, customer orders are transmitted to the respective restaurants, with details such as order items, quantities, and delivery addresses. Restaurants receive and process orders, preparing food items for delivery or pickup. Each restaurant stores order details in “order details” data store. Simultaneously, delivery information is sent to the designated delivery service or drivers, who then transport the orders to customers. Customers receive their orders and provide feedback to the receptionist, on the service and food quality, which is recorded in the system in “feedback” database for review. ADVANCED LEVEL ICT - BHANUKA WICKRAMASINGHE 6 INFORMATION SYSTEMS Part 02 3. Applicant first registers at the circulation desk clerk, providing their personal information, which is stored in the library database called “members” after checking the minimum requirements with the criterion read from a table called “criterion table”. Each member is given a membership card. When a member wishes to borrow books, he submits requests at the circulation desk clerk. The circulation clerk checks the availability of the requested books in the “book inventory” database and processes the loan transaction, updating the system with borrower details and due dates on “borrowed books” database. Simultaneously, the system adjusts the book inventory to reflect the borrowed items. Upon return, applicant submit the borrowed items to the circulation desk, where the clerk scans them back into the system, updating the “book inventory” and clearing the borrower's record from “borrowed books”. Additionally, the clerk generates overdue notices for applicant with late returns, prompting them to return materials promptly. On administrator request, the librarian conducts inventory checks, physical counts with the database records, and updating differences as necessary. Tasks done by librarian, such as managing fines, adding new books to the collection, and generating reports, are also handled within the system, ensuring efficient library operations. Physical design This is the final phase in the SSADM which develops the actual system, tests it and finalizes. We can divide this step into several sub phases. These are the tasks done within the physical design main phase. 1. We develop the actual system designed in the previous phase. (i.e. implementation) 2. We test it by validating and verification. (i.e. testing) 3. We deploy it. (i.e. deployment) After that we can perform after-services such as maintenance. Software development This is the process which builds up the actual system. System or software developers use different programming languages, frameworks and libraries for different purposes. E.g.: In a web application, The front-end is developed by using React or pure JavaScript in the majority cases. Database is developed by using MongoDB in the majority cases. ADVANCED LEVEL ICT - BHANUKA WICKRAMASINGHE 7 INFORMATION SYSTEMS Part 02 Back-end is developed by using Express.js and Node.js in the majority cases. Testing Software testing is a critical process in the development of software applications, ensuring that they meet quality standards and perform as expected. It involves evaluating the functionality, reliability, performance, and security of software to identify defects and ensure it meets the requirements and expectations of users. The primary purpose of software testing is to discover defects or bugs in the software and ensure that it operates correctly and efficiently according to client requirements. For further knowledge; There are several processes in software testing. Typically, these processes are done in an iterative manner. Test Planning: Define test objectives, scope, resources, and timelines. Test Design : Create test cases and test scenarios based on requirements and specifications. Test Execution : Execute test cases, record results, and report defects. Defect Tracking: Document and track defects found during testing, prioritize them based on severity and impact, and ensure they are resolved. Test Reporting: Generate test reports to communicate the status of testing activities, including test coverage, defect metrics, and overall quality. Types of software testing 1. Unit testing Unit testing is the process of testing individual components or units of software in isolation to ensure they function correctly. The primary goal of unit testing is to validate that each unit of the software performs as expected according to its design and requirements. Unit testing focuses on testing small, independent parts of the software, such as functions, methods, or classes, typically at the code level. 2. Integration testing Integration testing verifies the interactions and interfaces between different components (units) or modules of the software to ensure they work together as intended. The main objective of integration testing is to discover defects related to the integration points between components and to validate the overall behavior of the system. ADVANCED LEVEL ICT - BHANUKA WICKRAMASINGHE 8 INFORMATION SYSTEMS Part 02 Integration testing focuses on testing the interactions between units or subsystems, ensuring that data flows correctly and that communication between components is seamless. 3. System testing System testing evaluates the behavior and functionality of the entire software system as a whole to ensure it meets the specified requirements and performs as expected in its intended environment. The primary goal of system testing is to validate the overall quality and readiness of the software for release to end-users. System testing encompasses testing the system's functionality, performance, reliability, usability, and security in a controlled environment that simulates the production environment. 4. Acceptance testing Acceptance testing (also known as user acceptance testing or UAT) is the final phase of testing conducted to validate whether the software meets the business requirements and is acceptable for delivery to end-users. * Business requirements define what the software should achieve from a business perspective, including functionalities, features, and constraints necessary to support business processes and operations. The primary objective of acceptance testing is to obtain confirmation from stakeholders, including users and customers, that the software meets their expectations and is fit for purpose. Acceptance testing focuses on validating the software's compliance with business requirements, user needs, and acceptance criteria defined during the requirements elicitation phase. So above mentioned, the types of software testing. There are 2 main methods to achieve software testing. 1. Black-box testing Black-box testing is a testing technique where the internal structure, design, or implementation details of the software are not known to the tester. Instead, testing is based solely on the software's external behavior and functionality. Black-box testing emphasizes validating the software's functionality against specified requirements, inputs, and expected outputs, without any knowledge of its internal workings. Advantages Encourages a focus on user perspective and requirements. Testers do not need to have knowledge of programming languages or internal code structures. ADVANCED LEVEL ICT - BHANUKA WICKRAMASINGHE 9 INFORMATION SYSTEMS Part 02 Tests are more likely to uncover defects related to incorrect behavior or discrepancies between requirements and implementation. Disadvantages Limited ability to uncover certain types of defects, such as logic errors or performance issues that may require knowledge of internal code. Test coverage may be influenced by the quality of requirements and documentation. 2. White-box testing White-box testing, also known as structural or glass-box testing, is a testing technique where the tester has knowledge of the internal structure, code, and implementation details of the software being tested. White-box testing focuses on validating the internal logic, paths, and structures of the software, including statements, branches (if-else conditions), loops, and conditions. The tester must have the development knowledge to perform white-box testing. Advantages Provides insights into the internal behavior of the software and helps uncover defects related to code correctness, control flow, and data flow. Allows for detailed coverage of code paths, leading to higher confidence in the software's reliability and robustness. Can be useful for performance optimization, code refactoring, and debugging. Disadvantages Requires knowledge of programming languages and internal code structures, making it more complex and potentially time-consuming. Test cases may be biased towards code implementation details rather than user requirements, leading to gaps in coverage. May not uncover defects related to external behavior or interactions with other components. ADVANCED LEVEL ICT - BHANUKA WICKRAMASINGHE 10 INFORMATION SYSTEMS Part 02 Deployment Deployment in software development refers to the process of making a software application or system available for use by end-users. It involves transferring the developed software from a development environment to a production environment where it can be accessed and utilized by its intended audience. In simple terms, deployment refers to application in the use. This is also an iterative process done according to a plan. There are several deployment methods which can be used according to different scenarios. 1. Direct deployment 2. Parallel deployment 3. Phase deployment 4. Pilot deployment Direct deployment In direct deployment, the new version of the software replaces the existing version in the production environment in a single step. Advantages Simplicity: Direct deployment is straightforward and requires minimal coordination. Reduced Complexity: There is no need to maintain multiple versions of the software simultaneously. Disadvantages Risk of Downtime: If issues arise during deployment, there is a risk of prolonged downtime affecting users. Limited Rollback Options: Rollback may be challenging if problems occur after deployment, as the previous version may not be readily available. ADVANCED LEVEL ICT - BHANUKA WICKRAMASINGHE 11 INFORMATION SYSTEMS Part 02 Parallel deployment During parallel deployment, the new version of the software is deployed alongside the existing version, but users continue to access the old version until the new version is fully tested and verified. Advantages Reduced Risk: Running the old and new versions in parallel allows for testing and validation of the new version without impacting users. Easy Rollback: If issues occur with the new version, it can be easily deactivated, and users can revert to the old version. Disadvantages Increased Complexity: Parallel deployment requires additional infrastructure and resources to support both versions concurrently. Synchronization Challenges: Ensuring data consistency and synchronization between the old and new versions can be complex. Phase deployment The new version is initially deployed to a small subset of users or environments, such as beta testers or internal teams, for validation and testing. Once validated, the deployment is gradually expanded to larger user groups or environments until it reaches full deployment. ADVANCED LEVEL ICT - BHANUKA WICKRAMASINGHE 12 INFORMATION SYSTEMS Part 02 Advantages Controlled Rollout: Phased deployment allows for controlled and gradual adoption of the new version, minimizing the impact of any issues or defects. Early Feedback: Early adopters provide feedback that can be used to identify and address issues before full deployment. Disadvantages Longer Deployment Timeline: Phased deployment may result in a longer overall deployment timeline, especially for large-scale deployments. Coordination Challenges: Coordinating deployments across multiple phases and environments can be challenging and require careful planning. Pilot deployment A small group of users or locations is chosen to participate in the pilot deployment, where they use the new version of the software in their production environment. Feedback and performance data are collected during the pilot period to evaluate the software's effectiveness and identify any issues or areas for improvement. Advantages Real-World Testing: Pilot deployment allows for real-world testing of the new version in a controlled environment, providing valuable insights before full deployment. Risk Mitigation: Identifying and addressing issues during the pilot phase helps mitigate risks and improve the success rate of full deployment. Disadvantages Limited Scope: Pilot deployment may not capture all possible scenarios or user interactions, leading to potential gaps in testing coverage. Time and Resources: Pilot deployment requires additional time and resources to coordinate and manage, particularly if multiple pilots are conducted in different environments. ADVANCED LEVEL ICT - BHANUKA WICKRAMASINGHE 13 INFORMATION SYSTEMS Part 02 After deployment process, Data migration Data migration encompasses extracting data from the source system, transforming it as necessary, and loading it into the target system while preserving data integrity, consistency, and accuracy. User training User training programs may include instructor-led training sessions, self-paced online courses, documentation, user manuals, tutorials, and hands-on workshops. Review, Support, and Maintenance Review, support, and maintenance activities encompass monitoring system performance, collecting user feedback, addressing issues and defects, implementing software updates and patches, and optimizing system configurations. System development with commercial off-the-shelf (COTS) systems A COTS (Commercial Off-The-Shelf) system refers to pre-built software applications or systems that are commercially available and ready for purchase or licensing. These systems are developed by third-party vendors and are designed to be used by multiple customers across different industries or domains. COTS solutions offer a range of functionalities, allowing organizations to leverage existing software products rather than developing custom solutions from scratch. Features of a COTS system Vendor Support and Maintenance: COTS vendors provide ongoing support, maintenance, and updates for their software products. This includes technical support services, bug fixes, software patches, and updates to address security vulnerabilities or compatibility issues. Rapid Deployment: COTS systems can be deployed relatively quickly compared to custom-built solutions, as they are already developed, tested, and ready for use. This enables organizations to realize the benefits of the software more rapidly and accelerate time-to-market for their business initiatives. Pre-built Functionality: COTS systems come with a set of pre-built functionalities, features, and capabilities designed to address common business needs or requirements. These functionalities are typically standardized and may be customizable to some extent to accommodate specific use cases or configurations. ADVANCED LEVEL ICT - BHANUKA WICKRAMASINGHE 14 INFORMATION SYSTEMS Part 02 Scalability and Flexibility: COTS systems are often designed to be scalable and flexible, allowing organizations to adapt and expand their usage as their business needs evolve. Many COTS solutions offer modular architectures, integrations with other systems, and customization options to meet specific requirements. Note :- Although we use COTS system, we should perform requirements analysis because; Gap Analysis: Requirements analysis allows organizations to conduct a gap analysis to compare the capabilities of the COTS system with their current and desired future state. Customization Needs: While COTS systems offer pre-built functionalities, organizations often require customization to adapt the software to their unique business processes, workflows, and requirements. Requirements analysis helps identify the customization needs and ensures that the selected COTS solution can be tailored to meet those needs effectively. Integration Requirements: Organizations may need to integrate the COTS system with existing software applications, databases, or IT infrastructure. Requirements analysis helps identify integration requirements, such as data exchange formats, communication protocols, and system interfaces, to ensure seamless interoperability between systems. User Needs and Preferences: Understanding the needs, preferences, and expectations of end-users is critical to the successful adoption and utilization of the COTS system. Requirements analysis helps capture user requirements, usability requirements, and user experience (UX) considerations to ensure that the COTS solution meets the usability and accessibility needs of its intended users. In simple terms, requirements analysis helps us o to choose which services the system should offer o which COTS system is most suitable o which components should be derived o which modifications should be applied to the derived or selected components. ADVANCED LEVEL ICT - BHANUKA WICKRAMASINGHE 15