![]() |
Software development is an ever-evolving science. Software engineers rely on a wide range of processes and technologies, some of which are listed below:
Software Development Processes:
Waterfall model: Development flows steadily downwards through the phases of requirements analysis, design, implementation, testing, integration, and maintenance.
Iterative models: Includes the Agile model, and Extreme Programming. Development of a system incrementally, designing, implementing, testing subsets of the entire project, and learning from each phase until the product is finished.
Bottom-up model: Designing individual parts of the system, which are then linked together to form larger components, until the entire system is complete.
Top-down model: Overview is formulated, without detail for any individual part. Each part is then refined in greater detail.
Prototyping: Creating a working model for testing aspects of a design, illustrate ideas or features and gather user feedback.
Systems Development Life Cycle: Systematic approach to systems approach to problem-solving - Investigation, Analysis, Design, Development, Implementation, and Maintenance.
ISO 12207: A standard for software life cycle processes.
Software Development Tools & Technologies:
UML Tools: Such as Together, Rational Rose and Microsoft Visio generate UML (Unified Modeling Language) artifacts used to specify, visualize, construct, and document software systems.
IDE: (Integrated Development Environment) such as Microsoft's Visual Studio, NetBeans, and Eclipse consist of a source code editor, a compiler and/or interpreter, build-automation tools, and a debugger.
CASE: (Computer-aided software engineering) such as IBM's Rational Suite, Websphere and VisualAge offer capabilities for requirements and analysis, design and construction, software quality, software configuration management, process and project management, and deployment management.
Editors: Such as vi, Emacs, Notepad, and Wordpad.
Libraries: Contain modularized code and data components. •