System Analysis and Design (SAD) Analysis: defining the problem – From requirements to specification Design: solving the problem –From specification to implementation
System Analysis and Design (SAD) Systems Analysis: understanding and specifying in detail what a system should do System Design: specifying in detail how the parts of an system should be implemented Definition of SAD: – The complex organizational process whereby computer-based information systems are developed and maintained.
Software IEEE (Institute of Electrical and Electronic Engineers) defines software as “ collection of computer programs, procedures, rules and associated documentation and data“
Characteristic of Software It is intangible part of the computer system Software is intrinsically complex. Software does not wear out but deteriorates. Software is not manufactured but developed. Software is prone to failure. Software is costly to maintain.
Software Categories Software products may be developed for a particular customer or may be developed for a general market. It can be classified into two categories –Generic - developed to be sold to a range of different customers e.g. PC software such as Excel or Word. –customized - developed for a single customer according to their specification (Hospital management system)
What is software engineering? Software engineering is an art of developing quality software in an effective and efficient way. According to IEEE definition “Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software”.
Management Myths Myths Realities ‘We already have books full of standards and procedures for building software. That will provide my people with everything they need to know’ ‘My people do have state-of-the-art hardware’ which is essential ingredient for successful software production. Standards are rarely used Developers rarely know about them Standards are often out-of-date and incomplete Software tools are usually more important than hardware tools for achieving quality and productivity.
‘If we get behind schedule we can add more programmers and catch up’ Adding more manpower to the project, which is already behind schedule, further delays the project. New workers take longer time to learn about the project as compared to those already working on the project Management Myths Myths Realities
‘If I decide to outsource the software project to a third party, I can just relax and let that firm build it Outsourcing software to a third party does not help the organization Management Myths Myths Realities
User’s Myths Myth Realities ‘A general statement of objectives is sufficient to begin writing software - we can fill in the details later’ Insufficient knowledge about requirements is the major cause of software failure Formal and detailed descriptions of data, functionality, design constraints are essential Communication between user and developer is vital
‘Project requirements continually change but change can be easily accommodated because software is flexible’ The impact of change varies according to the time when it is introduced Early requests for change can be easily made and can be much cheaper Changes made during design, implementation and installation have a severe impact on cost User’s Myths Myth Realities
Developer’s Myths Myth Realities ‘Once we write the program and get it to work, our job is done’ ‘Until I get the program running I really have no way of assessing its quality’ ‘The only deliverable for a successful project is the working program’ 50% to 70% of all the efforts are expended after the software is delivered to the user. The success of a project does not depend only on the quality of programs. Documentation and software configuration are also essential
Why Software Engineering? Major Goals: - To increase software productivity and quality. - To effectively control software schedule and planning. - To reduce the cost of software development. - To meet the customers’ needs and requirements. - To improve the current software engineering practice. - To support the engineers’ activities in a systematic and efficient manner.
What are the key challenges facing software engineering? Coping with legacy systems, coping with increasing diversity and coping with demands for reduced delivery times Legacy systems –Old, valuable systems must be maintained and updated Heterogeneity –Systems are distributed and include a mix of hardware and software Delivery –There is increasing pressure for faster delivery of software
System 1. System’s Concept Def. A System is a set of components that interact with one another and serve for a common purpose or goal.
25 1. System’s Concept system has nine main characteristics : 1.Components. 6. Input. 2.Interrelationships. 7. Output. 3.Boundary. 8. Interface. 4.Purpose. 9. Constraints. 5.Environment.
26 FIGURE 1-1 Characteristics of a system System’s Concept (cont’d)
27 2. System’s Characteristics A component is either an irreducible part or an aggregate of parts, also called a subsystem. The components are interrelated; that is, the function of one is somehow tied to the function of the others. A system has a boundary, within which all of its components are contained and which establishes the limits of a system, separating it from other systems. All of the components work together to achieve some overall purpose: the system’s reason for existing.
28 System’s Characteristics (cont’d) A system operates within an environment – everything outside the system’s boundary. The environment surrounds the system, both affecting it and being affected by it. The point at which the system meets its environment are called interface. A system must face constraints in its functioning because there are limits to what it can do and how it can achieve its purpose within its environment. A system interact with the environment by means of inputs and outputs. Input is anything entering the system from the environment; output is anything leaving the system crossing the boundary to the environment.
1.Outputs and inputs 2.Processor(s) 3.Control 4.Feedback 5.Environment 6.Boundaries and interface Elements of a System
31 3. Feedback and Control in a System Very often output’s data are returned to the input of the system, and used to regulate the system’s activity. Such a process is called feedback. It helps to adjust the system to changes so that the system operates in a balanced state, or equilibrium. This feature of a system is used in control. Def. Control is the process that measures current performance and guides it towards a predetermined goal. It is the decision making subsystem that controls the pattern of activities governing i/p, processing and o/p
32 Feedback and Control in a System (cont’d) Two types of feedback are related to system control. Negative feedback is corrective feedback that helps maintain the system within a critical operating range and reduces performance fluctuations around the norm or standard. Negative feedback is transmitted in feedback control loops. A sensor detects the effect of output on the external environment; this information is returned to the system as an input, and necessary adjustments are made according to predetermined goal. positive feedback reinforces the operation of a system by causing it to continue its performance and activities without changes.
Types of Systems Physical or Abstract system Physical system are tangible entities. For e.g. computer system Abstract System are non physical entities. For e.g. models
Types of Systems Open or Closed system An open system has many interfaces with its environment. It permits interaction across its boundary. It receives inputs from and delivers outputs to the outside. A closed system is isolated from environmental influences
Types of Systems Information Systems Interrelated components working together to –Collect –Process –Store –Disseminate information To support decision making, coordination, control, analysis and visualization in an organization
A SYSTEM THAT PROVIDES THE INFORMATION NEEDED TO ACCOMPLISH THE ORGANIZATION’S TASKS WHAT IS A COMPUTER BASED INFORMATION SYSTEM? A SYSTEM THAT USES COMPUTERS TO PROVIDE THE NEEDED INFORMATION What is an Information System?
Computer-based Information Systems (CBIS) vs Manual Systems CBIS –Information system that rely on computer hardware and software for processing and disseminating information Manual systems –Use paper + pencil technology
Difference between manual IS and computer based IS Manual IS Manual IS works without the help of technology Manual IS is slow and may be inaccurate Retrieving information in manual IS is quite hectic and time consuming task. Computer based IS CBIS uses computer technology to perform its tasks CBIS is very accurate and provide results faster than the manual IS Data processing and fetching information is fast
...cont Manual IS is less capable of presenting information in a systematic way. Manual IS in not suitable for storing huge data Manual IS is less expensive than CBIS It provides less security for information stored Through CBIS it is easy to convert and present info in a presentable manner e.g. graphs, charts tables etc. Huge amount of information can be easily stored, copied, moved from a system It is expensive compared to the manual IS it provides more security and have many options like password, login ID’s
Components of Computer based Information System It is an organized combination of –Data –Hardware –Software –Communications networks –People –Policies and procedures
(continued) The Components of a Computer-Based Information System
Data: Input that the system take to produce information
Hardware: Computer and its peripheral equipments. The equipments are input and output devices, storage devices and communications devices
Software: Set of instructions that tell the computer how to take the data in, how to process it, how to display the output and how to stores the data and information
Communication Network: Hardware and software that facilitates the fast transmission and reception of texts, pictures, sound and animation in the form of electronic data
People: IS professional and users who analyses the organizational information needs designs, constructs and uses information system
Policies and procedures: Rules for achieving optimal and secure operation in data processing
Computer based Information System Types 1.Transaction Processing Systems (TPS) 2.Management Information Systems (MIS) 3.Decision Support Systems (DSS) 4.Expert System and Artificial Intelligence (ES &AI)
Transaction Processing Systems (TPS) TPS are computerized information systems that were developed to process large amounts of data for routine business transaction. –Data about each transaction are captured, –Transactions are verified and accepted/rejected, –Validation transactions are stored for later aggregation. –Report may be produced to provide summarization of the transactions, and –Transaction may be moved from process to process in order to handle all aspects of the business activities.
Management Information Systems (MIS) Information system at the management level of an organization that serves the functions of planning, controlling, and decision making by providing routine summary and exception reports. It takes the relatively raw data available through a TPS and converts them into a meaningful aggregated form that mangers need to conduct their responsibilities.
Decision Support systems (DSS) Information system at the management level of an organization that combines data and sophisticated analytical models or data analysis tools to support semi- structured and unstructured decision making. DSS are designed to help organizational decision making. A DSS is composed of a: –Database ( may be extracted from a TPS/MIS) –Graphical/mathematical models for business process –User interface that provides a way to communicate with DSS
Expert Systems An expert system is… –A computer application that performs a task that would otherwise be performed by a human expert –gives the computer the ability to make suggestions and to act like an expert in a particular field –Examples: diagnose human illnesses, make financial forecasts
Waterfall model In waterfall model the development of system proceeds linearly and sequentially from requirement analysis to design, coding, testing, implementation and maintenance. So it also known an Linear Sequential model. It has different phases and each phase has its distinct goal. Once a phase is completed, the development of system proceeds to the next phase. Each phase modifies the intermediate product to develop a new product as an output The new product becomes the input of the next process
Waterfall Deficiencies Requirements need to be specified before the development proceeds Deliverables created for each phase are considered frozen – inhibits flexibility Does not reflect problem-solving nature – iterations of phases Little opportunity for customer to preview the system
Throwaway prototype model The development of the product starts with the part of the system which is poorly understood by the developer. It is then designed and exposed to the user to get more and refined requirements. The revised specifications are again designed and developed into another enhanced prototype of the software.
Throwaway prototype model The reviewing, revising specifications and implementing continues until final specifications are documented. The final specifications are regarded as the base of the delivery and all the developed prototypes are discarded.
Incremental development Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality. User requirements are prioritised and the highest priority requirements are included in early increments. Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve.
Incremental development The first increment is available to the user within short time. This increment meets most of the critical requirements of the user for immediate use. Hence he need not wait for delivery of the entire system. Exposure of early increments to the user helps refining the requirements for subsequent increments Subsequent increments would address the shortcomings of the earlier increments. This minimizes the risk of overall project failure
Spiral model sectors Planning –Specific objectives for the phase are identified. The products and its constraints are identified. The alternatives and risk factor for the development of the products with constraints are identified Risk assessment –Risks are assessed and activities put in place to reduce the key risks. Engineering –A development model for the system is chosen. User Evaluation –The project is reviewed and the next phase of the spiral is planned.
The model demands a high level expertise to deal with the risk analysis and control For small project, this model may not time and cost effective