Please enable JavaScript.
Coggle requires JavaScript to display documents.
Software and Software Engineering - Coggle Diagram
Software and Software Engineering
Software evolution
Manual Programming
Use of machine language
Difficult, prone to errors
Required hardware expertise
High-level languages
Examples: COBOL, FORTRAN, C
Greater abstraction and modularity
More readable code
Structured Development
Division into modules
Use of sequences, selection and modularity
Facilitates maintenance
Object-Oriented
Using objects with data and functions
Code reuse
More flexible design
Agile methodologies
Examples: Scrum, Kanban
Iteratives deliveries
Rapid adaptation to change
Ongoing collaboration
Cloud and mobile development
Scalable and accessible apps
Mobile Development
New user interactions
Comparison of process models
Waterfall model
Characteristics
Sequential, linear
Advantages
Simple, clear, suitable for stable requirements
Disadvantages
Inflexible, difficult to provide early feedback
Spiral model
Characteristics
Iterative, risk based
Advantages
Risk management, adaptable, continuous feedback
Disadvantages
Complex and expensive
Agile methodologies
Characteristics
Short iterations, incremental deliveries.
Advantages
Flexible, early delivery, customer involvement.
Disadvantages
High need for communication, difficult in very large of rigid projects.
Software Features and Qualities
Functionality
Meet requirements.
Perform assigned tasks.
Reliability
Accurate results.
Proper functioning.
Maintainability
Easy to modify.
Allows for corrections and improvements.
Efficiecy
Good use of resources.
Speed in tasks
Portability
Works on multiple systems.
Security
Data protection.
Authentication, encryption, controls.
Scalability
Supports increased load and users
Software engineering
Software engineering process
Structured sequence of activities.
Models: Waterfall, Spiral, Agile.
General concepts
Requirements
User needs
Design
Architecture and structure
Development
Coding and implementation
Tests
Verification and validation
Maintenance
Subsequent improvements
Software engineering project
Planning and control.
Resources, objectives, organization.
Software product
Final result.
It must be functional, reliable and of high quality