chapter 01
1.Software Development and Systems Analysis and Design
2.Systems Development Lifecycle (SDLC) 6 steps
- Identify the problem or need and obtain approval
- Plan and monitor the project
- Discover and understand the details of the problem or need
- Design the system components that solve the problem
- Build, test, and integrate system components
- Complete system tests and then deploy the solution
System development process – the actual approach used to develop a particular information system (aka: methodology)
- Unified process (UP)
- Extreme programming (XP)
- Scrum
Most processes/methodologies now use Agile and Iterative development
3.Iterative Development
Agile development – an information system development process that emphasizes flexibility to anticipate new requirements during development
- Fast on feet; responsive to change
Iterative development -- an approach to system development in which the system is “grown” piece by piece through multiple iterations
- Complete small part of system (mini-project), then repeat processes to refine and add more, then repeat to refine and add more, until done
4.Introduction to Ridgeline Mountain Outfitters (RMO)
Notes on Managing the Project
Lots of design diagrams shown
- Design in a complex activity with multiple levels
- One diagram builds on/complements another
- Not everything is diagrammed, especially for a small project. Pick and choose.
Programming is also done concurrently
- You don’t design everything then code
- You do some design, some coding, some design, some coding
5.Developing RMO’s Tradeshow Systems
Initial Activities – pre-project
Core Process 1
identify the problem and document the objective of the system (core process 1)
- Preliminary investigation
- System Vision Document
Obtain approval to commence the project (core process 1)
- Meet with key stakeholders, including executive management
- Decision reached, approve plan and budget
Core Process 2: Plan the Project
- Determine the major components (functional areas) that are needed
- Define the iterations and assign each function to an iteration
- Determine team members and responsibilities
Core Process 3: Discover and Understand Details
- Do preliminary fact-finding to understand requirements
- Develop a preliminary list of use cases and a use case diagram
- Develop a preliminary list of classes and a class diagram
- Do in-depth fact-finding to understand requirements
- Understand and document the detailed workflow of each use case
Core Process 4: Design System Components
- Define the user experience with screens and report sketches
- Design the database (schema)
- Design the system’s high level structure
- Continue with design details
- Proceed use case by use case
Core Process 5: Build, Test, and Integrate System Components
- Continue programming (build)
- Build use case by use case
- Perform unit and integration tests
Core Process 6: Complete System Testing and Deploy the System
- Perform system functional testing
- Perform user acceptance testing
- Possibly deploy part of system
6. System Analyst
The Analyst as a Business Problem Solver
Systems That Solve Business Problems
Required Skills of the Systems Analyst
Analysis-Related Careers
chapter 02
overview
This chapter expands the SDLC processes to cover a wider range of concepts, tools and techniques
Core process 3: Discover and understand the details of the problem or need—is the main focus of systems analysis
Systems analysis activities are detailed in this chapter
Strategic Plan
- Technology architecture— the set of computing hardware, network hardware and topology, and system software employed by the organization
- Application architecture—the information systems that supports the organization (information systems, subsystems, and supporting technology)
1.Describe the activities of systems analysis
- Gather Detailed Information
- Interviews, questionnaires, documents, observing business processes, researching vendors, comments and suggestions
- Define Requirements
- Modeling functional requirements and non-functional requirements
- Prioritize Requirements
- Essential, important, vs. nice to have
- Develop User-Interface Dialogs
- Flow of interaction between user and system
- Evaluate Requirements with Users
- User involvement, feedback, adapt to changes
2.Explain the difference between functional and nonfunctional requirements
System Requirements = Functional requirements + Non-functional requirements
Functional Requirements– the activities the system must perform
- Business uses, functions the users carry out
Non-Functional Requirements– other system characteristics
- Constraints and performance goals
FURPS+ Requirements Acronym
Additional Requirements Categories
Design constraints –
- Specific restrictions for hardware and software
Implementation requirements
- Specific languages, tools, protocols, etc.
Interface requirements
- Interface links to other systems
Physical requirements
- Physical facilities and equipment constraints
Supportability requirements
- Automatic updates and enhancement methods
3.Identify and understand different kinds of stakeholders and their contributions to requirements definition
Stakeholders– persons who have an interest in the successful implementation of the system
Internal Stakeholders– persons within the organization
External stakeholders – persons outside the organization
Operational stakeholders – persons who regularly interact with the system
Executive stakeholders– persons who don’t directly interact, but use the information or have financial interest
4.Describe information-gathering techniques and determine when each is best applied
Interviewing users and other stakeholders
how:
Prepare detailed questions
Meet with individuals or groups of users
Obtain and discuss answers to the questions
Document the answers
Follow up as needed in future meetings or interviews
Distributing and collecting questionnaires
Reviewing inputs, outputs, and documentation
Observing and documenting business procedures
- watch and learn
- document with activity diagram
Researching vendor solutions
- See what others have done for similar situations
- White papers, vendor literature, competitors
Collecting active user comments and suggestions
- Feedback on models and tests
- Users know it when the see it
5.Describe the role of models in systems analysis
role: define requirements
how: after collecting information, create models
types:
- Textual model– something written down, described
- Graphical models– diagram, schematic
- Mathematical models– formulas, statistics, algorithms
tools:
Unified Modeling Language (UML) : Standard graphical modeling symbols/terminology used for information systems
reasons for modeling:
- Learning from the modeling process
- Reducing complexity by abstraction
- Remembering all the details
- Communicating with other development team members
- Communicating with a variety of users and stakeholders
- Documenting what was done for future maintenance/enhancement
some model examples:
6.Develop UML activity diagrams to model workflows
Workflow– sequence of processing steps that completely handles one business transaction or customer request
Activity Diagram: showing a graphical model of a workflow ------ a UML diagram
SUMMARY
Systems analysis activates correspond to the core SDLC process Discover and understand details
System projects originate from the information system strategic plan, which contains an technology architecture plan and an application architecture plan
Systems analysis involves defining system requirements– functional and non-functional
- Analysis activities include
- Gather detailed information
- Define requirements
- Prioritize requirements
- Develop user-interface dialogs
- Evaluate requirements with users
FURPS+ is the acronym for functional, usability, reliability, performance, and security requirements
Stakeholders are the people who have an interest in the success of the project
There are internal vs. external stakeholders and operational vs. executive stakeholders
Chapter 10
outline
The System Development Life Cycle
Methodologies, Models, Tools, and Techniques
Agile Development
The Unified Process, Extreme Programming, and Scrum
overview
Predictive versus Adaptive SDLC variations
Activities and Tasks of System Support
Models, Methodologies, Tools and Techniques
Agile Development
Specific SDLC Approaches
- Unified Process (UP)
- Extreme Programming (XP)
- Scrum
The System Development Life Cycle (SDLC)
1. Predictive Approach to the SDLC
- 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
2. 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
1. 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
2. Modified Waterfall with Overlapping Phases
- More flexibility, but still assumes predictive planning and sequential phases
3. 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 due to apparent lack of overall plan
Adaptive Approaches
1. incremental development
- Completes portions of the system in small increments and integrated as the project progresses
- Sometimes considered “growing” a system
2. Walking Skeleton
The complete system structure is built first, but with bare-bones functionality
A Generic Adaptive Approach
- Six Core Processes go across iterations
- Multiple Iterations as required
Methodologies, Models, Tools, and Techniques
1. Methodologies
- 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
Other term used is System Development Process
A Methodology includes a collection of techniques that are used to complete activities and tasks, including modeling, for every aspect of the project
2. Model
- 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 that will be developed
- Other models are used to manage the development process
3. Tools
Software applications that assists developers in creating models or other components required for a project
Integrated Development Environment (IDE)
- set of tools that work together to provide a comprehensive development environment
Visual Modeling Tools
- Tools to create graphical models
4. 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
Agile Development
- A guiding philosophy and set of guidelines for developing information systems in an unknown, rapidly changing environment
- Chaordic
- A term for adaptive projects – chaotic yet ordered
Agile Values in “Manifesto for Agile Software Development”
- Value responding to change over following a plan
- Value individuals and interactions over processes and tools
- Value working software over comprehensive documentation
- Value customer collaboration over contract negotiation
Agile Modeling (AM) – 12 Principles
- A philosophy – build only necessary models that are useful and at the right level of detail
1. Develop software as the primary goal
- Don’t get distracted by documentation or models
2. Enable the next effort as your secondary goal
- Be aware of next step versions or revisions
3. Minimize your modeling activity
- Only build what helps move the project forward
4. Embrace change and change incrementally
- Take small steps that keep you on-track and that can be reversed if necessary
5. Model with a purpose
- Model to understand
- Model to communicate
6. Build multiple models
- Look at problems from different perspectives
7. Build high-quality models and get feedback
8. Focus on content rather than representation
- Informal hand-drawn models are sometimes okay
- Always focus on stakeholder needs
9. Learn from each other with open communication
10. Know your models and how to use them
11. Adapt to specific project needs
12. Maximize stakeholder RMI
The Unified Process (UP)
- The UP was the early leader in adaptive approaches
- UP and UML (Unified Modeling Language) were developed together
UP Phases
organize iterations into 4 primary areas of focus during a project
- Inception phase – getting the project started
- Elaboration – understanding the system requirements
- Construction – building the system
- Transitions – preparing for and moving to deploying the new system
Unified Process – Disciplines
-
A set of functionally related development activities
Each discipline are all the activities related to achieving one objective in the development project
Two types of disciplines
- Development disciplines
-
Business modeling
Requirements
Design
Implementation
Testing
Deployment
-
- Management – planning and control disciplines
-
Configuration and change management
Project management
Environment
-
Extreme Programming (XP)
Takes the best practices of software development and extends them “to the extreme”
- Focus intensely on proven industry practices
- Combine them in unique ways to get better results
XP Core Values
- Communication
- Simplicity
- Feedback
- Courage
XP Practices
- Planning – based on user stories
- Testing – thorough testing at every step
- Pair Programming – watch, inspect, trade off
- Simple Designs – Agile modeling principles
- Refactoring – redo and cleanup as you go
- Owning the code collectively – egoless development, anyone can review and improve code
- Continuous integration – grow the software continuously
- On-site customer – get sign-off as you go
- System metaphor – what should the final system look like
- Small releases – turn over to user frequently
- Forty-hour work week – don’t overload the developers
- Coding standards – follow standards for code
XP Project Approach
Three level approach (three rings)
- Outside ring – create user stories and define acceptance tests
- Middle ring – conduct tests and do overall planning
- Inside ring – iterations of coding and testing
SCRUM
Combination of principles of Rugby and Agile
- Intense effort involving the entire team for a defined period of time
Product backlog 产品待办事项
- Prioritized list of user requirements
Product owner
- The client stakeholder who controls backlog
Scrum master
- Scrum project manager
Scrum sprint
- A time-controlled mini-project to implement part of the system
Scope of each sprint is frozen (but can be reduced if necessary)
Time period is kept constant
Daily Scrum meeting
- What have you done since the last daily Scrum (during the last 24 hours)?
- What will you do by the next daily Scrum?
- What kept you or is keeping you from completing your work?
SUMMARY
- This chapter covers approaches to system development in more detail
- There are two approaches to the SDLC: Predictive and Adaptive
- A predictive SDLC, also known as the waterfall model, is used when it is possible to plan the project completely in advance
- An Adaptive SDLC, which uses iteration, is used when the requirements are less certain and the project will need to react to changes
- All new System development project use a methodology (or development process) and many are available. A methodology includes an SDLC and tools, techniques, and models
- Agile development is the current trend in system development
- Unified Process is a formal iterative approach which uses UML models (with Agile philosophy) and UP disciplines
- Extreme Programming (XP) is an iterative approach which takes good practices to the extreme
- Scrum is an iterative approach using a Scrum Sprint
chapter 11
Outline
Principles of Project Management
Activities of SDLC Core Process 1: Identify the Problem and Obtain Approval
Activities of SDLC Core Process 2: Plan and Monitor the Project
Principles of Project Management
Categories of project success
- Successful projects – on time, within budget, on scope
- Challenged projects – failure in one area
- Failed projects – cancelled or not used
Recent years have seen some improvement, but still 1/3 to 1/2 of projects are challenged or fail
The Need for Project Management
Reasons for failure
- Undefined project management practices
- Poor IT management and poor IT procedures
- Inadequate executive support for the project
- Inexperienced project managers
- Unclear business needs and project objectives
- Inadequate user involvement
The Role of the Project Manager
Project Management
- Organizing and directing other people to achieve a planned result within a predetermined schedule and budget
- The processes used to plan the project and then to monitor and control it.
Project Manager
- Great need for effective project managers
- Internally managing people and resources
- Externally conducting public relations
Project Manager Responsibilities
Internal Responsibilities
- Developing the project schedule
- Recruiting and training team members
- Assigning work to teams and team members
- Assessing project risks
- Monitoring and controlling project deliverables and milestones
External Responsibilities
- Reporting the project’s status and progress
- Working directly with the client (the project’s sponsor) and other stakeholders
- Identifying resource needs and obtaining resources
Additional Project Stakeholders
Client
- the person or group that funds the project
Oversight Committee
- clients and key managers who review the progress and direct the project
Users
- the person or group of people who will use the new system
Project Management and Ceremony
Ceremony
- The level of formality of a project; the rigor of holding meetings and producing documentation
High Ceremony
- Meetings are often held on a predefined schedule, with specific participants, agendas, minutes, and follow-through
- Specifications are formally documented with an abundance of diagrams and documentation and are frequently verified through formal review meetings between developers and users.
Low Ceremony
- Meetings occur in the hallway or around the water cooler.
- Written documentation, formal specifications, and detailed models are kept to a minimum
- Developers and users usually work closely together on a daily basis to define requirements and develop the system
Project Management Body of Knowledge (PMBOK)
- Project Integration Management—Integrating all the other knowledge areas into one seamless whole
- Project Scope Management—Defining and controlling the functions that are to be included in the system as well as the scope of the work to be done by the project team
- Project Time Management—Creating a detailed schedule of all project tasks and then monitoring the progress of the project against defined milestones
- Project Cost Management—Calculating the initial cost/benefit analysis and its later updates and monitoring expenditures as the project progresses
- Project Quality Management—Establishing a comprehensive plan for ensuring quality, which includes quality control activities for every phase of a project
- Project Human Resource Management—Recruiting and hiring project team members; training, motivating, and team building; and implementing related activities to ensure a happy, productive team
- Project Communications Management—Identifying all stakeholders and the key communications to each; also establishing all communications mechanisms and schedules
- Project Risk Management—Identifying and reviewing throughout the project all potential risks for failure and developing plans to reduce these risks
- Project Procurement Management—Developing requests for proposals, evaluating bids, writing contracts, and then monitoring vendor performance
- Project Stakeholder Management—Identifying and communicating with the stakeholders of the new system
“Agile” Project Management
Agile Scope Management
- Scope is not well understood, but needs to be controlled
Agile Time Management
- Schedule must be flexible due to changes
Agile Cost Management
- Costs are more difficult to estimate
Agile Risk Management
- Higher risk aspects of project are completed first
Agile Quality Management
- Quality assessed after each iteration
Activities of Core Process 1: Identify the Problem and Obtain Approval
1. identify the Problem
IS Development Projects usually:
Respond to an opportunity
- Strategic initiative
- Something that provides competitive advantage
Resolve a problem
- Operational issues keep coming up
- User needs aren’t being met
Respond to an external directive
- Legislation requires new form of reporting
- Changes in tax laws or regulations
System Vision Document
Problem Description
- What is the problem and idea for the solution?
System Capabilities
- What are the capabilities the new system will have?
- Helps define the scope
Business Benefits
- The benefits that accrue to the organization
- Tangible (in dollars) and intangible benefits
2. Quantify Project Approval Factors
- Estimated Time for Completion
- Estimated Cost for Development
- Estimated Cost for Support
- Anticipated Benefits from New System
- Tangible “Dollar” Benefits: Cost/Benefit Analysis
Cost/benefit analysis
Cost/benefit analysis
- comparing costs and benefits to see if the net result is plus or minus
Net Present Value (NPV)
- the present value of dollar benefits and dollar costs of a particular investment
Break-even Point
- point in time at which benefits and costs are equal
Payback Period
- the time period after which the dollar benefits have offset the dollar costs
Tangible Benefit
- a benefit that can be measured or estimated in terms of dollars
Intangible Benefit
- a benefit that accrues to an organization but that can’t be measured quantitatively or estimated accurately
-
Increased levels of service
Increased customer satisfaction
Survival—need to do it to compete
Need to develop in-house expertise
3. Determine Project Risk and Feasibility
- Determine the organizational risks and feasibility
- Evaluate the technological risks and feasibility
- Assess the resource risks and feasibility
- Identify the schedule risks and feasibility
4. Review with Client and Obtain Approval
- Executive committee reviews and approves
- Board must review and approve for very large projects
- Involved stakeholders need to understand what is expected of them
- IS department needs to know what to do for staffing and support
- Whole organization should be made aware of the project and its importance
Activities of Core Process 2: Plan and Monitor the Project
1. Establish the Project Environment
Project manager must establish project parameters and the work environment:
- Recording and communicating—internal and external
-
Work environment
-
Workstations, software development tools (IDE), servers and repositories, office and meeting space, support staff
-
- Process and procedures followed
-
Reporting and documentation, programming approach, testing, deliverables, code and version control
-
In other words, tailor and operationalize the methodology being used
Electronic digital repositories of information
Work Environment – Tools
- Personal computer(s) and/or workstation(s)
- Personal development software and tools
- Development server with repositories, sandboxes, and communication tools
- Office space, conference rooms, and equipment, including printers, scanners, and projectors
- Support staff
2. Schedule the Work
Project manager must establish initial project schedule and keep adjusting:
-
Project Iteration Schedule
-
Detailed Work Schedule ( 3 steps )
- Develop a Work Breakdown Structure (WBS)
-
when completed
task definition - clear
1-5 days
-
- Estimate effort and identify dependencies
- Create a schedule using a Gantt chart
- Shows task, duration, start date, predecessors, and resources
- Develop a Work Breakdown Structure (WBS)
3. Staff and Allocate Resources
Staffing activity tasks consists of 5 tasks:
- Developing a resource plan for the project
- Identifying and requesting specific technical staff
- Identifying and requesting specific user staff
- Organizing the project team into work groups
- Conducting preliminary training and team-building exercises
4. Evaluate Work Processes
5. Monitor Project Progress and Make Corrections
SUMMARY
- Project management is an important and challenging career role. Information systems projects do not have a great success rate, and project management knowledge and skills are valued and needed to improve this record.
- Project management is directing other people to achieve a planned result on schedule and on budget. Project managers have internal and external responsibilities.
- Project managers work with clients, who fund the project, an oversight committee which approves and reviews progress, and users who will directly interact with the system.
- The discipline of project management is organized into the Project Management Body of Knowledge (PMBOK) that includes 10 knowledge areas. Project managers should study and digest this body of knowledge.
- Managing a project can be at a high or low level of ceremony, meaning the degree that the project management processes are formal and documented. Agile project management is usually used with adaptive life cycles and low ceremony.
- The SDLC in this text includes two Core Processes that involve the project manager:
- 1) Identify the problem and obtain approval and 2) Plan and monitor the project. This chapter discusses the activities or both Core Process.
- The core process Identify the problem and obtain approval includes the following activities:
- 1) identify the problem, 2) quantify project approval factors, 3) perform risk and feasibility analysis, and 4) review with client and obtain approval.
- A key deliverable is the System Vision Document, which includes a problem description, an overview of system capabilities, and a list of business benefits. Key project approval factors include time estimate, cost estimate, and cost/benefit analysis. Additionally, risk and feasibility factors are organizational, technological, resource, and schedule.
- The core process Plan and monitor the project includes the following activities:
- 1) establish the project environment, 2) schedule the work, 3) staff and allocate resources, 4) evaluate work processes, and 5) monitor progress and make corrections.
- Scheduling the work includes a project iteration schedule and detailed work schedules. A work breakdown structure (WBS) lists tasks to be completed. Dependencies and time estimates are also considered and shown in a Gantt chart.