Chapter 3 - Methodology
Incremental or Evolutionary and Throwaway
2 Types of Prototyping
Project
A collection of related tasks that must be completed in a particular order and within a certain time-frame to achieve a specific goal. Also, it is composed of related tasks that take place on one or more activity threads or paths.
The Time-Frame
A project's _________ is finite
Analysis Phase
Analyzing the requirements to build a conceptual model of the solution (the product).
Creating the solution, understanding the problem, organizing the production, assuring quality, and the managing the consequences of the solution.
Challenges of Methodology
Requirements Planning, Design, Implementation, and Enhancements and Maintenance
Characteristics of Rapid Application Development (RAD)
The Scope
Defines the project's boundaries of the goal
Ad Hoc Approach
Development without an overall theoretical framework, and it is a high-risk approach.
Feasibility Study
Discovers the meaning of requirements within the context, concepts within the domain that are related to the problem and can affect the solution, and possibly the consequences of the solution on the problem domain. It aims to discover whether the expectations are realistic.
How the real world is seen, how software is defined, the process of development, and the modeling language.
Factors that shape Software Modeling
Solution Domain
In building a solution, we also create a new and distinct context called the ___________
Hierarchical methodology
It is composed of sub-methodologies which, in turn, might consist of other methodologies.
Inflexibility, Over-Reliance on Documentation, and Detachment from Technology, Marketplace, and profession
Limitations of the Waterfall Model
Initial (or ad-hoc), Repeatable, Defined, Managed, and Optimizing.
Maturity Levels of CMM
Project management tools
Primarily focused on modeling the components and the flow of the project from various perspectives and with different levels of detail. For example, Gantt Charts, PERT Charts, WBS, etc.
Unbalanced Architecture, Illusion of Completeness, Diminishing Changeability, and can result in too little documentation or, more importantly, too little modeling.
Problems with Prototyping
Rapid Application Development (RAD)
Selecting techniques, methods, practices and procedures that would result faster development and shorter schedules.
Methodology
Set of methods, rules, practices, procedures, techniques and tools used to achieve a goal, or the theoretical understating of the principles that determine how such methods, practices, tools, etc., are used. Also, it is both the most abstract and the most systematic guide to action. It evolves from the above but cannot be reduced to any of them.
Milestones
Significant events in the life of the project.
Requirements Gathering, Feasibility Study, Domain Analysis, Analysis, Design, Implementation, Testing & Quality Control, Deployment & Training, and Maintenance
Software Development Methodologies address
Maintenance
Solving problems that may emerge after the deployment of the software, or changes in the environment.
Project Manager
The job of the ________ depends on how "management" is defined.
Complexity
The primary source behind the emergence or the change of methodology.
Problem Domain
The problem that is to be solved, or the need that is to be satisfied exists in a context. This context is called a ____________
Incremental, Evolutionary, Iterative Prototyping
The product is built through successive versions that are refined and expanded with each iteration until it becomes the final product. It addresses these concepts: Initialization Step, Control List, and Iteration Step
Throwaway Prototyping
The prototype is discarded after the stakeholders in the development are confident that they have arrived at the correct specifications and the development on the "real" product can start.
Deliverables
The verifiable results of tasks.
Deployment and Training
This activity consists of ensuring the correct installation on the target platform, user training, creating help files and user manuals, setting up of Web sites to guide users, packaging, etc
Requirements Gathering
This activity determines the requirements that the product must address.
Agile Methodologies
This aims at being adaptive rather than predictive. For example, Extreme Programming (XP), which used the set of clear-cut practices that are categorized as the following: Planning, Designing, Coding, and Testing
Capability Maturity Model (CMM)
This aims to measure the maturity of software development process within an organization, and it is essentially a rating and auditing framework of standards.
The Goal
This aspect of the project must be verifiable
Risk management
This guards against the unexpected risks.
The Life-cycle
This identifies the phases of the project from its inception to its completion
System Development Life Cycle (SDLC)
This methodology view software development as primarily a project management process rather than a technical one. Each phase is a "milestone" and the resulting documents are the "deliverables."
Object-Oriented Development
This requires: an object-oriented technology, object-oriented analysis and design, and a project plan adapted to an object-oriented approach. Also, it is mature and rules the market. Its software development is iterative.
Waterfall Model
This specifies a set of sequential phases for software development. Each step cannot begin until the previous step has been completed and documented. It is document-driven. Design is conceived as processes and data, not as objects.
Design Phase
Transforms the "what" into "how." It consists of several distinct activities; logical design, physical design, and architectural design.
Implementation
Turns the blueprints of design into an actual product. Programming is usually the most important component of this activity, but it is not the only one.
Testing and Quality Control
Verifies that the product functions according to specifications.
Project Plan and Software Development
__________ is sequential in concept. __________ is iterative in practice.
Spiral Model
risk-oriented life-cycle model that breaks a software project up into mini-projects.
Prototyping
the creation of a working model of the essential features of the final product for testing and verification of requirements.
Modeling as a methodology
the systematic representation of the relevant features of a product or a system from particular perspectives.