System Analysis and Design Notes

Fundamentals of Systems Analysis & Design

Part 1: Organization Impact on Information Systems

  • Objectives:

    • Recall basic types of computer-based systems.

    • Understand how users change system dynamics with new technologies.

    • Realize the roles of systems analysts.

    • Know SDLC steps related to HCI and apply them.

    • Understand CASE tools and their help to systems analysts.

    • Explore methodologies like object-oriented systems design and prototyping.

  • Information as a Key Resource:

    • Fuels business success or failure.

    • Needs correct management.

    • Managing computer-generated information differs from manual data.

  • What is Information Systems (IS)?

    • Assembles, stores, processes, and delivers relevant information to an organization.

    • Information should be accessible and useful to users (managers, staff, clients, citizens).

    • IS is a human activity (social system), which may or may not involve computers.

  • What & Why System Analysis and Design (SAD)?

    • Systematic approach to identifying problems, opportunities, and objectives.

    • Analyzing information flows in organizations.

    • Designing computerized information systems to solve problems.

    • System development needs proper planning.

    • System development involves cost and time, requiring project management.

    • SAD involves creative, critical, and innovative problem-solving.

  • Organization as Systems:

    • Composed of subsystems.

    • Involves levels of management and culture.

    • Impacts information system development.

    • Different management levels produce different decisions.

    • Culture influences how people in subsystems interrelate.

  • System Components:

    • Generic components: Data, People, Procedures, Software, Hardware.

    • Automated Information Systems: Generic components + Automated processes.

  • Levels of Management:

    • Strategic Management: What?

    • Tactical Management: How?

    • Operations Management: Implement?\

  • System Definitions:

    • System: Collection of interrelated components functioning together to achieve an outcome.

    • Information System: Collection of interrelated components that collect, process, store, and provide information needed to complete business tasks.

    • Sub-system: A system that is part of a larger system.

    • Super-system: A larger system that contains other systems.

  • Framework for IS:

    • Players: System Users, System Owners, Systems Analysts and Project Managers, System Builders, System Designers.

    • Product: Information Systems (Transaction Processing Systems, Management Information Systems, Decision Support Systems, Executive Information Systems, Expert Systems, Communications & Collaboration Systems, Office Automation Systems).

    • Technology Drivers.

    • Process: Initiation, System Analysis, Project and Process Management, System Design, Implementation.

  • Business Drivers for Today’s Information Systems:

    • Globalization of the Economy.

    • Electronic Commerce and Business.

    • Security and Privacy.

    • Collaboration and Partnership.

    • Knowledge Asset Management.

    • Continuous Improvement and Total Quality Management.

    • Business Process Redesign.

    • Networks and the Internet.

    • Mobile and Wireless Technologies.

    • Object Technologies.

    • Collaborative Technologies.

    • Enterprise Applications.

  • Major Topics:

    • Fundamentals of different kinds of information systems.

    • Roles of systems analysts.

    • Phases in the systems development life cycle as they relate to Human-Computer Interaction (HCI) factors.

    • Agile development.

    • Computer-Aided Software Engineering (CASE) tools.

  • Types of Systems:

    • Transaction Processing Systems (TPS).

    • Office Automation Systems (OAS).

    • Knowledge Work Systems (KWS).

    • Management Information Systems (MIS).

    • Decision Support Systems (DSS).

    • Expert Systems (ES).

    • Executive Support Systems (ESS).

    • Group Decision Support Systems (GDSS).

    • Computer-Supported Collaborative Work Systems (CSCWS).

  • System Analyst Involvement:

    • Systems analysts may be involved with any or all of these systems at each organization level.

  • Operational Level:

    • Transaction Processing System (TPS): Processes large amounts of data for routine business transactions, boundary-spanning, supports day-to-day operations (e.g., Payroll Processing, Inventory Management).

  • Knowledge Level:

    • Office Automation System (OAS): Supports data workers who share information but do not usually create new knowledge (e.g., Word processing, Spreadsheets, Email).

    • Knowledge Work System (KWS): Supports professional workers such as scientists, engineers, and doctors (e.g., computer-aided design systems, virtual reality systems).

  • Higher Level:

    • Management Information System (MIS): Supports decision analysis and decision-making (e.g., profit margin by sales region, expenses vs. budgets).

    • Decision Support System (DSS): Aids decision-makers (e.g., financial planning with what-if analysis, budgeting with modeling).

    • Expert System (ES): Captures and uses expert knowledge to solve problems (e.g., MYCIN, XCON).

  • Strategic Level:

    • Executive Support System (ESS): Helps executives make unstructured strategic decisions (e.g., drill-down analysis, status access).

    • Group Decision Support System (GDSS): Permits group members to interact with electronic support (e.g., email, Google Doc).

    • Computer-Supported Collaborative Work System (CSCWS): General term for GDSS, may include groupware (e.g., video conferencing, Web survey system).

  • Integrating New Technologies into Traditional Systems:

    • Ecommerce and Web Systems.

    • Enterprise Resource Planning Systems.

    • Wireless Systems.

    • Open Source Software.

    • Need for Systems Analysis and Design.

  • Enterprise Application Architecture:

    • Automates processes across multiple business functions and organizational levels, may extend outside the organization.

    • Integrating technologies affects all types of systems.

  • E-commerce and Web Systems Benefits:

    • Increasing user awareness.

    • 24-hour access.

    • Improved interface usability.

    • Global reach.

  • Enterprise Resource Planning Systems (ERP):

    • Integrates information systems on different management levels and within different functions (e.g., SAP, Oracle).

  • Wireless Systems:

    • System analysts design standard or wireless communication networks (voice, video, email).

    • Develop intelligent agents (e.g., Microsoft's software based on Bayesian statistics).

    • Wireless communication is referred to as m-commerce (mobile commerce).

  • Open Source Software:

    • Alternative to traditional software development.

    • Free to distribute, share, and modify.

    • Characterized as a philosophy.

    • Examples: Linux, Apache Web Server, Mozilla Firefox.

Part 2: System Analyst Role & SDLC

  • Need for System Analysis and Design:

    • Security is critical.

    • Proper planning avoids user dissatisfaction.

    • Lends structure to the analysis and design of information systems.

    • Improves a business through computerized information systems.

  • System Analyst (SA) Roles & Qualities:

    • Studies the problems and needs of an organization.

    • Determines how people, data, processes, communications, and information technology can improve the business.

    • Roles: Consultant, Supporting Expert, Agent of Change.

    • Qualities: Problem solver, Communicator, Strong ethics, Self-disciplined, and self-motivated.

    • Facilitator between various stakeholders.

  • System Development Life Cycle (SDLC):

    • Phased approach to solving business problems.

    • Developed through a specific cycle of analyst and user activities.

    • Each phase has unique user activities.

    • Incorporates Human-Computer Interaction (HCI) Considerations.

  • SDLC – The Seven Phases:

    1. Identifying problems, opportunities, and objectives.

    2. Determining human information requirements.

    3. Analyzing system needs.

    4. Designing the recommended system.

    5. Developing and documenting software.

    6. Testing and maintaining the system.

    7. Implementing and evaluating the system.

  • Phase 1: Identifying Problems, Opportunities & Objectives

    • Activity: Interviewing user management, summarizing knowledge, estimating project scope, documenting results.

    • Output: Feasibility Report containing problem definition and objective summaries.

  • Phase 2: Determining Human Information Requirements

    • Activity: Interviewing, sampling, questionnaires, observation, prototyping.

    • Output: Understanding user work, business functions, people, goals, data, and procedures.

  • Phase 3: Analyzing System Needs

    • Activity: Create data flow diagrams, complete the data dictionary, analyze structured decisions, prepare the system proposal.

    • Output: Recommendation on what should be done.

  • Phase 4: Designing the Recommended System

    • Activity: Design procedures for data entry, human-computer interface, system controls, files, database, and backup procedures.

    • Output: Model of the actual system.

  • Phase 5: Developing and Documenting Software

    • Activity: System analyst works with programmers to develop original software and documentation.

    • Output: Computer programs and system documentation.

  • Phase 6: Testing & Maintaining the System

    • Activity: Test the information system, system maintenance, and maintenance documentation.

    • Output: Problems (if any), updated programs, and documentation.

  • Phase 7: Implementing & Evaluating the System

    • Activity: User training, smooth conversion from old to new system, and review and evaluate system.

    • Output: Trained personnel and installed system.

  • System Maintenance:

    • Significant time spent on systems maintenance (estimated at 60% of total time).

  • Impact of system maintanence:

    • Reasons: Removing software errors and enhancing existing software.

    • Over time, the cost of continued maintenance may exceed the cost of creating a new system.

  • Resource Consumption Over the System Life:

    • Resources consumed increase over time due to bugs and enhancements.

Part 3: The Agile Approach

  • Agile Approach:

    • Software development approach based on values, principles, and core practices.

  • Agile Values:

    • Communication.

    • Simplicity.

    • Feedback.

    • Courage.

  • The Five Stages of the Agile Modeling Development Process

    1. Exploration.

    2. Planning.

    3. Iterations to the First Release.

    4. Productionizing.

    5. Maintenance.

  • Exploration:

    • Assemble the team.

    • Assess skills.

    • Examine potential technologies.

    • Experiment with writing user stories.

    • Adopt a playful and curious attitude.

  • Planning:

    • Planning game – rules to help the agile development team's relationship with business customers.

    • Maximize the value of the system.

    • Main players: development team and business customer.

  • Iterations to the First Release:

    • Cycles of testing, feedback, and change.

    • Run customer-written function tests at the end of each iteration.

  • Productionizing:

    • The product is released.

    • May be improved by adding other features.

  • Maintenance:

    • New features may be added.

    • Riskier customer suggestions may be considered.

    • Team members may be rotated.

Part 4: Types, Trend, and Approach Towards Developing Information System

  • IS Development Methodologies:

    • Comprehensive guidelines for completing every activity in the systems development life cycle, including specific models, tools, and techniques.

  • IS Development Methodologies Timeline:

    • Waterfall methodology (1956).

    • US Department Of Defense normalizes WATERFALL METHODOLOGY (1985).

    • No Silver Bullet paper is published (1986).

    • Spiral development model (1990).

    • Ikujiro Nonaka y Hirotaka Takeuchi introduce the Scrum concept (1996-1998).

    • Ken Schwaber and Jeff Shuterland used what would become Scrum in the software development (1995).

    • Scrum methodology paper is published (1999).

    • Rational Unified Process (RUP) standard was born (2001).

    • The Agile Manifesto is published (2001).

    • Lean Software Development book is published (2003).

    • Craftmanship over Crap is included as the 5th value of Agile Manifesto (2008).

    • Software Craftmanship movement (2009).

    • DevOps concept became popular in a series of "devopsdays" (2010).

    • Kanban book is published (2010).

    • Extreme Programming Explained paper is released.

  • IS Development Methodologies Categories:

    • PROCESS-ORIENTED: STRADIS, Gane & Sarson’s Methodology, Yourdon System Method (YSM), Jackson System Development (JSD).

    • BLENDED: Structured System Analysis & Design Method (SSADM).

    • OBJECT-ORIENTED: Booch Method, OOSE, OMT, Unified Approach Methodology, Rational Unified Process.

    • RAPID: James Martin’s RAD, Extreme Programming (XP), Web IS development methodology (WISDM).

    • PEOPLE-ORIENTED: CommonKADS, ETHICS, KADS.

    • ORGANIZATIONAL-ORIENTED: Soft-System Methodology (SSM), IS work and Analysis of Changes (ISAC), Process Innovation (PI), Project in controlled environments (PRINCE).

    • FRAMEWORK: Multiview, Strategic options development and analysis (SODA), Capability Maturity Model (CMM).

  • SDLC Approaches:

    • Traditional Systems Development Life Cycle.

    • Object-Oriented Systems Analysis and Design.

    • CASE Systems Development Life Cycle.

  • General Approaches:

    • Structured Approach.

    • Object-Oriented Approach.

    • All system developers should be familiar with two very general approaches to system development, because they form the basis of virtually all methodologies.

  • Object-Oriented System Analysis & Design:

    • Alternate approach to the structured approach of the SDLC.

    • Facilitate the development of systems that must change rapidly in response to dynamic business environments.

    • Analysis is performed on a small part of the system followed by design and implementation. The cycle repeats until the project is complete.

  • Methods Comparison:

    • Structured Methodologies: STRADIS, SSADM, JSD, YSM.

    • O-Oriented Methodologies: Booch, OMT, OOSE, Unified Approach, Rational Unified Process.

  • CASE Tools:

    • Productivity tools for systems analysts to improve their routine work through automated support.

    • Reasons for using CASE tools:

      • Increasing Analyst Productivity.

      • Improving Analyst-User Communication.

      • Integrating Life Cycle Activities.

      • Accurately Assessing Maintenance Changes.

  • CASE Tools Classification:

    • Upper CASE tools: perform analysis and design.

    • Lower CASE tools: generate programs from CASE design.

    • Integrated CASE tools: perform both upper and lower CASE functions.

  • Upper CASE Tools:

    • Create and modify the system design.

    • Help in modeling organizational requirements and defining system boundaries.

    • Can also support prototyping of screen and report designs.

  • Lower CASE Tools:

    • Generate computer source code from the CASE design.

    • Source code is usually generated in several languages.

  • Traditional vs CASE SDLC:

    • Illustrates the differences in analysis, design, programming, and system completion between traditional and CASE-based SDLC.

  • Agile Development

    • Agile Techniques : Agile, XP, Scrum, DSDM, Crystal, FDD, RUP, Kanban

  • Extreme Programming (XP):

    • A range of agile development techniques.

    • New versions may be built several times per day.

    • Increments are delivered to customers every 2 weeks.

    • All tests must be run for every build and the build is only accepted if tests run successfully.

  • The Extreme Programming Release Cycle.

    • cycle of time & cost estimates are given to the customer requires requirements and analysis

  • XP and Agile Principles

    • Incremental development is supported through small, frequent system releases

    • Customer involvement means full-time customer engagement with the team.

    • People not process through pair programming, collective ownership and a process that avoids long working hours.

    • Change supported through regular system releases

      • Maintaining simplicity through constant refactoring of code support change.

  • Scrum:

    • An agile method that focuses on managing iterative development.

    • Three phases:

      • Outline planning phase.

      • Sprint cycles.

      • Project closure phase.

  • DevOps and Tools

    • DevOps: a set of practices that emphasizes the collaboration and communication of both software developers and other information technology (IT) professionals, while automating the process of software delivery and infrastructure changes,its implementation can include the definition of the series of tools used at various stages of the lifecycle

      • There is no one product that can be considered a single DevOps tool

  • Agile DevOps

    • Agile along with DevOps has a collaborative working style, irrespective of the method implemented

    • Both the methodologies rely on continual feedback and routine updates about the work progress from internal and external stakeholders

    • Both Agile and DevOps focus on developing the product at a fast pace, by keeping smaller teams and using a risk-free approach

    • Both methods adapt to the business requirements and continually improve the products to fulfill customer expectations.

  • DevOps Agile & Lean to Operations Work

    • DevOps: a practice of operations and developments engineers participating together in the entire service lifecycle from design through development process to production support.

  • Main Components of Methodology:

    • Techniques: Guidelines that help an analyst complete a system development (e.g., Strategic Planning, User interviewing, Data-Modeling).

    • Model: Representation of some important aspect of the real world (e.g., Flowchart, Data Flow Diagram).

    • Tool: Software tool that helps create models or other components (e.g., CASE, Drawing applications, Code generator).

Overall Picture of System Analysis & Design

  • SYS. PLANNING, SYS. ANALYSIS, SYS. DESIGN , SYS. IMPLEMENTATION
    *Input Design
    *Output Design
    *Database Design
    *Process Design (Convert DFD to Str. Chart