Information Systems Analysis and Design - Midterm 1
Core Process 5: build, test and then integrate each of these system components that you've designed
(5&6) Again this text does not emphasize these as much. You typically will talk about implementation activities more in program and system development courses and you talk more about deployment activities probably in a Capstone project course. So, implementation activities-- first of all is actually do the programming for the software. Now again, when you think about system development often times people will think well that's all about doing all this programming, but program the software is really one activity of one of the core processes. I'm sure it's an awful lot of work to do, but there's a lot more to it than just programming. And then unit tests test each part of the software. And then you build test cases, which allow you to test software and then you integrate and test how all the components work together. Deployment activities have to do with when you're finishing all the overall system tests and you're actually putting the new system in operation in your organization. So, first of all you're performing system and stress tests overall and you're performing user acceptance tests and user acceptance tests insure that the system meets all of the requirements that you define with your end users. There's a lot of work in converting existing data that already exists that you have to reformat and put into the new database that you've just designed and implemented.
Business Model Canvas
9 Components - Customer Segments - Value Propositions - Channels - Customer Relationships - Revenue Streams - Key Resources - Key Activities - Key Partnerships - Cost Structure
Business Model Generation
A business model describes the rationale of how an organization creates, delivers, and captures value
Technique
A collection of guidelines that help an analyst complete an activity or task Learning techniques is the key to having expertise in a field
Functional Decomposition
A structured approach is based on functional decomposition -Developers decomposed and then constructed the system according to the main areas of activity, or functions The subsystems corresponded directly to tasks that the system had to carry out -e.g., a bike rental system would be based on subsystems or processes dealing with renting ("issuing") a bike, returning a bike, maintaining records for bikes and for customers, etc. -Each of these processes would perform a separate function There was a clear separation between data and process
What Makes a Successful Startup
According to the decades-old formula, you write a business plan, pitch it to investors, assemble a team, I introduce a product, and start selling as hard as you can. And somewhere in this sequence of events, you'll probably suffer a fatal setback. The odds are not with you: As new research by Harvard Business School's Shikhar Ghosh shows, 75% of all start-ups fail.
Interview with Uncle Bob
Agile methods are better in every case Uses the example of drafting a story in 3rd grade
The SDLC Support Phase
All information systems need to be supported once completed Predictive SDLCs typically include support as a project phase Adaptive SDLCs treat support as a separate project Support Activities -Activities whose objective is to maintain and enhance the system after it is installed and in use Maintaining the system Fix problems/error Make minor adjustments Update for changes in operating systems or environments Enhancing the system Add desired functionality Add or change functionality to comply with regulations or legislation Supporting the users Ongoing user training Help desk
Models
An abstraction of an important aspect of the real world. -Makes it possible to understand a complex concept by focusing only on a relevant part -Each model shows a different aspect of the concept -Crucial for communicating project information In IS, some models are of system components Other models are used to manage the development process
Advantages of OO Development
Autonomous - i.e., did not depend heavily on other modules Cohesive with a single, well-defined purpose Easy to understand Easily adapted to accommodate new or changed requirements Based on data Reusability Once an object is defined, implemented, and tested, it can be reused in other systems. Reliability Object-oriented code lends itself to verification via unit testing. Robustness Most object-oriented languages support exception and error handling. Extensibility Objects can inherit from other objects, thus lessening the need to constantly "reinvent the wheel." Easier to manage Each object is relatively small, self-contained, and manageable, thus reducing complexity and leading to higher quality systems that are easier to maintain.
Chapter 8 Glossary
Chapter 8 Glossary
Chapter 8 Notes
Chapter 8 Notes
Characteristics of iterative systems development
Each iteration is like a little mini project. You think about each component of the SDLC in each iteration, the emphasis of each core process might just be a little different Less project failure Better productivity Lower defect rate Can manage complexity better Early visible progress Early feedback, user engagement and
Traditional Predictive SDLC
Earlier approach based on engineering Typically have sequential Phases -Phases are related groups of development activities, such as planning, analysis, design, implementation, and deployment Waterfall model -SDLC that assumes phases can be completed sequentially with no overlap or iteration -Once one phase is completed, you fall over the waterfall to the next phase, no going back
The Structured Approach
Earlier approach. Assumes a system is a collection of processes that interact with data Structured analysis, structured design, and structured programming
Newer Adaptive SDLC
Emerged in response to increasingly complex requirements and uncertain technological environments Always includes iterations where some of design and implementation is done from the beginning Many developers claim it is the only way to develop information systems Many IS managers are still sceptical
The Lean Startup
Favors experimentation over elaborate planning Customer feedback over intuition, and Iterative design over traditional "big design up front" development. It's concepts — such as "minimal viable product" and "pivoting" — have quickly taken root in the start-up world, business schools and large companies.
Core Process 3: discover and understand the details of the problem or need Map to what we call SYSTEMS ANALYSIS
First activity is to gather detailed information. You need a lot of information about what is required for the new system. You have to define what the requirements are in detail. Then we'll see that some of the requirements are functional requirements, meaning what use cases have to be carried out by the system and other requirements are non-functional requirements. You need to prioritize requirements. On any project there are things that are absolutely essential. There are some things that might have a lower priority and it is very important to understand and define and get agreement on what are the priorities. You want to develop user interface dialogues that show how the users interact with the system for each of the use cases that you've defined. And then it's very important to get a lot of feedback from users and to evaluate the requirements as you've defined them, to make sure you're on the right track, make sure that what you're doing is really what they need the new system to do.
Additional Adaptive Concepts
Incremental Development -An approach that completes portions of the system in increments -A system is implemented and partially deployed in steps during the project -Gets part of working system into users' hands sooner Walking Skeleton -An approach in which the complete system structure is built early, but with bare-bones functionality
Customer Profile
Jobs • what customers are trying to get done in their work and in their lives • functional • social • economic • basic needs Pains • bad outcomes • risks • obstacles • too costly • makes them feel bad • current solutions are underperforming • social consequences • fears • barriers • difficulties and challenges • what keeps them awake at night Gains • Savings would make customers happy • Outcomes they expect • How current solutions delight them • What makes their job easier • Positive social consequences • What they dream about • the outcomes customers want to achieve • concrete benefits they are seeking • how they measure success and failure • What metrics support adoption of new systems
The Object-Oriented Approach
More recent approach. Assumes a system is a collection of objects that interact to complete tasks OO analysis, OO design, and OO programming
Methodologies, Models, Tools, and Techniques
Provides guidelines for every facet of system development: What to do when, why and how Specifies an SDLC with activities and tasks Specifies project planning and project management models and reporting Specifies analysis and design models to create Specifies implementation and testing techniques Specifies deployment and support techniques
Incremental Development
SDLC approach that completes portions of the system in small increments across iterations, with each increment being integrated into the whole as it is completed
The Unified Process
Similar to iterative development. There are more phases than the SDLC taught in the book.
Core Process 4: design the system components that solve the problem or satisfy the need
So, along with discovering and understanding details, which is really systems analysis, design system components is the second part that makes up what we call systems analysis and design. So, this is really the core of this course. The design activities first of all would be to design the overall environment and then to design the application architecture and the software. There's a lot of detailed work that goes into designing software and it all appears here in this one activity. You need to design user interfaces that show exactly how the user and the computer interact, screen design, dialogue design and so forth. And then you need to design system interfaces. System interfaces are how your system interacts with other systems. And then you have to design the database of course, and then you have to design system controls and system security, increasingly important aspect of information systems today. So, there's a lot of technical expertise, technical techniques that go into these design activities.
Tools
Software applications that assists developers in creating models or other components required for a project
Agile History
Software development emerged in 1950s Waterfall - still prominent Agile development came about because we needed a way to quickly respond to changes and stay competitive Use iterative processes Agile offers a collection of tools and best practices
Two Approaches to Software Construction and Modeling
Structured and Object Oriented
Understanding Agility
The real question for software managers and executives is no longer if you adopt agile, but when and how. Agile is simply the "natural evolution of software processes" to support today's accelerated, rapidly changing business environment.
Data vs Function
The structured approach built systems based on their functionality - the tasks the system had to carry out. The functionality of a system is much more volatile and subject to change than the data Example: Assigning Patients to Beds in a Hospital -The way patients are assigned, and the way nurse rotations are carried out may change -Reports and documentation may change -No matter what the changes, the system will still have patients, beds, nurses, stations - the data remains the same Thus, a system based on data would be more robust
Waterfall Methodology Beginnings
The systems development life cycle (SDLC) in the form of the waterfall model didn't emerge until the 1960s -It is likely the oldest formalized methodology for building information systems. The main idea of the waterfall SDLC is "to pursue the development of information systems in a very deliberate, structured and methodical way, requiring each stage of the life cycle from inception of the idea to delivery of the final system, to be carried out in rigidly and sequentially." Has anyone been involved with waterfall-type SDLCs?
Most Projects fall on a Continuum between predictive and Adaptive
There are two general approaches to the SDLC Predictive Approach -Waterfall model -Assumes the project can be planned in advance and that the information system can be developed according to the plan -Requirements are well understood and/or low technical risk -sequential phases of development; each phase is completed before the next one begins with a focus on structure Adaptive Approach to the SDLC -Iterative model (as see in this text) -Assumes the project must be more flexible and adapt to changing needs as the project progresses -Requirements and needs are uncertain and/or high technical risk
Customer Development Process Get out of the office and test the hypothesis
They go out and ask potential users, purchasers, and partners for feedback on all elements of the business model, including product features, pricing, distribution channels, and affordable customer acquisition strategies. The emphasis is on nimbleness and speed: New ventures rapidly assemble minimum viable products and immediately elicit customer feedback. Then, using customers' input to revise their assumptions, they start the cycle over again, testing redesigned offerings and making further small adjustments (iterations) or more substantive ones (pivots) to ideas that aren't working. (See the exhibit "Listen to Customers.") During customer development, a start-up searches for a business model that works. If customer feedback reveals that its business hypotheses are wrong, it either revises them or "pivots" to new hypotheses. Once a model is proven, the start-up starts executing, building a formal organization. Each stage of customer development is iterative: A start-up will probably fail several times before finding the right approach.
Principles Behind the Agile Manifesto Developed by the agile alliance group, 17 people
We follow these principles: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Core Process 1: identify the problem or need and then obtain approval
What does the organization face that causes you to need a new information system? What is it you really are trying to solve? Then you need to quantify all the information that would be needed in order to get management approval to proceed with the project. Doing that you also want to perform risk and feasibility analysis to make sure the project is indeed feasible. once you have all this information you can review it with the client and then the key step is to obtain approval from the necessary stakeholders for management in order to continue with the project as you have defined it.
Orwell's Question
Why are humans so stupid? Confirmation bias- a built in mental bias that makes humans favor information that confirms their beliefs Cognitive bias- we have our own biases about memory and how faulty that is and we rely on these things in spite of very little evidence; self deception; we're visionaries; we believe what we need to believe even in the face of counter evidence According to Gee, schools should be doing a better job and might not be, but what might make us smart and moral? Schools don't prepare us to be problem solvers who can think in a democratic world If we plug into tools and other people in the right way, we can be smart and moral. Everyone needs to have evidence and different perspectives to support their reasoning. We need to beg, borrow and steal new ideas; be open to discovery; be distrustful to long-held beliefs; technology and the internet will help us "change the oil in our minds"
The Formula
Write a business plan Pitch it to investors Assemble a team Introduce a product Start selling as hard as you can And somewhere in this sequence of events, you'll probably suffer a fatal setback.
computer application (app)
a computer software program that executes on a computing device to carry out a specific set of functions or related functions
walking skeleton
a development approach in which the complete system structure is built but with barebones functionality
structure chart
a graphical diagram showing the hierarchical organization of modules
agile development
a guiding philosophy and set of guidelines for developing information systems in an unknown, rapidly changing environment
agile modeling (AM)
a guiding philosophy in which only models that are necessary, with a valid need and at the right level of detail, are created
project
a planned undertaking that has a beginning and an end, and that produces some definite result used to develop an information system requires a framework to guide the work of the project team
structured programming
a programming approach where each module has one start point and one end point and uses sequence, decision, and repetition constructs only
system development methodology
a set of comprehensive guidelines for the SDLC that includes specific models, tools, and techniques
information system
a set of interrelated computer components that collects, processes, stores, and provides as output the information needed to complete business tasks much broader in scope than an app
integrated development environments (IDEs)
a set of tools that work together to provide a comprehensive development and programming environment for software developers
data flow diagram (DFD)
a structured analysis model showing inputs, processes, storage, and outputs of a system
structured analysis
a technique to determine what processing is required and to organize those requirements by using structured analysis models
chaordic
a term used to describe adaptive projects that are chaotic and ordered
object
a thing in an information system that responds to messages by executing functions or methods
spiral model
an adaptive SDLC approach that cycles over and over again through development activities until completion
predictive approach to the SDLC
an approach that assumes the project can be planned in advance and that the new information system can be developed according to the plan
adaptive approach to the SDLC
an approach that assumes the project must be more flexible and adapt to changing needs as the project progresses
iterative development
an approach to system development in which the system is "grown" piece by piece through multiple iterations (repetition) complete a small part of the system, then repeat to refine and add more, then repeat to refine and add more, then repeat to refine and add more,
subsystem
an identifiable and partitioned portion of an overall system
Agile Development
an information systems development process that emphasizes flexibility to anticipate new requirements during development fast and responsive to change A guiding philosophy and set of guidelines for developing information systems in an unknown, rapidly changing environment Complements Adaptive SDLCs and Methodologies that support it Uses adaptive methods and makes sure developers are fast on their feet to respond to changes
Business Model v Business Plan
business plan—a static document that describes the size of an opportunity, the problem to be solved, and the solution that the new venture will provide. Typically it includes a five-year forecast for income, profits, and cash flow. A business plan is essentially a research exercise written in isolation at a desk before an entrepreneur has even begun to build a product. The assumption is that it's possible to figure out most of the unknowns of a business in advance, before you raise money and actually execute the idea. Business model is hypothesis driven
Customer Segments
defines the different groups of people or organizations an enterprise aims to reach and serve A business model may define one or several large or small Customer Segments. An organization must make a conscious decision about which segments to serve and which segments to ignore. Customer groups represent separate segments if: • Their needs require and justify a distinct offer • They are reached through different Distribution Channels • They require different types of relationships • They have substantially different profitabilities • They are willing to pay for different aspects of the offer
object-oriented design (OOD)
defining all of the types of objects necessary to communicate with people and devices in the system, showing how objects interact to complete tasks, and refining the definition of each type of object so it can be implemented with a specific language or environment
Cost Structure
describes all costs incurred to operate a business model This building block describes the most important costs incurred while operating under a particular business model. Creating and delivering value, maintaining Customer Relationships, and generating revenue all incur costs. Such costs can be calculated relatively easily after defining KR, KA, and KP. Some business models, though, are more cost-driven than others."no frills" airlines, for instance, have built business models entirely around low Cost Structures.
Channels
describes how a company communicates with and reaches its Customer Segments to deliver a Value Proposition Communication, distribution, and sales Channels comprise a company's interface with customers. Channels are customer touch points that play an important role in the customer experience.
Value Propositions
describes the bundle of products and services that create value for a specific Customer Segment -newness -performance -customization -Getting the job done -Design -Brand/status -Price -Cost reduction -Risk reduction -Accessibility -Convenience/usability The VP solves a customer problem or satisfies a customer need. Each VP consists of a selected bundle of products and/or services that caters to the requirements of a specific Customer Segment. Some VPs may be innovative and represent a new or disruptive offer; others may add new features and attributes.
Key Resources
describes the most important assets required to make a business model work Every business model requires KR. These resources allow an enterprise to create and offer a Value Proposition, reach markets, maintain relationships with Customer Segments, and earn revenues. Different KR are needed depending on the type of business model. Key resources can be physical, financial, intellectual, or human.
Key Activities
describes the most important things a company must do to make its business model work KA are the most important actions a company must take to operate successfully. Like Key Resources, they are required to create and offer a Value Proposition, reach markets, maintain Customer Relationships, and earn revenues. KA also differ depending on business model type (e.g., KA for Microsoft include software development, for McKinsey KA include problem solving)
Key Partnerships
describes the network of suppliers and partners that make the business model work Partnerships are becoming a cornerstone of many business models. KP can optimize the business models, reduce risk, or acquire resources. Consider four different types of partnerships: Strategic alliances between non-competitors; Coopetition: strategic partnerships between competitors; Joint ventures to develop new businesses; Buyer-supplier relationships to assure reliable supplies
Customer Relationships
describes the types of relationships a company establishes with specific Customer Segments -Personal assistance -Dedicated personal assistance -Self-service -Automated services -Communities -Co-creation A company should clarify the type of relationship it wants to establish with each Customer Segment. Relationships can range from personal to automated.
Core Process 2: plan and then monitor the project as it's carried out
establish the project environment go to get tools in place, people on the team and figure out who's going to be on the project, get staffing completed, things like that. schedule the work You need to figure out who's going to be doing what and when. You need to staff and allocate resources and then as you're going along you need to evaluate how well the work processes have been going off and then continue to monitor progress and make corrections to keep the project on track.
technique
guidelines to specify a method for how to carry out a development activity or task
Methodology
includes a collection of techniques that are used to complete activities and tasks, including modeling, for every aspect of the project
Minimum Viable Product
product with the highest return on investment versus risk. containing only critical features—gathers feedback on it from customers, and then starts over with a revised minimum viable product.
object-oriented programming (OOP)
programming using object-oriented languages that support object classes, inheritance, reuse, and encapsulation
phases
related groups of development activities, such as planning, analysis, design, implementation, and support
Revenue Streams
represents the cash a company generates from each Customer Segment (costs must be subtracted from revenues to create earnings) If customers comprise the heart of a business model, R$ are its arteries. For what value is each Customer Segment willing to pay? Successfully answering that question allows the firm to generate one or more R$ from each CS. Each R$ may have different pricing mechanisms
Core Process 6: complete system tests and then deploy the solution
so it can be used in the organization and you can begin to reap the benefits.
Unified Modeling Language (UML)
standard diagramming language helps us explore the big picture
object-oriented approach
system development based on the view that a system is a set of interacting objects that work together
structured approach
system development using structured analysis, structured design, and structured programming techniques
support activities
the activities in the support phase whose objective is to maintain and enhance the system after it is installed and in use
information systems development process
the actual approach used to develop a particular information system
help desk
the availability of support staff to assist users with technical or processing problems of the information system
top-down programming
the concept of dividing a complex program into a hierarchy of program modules
structured design
the design process of organizing a program into a set of modules and organizing those modules into a hierarchical structure
Systems Development Life Cycle (SDLC)
the entire process consisting of all the activities required to build, launch, and maintain an information system
object-oriented analysis (OOA)
the process of identifying and defining the use cases and the sets of objects (classes) in the new system
systems design
those activities that enable a person to define and describe in detail the system that solves the need it describes in detail "how" a system will work to satisfy the need or solve a problem
systems analysis
those activities that enable a person to understand and specify what the new system should accomplish it describes in detail "what" a system must do to satisfy the need or solve a problem
visual modeling tools
tools that help analysts create and verify graphical models and may also generate program code