CS 5150 Software Engineering Lecture 4 Feasibility Studies.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

CS 5150 Software Engineering
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
CS CS 5150 Software Engineering Lecture 5 by Stephen Purpura Matching Process to Risk.
Object-oriented Analysis and Design
1 CS 501 Spring 2006 CS 501: Software Engineering Lecture 3 Feasibility Studies.
CS 501: Software Engineering
Software Processes: Traditional CSCI102 - Systems ITCS905 - Systems MCS Systems.
CS 5150 Software Engineering
1 IS371 WEEK 8 Last and Final Assignment Application Development Alternatives to Application Development Instructor Online Evaluations.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 3 Feasibility Studies.
CS 501: Software Engineering
CS CS 5150 Software Engineering Lecture 3 Feasibility Studies.
CS 5150 Software Engineering
CS 501: Software Engineering Fall 2000
COMP 350: Object Oriented Analysis and Design Lecture 2
Acquiring Information Systems and Applications
Software Evolution Planning CIS 376 Bruce R. Maxim UM-Dearborn.
“Here’s why you need the new wheels, too…” Shawn and Steve Image from
SYSTEMS DEVELOPMENT Phases, Tools, and Techniques
Software Project Planning CS470. What is Planning? Phases of a project can be mostly predicted Planning is the process of estimating the time and resources.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 3 Feasibility Studies.
Feasibility Studies CS 360 Lecture 2.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Software Engineering Management Lecture 1 The Software Process.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
ISM 5316 Week 3 Learning Objectives You should be able to: u Define and list issues and steps in Project Integration u List and describe the components.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Lecture 7: Requirements Engineering
Rational Unified Process Mr Hisham AlKhawar. Iterative versus Waterfall  We need to use a life cycle model in order to approach developing a system easily,
CS 5150 Software Engineering Lecture 3 Software Processes 2.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 3 Feasibility Studies.
Prof. Aiken CS 169 Lecture 21 Software Process CS169 Lecture 2.
Rational Unified Process (RUP) Process Meta-model Inception Phase These notes adopted and slightly modified from “RUP Made Easy”, provided by the IBM Academic.
CS CS 5150 Software Engineering Lecture 2 Software Processes 1.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
CS 5150 Software Engineering Lecture 7 Requirements 1.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
Systems Development Life Cycle
CS CS 5150 Software Engineering Lecture 5 Feasibility Studies.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
CS SE370 Software Engineering Lecture 5 Feasibility Studies.
CS 5150 Software Engineering Lecture 2 Software Processes 1.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Oktalia Juwita, S.Kom., M.MT. SYSTEMS DEVELOPMENT Dasar-dasar Sistem Informasi – IKU1102.
1 - 1 Systems Analysis and Design, Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding.
SWE 513: Software Engineering
CS CS 5150 Software Engineering Lecture 8 Requirements 1.
CS CS 5150 Software Engineering Lecture 8 Requirements 1.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
Chapter 6 SYSTEMS DEVELOPMENT Phases, Tools, and Techniques.
1 Project Management C13PM Session 2 Project Initiation & Definition Russell Taylor Business Department Staff Workroom
Feasibility Studies CS 560 Lecture 2 2/2/2016.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Chapter 11 Planning. 2 Project Planning “establishing a predetermined course of action within a forecasted environment” “establishing a predetermined.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
 System Requirement Specification and System Planning.
SOFTWARE DEVELOPMENT Presented By : Emporiumtech This presentation is brought you by
CS223: Software Engineering
Project Cost Management
Software Engineering Management
Managing the Project Lifecycle
CS 5150 Software Engineering
Software Process Models and the feasibility study
Software life cycle models
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
Presentation transcript:

CS 5150 Software Engineering Lecture 4 Feasibility Studies

CS Projects You should have a team at this point Contact your (potential) client soon, if you haven’t already The feasibility study and plan is due in just over 2 weeks Agreement with client is the most important step If you’re doing your own project, also check with course staff before the feasibility study

CS Software Processes for Open Source Last time you talked in small groups about whether software processes make sense for open source projects... or maybe some kinds of open source projects What are your thoughts?

CS Feasibility Study Analysis undertaken before committing to a project Leads to a yes/no/rework decision Often contains a projected budget, and leads to a formal budget request Sometimes takes the form of a proposal

CS Major Difficulty: Uncertainty Benefits are hard to quantify Approach is usually ill-defined. Cost, risk and timetable estimates are very rough at this point Organizational/external changes may be needed for the project Feasibility studies depend heavily on the judgment of experienced leaders Mistakes made early in a project are often expensive to correct

CS The Importance of Advocacy Advocacy is often a major factor in overcoming the inaction that naturally accompanies uncertainty Enthusiasm is necessary, but enthusiasts under-emphasize costs and risks (sometimes intentionally; always subconsciously) The people evaluating a project often have an interest in seeing it go forward

CS The Decision Maker’s Criteria Client: Who is the project for? Do we care? Scope: What are the boundaries of the project? Benefits: Can the benefits be quantified? Technical: Do we have a clear sense for how to implement the project? Resources: Estimated staff, time, equipment needs? Alternatives: What are the options if we don’t do the project?

CS Decision Makers Hate Risk Technical There must be a rough initial plan for completing the project The plan must acknowledge substantial uncertainties External Every project depends to some extent on external stakeholders Are there potential users? people who don’t want to see the project succeed?

