APPROACH TO SYSTEM DEVELOPMENT SYSTEMS DEVELOPMENT LIFE CYCLE • A project is a planned undertaking that has a beginning and an end and that produces a desired result or product. • System development project describes a planned undertaking that produces a new information system. • Systems development life cycle (SDLC) is the entire process of building, deploying, using, and updating an information system. • There are two approaches to SDLC – Predictive approach :an SDLC approach that assumes the development project can be planned and organized in advance and that the new information system can be developed according to the plan • Adaptive approach: an SDLC approach that is more flexible, assuming that the project cannot be planned out completely in advance but must be modified as it progresses Traditional predictive approach • All project planning activities are put into phases. • The phases are project planning, analysis, design, implementation, and support. • A group of activities that plan, organize and schedule the project are usually called project planning activities. • The next group of activities focus on understanding the business problem that needs to be solved and on defining the business requirements. This is Analysis Activities • The third group of activities focus on designing a new system. This is design activities. • The next group of activities are necessary to build the system, which is referred to as implementation activities. • These four group of activities are called phases, and they are the elements that provide the framework for managing the project. • The last phase, support phase, includes the activities needed to upgrade and maintain the system after deploying. • Waterfall approach is more predictive and assumes that the various phases of a project can be carried out and completely entirely sequentially. Newer Adaptive Approach to SDLC • Spiral model is an adaptive SDLC approach that cycles over and over again through development activities until a project is complete. • It is generally considered to be the first adaptive approach to system development. • The life cycle is shown as a spiral, starting in the center and working its way outward, over and over again, until the project is complete. • Prototype is a preliminary working model showing some aspect of a larger system. • Prototypes are developed in each phase. Assignment • Find more information on waterfall model and spiral model. METHODOLOGIES, MODELS, TOOLS AND TECHNIQUES • System Development Methodologies provide comprehensive guidelines to follow for completing every activity in the system development life cycle including specific models, tools and techniques. • Models are representation of an important aspect of the real world. Models used in system development include representation of inputs, outputs, processes, data, objects, object interactions, location, networks, and devices etc Some models of system components • • • • • • • Flow chart Data flow diagram Entity-relationship diagram Structure chart Use case diagram Class diagram Sequence diagram Some models used to manage the development process • • • • PERT chart Gantt chart Organizational hierarchy chart Financial analysis models Tools • A tool is a software support that helps create models or other components required in the project. Some tools used in system development • • • • Project management application Drawing/graphics application Word processor/text editor Computer-aided system engineering tools (CASE) • Integrated development environment(IDE) • Database management application • Code generator tool Techniques • A technique is a collection of guidelines that help an analyst complete a system development activity or task. It includes a step by step instructions for creating a model Some techniques used in system development • • • • • Strategic planning techniques Project management techniques User interviewing techniques Software testing techniques Object oriented analysis and design techniques Activities of each SDLC phase PLANNING PHASE • The primary objectives are to identify the scope of the new system, ensure that the project is feasible, and develop a schedule, resource plan, and budget for the remainder of the project. • The are five activities in this phase – Define the problem – Produce the project schedule – Confirm project feasibility – Staff the project – Launch the project Project Schedule • Work breakdown structure (WBS) is a list of all the individual tasks that are required to complete the project • PERT/CPM Chart- Project Evaluation and Review Technique. Critical path method is a diagram of all the tasks identified in the WBS – Gantt Chart Project Feasibility • Risk management: the project management area during which the team tries to identify potential trouble spots that could jeopardize the success of the project • Economic feasibility: the analysis to compare costs and benefits to see whether investing in the development of a new system will be beneficial • Organizational and cultural feasibility: Each Company has its own culture and any new system must be accommodated within the culture. • Technological feasibility: A new system brings new technology into the company. A project management team needs to assess very carefully the proposed technological requirements and available expertise. • Schedule feasibility: the development of a project schedule always involves high risk. • Resource feasibility: the project team must assess the availability of resources for the project. The primary resource consists of the members of the team. • The other resources include adequate computer resources, physical facilities, and support staff. • If there is delay in the availability of these resources, schedule can be affected. Completing feasibility analysis • Not every project is feasible • A project that is not feasible today due to technical difficulties, high cost or inadequate expertise may become feasible in the future. Staffing and launching the project • • • • Develop a resource plan for the project Identify and request specific technical staff Identify and request specific user staff Organize the project ANALYSIS PHASE • The primary objective of this phase is to understand and document the business needs and the processing requirements of the new system. Analysis is a discovery process. • There are six primary activities – Gather information – Define system requirements – Build prototypes for discovery of requirements – Prioritize requirements – Generate and evaluate alternatives – Review recommendations with management Gather Information • Considerable amount of information are required during the analysis phase • Documentation from the existing system should also be studied carefully • Methods of gathering information – – – – – – – Review existing reports, forms, and procedure descriptions Conduct interviews and discussions with users Observe and document business processes Build prototypes distribute and collect questionnaires Conduct joint application design (JAD) sessions Research vendor solutions Review existing reports, forms, and procedure descriptions • Two sources of information for existing procedures and forms – External source to the organization-at industrywide professional organizations and at other companies. – Existing business documents and procedure descriptions within the organization. It helps to get preliminary understanding of the processes and also used during interviews. • Forms and reports currently being used are requested by the analysts. • Reviewing the documentation of existing procedures helps identify business rules that may not come up in the interviews • Written procedures help discover discrepancies and redundancies in the business processes. • Review documentation with users to identify errors Conducting interviews and discussions with users • Interviewing stakeholders is by far the most effective way to understand business functions and business rules. • It is most time-consuming and resourceexpensive option. • Interviews require multiple sessions with each of the users or user groups • Three areas to conduct effective interviews – Preparing the interview – Conducting the interview – Following up the interview Observe and document business processes • Documenting workflows – Work flow is the sequence of steps to process a business transaction. System Requirements • The modeling process is a learning process for an analyst. • As the model is developed, the analyst learns more and more about the system • Modeling continues while information is gathered, and the analyst continually reviews the models with the end users to verify that each model is complete and correct. • The analyst studies each model, adds to it, rearranges it, and then checks how well it fits with other models being created. • Modeling can continue for quite some time, and it does not always have a defined end. • Two types of system models are developed • A logical model shows what the system is required to do in great detail, without committing to any one technology • The focus of the model is what information the users need, not what form it will take. • Physical model shows how the system will actually be implemented. The physical model of the output would include details about format. • Object oriented techniques produce class diagrams and use case diagrams • System requirements are all of the capabilities and constraints that the new system must meet or specifications that define the functions to be provided by the system. • Two categories: functional and non functional requirements. • Functional requirements are the activities that the system must perform-that is the business uses to which the system will be applied • The derive directly from the capabilities identified in the planning phase. • The new system must handle all of the functions specified in the functional requirements. • Nonfunctional requirements are characteristics of the system other than activities it must perform or support. • There are many different types of nonfunctional requirements Types of nonfunctional requirements • Technical requirements describe operational characteristics related to the environment, hardware, and software of the organization. • Performance requirements describe operational characteristics related to measures of workload, such as throughput and response time. Types of nonfunctional requirements • Usability requirements describe operational characteristics related to users, such as the user interface, related work procedures, online help, and documentation. • Reliability requirements describe the dependability of a system – how often a system exhibits behaviours such as service outages and incorrect processing and how it detects and recovers from those problems. They are sometimes considered a subset of performance requirements • Security requirements describe which users can perform what system functions under what condition. • Both functional and nonfunctional system requirements are needed for a complete definition of a new system and both are investigated and documented during systems analysis. • Functional requirements are most often documented in graphical and textual modesl Stakeholders • They are all the people who have an interest in the success of a new system • Categories – The users who actually use the system on a daily base – The clients, those who pay for and own the system – The technical staff, the people who must ensure that the system operates in the computing environment of the organization. Users as stakeholders • Two dimensions: horizontally and vertically • By horizontally, the analyst must look for information flow across business departments or functions. For example, a new inventory system may be affected receiving, warehousing, sales, and manufacturing. Individuals from each of these departments must describe their requirements • By vertical dimension, we mean the information needs of clerical staff, of middle management, and of senior executives. Each of these stakeholders has different information requests for the system that must be included in the design • Users on the vertical dimension – – – – – Business users Information users Management users Executive users External users THE DESIGN PHASE • The objective is to design the solution system based on the requirements defined and decisions made during the analysis. • High level design consists of developing an architectural structure for the software components, database, user interface, and operating environment. • Low level design entails developing the detailed algorithms and data structures that are required for software development. • Seven major activities – Design and integrate the network – Design the application architecture – Design the user interfaces – Design the system interfaces – Design and integrate the database – Prototype for design details – Design and integrate the system controls Implementation phase • The final system is built, tested, and installed. The objective is not only to produce a reliable, fully functional information system but also to ensure that the users are all trained and that the organization is ready to benefit as expected from use of the system. • Five major activities – Construct software components – Verify and test – Convert data – Train users and document the system – Install the system SUPPORT PHASE • The objective is to keep the system running productively during the years following its initial installation. • Three major activities – Maintain the system – Enhance the system – Support the users: help desk with knowledgeable technicians to support TWO APPROACHES TO SYSTEM DEVELOPMENT • Traditional approach • Object oriented approach OBJECT-ORIENTED APPROACH • This views an information system as a collection of interacting objects that work together to accomplish tasks. • The system consists of objects. • An object is a thing in the computer system that is capable of responding to messages. • Object oriented programming languages include c++, java, c# • Object-oriented analysis defines all of the types of objects that do the work in the system and shows what user interactions, use cases, are required to complete tasks. • Object-oriented design defines all of the additional types of objects necessary to communicate with people and devices in the system, shows how the object interact to complete tasks, and refines the definition of each type of object so it can be implemented with a specific language or environment. • Object-oriented programming consists of writing statements in a programming language to define what each type of object does. • An object is a type of thing-a customer or an employee. • Identifying types of objects means classifying things. • A classification or class represents a collection of similar objects. • Object oriented development uses a class diagram to show all of the classes of objects in the system BENEFITS OF OBJECT ORIENTED APPROACH • Naturalness and Reuse – People tend to think about the world in terms of tangible objects. – Also because it involves classes of objects, and many systems in the organization uses the same objects, these classes can be used over and over again whenever they are needed. Eg. Menus, dialog boxes, windows, and buttons, customer, product. – There is less need to reinvent the wheel to create an object • Many systems being developed today combine both traditional and object oriented technology. • Assignment – Read on traditional approach