Wednesday, July 8, 2020

Software Engineering Body of Knowledge - 275 Words

Software Engineering Body of Knowledge (Essay Sample) Content: Title of PaperAuthor(s)DateSupervisor(Study Program)IntroductionSoftware engineering involves the methodical and disciplined approach to developing software products (Lehman, n.d.). Software Engineering develops and maintains reliable software systems that exhibit several features. Such features include; affordability, completeness, scalability, portability, integration, and dependability. The interpretation is that such systems must satisfy all user requirements as defined by the users. Such characteristics are important in meeting the organizationà ¢Ã¢â€š ¬s objectives. The result of software engineering, therefore, is an efficient and reliable software system.The precise definition of functional and non-functional requirements forms one of the main sections in the software development lifecycle that presents a challenge to developers. Definition of such requirements is essential for meeting both business and system performance objectives. Software requirements det ail the main functions that the system must aim to fulfill. They represent the userà ¢Ã¢â€š ¬s expectations of the real-world system features (Mishra and Mohanty, 2012). Usability is the main feature of any software system under development that demonstrates the system as understandable and usable to the users under specified conditions. Challenges encountered in the different phases of the software development cycle, if not properly managed, may lead to poor usability in software systems a feature that significantly contributes to software failure.Types of Requirements in Software developmentRequirements form the basic functionalities that any system under development must satisfy in order for it to be a success. The two main types of requirements in software development include: * User requirements: these describe the services provided by the system including the operational restrictions. * System requirements: These describe in detail the main areas of implementation in a system development process. Such descriptions provide information regarding the systems functions and operational constraints.The requirements have further classifications as functional, non-functional and domain requirements. Functional requirements detail the services performed by the system. They are reliant on users, nature of the software under development, and the supporting system platform. Non-functional requirements, on the other hand, detail the properties and constraints of the system such as; response time and storage requirements. Domain requirements define the system characteristics and features that reflect the domain. Such classifications usually pose a challenge to the developers. The developers must strive to maintain proper accounts of completeness and consistency issues. In the real sense, ità ¢Ã¢â€š ¬s hard to come up with a requirements document that is full complete and consistent. Such creates ambiguity causing different interpretations by the developers. Failure to meet the non-functional requirements also renders the system inadequate. On the other hand, failure to satisfy the domain requirements makes the system unworkable. It is imperative; therefore, that the developers pay attention to the requirements phase of the systems development life cycle (Poza, Kovacic and Keating, n.d.).Defining Software RequirementsThe process software requirements definition constitutes the following necessary steps: * Elicitation: Elicitation is the first step in any software development process. At this stage, the client approaches a developer with certain requirements regarding a software product. At this point, the developer initiates the requirement engineering process that starts with conducting a feasibility study. The study aims to establish whether the development process should kick off or not depending on the clientà ¢Ã¢â€š ¬s requirements. The developer takes into consideration different aspects of feasibility of the project such as; implementat ion, cost constraints, and the system objectives. Implementation entails technical aspects such as usability, maintenance, and integration with other systems. A feasibility study report indicates whether to commence the development process or drop the project altogether. If the outcome of the feasibility report is positive, the developer moves on to the next process (Haskins, 2011). * Analysis: Analysis is the step that follows after a project passes the elicitation stage of requirements phase. The process involves a comprehensive understanding of each requirement thus formulating harmonized ways of representing such requirements. * Specification: Software requirement specifications clearly demonstrate the ways in which the system should interact with different entities. Such include; compatibility with different hardware, portability across different operating systems platforms, system response time, maintenance, integration with other systems, etc. (Haskins, 2011). In order to de fine such metrics, the developer must consolidate requirements from different stakeholders who are to form part and parcel of the system operators. Specification, therefore, in this case, must involve proper organization of the requirements in an effort to facilitate proper co...

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.