720 likes | 889 Views
MIS 210 Information Systems I. Lecture 2: SDLC Methodologies Project Initiation and Planning Requirements Analysis. Systems Development Life Cycle (SDLC). Systems Development. What is a system? A collection of related components that interact to perform a task in order to accomplish a goal
E N D
MIS 210 Information Systems I Lecture 2:SDLCMethodologiesProject Initiation and PlanningRequirements Analysis
Systems Development What is a system? A collection of related components that interact to perform a task in order to accomplish a goal Systems development (systems analysis and design) is the process of creating systems, developing them, and maintaining or enhancing them.
Characteristics of Software • Software is developed, not manufactured • Software does not “wear out” • although it can become obsolete
Today’s Software Development Environment • Failures • Productivity gap • Backlogs • Maintenance bound
Alleviating the Problems in Systems Development Elimination of the causes of system failure lie in 1. the application of methodologies 2. modeling tools 3. techniques 4. project management techniques to design and build IS that not only meet the needs of the users, but also are delivered on time and within budget
Principles of Successful Systems Development • Get the user involved • Use a problem-solving approach • Establish phases and activities • Establish standards for development and documentation • Justify systems as capital investments • Don't be afraid to cancel or revise scope • Divide and conquer • Design systems for growth and change • Proper planning and project management
Some Key Terms ... • Systems development life cycle (SDLC): the life of a project, from concept through implementation • Methodology: a comprehensive and detailed version of an entire SDLC • Technique: an approach that applies specific tools and rules to complete one or more phases of the methodology • Modeling tools: specific tools used to apply techniques • Project management techniques: tools used to help plan, schedule, and control a project
Tools • Software support that helps create models or other project components • From simple drawing programs to complex CASE tools
Some Tools • Project management applications • Drawing/graphics applications • Word processing/text editor • Computer-aided system engineering (CASE) tools • Integrated development environment (IDF) • Database management applications • Reverse-engineering tool • Code generators
Techniques • Collection of guidelines that help the analyst complete a system development activity or task • Step-by-step instructions • General advice
Some Techniques • Strategic planning • Project management • User interviewing • Data-modeling • Relational database design
Systems Development Lifecycle (SDLC) • Three major activities • Analysis: understanding business needs • Design: conceptualizing computer-system solution • Implementation: construction, testing, and installation • Two additional phases • Project planning • Support
The SDLC 1. Planning a. Project identification and selection b. Project initiation and planning 2. Analysis a. Determine system requirements (WHAT users need) b. Modeling possible solutions (HOW to satisfy user needs) 3. Design a. logical design b. physical design 4. Implementation 5. Maintenance / support Frontend A D Backend I
SDLC Concepts • All projects use some variation of the SDLC • SDLC is more than phases • Principles of management • Planning and control • Organization and scheduling • Problem solving
Major Attributes of the Life Cycle • The project -- • Moves systematically through phases where each phase has a standard set of outputs • Produces project deliverables • Uses deliverables in implementation • Results in actual information system • Uses gradual refinement
Project Phases • Planning (Why build the system? How should the team go about building it?) • Analysis (Who uses system, what will it do, where and when will the system be used?) • Design (How will the system work?) • Implementation (System delivery)
Planning • Identifying business value • Analyze feasibility • Develop work plan • Staff the project • Control and direct project
Design • Design selection • Architecture design • Interface design • Data storage design • Program design
Implementation • Construction • Program building • Program and system testing • Installation • Conversion strategy • Training plan • Support plan
Support Phase • Objective: Keep system running productively following initial installation • End-user support • Help desks • Training programs • Maintaining and enhancing computer system • Enhancements • Upgrades • Maintenance
Common Development Methodologies and Techniques • Code & fix model • Structured development • Prototyping • Rapid application development • Object-oriented development
Code and Fix It Model • An early technique • The developer, in the following order: • codes • thinks about requirements • fixes the code • continues this process until...
Structured Development • Based on the principles of: • modularization • top-down decomposition • process driven • Structured programming • Structured design • Structured analysis
Systems Development Life CycleWaterfall Model Project Identification and Selection Project Initiation and Planning Analysis Logical Design Physical Design Implementation Maintenance
Waterfall Model • Problems • dependent on documents, particularly in completing the requirements and design phases • tendency to hide poorly understood requirements with elaborate specifications
Advantages of Structured Development • Been used successfully for over 30 years • Provides a clear framework that defines and divides important activities • Can be applied to both small and large projects • Division of labor is easier to facilitate
Limitations of Structured Development • Specification problems • assumes that development is a sequential process • Changing requirements • requirements specified at the beginning • assumption that requirements will not change • Conceptualization and visualization • document led methodology • volume of documentation can be huge • Inaccuracy • there is only downward trend
Prototyping • Principle: a user can tell you better what they DON'T want than what they DO want • Expendable (throw-away) prototyping: • discarded after use • used to support the analysis and design phases • Evolutionary prototyping: • prototype evolves into the final system • is it a methodology?
Advantages • Speed • Easier for end-users to learn • System changes discovered earlier • End-user involvement (ownership) • increased user satisfaction • increased user acceptance • User-analyst communication • Early problem detection • reduced development time • reduced maintenance
Disadvantages • Poor documentation • Hard to control/manage • (Unrealistic) User expectations • time for final system • final system differences • reduced analysis
Rapid Application Development(RAD) • Logistical approach to systems design • Combines • integrated CASE tools • information engineering methodologies • management techniques • Speeds up Systems Development by as much as 20 times • Critics consider it incomplete life cycle
Object-Oriented (OO) Development • A fundamentally new way of thinking about developing systems • Object-oriented: means that we organize software as a collection of discrete objects that incorporate both data and behavior • Object-oriented development: an approach to systems development that proposes the use of objects in the building of new systems and the rebuilding of old ones
Advantages of OO • Faster development • Higher quality • Easier maintenance • Increased scalability • Better information structure • Increased adaptability • Increased modeling power • Supports complexity Reuse
Disadvantages of OO • Maturity of technology • Need for standards • Lack of database technology • Lack of reusable software • Lack of metrics • Speed of execution • Availability of qualified personnel • Cost of conversion
Project Initiation and Planning • Long-term information systems strategic plan (top-down) • Department managers or process managers (bottom-up) • Response to outside forces • Legislative changes • Market forces • Competition
Confirming Project Feasibility • Economic • Organizational and cultural • Technological • Schedule • Resource
Intangibles in Economic Feasibility • Costs and benefits cannot always be measured • Examples • Increased levels of service • Survival • Lost customers or sales
Organizational and Cultural Feasibility • Each company has own culture • New system must fit into culture • Evaluate related issues for potential risks
Technological Feasibility • Does system stretch state-of-the-art? • Does expertise exist in-house for development? • Does a third party need to be involved?
Schedule Feasibility • Can project be completed on time? • Risk of schedule slipping • Assumptions and estimates
Resource Feasibility • Team member availability • Team skill levels • Equipment • Support staff • Physical facilities
Developing Project Schedule • Task: smallest piece of work • Activity: group of tasks • Phase: group of activities • Schedule process • List all tasks for each SDLC activity • Estimate sizes of each task • Determine task sequence • Schedule tasks
Project Staffing • Develop resource plan for the project • Identify and request specific technical staff • Identify and request specific user staff • Organize the project team into work groups • Conduct preliminary training and team building exercises
Launching Project • Oversight committee is finalized and meets to give go-ahead • Formal announcement made • Key question, “Are we ready to start?”
Focusing the Investigation • Most system problems occur in complex tasks that have high user impact • Application complexity • User impact
Analysis A. Determine system requirements B. Structure requirements • 1. Process modeling • 2. Logic modeling • 3. Data modeling C. Select best alternative