Inherent problem is that all requirements are rarely discovered at the beginning
Rapid Application Development (RAD)
RAD is a methodology for compressing the analysis, design, build, and test phases into a series of short, iterative development cycles.
Iteration allows for effectiveness and self-correction. People are good at making an adequate beginning and then making many small refinements and improvements.
Intended to overcome inherent problem of Waterfall.
Joint Application Development (JAD)
Brings together business area people (users) and IT (Information Technology) professionals in a highly focused workshop.
Advantages include a dramatic shortening of the time it takes to complete a project.
Also improves the quality of the final product by focusing on the up-front portion of the development lifecycle, thus reducing the likelihood of errors that are expensive to correct later on.
Developed by Chuck Morris of IBM Raleigh and Tony Crawford of IBM Toronto around 1980.
Gane & Sarson Data Flow Diagram (DFD)
The Gane & Sarson style DFD is typically used for information systems. Here is shown the flow of information in a small software company.
Extension of the concept that every computer system can be modeled through the usage of an input-processing-output model by including the two addition features of user interface process and maintenance/self testing.
The template components are: User Interface, Input, System Function and Control, Output and Maintenance/Self Test.
It includes both data and control flow as required in the Hatley/Pirbhai method typically used in real-time system analysis and design.
Object Oriented Analysis (OOA)
Built around objects – combinations of data and processes.
Objects correspond to real things, such as customers, suppliers, contracts
Goal is to make systems elements more reusable
Organized into object classes – groups of objects sharing structural and behavioral characteristics
Uses inheritance principle
Uses Use Cases and UML
Depiction of a system’s behavior or functionality under various conditions as the system responds to requests from users.
Unified Modeling Language (UML)
Standardized specification language for object modeling.
General-purpose modeling language that includes a graphical notation used to create an abstract model of a system, referred to as a UML model.
Helps assure that business functionality is complete and correct, end-user needs are met, and program design supports requirements for scalability, robustness, security, extendibility, and other characteristics, before implementation in code.
Tools are available to generate program code from UML models.
Can be used to model not only software systems, but business systems and other non-software systems.
Example of OO UML Model
Simplified banking system
Argues that software development methodologies adapted from engineering generally do not fit with real-world software development. Requirements are much more fluid for software than typical engineering projects.
Share three key principles:
Focus on adaptive rather than predictive methodologies
Focus on people rather than roles
Focus on self-adaptive processes
Soft Systems Methodologies (SSM)
Blend of conventional data collection and analysis techniques together with creative thinking tools (e.g. cognitive mapping) used to characterize business problems (with significant social/political content) and hopefully suggest ways in which they can be resolved.
Peter Checkland noted the limitations of applying traditional systems approaches (i.e. Input > Process>Output etc.) He concluded that this was because typical business problems were often deceptively complex, with many competing influences, and sometimes no obvious right answers.
Five distinct stages: Rich Pictures, Root Definitions, Conceptual Models, Real World Comparisons and Solution Development.
Five Stages of SSM
Finding out about the problem situation and expressing it through cartoon-like diagrams showing boundaries, structure, information/communication channels (e.g. documents, e-mails, media etc), participants, monitoring activities (usu. shown as eyeballs), areas of conflict (usu. shown as crossed swords), emotions displayed, barriers to communication etc. The mix of the formal and informal generates the richness.
Identifying the perspective/motivation of each group of stakeholders in the rich picture. Checkland introduced the mnemonic CATWOE to describe the six elements that need to be covered:
Customer: the beneficiaries of the system.
Actor: the people who perform the tasks in the system.
Transformation: the core activity of the system, or primary change brought about.
Weltanschauung (or worldview): the underlying beliefs & objectives of the system.
Owner: the person or body that has the power to approve/cancel the system.
A simplified diagram (typically 5-10 stage) showing how each stakeholder would ideally see the system operating to achieve each Root Definition. More detailed second-level diagrams can be produced where necessary.
Real World Comparisons
The conceptual models are compared with the real world activities to see whether or not the perspectives are being met, and where there are discrepancies. This comparison can be carried out in many ways, e.g.: documenting the current practices, interviewing or benchmarking.
After the discrepancies have been identified, possible solutions are explored, and their feasibility evaluated.
Method Chunk Federation
Seeks to break down project-specific methodologies into more generic “chunks” that can be located, retrieved, and reused by other projects.
Recognizes the need for customization, and the perceived rigidity of conventional methodologies.
Focuses on reuse to take advantage of existing developments, to the extent possible.