Videos linked in slide show.
Chapter 12 Keywords:
Computer Programming: the process of designing and building an executable computer program to accomplish a specific computing result or to perform a specific task.
Systems Analyst: Armed with an understanding of both business and technology, these professionals analyze an organization's current computer systems & procedures, and recommend strategic changes to increase productivity, reduce costs and accomplish other business goals. Sometimes a distinction between systems analyst (technical) and business analyst.
Systems Development Issues: Review slides 3 to 15 for an overview of systems development issues
Programming Languages: Java, Java Script, HTML5, C, C++, Python (see slide 16 for a summary of main use)
Programming Basics (from slide 17):
- Sequential execution: Statements are executed in order.
- Parallel execution: Groups of code are executed at the same time.
- Variables: Containers to hold data
- Computations: Profit = Revenue - Cost
- Conditions: If (condition) Then – Else –
- Loops: While – End
- Subroutines and Functions: Break code into manageable pieces.
- Input/Output: Transferring data
- Objects: Code pieces purchased or created to do specific tasks.
Object Oriented Programming. The ultimate goal of the object-oriented approach is to build a set of reusable objects and procedures. The idea is that eventually, it should be possible to create new systems or modify old ones simply by plugging in a new module or modifying an existing object.
- Encapsulation: bundling data and methods that work on that data within one unit
- Inheritance: retaining similar implementation
- Polymorphism: the provision of a single interface to entities of different types
Systems Development Life Cycle: a process for planning, creating, testing, and deploying an information system. Steps include: Planning and Feasibility, Analysis and Design, Implementation, Maintenance. See slides 31 to 39. (Steps may be groped differently by different sources)
Systems Implementation Options: Direct Cutover, Parallel, Pilot, Phased Use Book
SDLC Advantages & Disadvantages (slide 38):
Advantages: Control & targets, Formality, Financial controls. User input, Documentation, Testing, Ease of maintenance
Disadvantages: Increased costs, Increased time,Hard for Decision Support Systems,
Requires definitions up front, Rigid.
Prototyping: A prototype is a draft version of a product that allows you to explore your ideas and show the intention behind a feature or the overall design concept to users before investing time and money into development.
Agile Development comprises many approaches. Most agile development methods break product development work into small increments that minimize the amount of up-front planning and design. Iterations, or sprints, are short time frames (timeboxes) that typically last from one to four weeks. Each iteration involves a cross-functional team working in all functions: planning, analysis, design, coding, unit testing, and acceptance testing. At the end of the iteration a working product is demonstrated to stakeholders. This minimizes overall risk and allows the product to adapt to changes quickly [Wikipedia]. Agile for Dummies, a PDF training from IBM
Rapid Application Development (RAD) vs Extreme Programming Both agile methods. Rapid Application Development: "a short development cycle based on 3 phases (Requirements, Design and Construction) with an ideal delivery time of between 90 and 120 days maximum". EXtreme Programming: "Development teams work directly with the customer in very short cycles of one to two weeks maximum. Delivery of versions of the software occurs very early and at rapid intervals to maximize the impact of user feedback..."
Scrum (an Agile method) A simple framework for effective team collaboration on complex products. The Scrum Team consists of a Product Owner, the Development Team, and a Scrum Master. Scrum Teams are self-organizing and cross-functional. Self-organizing teams choose how best to accomplish their work, rather than being directed by others outside the team. Cross-functional teams have all competencies needed to accomplish the work without depending on others not part of the team. The team model in Scrum is designed to optimize flexibility, creativity, and productivity.
Joint Application Development: JAD sessions are somewhat obsolete and are not normally conducted in Agile at all. In an Agile project there is less of a need for formal JAD sessions because the Product Owner plays an important role to define the vision and direction for the project and to define and prioritize requirements.
End User Development: users do all of the development work themselves.
Data Flow Diagram: A data-flow diagram (DFD) is a way of representing a flow of a data of a process or a system (usually an information system). Know symbols for External Entity, Process, Data Store, Data Flow, Feedback and Control Data (slide 55)
Entity Relationship Diagram: a high-level conceptual data model diagram based on the notion of real-world entities and the relationship between them.
Use Case: a list of actions or event steps typically defining the interactions between a role and a system to achieve a goal. The actor can be a human or other external system.
Data Dictionary: a set of information describing the contents, format, and structure of a database and the relationship between its elements, used to control access to and manipulation of the database.
Other information not for quiz or exam.