Please enable JavaScript.
Coggle requires JavaScript to display documents.
Software Development - Coggle Diagram
Software Development
Software Development
Processes to create software
Planning
Specifying
Designing
Programming/coding
Documenting
Testing
Maintenance
Software Development Approach
Way of managing a software development project
The Structured Approach
The Agile Approach
The Prototyping Approach
Rapid Application Development (RAD)
End User Approach
Software Process
Activities that are involved in the production of a software
The Software Process Activities includes
Software specification
Feasibility study
Requirement elicitation and analysis
Requirements specification
Requirement validation
Software design and implementation
Architectural design
Component design
Interface design
Database design
Software verification and validation
Development testing
System testing
Acceptance testing
Software evolution
Software Process Model
Waterfall Model
Sequential approach
Plan-driven process
The phases of the waterfall model are
Requirements
Design
Implementation
Testing
Maintenance
When to use
Requirements are well understood and unlikely to change radically during development
V Model
Sequential model
Very costly
Not suitable for complex and object-oriented projects
Incremental Model
Each build/cycle is a mini-waterfall model
High flexibility
Low cost
Not suitable to handle large project
Rapid Application Development (RAD) Model
Incremental model
Very high reusability and reduced development time
Require high skilled team to adapt with the approach
Agile Model
Combination of sequential and incremental process
Agile methods
Scrum
Crystal
Agile Modeling (AM)
Extreme Programming (XP)
Spiral Model
Risk-driven
Each loop in the spiral is split into four sectors
Objective setting
Risk assessment and reduction
Development and validation
Planning
Prototyping Model
A version of a system or part of the system that’s developed quickly
To check the customer’s requirements or feasibility of some design decisions.
Why choose prototype model?
when a customer or developer is not sure of the requirements, or of algorithms, efficiency, business rules, response time, etc.
allows the users to experiment with the system, and so, refine the requirements
reveal errors and in the requirements
Client is involved during development process
The phases of prototype
Establish objectives
Define prototype functionality
Develop the prototype
Evaluate the prototype
Software Development Tools
Software Requirement Tools
Requirement modelling tools
Traceability tools
Software Design Tools
Creating and checking software design
Software Construction Tools
Program editors
Compilers and code generators
Interpreters
Debuggers
Software Testing Tools
Test generators
Test execution frameworks
Test evaluation tools
Test management tools
Performance analysis tools
Software Maintenance Tools
Encompasses tools that have particular importance in software maintenance where an existing system is being modified
Comprehension tools
Re-engineering tools
Software Engineering Process Tools
Process management tools
Computer Aided Software Engineering (CASE)
Software Quality Tools
Inspection tools
Static analysis tools
Software Configuration Management Tools
Defect, enhancement, issue and problem tracking tools
Version management controls
Release and build tools
Software Engineering Management Tools
Project planning and tracking tools
Risk management tools
Measurement tools
Software Development Techniques
Structured Programming
Sequence Structure
Selection of Conditional Structure
Repetition or Loop Structure
Modular Programming
Module
Independent
easily manageable
top module called root
Top Down
large program divide into small module from top to bottom
continuing whenever desired level is not obtained
Modules divided into sub-modules, sub-modules into sub- sub- modules
Bottom Up
Started from bottom and advanced stepwise to top
start from bottom layer until top are designed and tested before combined with the other layer
Component Based Development
develop software by selecting appropriate off-the-shelf components
assemble them with a well-defined software arhitecture
can be developed by different developers using different language and different platforms
Object Oriented Programming
Program is divided into a set of object.
All activities revolve around objects
Object are tied with functions
Object is a boss but captive with functions
Abstraction, Class, Polymorphism, Encapsulation and Inheritance