The Systems Development Life-cycle (SDLC) and Modeling
7 Phases of the SDLC
1. Planning 2. Analysis 3. Design 4. Development 5. Testing 6. Implementation 7. Maintenance
Types of UML
Activity diagram (flow chart) and case diagram and description during analysis phase to figure out requirments. Sequence Diagram, ERD, and Wire frames during design phase to map out how technical systems will work.
Planning Phase
Define need, scope of system, and project plan. Outcome: Scope & Plans (project plan, risk management plan, and client interaction plan)
Design Phase
Design technical architecture and systems models Outcome: Logical System Models (database design as well as wire frames for project)
Development Phase
Develop technical architecture, build the databases and program the code Outcome: testable system
Structured SDLC Selection
Excellent: building systems that are complex and reliable Good: building systems with unfamiliar technology Bad: building systems with unclear user requirements and a short time schedule
Agile SDLC Selection
Excellent: building systems with unclear user requirement on short time lines Good: working with unfamiliar technology on complex and reliable software projects Bad: nothing really
Agile Development
Extreme Programming: to deliver high quality software quickly and continuous through the use of high customer involvement and rapid feedback. Delivers working software every 1-3 weeks. Scrum: series of sprints to deliver working software quickly and iteratively (more later)
Analysis Phase
Interviewing stakeholders, exploring the system environment Outcome: Requirements (business process flow charts and actor graphs)
Scrum Principles
People: Product owner, Scrum master (facilitates the process and guides team, making sure artifacts used in process), team members. Artifacts: Product backlog, sprint backlog, burn down chart (guide team during sprint as backlog has every desirable outcome users want from product) Three Ceremonies: sprint planning, daily scrum, and sprint review and retrospective.
Rapid Application Development
Phased Development: in which versions of the system are quickly produced and then new versions are made with additional requirements (repeats analysis, design, and implementation phases). Prototyping: cycle withing analysis, design, and development to create a system prototype that is adequate and will then be tested and implemented.
Pros and cons of Building
Pros: more control, can provide competitive advantage Cons: longer and more expensive, depends on in-house tools and skills
Pros and Cons of Buying
Pros: ready much sooner Cons: less control, expensive, dependency on vendor
Structured Development
SDLC methodology in which each of the seven SDLC phases are distinct and are completed in order with information picking up and flowing down. You finish design and move onto development without looking back. Can also consist of parallel development in which several teams complete different chunks of design and implementation and then combine at integration.
Testing Phase
Test and integrate all components, verification and validation Outcome: testing results
The Systems Development Life-cycle (SDLC)
The process of understanding how IS supports business needs, designing the system, building it and delivering it to users and maintaining it.
User Story
a brief statement of intent that describes something the systems needs to do for the user. Importance: understand users' needs, describe the product, used as a planning item and a token for a conversation. Collection of user stories makes up product backlog.
Unified Modeling Language (UML)
a general-purpose, developmental, modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. Helps establish the technical requirements and what needs to be done and for whom.
Maintenance Phase
help desk, bug fixes, modifications, versions Outcome: system versions
SDLC Methodology
specific approach used to conduct the steps of the SDLC that are necessary to plan, analyze, design, build, implement, and maintain info systems.
Implementation Phase
write detailed user documentation, provide training for system users Outcome: Working system on site