Software Development Methodologies and Requirements
Software Development Methodologies
Methodology: A set of philosophies, phases, procedures, rules, techniques, tools, documentation, and other aspects of training for developers of infotainment systems.
Purpose
- Provide adequate system requirements information.
- Provide a way to develop a method so that it can monitor progress.
- Build a well-documented system that is easy to maintain.
- Help identify any changes required in the development process.
- Provide a satisfactory system for all concerned.
Features
- Existence of predefined rules.
- Coverage of the development cycle.
- Intermediate verifications.
- Planning and control.
- Effective communication.
- Use of a broad range of projects.
- CASE tools for easy information.
- Process improvement activities.
- Support for maintenance.
- Support for software meetings.
Types
- Conventional development.
- Structured methodology.
- Object-Oriented (RUP).
- Other methodologies.
Problems with Requirements Capture Time
- Problems of Scope: Ill-defined system limits.
- Problems of Understanding: Customers are not sure what they need.
- Problems of Volatility: Requirements change over time.
Joint Application Development (JAD)
JAD is a technique for requirements definition and user interface design, based on participatory meetings between clients, management, and developers. This technique is beneficial when used in incremental models, allowing gradual refinement of the system according to customer needs. When used effectively, JAD helps to identify conflicts between requirements and eliminate those that are less useful.
Phases of an Interview
- Preparation: Investigate situations, identify respondents, prepare objectives and content, and plan the place and time.
- Analysis: Transcribe notes, reorganize information, compare with other interviews, and evaluate the interview.
- Realization: Opening, development, and closing.
Rational Unified Process (RUP)
- Inception: Identify use cases (10-20%), actors, and scenarios; establish the project’s scope and boundaries; create a vision document with overall project requirements.
- Elaboration: Analyze the problem domain, establish the architectural foundations, develop the project plan, and eliminate the highest risks.
- Construction: Optimize resources, ensure functional versions, complete the use case model, analysis, design, deployment, implementation, and update the business case.
- Transition: Create operational prototypes and legal documents; provide a complete and corrected description of the architecture; finalize the business case.
Artifact: A piece of information that is produced, modified, or used during a software development process.
Factors Determining Software Quality
- Operating characteristics.
- Ability to withstand change.
- Adaptability to new environments.
Software Engineering (SWE): The application of scientific knowledge to the design and construction of software, and the associated documentation required for its development, operation, and maintenance.
Stages of Software Development
Stages throughout the existence of software:
Types
- Classic: Waterfall.
- Classic with Prototyping.
- Automatic Programming.
- Evolutionary Modules: Incremental, Spiral, Component Assembly Model, Extreme Programming.
Software Requirements Specification
Part of the documentation associated with the software, it helps the client to clearly describe what they want through a software that helps developers to understand the client. It should be:
- Correct.
- Unambiguous.
- Complete.
- Verifiable.
- Consistent.
- Modifiable.
- Concise.
- Organized.
Do Not Include
- Project requirements.
- Design.
- Product warranty plans.