Nội dung text Last Minutes Preparations.pdf
Feasibility Analysis is the crucial process of assessing the viability of a proposed project or venture, aiming to identify potential issues that may arise during implementation. It encompasses various types of feasibility: 1. **Economic Feasibility:** This assesses the financial viability of the project by considering costs, revenues, profits, funding sources, and overall return on investment (ROI). Techniques like break- even analysis, net present value (NPV), and internal rate of return (IRR) are employed. 2. **Technical Feasibility:** It evaluates whether the project can be executed with available technology and resources. This involves identifying technical requirements, assessing resource availability, compatibility with existing systems, cost- benefit analysis, and managing technical risks. 3. **Operational Feasibility:** This examines whether the project can be integrated into the existing organizational structure efficiently. Factors include assessing organizational impact, resource availability, compliance with policies, managing operational risks, and establishing support and maintenance plans. 4. **Schedule Feasibility:** Focuses on whether the project can be completed within the specified time frame. It considers milestones, resource availability, task dependencies, schedule risks, and project monitoring and control. 5. **Legal and Contractual Feasibility:** Assesses compliance with relevant laws, regulations, and contracts. It involves ensuring alignment with environmental, health and safety, and data privacy regulations and taking necessary steps to achieve compliance. 6. **Political Feasibility:** Examines whether the project is likely to gain support from relevant political stakeholders and decision-makers. This includes identifying stakeholders, evaluating political priorities and risks, securing funding and approvals, and building necessary support and alliances. Each type of feasibility analysis serves to provide decision-makers with a comprehensive understanding of the project's potential and challenges, aiding in the decision-making process regarding project initiation. Qualities and Skills of System Analysts: 1. **Communication Skills:** System analysts interact extensively with various stakeholders, including users, management, and developers. Effective communication is vital for conveying project specifications, necessary adjustments, and test results. Proficiency in both verbal and written communication is essential. 2. **Technical Acumen:** System analysts need a solid understanding of IT technologies to identify system solutions, explore potential enhancements for existing systems, and leverage the latest technology trends. They must be well-versed in system design methodologies. 3. **Analytical Abilities:** An analyst must possess strong analytical skills to assess client needs and convert them into actionable application and organizational requirements. Analyzing data, user feedback, workflows, and information is integral to problem-solving and decision- making. 4. **Problem-Solving Aptitude:** System analysts are frequently tasked with devising effective solutions to various challenges, as IT environments are prone to regular changes and unexpected issues. The ability to swiftly address problems and ensure project efficiency is crucial. 5. **Decision-Making Proficiency:** Making informed decisions is a key skill for system analysts. They serve as management consultants and advisor to developers, often determining the feasibility of systems. Analyzing situations, gathering stakeholder feedback, and choosing the appropriate course of action are essential aspects of this role. 6. **Managerial Competence:** System analysts must possess project management skills to oversee projects successfully. This involves defining project scope, leading teams, managing change requests, budget forecasting, and adhering to project timelines. Managing projects of various sizes concurrently demands strong managerial abilities. System analysts play a critical role in bridging the gap between technology and business needs, necessitating a well- rounded skill set that encompasses communication, technical expertise, analytical thinking, problem-solving, decision-making, and effective project management. Methods of Interaction 1. Command Language Interaction: In command language interaction, the user enters explicit statements to invoke operations within a system. This type of interaction requires users to remember command syntax and semantics. Command language interaction places a substantial burden on the user to remember names, syntax, and operations. 2. Menu Interaction: Asignificant amount of interface design research has stressed the importance of a system’s ease of use and understandability. Menu interaction is a means by which many designers have accomplished this goal. A menu is simply a list of options; when an option is selected by the user, a specific command is invoked or another menu is activated. 3. Form Interaction : The premise of form interaction is to allow users to fill in the blanks when working with a system. Form interaction is effective for both the input and presentation of information. An effectively designed form includes a self-explanatory title and field headings, has fields organized into logical groupings with distinctive boundaries, provides default values when practical, displays data in appropriate field lengths, and minimizes the need to scroll windows. 4. Object-Based Interaction : The most common method for implementing object- based interaction is through the use of icons. Icons are graphic symbols that look like the processing option they are meant to represent. Users select operations by pointing to the appropriate icon with some type of pointing device. The primary advantages to icons are that they take up little screen space and can be quickly understood by most users. 5. Natural Language Interaction: One branch of artificial intelligence research studies techniques for allowing systems to accept inputs and produce outputs in a conventional language such as English. This method of interaction is referred to as natural language interaction. Presently, natural language interaction is not as viable an interaction style as the other methods presented.
Normalization 1. First Normal Form (1NF): - Each table must have a primary key that uniquely identifies each row. - Each column in a table must contain atomic (indivisible) values, i.e., no repeating groups or arrays. 2. Second Normal Form (2NF): All non-key attributes (columns) must be fully functionally dependent on the entire primary key. In other words, each non-key attribute should rely on the entire primary key, not just part of it. 3. Third Normal Form (3NF): There should be no transitive dependencies. This means that if attribute A depends on attribute B, and attribute B depends on attribute C, then attribute A should not depend on attribute C. 4. Boyce-Codd Normal Form (BCNF): For every non-trivial functional dependency, the left-hand side (determinant) must be a superkey. In simpler terms, if there's a dependency between attributes, the attributes on the left side must be able to uniquely identify the attributes on the right side. 5. Fourth Normal Form (4NF): It deals with multi-valued dependencies, ensuring that there is a separate table for multi-valued attributes. 6.Fifth Normal Form (5NF) or Project- Join Normal Form (PJNF): It addresses cases where a database has two or more overlapping composite candidate keys, ensuring that the table is decomposed to eliminate these overlaps. Types of testing 1.Unit Testing: Focuses on individual units or components of the software to verify that they work as expected. Developers often write unit tests to test specific functions or methods. 2.Integration Testing: Tests the interactions between different components or modules to ensure that they work together correctly when integrated into the system. 3.System Testing: Evaluates the entire software system to ensure it meets the specified requirements and functions correctly as a whole. 4. Stub Testing: Involves testing a partially developed or incomplete component (stub) to simulate the behavior of the missing parts of the system. 5. User Acceptance Testing (UAT): Conducted by end-users to validate that the software meets their needs and requirements and is ready for production use. 6. Alpha Testing: Testing conducted by a select group of users or testers within the development organization before beta testing to uncover early issues 7. Beta Testing: Testing conducted by a larger group of external users to gather real-world feedback and identify any issues before a full release. Types of Installation Direct installation: Changing over from the old information system to a new one by turning off the old system when the new one is turned on. Any errors resulting from the new system will have a direct impact on the users. If the new system fails, considerable delay may occur until the old system can again be made operational and business transactions are reentered to make the database up to date. Direct installation can be very risky. Direct installation requires a complete installation of the whole system. Parallel installation: Running the old information system and the new one at the same time until management decides the old system can be turned off. All of the work done by the old system is concurrently performed by the new system. Outputs are compared to help determine whether the new system is performing as well as the old. Errors discovered in the new system do not cost the organization much, if anything, because errors can be isolated and the business can be supported with the old system. Because all work is essentially done twice, a parallel installation can be very expensive, running two systems implies employing two staffs to operate and maintain. Pilot installation: It is also known as single-location installation. Rather than converting all of the organization at once, single location installation involves changing form the current to the new system in only one place or in a series of separate sites over time. The single location may be a branch office, a single factory, or one department, and the actual approach used for installation in that location may be any of the other approaches. The key advantage to single location installation is that it limits potential damage and potential cost by limiting the effects to a single site. Once management has determined that installation has been successful at one location, the new system may be deployed in the rest of the organization, possibly continuing with installation at one location at a time. Phased installation: It is also called staged installation. Different parts of the old and new systems are used in cooperation until the whole new system is installed. By converting gradually, the organization's risk is spread out over time and place. Also phased installation allows for some benefits from the new system before the whole system is ready. For example, a new data-capture methods can be used before all reporting modules are ready. For a phased installation, the new and replaced systems must be able to coexist and probably share data. Thus bridge programs connecting old and new databases and programs often must be built. Types of Maintenance: Corrective maintenance: It refers to changes made to repair defects in the design, coding, or implementation of the system. This type of maintenance implies removing errors in a program, which might have crept in the system due to faulty design or wrong assumptions. Thus, in corrective maintenance, processing or performance failures are repaired. Adaptive maintenance: In adaptive maintenance, program functions are changed to enable the information system to satisfy the information needs of the user. It involves making changes to an information system to evolve its functionality to changing business needs or to migrate it to a different operating environment. Within a home, adaptive maintenance might be adding storm windows to improve the cooling performance of an air conditioner. Perfective maintenance: Perfective maintenance means adding new programs or modifying the existing programs to enhance the performance of the information system. This type of maintenance undertaken to respond to user's additional needs which due to the changes within or outside of the organization. Outside changes are primarily environmental changes, which may in the absence of system maintenance, render the information system ineffective and inefficient. Preventive maintenance: Preventive changes refer to changes made to increase the understanding and maintainability of your software in the long run. Preventive changes are focused in decreasing the deterioration of your software in the long run. Restructuring, optimizing code and updating documentation are common preventive changes. Executing preventive changes reduces the amount of unpredictable effects software can have in the long term and helps it become scalable, stable, understandable and maintainable.