CS System Ecosystem Systems live in an ecosystem. Is there a friendly one for this project? Management expertise in developing organization? Technical expertise in-house or contracted?

CS Example 1 Decision before feasibility report Government agency that manages a huge number of documents is slowly moving from paper to digital storage

CS Chronology University S developed a prototype system Funds were “procured” from congress to develop a major system The National Academy of Sciences was commissioned to do a feasibility study Problems: The money was already there! Feasibility study only looked at technical issues

CS Obvious Problems Organizational The agency management were not prepared to lead a large technology project No thought given to workflow and job changes Preparation No preliminary study to evaluate the properties of the documents to be managed (volume, privacy, secrecy, etc)

CS Outcome: Deeply Flawed System No one wants to return money to congress Feasibility study was given short-shrift Agency adopted a pure waterfall model The system has had limited success

CS Scope The boundaries of the system Included and excluded high-level functionality Dependencies Current systems to be replaced or augmented Confusion over scope is very common

CS Example 2 Government library contracted out for a “repository system” to manage data Contractor built software to store and manipulate complex digital material Nobody built a system to load and validate the database in the first place The library thought that was implicit in the project The contractor disagreed

CS Benefits Can potential benefits be quantified? Marketable product? Market size? Improved efficiency? New capability? Improved safety or security? Personal development is not a good justification for a project, but organizational development can be

CS Technical Feasibility Rough draft of the requirements Rough draft of high level design (i.e. architecture) List of expected frameworks/libraries to be acquired/used High-level scale estimates (number of users, size of data, etc) Assessment of existing team’s experience

CS Planning and Resources A feasibility study must have a rough plan Estimates for staffing, equipment needs, project timetable Major milestones and decision points Interactions with external stakeholders Deliverables and delivery dates (Later lecture on planning details)

CS Alternatives and Risks Major alternatives Revise or rewrite? In-house or contracted out? Delivery phases and points to change course Risks What can go wrong? How will we know (visibility)? Are there palatable alternatives?

CS The Report A written document to be archived with the project Must be accessible to all stakeholders Short enough that people will read it Clear writing is crucial Should spend more time writing and revising than any other document in the project

CS Use Case Stories Powerful tool for bridging the gap between users/clients and developers Write short “stories” with “characters” using the software you are going to develop Keep them short! Add just enough fun detail to get the brain in story mode

CS Feasibility Report Specific requirements Outline plan Discussion of business considerations Risk analysis

CS Check List Team. Hours/week? Skills/experience? Time. Little flexibility here Should have at least one fall-back point Equipment/software. Any special needs? Client. Any concerns about client availability? Overhead. Time for meetings, setting up systems, etc. Business considerations. Is your plan too ambitious?

CS Example Reports Two example reports are linked on the course website

CS Feasibility A feasibility study precedes the decision to start a project What is the scope of the project? What relevant experience to the participants have? Projected benefits? Projected costs, risks, timetable? Beware McConnell’s wicked problem But don’t appeal to it too quickly

CS Feasibility for 5150 Mostly a scoping aid Sketch out projected work More in next lecture

CS Requirements Define the system’s behavior from the client’s perspective Higher resolution than feasibility study Priorities -- relative importance Can be developed before design or incrementally

CS System and Program Design Define the system from the implementer’s perspective System design (or architecture) High level. Should fit on a white board for 5150 Program design “Medium level” Source of much debate in software engineering

CS Implementation (Construction) Actual coding Or acquisition and integration of existing code

CS Acceptance and Release The system is tested against the requirements by the client The system is transferred to the client or made available to the public

CS Operation and Maintenance Operation: The system is in active use Maintenance: Errors and other problems are identified and fixed or triaged Evolution: The system is changed in response to changing requirements and priorities This might involve a whole new cycle through a software process Phase out: Use of the system ends (abruptly or gradually) The software life cycle

CS Three Categories of Testing User testing Using mock-ups, prototypes or the actual system to evaluate usability with real potential users Program testing The development team makes sure the system works as designed Acceptance testing The client compares the system with the requirements

CS What is a Software Process? More or less formal rules for organizing work on software Trivial example: Meeting with client Meeting with team Code code code Test finished program to client

CS Spectrum of Software Processes (Modified) waterfall model Iterative refinement Incremental (Agile)

CS The Waterfall Model

CS Iterative Refinement

CS Incremental In each increment (sprint) the team works through the full software development cycle and ends up with new production-ready features Each sprint is assigned a fixed (and short) time frame, e.g. 4 weeks Team size involved in a sprint is usually small (5-10)

CS Waterfall Discussion Pros Visibility and predictability Separation of tasks Quality control at each step Cost control at each step Cons Wicked problems

CS Modified Waterfall This is more realistic

CS Iterative Refinement Discussion Pros Complete (bare-bones) system done quickly Can correct mistakes in early design stages Cons Throw away a lot of code Can encourage feature bloat Can lead to half-done features

CS Incremental Development Discussion Pros Leads quickly to production code Feedback benefits of iterative refinement, but even faster Minimizes wasted code Cons Haphazard high-level architecture

CS “Choosing” a Process Often heavily influenced by the project’s environment Big bureaucracies often like waterfall End user software vendors usually do something like iterative refinement Internet applications often developed with an incremental process

CS Thought Exercise Software process conversation dominated by commercial software developers Do these processes make sense for open source? What is open source? (Linux, Haskell compiler, Uncle Joe’s photo organizer)