Approaches to Systems Development Chapter 8
Outline Introduction Ch 8 - Approaches to System Development Systems Analyst Ch 8 - Approaches to System Development SDLC Phases & Core Processes Approaches: Predictive & Adaptive Methodology Software Construction & Modeling Approaches Structured A&D Object-oriented Agile Development
Systems Analyst Organizational role most responsible for analysis and design of information systems. Translates a _________ __________ into an ___________ ___________ ___________ . Job Titles vary by organization; read the job description Systems Analyst Business Analyst (client-facing)
…more of a business problem solver than a technical programmer Systems Analyst …more of a business problem solver than a technical programmer Knowledge & Skills Technical DB, Programming, Computers Hardware, Networking, Operating systems, and utilities, Communication & collaboration technology SDLC techniques Business Organizational knowledge Management techniques Functional work processes People Communication skills Interpersonal Skills Roles: Negotiator, Teacher, Mentor, Collaborator, Manager
Systems Development Project Is a planned undertaking Has fixed beginning and end Produces desired result or product Varies in size
SDLC: Systems Development Life Cycle Provides overall framework for managing systems development process All projects use some variation of SDLC Phase Project Initiation Planning Analysis Design Implementation Deployment Core Process 1. Identify the problem/need & obtain approval 2. Plan & monitor the project 3. Discover & understand the details 4. Design the system components 5. Build, test, and integrate system components 6. Complete system tests and deploy solution Ch 9 Ch 9 Ch 2-5 Ch 7,10-12 Ch 13 Ch 13
2 Approaches to the SDLC Assumptions Assumptions Predictive SDLC Adaptive SDLC Waterfall Model Modified Waterfall Spiral Model Incremental Development Assumptions can be planned in advance system can be developed according to the plan Assumptions Iterative Must be flexible & adapt
Predictive Approaches Waterfall One phase begins when another completes; Specifications are frozen Support Deployment Planning Analysis Design Implementation Project Initiation Problems System requirements “locked in” Limited user involvement Too much focus on milestone deadlines Modified Waterfall Overlapping phases Can go backwards Support Deployment Planning Analysis Design Implementation Project Initiation
Adaptive Approaches: Spiral Model An iterative approach Spiral until project completion Then, deployed! Project Management: managed differently than a waterfall approach
Adaptive Approaches: Incremental Development Also, an iterative approach BUT… System is built in small increments; it is "grown" As an iteration is completed it is integrated to the whole Partially deployed in steps Advantage some functionality gets into the user's hands much earlier
Methodology A comprehensive guideline to follow for completing every SDLC activity Abstraction used to separate out aspect Methodology Models Techniques Tools Software to create models or other project components Guidelines or instructions
2 Approaches to Software Construction & Modeling Structured Approach analysis, design & programming Object-oriented Approach
Software Construction & Modeling: Structured Approach Analysis Structured Design Structured Programming Define processing requirements Define data requirements Define inputs and outputs Define how functions work together to accomplish tasks Determines set of programs Purpose of each Organization of programs Main principles: Loosely coupled Highly cohesive Each program has one beginning & one ending Uses 3 constructs: Sequence Decision Repetition Improvements: program quality easier to maintain
Software Construction & Modeling: Object-Oriented Approach Views information system as a collection of interacting objects that work together to accomplish tasks OOA, OOD, OOP OO languages C++, Java, C# Benefits Reuse!
Agile Development A guiding philosophy and set of guidelines for : developing information systems in an unknown rapidly changing environment Complements Adaptive SDLCs & Methodologies makes sure developers are fast to respond to changes “Manifesto for Agile Development” agilemanifesto.org 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