top of page

Group

Public·92 members
Pablito Burgos
Pablito Burgos

Software Engineering Concepts Richard Fairley, 1997, Tmh.pdf


Software Engineering Concepts by Richard Fairley




Software engineering is the discipline of applying systematic and rigorous methods to the development, operation, and maintenance of software systems. Software engineering concepts are the fundamental principles, models, techniques, and tools that guide software engineers in their work. In this article, we will review some of the main software engineering concepts presented in the book Software Engineering Concepts by Richard Fairley, published in 1997 by Tata McGraw-Hill.


Download: https://cinurl.com/2w4pDv


Software Life Cycle Models




A software life cycle model is a framework that describes the phases and activities of a software project from inception to termination. Software life cycle models help software engineers plan, organize, monitor, and control their work. There are many different software life cycle models, each with its own advantages and disadvantages. Some of the most common ones are:



  • The waterfall model: This is a linear and sequential model that divides the software project into distinct phases, such as requirements analysis, design, implementation, testing, and maintenance. Each phase must be completed before moving on to the next one. The waterfall model is simple and easy to follow, but it does not accommodate changes or feedback well.



  • The spiral model: This is an iterative and incremental model that combines the waterfall model with risk analysis and prototyping. The software project is divided into cycles, each consisting of four quadrants: planning, risk analysis, engineering, and evaluation. The spiral model allows for flexibility and adaptation, but it can be complex and costly.



  • The agile model: This is a collaborative and adaptive model that emphasizes customer involvement, rapid delivery, and continuous improvement. The software project is divided into short iterations, each delivering a working product increment. The agile model responds well to changing requirements and feedback, but it requires high commitment and communication from all stakeholders.




Software Requirements Engineering




Software requirements engineering is the process of eliciting, analyzing, specifying, validating, and managing the requirements of a software system. Software requirements are the descriptions of what the software system should do and how it should behave under various conditions. Software requirements engineering aims to ensure that the software system meets the needs and expectations of its customers and users. Some of the main activities of software requirements engineering are:



  • Requirements elicitation: This is the activity of gathering information from various sources, such as customers, users, domain experts, competitors, standards, regulations, etc., to identify the problems and opportunities that the software system should address.



  • Requirements analysis: This is the activity of refining, organizing, prioritizing, and modeling the requirements to create a clear and consistent specification of what the software system should do and how it should do it.



  • Requirements validation: This is the activity of checking that the requirements specification is correct, complete, consistent, feasible, verifiable, and traceable. Requirements validation involves reviewing, testing, prototyping, and inspecting the requirements specification with various stakeholders.



  • Requirements management: This is the activity of controlling and maintaining the requirements specification throughout the software project. Requirements management involves tracking changes, resolving conflicts, communicating updates, and ensuring alignment between requirements and other project artifacts.




Software Design




Software design is the process of defining the architecture, components, interfaces, data structures, algorithms, and behavior of a software system. Software design aims to provide a solution that satisfies the requirements and constraints of the software project. Some of the main activities of software design are:




  • Software architecture design: This is the activity of defining the high-level structure and organization of the software system. Software architecture design involves identifying the major components or modules of the system, their responsibilities, relationships, and interactions.




  • Software detailed design: This is the activity of defining the low-level details and specifications of each component or module of the software system. Software detailed design involves describing the data structures, algorithms, interfaces, and behavior of each component or module.




  • Software design evaluation: This is the activity of assessing the quality and suitability of the software design. Software design evaluation involves applying various criteria, such as functionality, reliability, performance, usability, maintainability, etc., to the software design.




Software Implementation




Software implementation is the process of translating the software design into executable code. Software implementation aims to produce a software system that conforms to the software design and requirements. Some of the main activities of software implementation are:




  • Software coding: This is the activity of writing, editing, compiling, and debugging the source code of the software system. Software coding involves applying various programming languages, tools, standards, and conventions to create the software system.




  • Software integration: This is the activity of combining and linking the different components or modules of the software system into a coherent whole. Software integration involves resolving dependencies, conflicts, and inconsistencies between the components or modules.




  • Software testing: This is the activity of verifying and validating that the software system meets the specifications and expectations. Software testing involves applying various techniques, such as unit testing, integration testing, system testing, acceptance testing, etc., to detect and correct errors and defects in the software system.




Software Maintenance




Software maintenance is the process of modifying and updating the software system after its delivery. Software maintenance aims to ensure that the software system remains operational, useful, and relevant. Some of the main activities of software maintenance are:




  • Software correction: This is the activity of fixing errors and defects that are discovered in the software system. Software correction involves identifying, diagnosing, repairing, and testing the software system.




  • Software adaptation: This is the activity of adjusting the software system to changes in its environment, such as hardware, operating system, network, etc. Software adaptation involves modifying, configuring, and testing the software system.




  • Software enhancement: This is the activity of adding new features and capabilities to the software system to meet new or changing requirements. Software enhancement involves analyzing, designing, implementing, and testing the software system.




  • Software reengineering: This is the activity of restructuring and improving the software system to increase its quality and maintainability. Software reengineering involves reverse engineering, redesigning, re-implementing, and re-testing the software system.




Conclusion




In this article, we have reviewed some of the main software engineering concepts presented in the book Software Engineering Concepts by Richard Fairley. We have seen that software engineering is a discipline that applies systematic and rigorous methods to the development, operation, and maintenance of software systems. We have also seen that software engineering involves various processes, such as software life cycle models, software requirements engineering, software design, software implementation, and software maintenance. These processes help software engineers plan, organize, monitor, and control their work.


If you want to learn more about these concepts and other topics related to software engineering, you can read the book Software Engineering Concepts by Richard Fairley or visit the following websites:


  • [Software Engineering Concepts - Fairley - Google Books]



  • [Software Engineering Concepts. : Richard Fairley : Free Download ...]



  • [Software Engineering Concepts - Richard E. Fairley - Google Books]



I hope you found this article helpful and informative.


About

Welcome to the group! You can connect with other members, ge...

Members

bottom of page